2026-10-14 15:12:01 -05:00
|
|
|
import {
|
|
|
|
|
type DocumentLayout,
|
|
|
|
|
FIELDS,
|
|
|
|
|
blankLine,
|
|
|
|
|
commentsOnly,
|
|
|
|
|
descriptionColumn,
|
|
|
|
|
itemColumn,
|
|
|
|
|
quantityColumn,
|
|
|
|
|
today,
|
|
|
|
|
warehouseColumn,
|
|
|
|
|
} from '../document-layouts';
|
2026-10-16 11:07:38 -05:00
|
|
|
import type { GridColumn } from '../../../shared/grid/grid.types';
|
|
|
|
|
import { ANALYTIC_COLUMNS, lineFieldsOf } from '../line-columns';
|
2026-10-14 15:12:01 -05:00
|
|
|
|
|
|
|
|
/** Solicitud de compra: solicitante (usuario de SAP), fecha requerida y, por línea, proveedor sugerido. */
|
2026-10-16 11:07:38 -05:00
|
|
|
const purchaseRequestColumns: readonly GridColumn[] = [
|
|
|
|
|
itemColumn,
|
|
|
|
|
descriptionColumn,
|
|
|
|
|
quantityColumn,
|
|
|
|
|
warehouseColumn,
|
|
|
|
|
{
|
|
|
|
|
key: 'LineVendor',
|
|
|
|
|
title: 'Proveedor',
|
|
|
|
|
width: '130px',
|
|
|
|
|
mono: true,
|
|
|
|
|
lookup: {
|
|
|
|
|
config: {
|
|
|
|
|
title: 'Proveedores',
|
|
|
|
|
resource: 'BusinessPartners',
|
|
|
|
|
baseFilter: `CardType eq 'cSupplier'`,
|
|
|
|
|
orderby: 'CardCode',
|
|
|
|
|
columns: [
|
|
|
|
|
{ key: 'CardCode', title: 'Código', width: '130px', mono: true },
|
|
|
|
|
{ key: 'CardName', title: 'Nombre' },
|
|
|
|
|
],
|
2026-10-14 15:12:01 -05:00
|
|
|
},
|
2026-10-16 11:07:38 -05:00
|
|
|
apply: (bp, line) => ({ ...line, LineVendor: bp['CardCode'] }),
|
2026-10-14 15:12:01 -05:00
|
|
|
},
|
2026-10-16 11:07:38 -05:00
|
|
|
},
|
|
|
|
|
...ANALYTIC_COLUMNS,
|
|
|
|
|
];
|
|
|
|
|
|
|
|
|
|
export const purchaseRequestLayout: DocumentLayout = {
|
|
|
|
|
lines: { key: 'DocumentLines', fields: [...lineFieldsOf(purchaseRequestColumns), 'UoMEntry'], base: false },
|
|
|
|
|
header: { left: [FIELDS.requester, FIELDS.indicator, FIELDS.project], right: [FIELDS.docNumber, FIELDS.docDate, FIELDS.requiredDate] },
|
|
|
|
|
footer: commentsOnly,
|
|
|
|
|
columns: purchaseRequestColumns,
|
2026-10-14 15:12:01 -05:00
|
|
|
newHeader: () => ({ DocDate: today(), RequriedDate: today() }),
|
|
|
|
|
newLine: blankLine,
|
|
|
|
|
// El solicitante es un usuario de SAP (`ReqType` 12).
|
|
|
|
|
beforeCreate: (h) => (h['Requester'] ? { ...h, ReqType: 12 } : h),
|
|
|
|
|
requiredLine: [],
|
|
|
|
|
};
|