feat(web): serie, indicador y proyecto en la cabecera; dimensiones, proyecto, cuenta, referencia base y precio con IVA en el detalle

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
GeorgeandClaude Sonnet 5.5 committed 2026-10-16 11:07:38 -05:00
1 parent 9f003ee4bf
commit f66ef108cf
22 files changed
+698 -100

No files matched your search

+14 -2
View File
@@ -11,8 +11,8 @@ export interface SlResource {
methods: SlMethod[];
/** Ruta de menú requerida para leer; `null` = cualquier sesión (catálogos de consulta). */
read: RequiredPath | null;
/** Ruta de menú requerida para crear/modificar. */
write: RequiredPath;
/** Ruta de menú requerida para crear/modificar; `null` = cualquier sesión (acciones de solo consulta). */
write: RequiredPath | null;
/** Colecciones permitidas en `$expand` (por defecto ninguna). */
expand?: string[];
}
@@ -33,6 +33,12 @@ const catalog = (name: string, key: 'number' | 'string', writePath?: RequiredPat
write: writePath ?? [],
});
/**
* Acción del Service Layer que solo consulta (se invoca con POST y no escribe nada): cualquier sesión.
* El nombre es el de la acción (`SeriesService_GetDocumentSeries`), no el de una entidad.
*/
const queryAction = (name: string): SlResource => ({ name, key: 'string', methods: ['POST'], read: null, write: null });
/**
* Único lugar donde se declara qué puede tocar el frontend. Lo que no esté aquí
* no se puede consultar (404). Nunca registrar `EmployeesInfo`: contiene U_WEB_PASS.
@@ -78,6 +84,12 @@ export const SL_RESOURCES: readonly SlResource[] = [
// Grupos de los maestros (para elegirlos y filtrar las listas de clientes, proveedores y artículos).
catalog('BusinessPartnerGroups', 'number'),
catalog('ItemGroups', 'number'),
// Dimensiones, proyectos y cuentas de los documentos (para elegirlos en cabecera y líneas).
catalog('DistributionRules', 'string'),
catalog('Projects', 'string'),
catalog('ChartOfAccounts', 'string'),
// Series de numeración válidas de un tipo de documento.
queryAction('SeriesService_GetDocumentSeries'),
// Gastos adicionales de un documento (el flete): se leen para elegir el código de gasto.
catalog('AdditionalExpenses', 'number'),
];