feat(web): formulario de documentos de ventas y compras (cargar, crear, actualizar con If-Match, navegar)

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
GeorgeandClaude Sonnet 5.5 committed 2026-10-13 22:00:54 -05:00
1 parent 51982fd3ab
commit d900a96740
9 files changed
+621 -11

No files matched your search

@@ -1,5 +1,5 @@
import { describe, expect, it } from 'vitest';
import { DOCUMENT_LINE_COLUMNS, ITEMS_MULTI_ADD, newDocumentLine, recalcLine } from './line-columns';
import { DOCUMENT_LINE_COLUMNS, ITEMS_MULTI_ADD, lineColumnsFor, newDocumentLine, recalcLine } from './line-columns';
describe('recalcLine', () => {
it('total = cantidad × precio, redondeado a 2 decimales', () => {
@@ -59,3 +59,12 @@ describe('línea nueva y "catálogo completo"', () => {
expect(ITEMS_MULTI_ADD.toLine({ ItemCode: 'I9', ItemName: 'Cable' })).toMatchObject({ ItemCode: 'I9', ItemDescription: 'Cable', Quantity: 1 });
});
});
describe('lineColumnsFor', () => {
it('ventas conserva las columnas; compras cambia el maestro de impuestos', () => {
expect(lineColumnsFor('SalesTaxCodes')).toBe(DOCUMENT_LINE_COLUMNS);
const tax = lineColumnsFor('PurchaseTaxCodes').find((c) => c.key === 'TaxCode');
expect(tax?.lookup?.config.resource).toBe('PurchaseTaxCodes');
expect(DOCUMENT_LINE_COLUMNS.find((c) => c.key === 'TaxCode')?.lookup?.config.resource).toBe('SalesTaxCodes');
});
});