Cos'è questa attività e ogni quanto gira
Cos'è e come è configurata?
È un'azione pianificata del modulo VeriFactu che lavora sulla coda di invio all'AEAT. È attiva all'installazione e gira ogni minuto. È presente nei rami pubblicati per Odoo 17.0, 18.0, 19.0 e 20.0; in 17.0 è configurata per ripetersi senza fine.

Invia all'AEAT ogni minuto?
L'azione viene eseguita ogni minuto, ma questo non significa una richiesta al minuto. Ogni risposta dell'AEAT contiene TiempoEsperaEnvio, i secondi fino al prossimo invio. In base al codice di Odoo 20.0, il modulo salva quell'ora per l'azienda e non le invia nulla prima che arrivi (con un'eccezione che vedrai più sotto).
Dove vedo le voci che elabora?
Nel menu Verifactu / SIF › AEAT Submission › Submission Queue. Ogni tratto del menu richiede dei permessi e, se non ne hai uno, quel tratto non lo vedi. Il tratto AEAT Submission richiede Accountant, Auditor (read-only) o SIF Manager. Il tratto Verifactu / SIF richiede uno di questi: Accountant, Asesoría Operator, Auditor (read-only), Privacy Officer o SIF Manager. Il campo Reference di ogni voce si vede nella sua scheda, quella di AEAT Errors, dentro il gruppo Queue Entry, e anche nell'elenco.

Cosa fa a ogni passata
Quali aziende gestisce e quando ne salta una?
Scorre solo le aziende che hanno VeriFactu attivato. Per ciascuna controlla due orari salvati, uno dei quali è quello del tempo di attesa dell'ultima risposta dell'AEAT. Se uno di quegli orari non è ancora arrivato, salta l'azienda in questa passata e lo annota nel log del server. L'eccezione è l'attesa dell'ultima risposta: se ci sono 1.000 voci o più in attesa (pendenti o in nuovo tentativo), l'azienda non aspetta per quella.
Cosa fa con le voci di un'azienda?
Richiede il lotto della coda di quell'azienda e, se non c'è nulla, ha finito con lei senza altro. Le voci che non hanno né registro né annullamento collegati le segna come fallite. Le altre le ordina per numero di registro, perché ogni registro nomina il suo predecessore nel concatenamento. Poi prepara ciascuna come inserimento o come annullamento e le manda insieme in un'unica richiesta all'AEAT. Secondo l'AEAT, un invio contiene da 1 a 1.000 registri.
Cosa succede con la risposta, o con il fallimento?
Se l'AEAT risponde, il modulo applica a ogni voce il suo risultato. La risposta contiene EstadoEnvio (Correcto, ParcialmenteCorrecto o Incorrecto) e uno stato per registro (Correcto, AceptadoConErrores o Incorrecto). Se contiene un tempo di attesa, il modulo salva l'ora fino alla quale quell'azienda non invia di nuovo. Se la richiesta fallisce con un 429, il modulo la tratta con un percorso diverso da quello degli altri errori. Con qualsiasi altro errore, fa passare ogni voce dal trattamento dell'errore HTTP e, se qualche voce viene scartata, lancia un solo avviso per tutto il lotto invece di uno per fattura. Alla fine dell'azienda, chiede alla sua catena un unico ricalcolo per tutte le voci.
Reinvia ciò che l'AEAT ha già accettato?
Un registro duplicato torna dall'AEAT con il codice 3000. Se risulta già corretto o accettato con errori, non va reinviato.
Se sembra che non faccia nulla
Cosa controllo per prima cosa?
Controlla che l'azione sia ancora attiva (è attiva all'installazione), che l'azienda abbia VeriFactu attivato e che l'elenco di Submission Queue contenga voci. Guarda anche se l'azienda è in un'attesa: dopo una risposta dell'AEAT aspetta il tempo indicato da questa, e quella passata viene annotata nel log del server. Una passata con il lotto vuoto termina senza inviare nulla. Se il problema è nel certificato, l'AEAT reindirizza senza certificato alla pagina di errore 4033 («non si rileva il certificato») e con un certificato che non viene validato, alla 4011.
Un errore in un'azienda blocca le altre?
Secondo il codice, no. Ogni azienda viene elaborata all'interno del proprio controllo degli errori: se fallisce, l'errore resta nel log del server con il nome dell'azienda e l'azione prosegue con la successiva.
Cos'è il riepilogo di salute finale?
Quando ha finito con tutte le aziende, e solo se qualcosa è fallito durante la passata, l'azione prepara un riepilogo di salute per FlexigoTech Cloud a scopo di monitoraggio. Non lo invia a ogni passata, ma a intervalli minimi tra un rapporto e l'altro. Contiene il numero di voci pendenti o in nuovo tentativo e di quelle scartate, e gli errori raggruppati per tipo, codice e numero di occorrenze.
Aiuto con la tua implementazione
Se stai implementando Odoo e vuoi verificare come resta questa coda con le tue aziende, in FlexigoTech implementiamo Odoo 17, 18, 19 e 20 e sviluppiamo connettori e integrazioni su misura.
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_cola_envio.py
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
- prewww2.aeat.es/static_files/common/internet/dep/aplicaciones/es/aeat/tikeV1.0/cont/ws/Sis
- sede.agenciatributaria.gob.es/Sede/errores/erro4033.html
- flexigotech.com/en/services.html
