FactuGES_ERP/docs/customer-invoices/issued-invoice-series-contract.md

43 lines
1.8 KiB
Markdown
Raw Normal View History

# 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