feat(web): el artículo muestra el nombre del almacén por defecto y los nombres de las listas de precios y de la lista base

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
GeorgeandClaude Sonnet 5.5 committed 2026-10-19 19:01:44 -05:00
1 parent 8af3b11ac2
commit d05b497cb2
5 files changed
+13 -7

No files matched your search

+1 -1
View File
@@ -74,7 +74,7 @@ export interface DetailColumn {
* La columna muestra el nombre de lo que identifica el código de otra columna (`WarehouseCode` → nombre del almacén);
* el catálogo se consulta una sola vez. No es un campo que se guarde.
*/
nameOf?: { codeKey: string; resource: string; valueField: string; labelField: string };
nameOf?: { codeKey: string; resource: string; valueField: string; labelField: string; /** Se ve `código · nombre` en vez de solo el nombre. */ withCode?: boolean };
/** Texto calculado de la fila (solo se muestra; no es un campo que se guarde). */
computed?: (row: Record<string, unknown>) => string;
/** Campos de la fila que cambian además del propio al elegir o escribir un valor de la lista (la cuenta elegida primero completa el «Cuenta / socio»). */
+5 -1
View File
@@ -233,7 +233,11 @@ export class RowsTable {
protected text(row: Row, c: DetailColumn): string {
if (c.computed) return c.computed(row);
if (c.nameOf) return this.names()[c.nameOf.resource]?.get(String(row[c.nameOf.codeKey] ?? '')) ?? '';
if (c.nameOf) {
const code = String(row[c.nameOf.codeKey] ?? '');
const name = this.names()[c.nameOf.resource]?.get(code);
return c.nameOf.withCode ? (name ? `${code} · ${name}` : code) : (name ?? '');
}
const v = row[c.key];
if (c.type === 'date') return dateOnly(v);
if (c.type === 'number') return v === null || v === undefined || v === '' ? '' : formatNumber(v, c.decimals);