* Añadir el componente `DocumentSeriesSettingsPage` para gestionar las series documentales. * Crear diálogos para añadir, editar, avanzar y deshabilitar series documentales. * Implementar esquemas de validación de formularios para crear y editar series documentales. * Añadir funciones de utilidad para construir los payloads de las peticiones de las operaciones sobre series documentales. * Escribir pruebas unitarias para los esquemas de formularios y las funciones de utilidad. * Implementar pruebas end-to-end para la configuración de series documentales, cubriendo la creación, edición, establecimiento como predeterminada, avance y deshabilitación.
4.2 KiB
4.2 KiB
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,proformaseissued_invoices - DDL de
docs/customer-invoices/sql/add-proforma-document-series-columns.sqlaplicada siproformasaun no tiene las columnas nuevas - DDL de
docs/customer-invoices/sql/add-proforma-tax-config-columns.sqlaplicada siproformasaun no tiene las columnas nuevas - seed o migracion conservadora de
docs/document-series/sql/migrate-customer-invoice-series-to-document-series.sqlaplicada solo si el entorno parte decustomer_invoice_series - backend arrancado con
apps/server/.env.developmento equivalente seguro de desarrollo
Casos recomendados
-
Asignacion de
issued_invoicedesdedocument-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_numberse incrementa exactamente en 1
- crear o dejar activa una serie
-
Asignacion de
proformadesdedocument-series- crear o dejar activa una serie
proforma - crear una proforma desde el flujo normal
- comprobar que
proformas.document_series_id,proformas.proforma_numberyproformas.proforma_referencequedan informados - comprobar que
proforma_referenceusa el formato de la serie asignada
- crear o dejar activa una serie
-
Serie inactiva
- desactivar una serie
- intentar asignar numeracion con esa serie
- comprobar que el caso falla y no incrementa
next_number
-
Vigencia invalida
- configurar una serie con ventana fuera de fecha
- intentar asignar numeracion
- comprobar que el caso falla y no incrementa
next_number
-
API canonica de series documentales
- llamar a
/document-seriesfiltrandodocument_type = proformaeis_active = true - llamar a
/document-seriesfiltrandodocument_type = issued_invoiceeis_active = true - comprobar que la respuesta refleja filas activas de
document_series
- llamar a
-
Endpoint legacy retirado
- llamar a
/catalogs/invoice-series - comprobar
404o endpoint no registrado
- llamar a
-
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_configqueda persistido y se devuelve enGET /proformas/:id
- crear una proforma con
-
Administración de serie
- comprobar que una primera asignación marca
has_assigned_numbersy que un rollback no conserva la marca; - comprobar que
PATCH /document-series/:id/next-numbersolo acepta un valor mayor; - comprobar que marcar una inactiva como default falla;
- comprobar que desactivar una default la desmarca y no selecciona otra;
- comprobar que cambios de prefijo, sufijo o padding no alteran referencias ya persistidas.
- comprobar que una primera asignación marca
-
UI Settings
- abrir
/settings/billing/document-seriesdesde Settings > Billing; - crear una serie y comprobar código, tipo, contador inicial, estado y default;
- editar nombre, formato y vigencia, verificando que código y tipo no están disponibles;
- avanzar el contador a un valor superior y comprobarlo en la tabla;
- cambiar la serie default y comprobar que la anterior deja de serlo;
- desactivar una default y comprobar la advertencia, que queda inactiva y sin default;
- reactivarla y comprobar que no recupera el default;
- comprobar búsqueda, filtros de tipo/estado, ordenación y paginación.
- abrir
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
mysqlen la terminal y la dependenciamysql2del workspace no pudo abrirse por una dependencia transitiva ausente