- Added SequelizeProformaV2RecipientDomainMapper for mapping recipient data to domain model. - Introduced SequelizeProformaV2TaxesDomainMapper for handling tax data mapping. - Created SequelizeProformaV2RecipientSummaryMapper for summarizing recipient information. - Developed SequelizeProformaV2SummaryMapper for mapping Proforma summary data. - Implemented SequelizeProformaRepositoryV2 for managing Proforma data persistence. - Added SequelizeProformaV2NumberGenerator for generating Proforma numbers.
50 lines
1.5 KiB
Markdown
50 lines
1.5 KiB
Markdown
# SQL Customer Invoices
|
|
|
|
## Fase 1D
|
|
|
|
Archivos de esta fase:
|
|
|
|
- `dev-split-proformas-issued-invoices.sql`
|
|
- `validate-split-proformas-issued-invoices.sql`
|
|
|
|
## Orden recomendado en desarrollo
|
|
|
|
1. Verificar que la BD objetivo es inequívocamente de desarrollo.
|
|
2. Hacer backup o confirmar que los datos son descartables.
|
|
3. Ejecutar `dev-split-proformas-issued-invoices.sql`.
|
|
4. Ejecutar `validate-split-proformas-issued-invoices.sql`.
|
|
5. Levantar backend V2 y validar flujos funcionales.
|
|
|
|
## Propiedades del script de desarrollo
|
|
|
|
- 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.
|