66 lines
3.1 KiB
Markdown
66 lines
3.1 KiB
Markdown
# Manual validation
|
|
|
|
Guia minima de validacion manual para el cierre V1 de `document-series`. No requiere nueva infraestructura de tests automatizados.
|
|
|
|
## Objetivo
|
|
|
|
Confirmar que `document-series` es la fuente operativa unica para series y numeracion nueva de `customer-invoices` y que las restricciones funcionales V1 siguen activas.
|
|
|
|
## Precondiciones
|
|
|
|
- BD de desarrollo con tablas `document_series`, `proformas` e `issued_invoices`
|
|
- DDL de `docs/customer-invoices/sql/add-proforma-document-series-columns.sql` aplicada si `proformas` aun no tiene las columnas nuevas
|
|
- DDL de `docs/customer-invoices/sql/add-proforma-tax-config-columns.sql` aplicada si `proformas` aun no tiene las columnas nuevas
|
|
- seed o migracion conservadora de `docs/document-series/sql/migrate-customer-invoice-series-to-document-series.sql` aplicada solo si el entorno parte de `customer_invoice_series`
|
|
- backend arrancado con `apps/server/.env.development` o equivalente seguro de desarrollo
|
|
|
|
## Casos recomendados
|
|
|
|
1. Asignacion de `issued_invoice` desde `document-series`
|
|
- crear o dejar activa una serie `issued_invoice`
|
|
- emitir una factura desde el flujo normal
|
|
- comprobar que la referencia/numero resultante coincide con `prefix + padded(next_number) + suffix`
|
|
- comprobar que `document_series.next_number` se incrementa exactamente en 1
|
|
|
|
2. Asignacion de `proforma` desde `document-series`
|
|
- crear o dejar activa una serie `proforma`
|
|
- crear una proforma desde el flujo normal
|
|
- comprobar que `proformas.document_series_id`, `proformas.proforma_number` y `proformas.proforma_reference` quedan informados
|
|
- comprobar que `proforma_reference` usa el formato de la serie asignada
|
|
|
|
3. Serie inactiva
|
|
- desactivar una serie
|
|
- intentar asignar numeracion con esa serie
|
|
- comprobar que el caso falla y no incrementa `next_number`
|
|
|
|
4. Vigencia invalida
|
|
- configurar una serie con ventana fuera de fecha
|
|
- intentar asignar numeracion
|
|
- comprobar que el caso falla y no incrementa `next_number`
|
|
|
|
5. API canonica de series documentales
|
|
- llamar a `/document-series` filtrando `document_type = proforma` e `is_active = true`
|
|
- llamar a `/document-series` filtrando `document_type = issued_invoice` e `is_active = true`
|
|
- comprobar que la respuesta refleja filas activas de `document_series`
|
|
|
|
6. Endpoint legacy retirado
|
|
- llamar a `/catalogs/invoice-series`
|
|
- comprobar `404` o endpoint no registrado
|
|
|
|
7. Create de proforma sin lineas
|
|
- crear una proforma con `items = []`
|
|
- comprobar que devuelve `items = []`
|
|
- comprobar que devuelve `taxes = []`
|
|
- comprobar que los totales monetarios quedan a `0`
|
|
- comprobar que `tax_config` queda persistido y se devuelve en `GET /proformas/:id`
|
|
|
|
## Pendiente conocido
|
|
|
|
`branchId` aun no se propaga desde `customer-invoices` hasta `assignNextNumber(...)`. Toda la validacion de esta fase debe asumirse en alcance de empresa.
|
|
|
|
## Estado Fase 2C en este workspace
|
|
|
|
- configuracion de desarrollo detectada: si
|
|
- ejecucion real de SQL desde Codex: no
|
|
- motivo: falta cliente `mysql` en la terminal y la dependencia `mysql2` del workspace no pudo abrirse por una dependencia transitiva ausente
|