feat(web): ver documentos cancelados y sus documentos de cancelación (filtro, estado y botón para ir de uno al otro)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
GeorgeandClaude Sonnet 5.5 committed 2026-10-19 15:15:03 -05:00
1 parent 57424432f9
commit 74743503f0
7 files changed
+168 -4

No files matched your search

@@ -39,6 +39,8 @@ export const menuLabel = (path: string): string =>
export function documentStatus(row: ListRow): { label: string; tone: Tone } | undefined {
if (row['Cancelled'] === 'tYES') return { label: 'Cancelado', tone: 'err' };
// el documento que SAP crea al cancelar otro (su reverso): también está cerrado, pero no es un documento más
if (row['CancelStatus'] === 'csCancellation') return { label: 'Cancelación', tone: 'warn' };
switch (row['DocumentStatus']) {
case 'bost_Open':
return { label: 'Abierto', tone: 'ok' };
@@ -129,6 +131,16 @@ export const docTypeFilter: ListFilter = {
{ value: 'dDocument_Service', label: 'Servicio' },
],
};
/** Cancelaciones: los documentos cancelados y los documentos de cancelación que SAP crea al cancelarlos (por defecto, todos). */
export const cancelFilter: ListFilter = {
type: 'select',
key: 'CancelStatus',
label: 'Cancelación',
options: [
{ value: 'csYes', label: 'Cancelados' },
{ value: 'csCancellation', label: 'Documentos de cancelación' },
],
};
export const dateFilter: ListFilter = { type: 'date', key: 'DocDate', label: 'Fecha contab.' };
export const currencyFilter: ListFilter = {
type: 'multi',
@@ -195,7 +207,7 @@ export const marketing = (
partner: path.startsWith('/ventas')
? { label: partner, type: 'cCustomer', taxResource: 'SalesTaxCodes' }
: { label: partner, type: 'cSupplier', taxResource: 'SalesTaxCodes' },
extraFields: ['Cancelled', 'DocTotalFc', 'DocCurrency'],
extraFields: ['Cancelled', 'CancelStatus', 'DocTotalFc', 'DocCurrency'],
columns: [
docNum,
statusColumn,
@@ -207,7 +219,7 @@ export const marketing = (
{ key: 'DocDueDate', title: 'Fecha venc.', type: 'date', align: 'center', width: '115px' },
{ key: 'DocTotal', title: 'Total', align: 'right', width: '140px', format: documentTotal },
],
filters: [statusFilter, docTypeFilter, currencyFilter, dateFilter],
filters: [statusFilter, cancelFilter, docTypeFilter, currencyFilter, dateFilter],
});
export const inventory = (