FactuGES_ERP/docs/document-series/manual-validation.md
David 78f5236fe9 feat(series-documentales): implementar la página de configuración de series documentales con funcionalidad CRUD
* 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.
2026-09-18 22:57:37 +02:00

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, 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
  8. Administración de serie

    • comprobar que una primera asignación marca has_assigned_numbers y que un rollback no conserva la marca;
    • comprobar que PATCH /document-series/:id/next-number solo 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.
  9. UI Settings

    • abrir /settings/billing/document-series desde 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.

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