# 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