FactuGES_ERP/docs/customer-invoices/sql
David 3d8f110cb7 feat: enhance proforma tax handling and validation
- Added iva_name, rec_name, and retention_name to the SequelizeIssuedInvoiceV2TaxesDomainMapper for improved tax metadata handling.
- Implemented validation to ensure tax codes and names are present together in the SequelizeIssuedInvoiceV2TaxesDomainMapper.
- Updated proforma services to utilize the new tax resolver and availability checker for better tax management.
- Introduced ProformaTaxesUnavailableError and ProformaNotReadyForIssuanceError for clearer error handling in proforma issuance.
- Enhanced tax availability checking logic in ProformaTaxAvailabilityChecker to classify tax statuses accurately.
- Updated tests to cover new tax metadata requirements and ensure consistent behavior across proforma items.
2026-09-09 23:49:26 +02:00
..
add-company-verifactu-profiles.sql feat(verifactu): add company Verifactu profile management features 2026-08-12 13:31:31 +02:00
add-issued-invoice-reference.sql Característica: Mejora de los modelos de facturas proforma y emitidas con atributos de serie de documentos 2026-08-04 11:05:02 +02:00
add-issued-invoice-verifactu-snapshots.sql feat: add proforma duplicator service and related tests 2026-08-26 13:03:39 +02:00
add-proforma-archive-columns.sql
add-proforma-document-series-columns.sql
add-proforma-list-indexes.sql feat: enhance proforma listing and archiving functionality 2026-07-29 22:24:53 +02:00
add-proforma-tax-config-columns.sql
dev-split-proformas-issued-invoices.sql feat: enhance proforma tax handling and validation 2026-09-09 23:49:26 +02:00
drop-issued-invoice-verifactu-snapshot-columns.sql feat: add proforma duplicator service and related tests 2026-08-26 13:03:39 +02:00
fix-proforma-series-semantics.sql
normalize-document-series-snapshots.sql Característica: Mejora de los modelos de facturas proforma y emitidas con atributos de serie de documentos 2026-08-04 11:05:02 +02:00
README.md feat: add proforma duplicator service and related tests 2026-08-26 13:03:39 +02:00
validate-proforma-archive.sql Implement archive and unarchive functionality for proformas, including UI dialogs and logic for handling draft proformas. 2026-07-29 18:23:57 +02:00
validate-proforma-soft-delete.sql
validate-proforma-tax-config.sql
validate-split-proformas-issued-invoices.sql feat: add proforma duplicator service and related tests 2026-08-26 13:03:39 +02:00

SQL Customer Invoices

Estado

Este directorio mezcla SQL vigentes de soporte con SQL historicos/transicionales.

Las tablas legacy customer_invoices, customer_invoice_items y customer_invoice_taxes no forman parte del runtime actual. Solo pueden aparecer en SQL historico de migracion o validacion.

Regla SSOT relevante para VeriFactu:

  • issued_invoices no debe reintroducir verifactu_profile_status, uses_verifactu ni verifactu_effective_at como columnas vigentes;
  • la cardinalidad implementada sigue siendo IssuedInvoice 1 -> 0..1 VerifactuRecord;
  • 0..N es objetivo futuro, no estado operativo actual.

SQL vigentes

  • add-company-verifactu-profiles.sql
  • add-proforma-document-series-columns.sql
  • add-proforma-tax-config-columns.sql
  • add-issued-invoice-reference.sql
  • normalize-document-series-snapshots.sql
  • fix-proforma-series-semantics.sql
  • validate-proforma-tax-config.sql
  • validate-proforma-soft-delete.sql

SQL históricos / transicionales

  • add-issued-invoice-verifactu-snapshots.sql
  • drop-issued-invoice-verifactu-snapshot-columns.sql
  • dev-split-proformas-issued-invoices.sql
  • validate-split-proformas-issued-invoices.sql

Estos archivos no deben tratarse como el camino normal de entornos nuevos salvo que exista un escenario legacy concreto que los requiera.

Orden recomendado en desarrollo para el estado vigente

  1. Verificar que la BD objetivo es inequívocamente de desarrollo.
  2. Hacer backup o confirmar que los datos son descartables.
  3. Ejecutar add-company-verifactu-profiles.sql si el entorno aún no tiene el perfil VeriFactu empresarial.
  4. Ejecutar el DDL vigente que falte para proformas.
  5. Ejecutar normalize-document-series-snapshots.sql para completar snapshots y validaciones de seriado.
  6. Ejecutar las validaciones SQL vigentes.
  7. Levantar backend V2 y validar flujos funcionales.

SQL expresamente superados para VeriFactu en issued_invoices

  • add-issued-invoice-verifactu-snapshots.sql responde a una propuesta anterior que mezclaba snapshots fiscales con un verifactuPolicy hoy descartado.
  • drop-issued-invoice-verifactu-snapshot-columns.sql se conserva como runbook correctivo para entornos legacy donde esas columnas todavía existan.

Propiedades de los scripts históricos de split

  • Crea tablas con CREATE TABLE IF NOT EXISTS.
  • Añade verifactu_records.issued_invoice_id con ALTER TABLE ... ADD COLUMN IF NOT EXISTS.
  • Conserva UUIDs legacy.
  • No borra ni modifica datos legacy.
  • Usa NOT EXISTS para evitar duplicados en reejecuciones.
  • No usa INSERT IGNORE.

Cuándo no ejecutar

No ejecutar si:

  • no existe una configuración de desarrollo clara
  • hay duda sobre si la BD es producción
  • no existe backup verificable
  • el entorno no tiene aún las credenciales/localización confirmadas

Procedimiento preliminar de producción

No ejecutar todavía. Referencia operativa:

  1. Backup verificado.
  2. Ventana de mantenimiento.
  3. Bloquear escrituras del backend.
  4. Ejecutar create tables / columnas transicionales.
  5. Ejecutar backfill idempotente y conservador.
  6. Ejecutar validaciones SQL.
  7. Desplegar backend con wiring V2.
  8. Monitorizar errores y métricas.
  9. Mantener legacy congelado para rollback y auditoría.
  10. Ejecutar rollback según punto de corte si alguna validación falla.