Cosa fa a ogni passata
L'azione cerca le catene attive e, per ciascuna, richiama la verifica di integrità. Tutto ciò che conta avviene dentro quella verifica: ricalcola l'impronta di ogni registro e la confronta con quella salvata. L'impronta è uno SHA-256 del registro concatenato con il precedente, e l'AEAT la ricalcola per conto suo: se non coincide, accetta il registro con un errore da correggere.
L'azione esiste in tutti i rami pubblicati del modulo (17.0, 18.0, 19.0 e 20.0), che è pubblicato su Odoo Apps per queste quattro versioni. Questo schema riassume l'azione e il menu da cui si aprono le catene:

Dettagli che non si vedono nella scheda
Controlla solo le catene attive, una per una
L'azione non scorre tutte le catene esistenti: cerca soltanto quelle attive e lancia la verifica di ciascuna separatamente. Ogni catena appartiene a un'azienda. Nella scheda di All Chain States (Asesoría) hai il campo Company per sapere di quale si tratta.
Legge l'intera catena a ogni passata
La verifica esegue una query che unisce i registri di inserimento e quelli di annullamento dell'azienda e li ordina per numero di registro. Poi li scorre dall'inizio alla fine. Il codice non parte da un punto intermedio: ogni passata comincia dal primo registro.
Ricalcola ogni impronta da ciò che è salvato
Per ogni registro di inserimento, il codice ricostruisce l'impronta con questi dati salvati: NIF dell'emittente, numero di serie, data di emissione, tipo di fattura (F1 se è vuoto), quota totale calcolata a partire dalle basi imponibili, importo totale, impronta del registro precedente e data e ora di generazione con il suo fuso orario. Il primo registro parte da un'impronta precedente vuota.
Il NIF dell'emittente si usa senza il prefisso ES. Se l'azienda ha un NIF proprio per Verifactu, il codice lo preferisce alla partita IVA generale. Una modifica a uno qualsiasi di questi dati dopo la generazione del registro fa sì che l'impronta ricalcolata non coincida più con quella salvata.
Gli annullamenti si calcolano con altre etichette
I registri di annullamento usano una formula propria: non hanno tipo di fattura, quota né importo, e le loro etichette sono quelle della fattura annullata. Il codice ammette inoltre gli annullamenti generati prima della versione 1.3.4 del modulo, che erano calcolati con le etichette dei registri di inserimento: se l'impronta salvata coincide con quel vecchio calcolo, la dà per buona.
Si ferma alla prima rottura e avvisa
Non appena un'impronta salvata non coincide con quella ricalcolata, la verifica si ferma: non prosegue con i registri successivi di quella catena. Restituisce quanti registri aveva controllato fino a quel punto e il primo registro rotto, con il suo numero di registro, il suo numero di serie, l'impronta attesa e quella salvata.
Lo stesso passaggio lancia l'avviso di rottura della catena per l'azienda, con il numero di registro e il numero di serie in cui si è rotta. Se l'intera catena coincide, la verifica restituisce che è passata, insieme al totale dei registri controllati.
La frequenza è una volta al giorno, e in Odoo 17 si ripete senza fine
L'azione gira una volta al giorno ed è attiva fin dall'installazione. In Odoo 17.0 è inoltre configurata per ripetersi senza fine.
Se sembra che non faccia nulla
Prima di sospettare dell'azione, ripassa questi punti:
- C'è almeno una catena attiva? Se non ce n'è nessuna, la ricerca non restituisce nulla e non c'è niente da verificare.
- L'azione è ancora attiva? È attiva fin dall'installazione, quindi se non gira, controlla che sia ancora attiva.
- Cosa aspettarsi da una passata corretta? L'azione richiama soltanto la verifica di ogni catena, e una catena integra restituisce che è passata con il suo totale di registri controllati. Una rottura è ciò che lancia l'avviso di rottura della catena.
- Vedi il menu? Le schede di ogni catena si aprono da
Verifactu / SIF › Compliance Records › Chain State. Ogni livello richiede permessi diversi.

I permessi del menu, livello per livello
Se non hai il permesso di un livello, non vedi quel livello. Questi sono quelli richiesti da ciascuno:
| Livello del menu | Permessi che lo mostrano |
|---|---|
Verifactu / SIF | Accountant, Asesoría Operator, Auditor (read-only), Privacy Officer, SIF Manager |
Compliance Records | Accountant, Auditor (read-only), SIF Manager |
Chain State | Auditor (read-only), SIF Manager |
Con il solo permesso Accountant si vedono i primi due livelli, ma non Chain State. Se qualcuno dice di non trovare il menu, guarda prima i suoi permessi.
Altre letture e aiuto
Se stai implementando Odoo e vuoi che VeriFactu si integri con la tua fatturazione, FlexigoTech implementa Odoo 17, 18, 19 e 20 e sviluppa connettori e integrazioni su misura. Puoi vedere il modulo nella sua scheda di Odoo Apps.
Continua a leggere
Verificato nel codice del modulo (versione 17.0 e 20.0) e nelle fonti collegate
Fonti
- Codice del modulo: flexigo_spain_verifactu 20.0 (1fdc980f): data/verifactu_crons.xml
- Codice del modulo: flexigo_spain_verifactu 17.0 (8d43d727): data/verifactu_crons.xml
- Codice del modulo: flexigo_spain_verifactu 20.0 (1fdc980f): models/verifactu_cadena.py
- www.agenciatributaria.es/static_files/AEAT_Desarrolladores/EEDD/IVA/VERI-FACTU/Veri-Factu_
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
- flexigotech.com/en/services.html
