feat(web): formularios de inventario y solicitudes de compra (entradas, salidas, transferencias, solicitudes de traslado)

Configuración declarativa en document-layouts.ts; las líneas de las transferencias van en
StockTransferLines y las de compra/inventario llevan UoMEntry si el artículo tiene grupo de unidades.
Probado contra SBODemoCL (solicitud de compra 2, solicitud de traslado 472, entrada 155).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
GeorgeandClaude Sonnet 5.5 committed 2026-10-14 14:37:01 -05:00
1 parent 45c0ca536e
commit 155d18fce4
13 files changed
+550 -46

No files matched your search

@@ -92,6 +92,7 @@
[baseFilter]="cfg.baseFilter"
[orderby]="cfg.orderby"
[rowKey]="cfg.valueKey"
[extraFields]="cfg.extraFields ?? []"
[selection]="lookupMultiple() ? 'multiple' : 'single'"
(selected)="lookupPicked($event)"
(closed)="lookupClosed()"
@@ -106,6 +107,7 @@
[columns]="m.lookup.columns"
[baseFilter]="m.lookup.baseFilter"
[orderby]="m.lookup.orderby"
[extraFields]="m.lookup.extraFields ?? []"
selection="multiple"
(selected)="multiPicked($event)"
(closed)="multiOpen.set(false)"
@@ -28,6 +28,8 @@ export class ValueHelp {
/** Filtro fijo (ej. `CardType eq 'cCustomer'`) que se combina con la búsqueda. */
readonly baseFilter = input<string>();
readonly orderby = input<string>();
/** Campos que se piden aunque no sean columna (ver `VhLookup.extraFields`). */
readonly extraFields = input<readonly string[]>([]);
/** Campo único de cada fila; por defecto, el de la primera columna. */
readonly rowKey = input<string>();
readonly pageSize = input(20);
@@ -41,6 +43,7 @@ export class ValueHelp {
resource: () => this.resource(),
columns: () => this.columns(),
rowKey: () => this.rowKey(),
extraFields: () => this.extraFields(),
baseFilter: () => this.baseFilter(),
orderby: () => this.orderby(),
pageSize: () => this.pageSize(),
@@ -13,4 +13,6 @@ export interface VhLookup {
orderby?: string;
/** Campo de la fila elegida que se escribe en el campo; por defecto, la primera columna. */
valueKey?: string;
/** Campos que se piden al Service Layer sin mostrarlos como columna (los usa quien recibe la fila elegida). */
extraFields?: readonly string[];
}