π Sezionali Documenti
π Riferimenti normativi
- Art. 21 c.2 lett. b DPR 633/72 β La fattura deve contenere «numero progressivo che la identifichi in modo univoco». La numerazione può essere annuale (con reset a inizio anno) ma progressiva e senza buchi all'interno del sezionale.
- Art. 36 DPR 633/72 β «Esercizio di più attività»: regola la possibilità (a volte obbligo) di tenere contabilità separata IVA per attività diverse svolte dallo stesso soggetto. Richiede registri (e numerazioni) distinti.
- Art. 23-24 DPR 633/72 β Registri delle fatture emesse / dei corrispettivi tenuti distinti per ogni singola attività.
- Art. 25 DPR 633/72 β Registro acquisti separato.
- Risoluzione AdE n. 1/E del 10 gennaio 2013 β Possibilità di adottare numerazioni distinte per tipologia documento (cartacea/elettronica, italiana/estera) ammesse purché ogni numerazione sia progressiva e senza salti.
Un sezionale è una numerazione progressiva indipendente per un Tipo Documento e un Anno. Ogni Tipo Documento (es. TD01 Fattura, TD04 Nota Credito, DDT, Preventivo) può avere uno o più sezionali per anno. Ognuno con:
- Un codice identificativo (es.
A,B,IT,EXP,RC) β può essere vuoto per il sezionale principale - Una descrizione (es. «Fatture estere UE», «Cartacee 2026», «Studio Naturopata»)
- Un formato numero personalizzabile (template con placeholder)
- Un progressivo proprio (ultimo numero usato)
- Un flag default (uno solo per tipo+anno) β sezionale pre-selezionato sui nuovi documenti
- Un'eventuale Multi-Attività collegata (per filtrare il dropdown nel form documento)
Il numero finale di un documento viene generato applicando il formato del sezionale al progressivo: es. formato {prog}_{anno}{suffisso} con prog=5, anno=2026, suffisso=F → 5_2026F.
tipoDocumentoId + anno + codice, quindi NOX crea automaticamente nuovi record per il nuovo anno alla prima emissione).
| Caso | Sezionali necessari | Esempio output |
|---|---|---|
| Single sezionale (default storico) | Uno per tipo documento + anno, codice vuoto | 5_2026F |
| Multi-attività (art. 36) studio + ditta individuale |
Un sezionale per ogni attività (campo Multi-Attività valorizzato) | 5_2026F-STU3_2026F-DI |
| Cartacee vs elettroniche | Codice CART e EL con formati diversi |
CART-12/20265_2026F |
| Italia / Estero / Reverse Charge | Codici IT, EXP, RC |
5/2026 IT2/2026 EXP1/2026 RC |
| Filiale / agente / punto vendita | Codice = sigla filiale (es. MI, RM, NA) |
5/2026-MI3/2026-RM |
Accedi alla pagina da sidebar → AMMINISTRAZIONE → Multi-Attività e poi clicca «📁 Sezionali» in alto a destra. URL diretto: /gestione-tabelle/sezionali.
Lista sezionali
La tabella mostra una riga per ogni sezionale con le colonne:
| Colonna | Descrizione |
|---|---|
| Tipo Doc | Codice del tipo documento (FT, NC, DDT, ...) |
| Anno | Anno di riferimento (reset progressivo automatico) |
| Codice | Codice sezionale o «β (default)» se vuoto |
| Descrizione | Etichetta libera per identificarlo |
| Attività | Eventuale Multi-Attività collegata (chip viola) |
| Formato | Template con placeholder, mostrato in monospace |
| Anteprima | Esempio del prossimo numero che verrà generato |
| Progr. | Ultimo numero usato (rosso, monospace) |
| Default | Chip giallo «⭐ Default» se è il sezionale pre-selezionato |
| Stato | Attivo / Disattivo (chip colorato) |
| Azioni | ✏ Modifica, ⎘ Duplica, 🔢 Override progr., 🗑 Elimina |
Filtri
Sopra la tabella ci sono due filtri:
- Tipo Documento: dropdown per restringere a un singolo tipo (default: tutti)
- Anno: campo numerico (default: anno corrente)
- Bottone «↺ Reset» per tornare ai default
Creazione/Modifica sezionale
Bottone «➕ Nuovo sezionale» in alto a destra. Il form richiede:
- Tipo Documento * β obbligatorio, dalla lista dei Tipi Documento attivi
- Anno * β obbligatorio (default: anno corrente)
- Codice β vuoto = sezionale principale (un solo «default» per tipo+anno con codice vuoto). Può essere fino a 10 caratteri (es.
A,IT,EXP,STUDIO) - Descrizione β etichetta libera per il riepilogo
- Multi-Attività β opzionale, dalla tabella Multi-Attività
- Formato Numero * β template con placeholder (vedi § 4)
- Progressivo β di solito 0 (NOX lo incrementa). Modificabile per migrazione da altro gestionale
- ⭐ Sezionale di default β checkbox: se attivo, NOX auto-demota tutti gli altri sezionali default per lo stesso tipo+anno
- Attivo β se disattivato non appare nel dropdown del form documento
Il formato è un template di stringa con placeholder racchiusi tra graffe. Quando il documento passa a EMESSO, NOX sostituisce ogni placeholder con il valore reale.
Placeholder disponibili
| Token | Significato | Esempio |
|---|---|---|
| {prog} | Numero progressivo | 5, 142, 999 |
| {anno} | Anno a 4 cifre | 2026 |
| {anno2} | Anno a 2 cifre (ultime due) | 26 |
| {suffisso} | Suffisso predefinito del Tipo Documento (campo Suffisso predefinito su Tipi Documento) | F, NC, FD, DT |
| {codice} | Codice di questo sezionale | A, IT, EXP, MI |
Esempi pratici
{prog}_{anno}{suffisso}
5_2026F
(default storico, retrocompat)
{prog}/{anno}{codice}
5/2026A
{prog}-{anno2}-{codice}
5-26-EXP
FT-{prog}/{anno}
FT-5/2026
{anno}/{prog}-{codice}
2026/142-IT
Anteprima dinamica
Mentre componi il formato, l'anteprima del numero sulla destra si aggiorna in tempo reale (con prog = ultimo+1) così vedi subito che aspetto avrà il prossimo documento emesso.
A-Z 0-9 / - _ .. Evita spazi e caratteri speciali (€, &, parentesi) per non avere problemi di import/export.
Sotto il campo Formato Numero i placeholder appaiono come pillole grafiche con icona «grip» (⠿⠿) che indica la possibilità di trascinarle. Due modi per inserire un placeholder:
Modalità trascinamento
- Tieni premuto il mouse su una pillola — il cursore diventa grabbing (mano chiusa)
- Trascina sopra il campo Formato — il bordo dell'input diventa blu tratteggiato (drop-zone attiva)
- Rilascia il mouse — il token viene inserito alla posizione del cursore nell'input (o sostituisce la selezione se ne avevi una)
- Il cursore si riposiziona subito dopo il token inserito
Modalità click
Equivalente al drag ma più veloce: clicca sulla pillola e il token viene inserito alla posizione corrente del cursore (o accodato se l'input non ha focus).
Per ogni coppia (Tipo Documento, Anno) esiste al massimo un sezionale «default» — quello pre-selezionato sui nuovi documenti del tipo+anno.
Quando viene auto-creato
Se un Tipo Documento ha bisogno di emettere un documento ma nessun sezionale è ancora configurato per quell'anno, NOX ne crea automaticamente uno con:
- Codice = vuoto (sezionale principale)
- Formato =
{prog}_{anno}{suffisso}(retrocompat con NOX precedente) - isDefault = true
- Suffisso ereditato da Tipi Documento → Suffisso predefinito
Come si imposta
Nel form di modifica del sezionale, attiva il checkbox «⭐ Sezionale di default per questo Tipo + Anno». NOX demota automaticamente tutti gli altri sezionali default dello stesso tipo+anno (mai due default contemporanei, garantito dal backend).
Quando un soggetto svolge più attività sotto la stessa Partita IVA con contabilità separata (art. 36), è possibile collegare ogni sezionale a una specifica Multi-Attività dal dropdown nel form sezionale.
Come configurare
- Vai in Multi-Attività e crea le attività (es. codice
STUDIO«Studio Naturopatia», codiceNEGOZIO«Vendita prodotti olistici») - Vai in Sezionali e crea un sezionale per ogni attività del Tipo Documento (es. due sezionali FT 2026: codice
STUDIOcon attività=Studio, codiceNEGcon attività=Negozio) - Assegna ai soggetti l'attività corretta (futuro miglioramento — oggi si sceglie il sezionale manualmente nel form documento)
Vedi Manuale Multi-Attività per i dettagli sulla tabella attività e i casi d'uso normativi.
Nel form di un nuovo documento (e su documenti BOZZA), nella riga testata accanto a Tipo Documento / Data / Serie, NOX mostra il dropdown Sezionale:
- Lista i sezionali attivi per il Tipo Documento + Anno scelti
- Pre-seleziona il default automaticamente
- Per ogni opzione mostra: codice / descrizione / attività / anteprima prossimo numero
- Cambiando sezionale prima dell'EMESSO, NOX userà quello al momento dell'assegnazione del numero ufficiale
Lock su documenti già emessi
Su documenti già EMESSO / CONFERMATO / INVIATO, il dropdown è bloccato (cursore disabilitato + icona 🔒). Per cambiare sezionale a posteriori si usa il bottone «↺ Cambia» accanto al lucchetto (vedi § 9).
Su un documento già emesso, il bottone «↺ Cambia» apre un dialog modale che permette il cambio sezionale tracciato.
Procedura
- Apri il documento già emesso in modifica
- Clicca «↺ Cambia» accanto al lucchetto sul dropdown Sezionale
- Si apre un dialog modale con avviso ambra: «Operazione tracciata: il documento è già emesso. Il cambio comporta rinumerazione dal nuovo sezionale e viene registrato nello storico audit.»
- Seleziona il Nuovo sezionale dal dropdown (lo stesso tipo+anno; il sezionale corrente è disabilitato per evitare no-op)
- Inserisci una Motivazione testuale (opzionale ma consigliata, es. «Spostamento numerazione su sezionale dedicato Estero»)
- Clicca «Conferma cambio» — un secondo prompt nativo richiede ulteriore conferma (double-confirm)
- NOX rinumera dal nuovo sezionale, aggiorna il numero del documento, e registra il movimento nella tabella
log_modifiche_sezionali
Cosa viene loggato
| Campo | Descrizione |
|---|---|
documentoId | Documento interessato |
sezionaleVecchioId | Sezionale di provenienza |
sezionaleNuovoId | Sezionale di destinazione |
numeroVecchio | Numero documento prima del cambio (es. 5_2026F) |
numeroNuovo | Numero generato dal nuovo sezionale (es. 1_2026F-EXP) |
motivazione | Motivo testuale inserito dall'utente |
utenteId | Utente che ha effettuato il cambio |
createdAt | Timestamp dell'operazione |
Dalla pagina Sezionali, sulla riga del sezionale, il bottone «🔢» permette all'admin di forzare manualmente il progressivo. Utile per:
- Migrazione da altro gestionale: allinei il progressivo all'ultimo numero usato in precedenza, così il primo documento emesso in NOX continua la numerazione
- Saltare o riservare numeri: alzare il contatore è sempre possibile
Comportamento
Cliccando il bottone, si apre un prompt che richiede il nuovo valore. Conferma e NOX aggiorna sezionale.progressivo, se il valore non è sotto un numero già usato nella serie. Il prossimo documento emesso userà il numero successivo.
Quando più utenti emettono documenti contemporaneamente (es. 3 utenti che cliccano «EMESSO» nello stesso istante), NOX garantisce che nessun numero venga duplicato tramite un advisory lock Postgres.
Logica di assegnazione del numero
Quando il documento passa da BOZZA a EMESSO (o CONFERMATO/INVIATO):
- NOX prende il sezionale dal documento (se selezionato esplicitamente) o il default per (tipo, anno). Se nessun sezionale esiste, ne crea automaticamente uno default.
- Acquisisce un advisory lock Postgres su
sezionaleId(pg_advisory_xact_lock(sezionaleId, 0)) — bloccante per altre transazioni che chiedono il lock sullo stesso sezionale, fino al commit - Calcola il prossimo progressivo come
max(progressivi già usati, anche nel cestino, sezionale.progressivo) + 1 - Aggiorna
sezionale.progressivo = nuovoProgressivo - Applica il
formatoai placeholder per ottenere la stringa numero finale - Salva
documento.numeroedocumento.sezionaleId - Commit della transazione — il lock viene rilasciato
Documenti annullati, cestino ed eliminazione: quando un numero torna libero
Il contatore di una serie non torna mai indietro sopra un numero emesso. Quando un documento numerato va nel cestino o viene eliminato per sempre, NOX libera il suo numero solo se è l'ultimo della serie e solo se:
- fatture e note di credito: non è mai stato generato l'XML per lo SdI (quindi non può essere partito), oppure lo SdI l'ha scartato. Una fattura con l'XML generato, anche solo scaricato, tiene il suo numero per sempre;
- DDT, ordini, preventivi e gli altri documenti non fiscali: è una bozza mai emessa. Un documento che è stato emesso, anche se poi è tornato in bozza o è stato annullato, tiene il suo numero;
- documenti ricevuti (fatture e DDT dei fornitori): il numero è del fornitore, il contatore non si tocca.
Finché il documento sta nel cestino il suo numero resta comunque occupato: torna libero (se la regola lo permette) solo con l'eliminazione definitiva. Se il numero non è riusabile, l'eliminazione definitiva lo lascia riservato: né il pulsante 🔄 Riallinea numerazione né la modifica a mano del contatore possono scendere sotto di lui. Nel dubbio NOX lascia un buco: un buco si spiega, un numero ripetuto no.
(tipoDocumentoId, anno, codice), quindi codice EXP per FT 2026 e codice EXP per NC 2026 sono record distinti con numerazioni indipendenti.documenti.sezionaleId con ON DELETE SET NULL: se il sezionale viene eliminato fisicamente (es. cleanup DB straordinario), il campo sezionaleId diventa null sui documenti collegati ma il numero resta inalterato.log_modifiche_sezionali. Endpoint GET /api/sezionali/documenti/:id/log. Nel frontend lo storico sarà visualizzabile dalla pagina Documento → Audit Log (futuro miglioramento).{prog}_{anno}{suffisso} — output identico al passato. Per aggiungere multi-sezionale, basta crearne nuovi codici via interfaccia.