feat(web): la cuenta asociada de los documentos de ventas ofrece solo las de activo y la de compras solo las de pasivo (listas locales en la ventana de selección)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
GeorgeandClaude Sonnet 5.5 committed 2026-10-19 15:04:25 -05:00
1 parent 896fa25f2f
commit 57424432f9
12 files changed
+264 -8

No files matched your search

@@ -65,6 +65,7 @@ import { SboField } from './sbo-field';
[baseFilter]="lookup().baseFilter"
[orderby]="lookup().orderby"
[extraFields]="lookup().extraFields ?? []"
[localRows]="lookup().rows"
(selected)="onPicked($event)"
(closed)="closeList()"
/>
@@ -86,6 +86,19 @@ describe('ValueHelp', () => {
await reply(req, [row(1)]);
});
it('con filas locales las busca y pagina en el navegador sin consultar al servidor', async () => {
fixture.componentRef.setInput('localRows', [row(1), row(2), row(3)]);
fixture.componentRef.setInput('open', true);
await flush();
ctrl.expectNone(URL);
expect(bodyRows()).toHaveLength(3);
expect(q('.pager span').textContent).toBe('1–3 de 3');
await type('C2');
await submitSearch();
ctrl.expectNone(URL);
expect(bodyRows()).toHaveLength(1);
});
it('cerrado no muestra nada ni consulta', async () => {
await flush();
expect(q('.dlg')).toBeNull();
@@ -32,6 +32,8 @@ export class ValueHelp {
readonly extraFields = input<readonly string[]>([]);
/** Campo único de cada fila; por defecto, el de la primera columna. */
readonly rowKey = input<string>();
/** Filas ya cargadas (ver `VhLookup.rows`): se buscan y paginan aquí, sin consultar el servidor. */
readonly localRows = input<readonly ListRow[]>();
readonly pageSize = input(100);
/** Filas ya elegidas al abrir (solo selección múltiple). */
readonly initialSelection = input<readonly ListRow[]>([]);
@@ -48,6 +50,7 @@ export class ValueHelp {
orderby: () => this.orderby(),
pageSize: () => this.pageSize(),
active: () => this.open(),
localRows: () => this.localRows(),
});
/** Las marcadas se guardan completas para no perderlas al cambiar de página. */
@@ -17,6 +17,11 @@ export interface VhLookup {
extraFields?: readonly string[];
/** Tipo de la clave de la lista: `number` para códigos numéricos (grupos, listas de precios), que no llevan comillas. */
valueType?: 'string' | 'number';
/**
* Filas ya cargadas (una lista corta que el servidor no puede filtrar, como las cuentas asociadas de un grupo): la
* ventana las busca y pagina en el navegador, sin consultar `resource`.
*/
rows?: readonly VhRow[];
/** Otros campos por los que se reconoce un código escrito a mano (`FormatCode` de una cuenta: el usuario no conoce el `_SYS…` interno). */
alsoMatch?: readonly string[];
/** Cómo se muestra el código guardado en una celda (la cuenta con su formato) y cómo se aprenden los de las filas elegidas. */