55 lines
1.9 KiB
TypeScript
55 lines
1.9 KiB
TypeScript
import { type DocumentLayout, marketingLayout } from '../document-layouts';
|
|
import type { GridColumn } from '../../../shared/grid/grid.types';
|
|
import { ANALYTIC_COLUMNS, LINE_COLUMNS } from '../line-columns';
|
|
|
|
/** Proveedor sugerido de la línea (`LineVendor`). */
|
|
const vendorColumn: GridColumn = {
|
|
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' },
|
|
],
|
|
},
|
|
apply: (bp, line) => ({ ...line, LineVendor: bp['CardCode'] }),
|
|
},
|
|
};
|
|
|
|
/** Fecha en que se necesita lo pedido en la línea (`RequiredDate`). */
|
|
const requiredDateColumn: GridColumn = { key: 'RequiredDate', title: 'Fecha necesaria', type: 'date', width: '135px' };
|
|
|
|
/** Las columnas de la solicitud de compra, en el orden de SAP: artículo, descripción, proveedor, fecha, cantidad, precio, descuento, impuesto, total y almacén. */
|
|
const requestColumns: readonly GridColumn[] = [
|
|
LINE_COLUMNS.item,
|
|
LINE_COLUMNS.description,
|
|
vendorColumn,
|
|
requiredDateColumn,
|
|
{ ...LINE_COLUMNS.quantity, title: 'Cantidad necesaria' },
|
|
{ ...LINE_COLUMNS.price, title: 'Precio info' },
|
|
LINE_COLUMNS.discount,
|
|
LINE_COLUMNS.tax,
|
|
LINE_COLUMNS.total,
|
|
LINE_COLUMNS.warehouse,
|
|
...ANALYTIC_COLUMNS,
|
|
];
|
|
|
|
/**
|
|
* Solicitud de compra: un documento de marketing sin socio de negocio. Lleva al solicitante (usuario de SAP), «Válido
|
|
* hasta» y la fecha necesaria; sus líneas llevan el proveedor sugerido y la fecha en que se necesita cada una.
|
|
*/
|
|
export const purchaseRequestLayout: DocumentLayout = marketingLayout({
|
|
partnerLabel: 'Solicitante',
|
|
taxResource: 'SalesTaxCodes',
|
|
uom: 'purchase',
|
|
requester: true,
|
|
lineColumns: requestColumns,
|
|
});
|