feat(web): cada documento de ventas y compras puede elegir sus columnas de línea y su cabecera
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c5368c7ad0
commit
1f212e2b30
5 files changed
+91
-14
No files matched your search
@@ -114,10 +114,31 @@ export const DOCUMENT_LINE_COLUMNS: readonly GridColumn[] = [
|
||||
{ key: 'LineTotal', title: 'Total', type: 'number', decimals: 2, width: '110px', readonly: true },
|
||||
];
|
||||
|
||||
const columnOf = (key: string): GridColumn => DOCUMENT_LINE_COLUMNS.find((c) => c.key === key)!;
|
||||
|
||||
/**
|
||||
* Catálogo de columnas de línea: cada documento elige cuáles muestra (y en qué orden) en su pantalla.
|
||||
* Sin elegir, lleva todas (`DOCUMENT_LINE_COLUMNS`).
|
||||
*/
|
||||
export const LINE_COLUMNS = {
|
||||
item: columnOf('ItemCode'),
|
||||
description: columnOf('ItemDescription'),
|
||||
quantity: columnOf('Quantity'),
|
||||
warehouse: columnOf('WarehouseCode'),
|
||||
price: columnOf('Price'),
|
||||
discount: columnOf('DiscountPercent'),
|
||||
tax: columnOf('TaxCode'),
|
||||
total: columnOf('LineTotal'),
|
||||
} as const;
|
||||
|
||||
/** Campos de línea que se envían a SAP: los de las columnas editables (el total y lo calculado lo resuelve SAP). */
|
||||
export const lineFieldsOf = (columns: readonly GridColumn[]): string[] =>
|
||||
columns.filter((c) => !c.format && c.readonly !== true).map((c) => c.key);
|
||||
|
||||
/** Columnas de línea con el maestro de impuestos que corresponde (por defecto `SalesTaxCodes`). */
|
||||
export function lineColumnsFor(taxResource: string): readonly GridColumn[] {
|
||||
if (taxResource === 'SalesTaxCodes') return DOCUMENT_LINE_COLUMNS;
|
||||
return DOCUMENT_LINE_COLUMNS.map((c) =>
|
||||
export function lineColumnsFor(taxResource: string, columns: readonly GridColumn[] = DOCUMENT_LINE_COLUMNS): readonly GridColumn[] {
|
||||
if (taxResource === 'SalesTaxCodes') return columns;
|
||||
return columns.map((c) =>
|
||||
c.key === 'TaxCode' && c.lookup
|
||||
? { ...c, lookup: { ...c.lookup, config: { ...c.lookup.config, resource: taxResource } } }
|
||||
: c,
|
||||
|
||||
Reference in new issue
Block a user