FactuGES_ERP/docs/customer-invoices/issued-invoice-series-contract.md
david ee040b8335 Característica: Mejora de los modelos de facturas proforma y emitidas con atributos de serie de documentos
- Se han añadido `document_series_id`, `invoice_series_code` e `invoice_reference` a los modelos y instantáneas de facturas emitidas.
- Se han introducido `proforma_series_code` y `proforma_number`, y se han actualizado las referencias en los modelos y instantáneas de las facturas proforma.
- Se han actualizado los esquemas de la base de datos y los scripts SQL para dar cabida a los nuevos campos y garantizar la integridad de los datos.
- Se ha elaborado la documentación correspondiente a las nuevas series de documentos «contrato de instantánea» y «contrato de serie de facturas emitidas».
- Se han implementado scripts SQL de rellenado para completar los registros existentes con los nuevos campos.
2026-08-04 11:05:02 +02:00

1.8 KiB

Issued Invoice Series Contract

Objetivo

Definir el contrato backend para la numeracion documental de issued_invoices.

Snapshot persistido

Una factura emitida debe persistir estos cuatro datos de numeracion:

  • document_series_id
  • invoice_series_code
  • invoice_number
  • invoice_reference

Regla operativa

  • document-series es la unica fuente de verdad para asignar numeracion de document_type = issued_invoice.
  • customer-invoices no recompone manualmente la referencia final si document-series ya la devuelve.
  • invoice_reference se calcula en el momento de emision.
  • invoice_reference se persiste como snapshot documental inmutable.
  • invoice_reference no se recalcula despues aunque cambie la configuracion de document_series.

Emision desde proforma

  • si target_invoice_series_code tiene valor, se usa como seriesCode de issued_invoice
  • si target_invoice_series_code es NULL, document-series resuelve la serie default activa
  • la respuesta de assignNextNumber(...) debe aportar series_id, series_code, number y reference
  • issued_invoices debe persistir document_series_id, invoice_series_code, invoice_number e invoice_reference

Semantica de campos

  • document_series_id: id tecnico de la serie exacta usada al emitir para trazabilidad y backoffice
  • invoice_number: numero secuencial dentro de la serie
  • invoice_reference: referencia final visible/legal compuesta por la serie documental
  • reference: referencia comercial libre del documento, si aplica; no sustituye a invoice_reference

Regla de no contaminacion

  • proforma_reference nunca se reutiliza como invoice_reference
  • target_invoice_series_code solo selecciona la serie futura y no es en si mismo la referencia final
  • no se usa MAX(invoice_number) para recomponer numeracion