Waar de knop staat en wanneer je hem ziet
De migratieformulieren open je via het menu Verifactu / SIF › Configuration › Migration Runs. Zie je een deel van het menu niet, dan ontbreekt er een recht: het onderdeel Configuration vraagt SIF Manager, en het onderdeel Verifactu / SIF vraagt Accountant, Asesoría Operator, Auditor (read-only), Privacy Officer of SIF Manager.

De knop Run Pre-flight staat in het scherm Migration Runs in alle gepubliceerde branches van de module: Odoo 17, 18, 19 en 20. In alle vier is hij verborgen wanneer het veld Estado niet de standaardwaarde heeft; met de standaardwaarden zie je hem.
Wanneer de controle zonder te stoppen eindigt, verandert het veld Estado en verdwijnt de knop. Stopt de controle door een ontbrekend bestand of omdat het bestand niet te analyseren is, dan verandert de status niet en blijft de knop beschikbaar.

Ejecutar Comprobación Previa; in het Catalaans Executar Comprovació Prèvia.Stap voor stap: wat er gebeurt als je klikt
Wat volgt komt uit de code van Odoo 20.
- Hij kiest de bestandslezer op basis van het bronsysteem van de migratie. Er zijn lezers voor meerdere facturatie- en boekhoudprogramma's (bijvoorbeeld Holded, Quipu of Contasol) en een generieke CSV-lezer, die wordt gebruikt als het systeem met geen enkele overeenkomt.
- Hij controleert of het bestand is geüpload. Het bestand staat in het veld
Fichero Origen, in de groepSourcevan het migratieformulier. Is het leeg, dan stopt de knop metNo file uploaded.en wordt er niets opgeslagen. - Hij analyseert het bestand met de gekozen lezer. Faalt de lezer, dan stopt de knop met
Could not parse file: …, met de details van de fout in plaats van de puntjes. Ook dan wordt er niets opgeslagen. - Hij loopt door de verkregen rijen en noteert meldingen (de details staan in de volgende sectie). Een melding noteren stopt de doorloop niet.
- Hij slaat het resultaat op: de lijst met meldingen in het logboek van de controle, het totaal aantal gelezen records en de wijziging van het veld
Estado. - Hij vervangt de regels van de migratie: hij verwijdert de bestaande regels voor die migratie en maakt er één aan per gelezen rij, met het oorspronkelijke nummer, de datum en het totaal, en een beginstatus.
Een handig detail: de voorafgaande controle laat geen rijen vallen. Ook als er meldingen zijn, maakt stap zes een regel aan voor elke gelezen rij.
Wat hij per rij controleert
De module loopt de rijen in volgorde door, te beginnen bij de eerste, en kan per rij het volgende noteren.
- NIF van de tegenpartij. Alleen als de rij een identificatie van de tegenpartij bevat, haalt hij die door de NIF-validator van de module, met het identificatietype van de rij (bevat de rij geen type, dan gebruikt hij NIF). Valideert die niet, dan noteert hij
Row … (…): Invalid NIF/CIF/NIE "…". Tussen haakjes staat het factuurnummer van die rij, of een vraagteken als het ontbreekt; aan het eind staat de identificatie zoals die binnenkwam. - Leeg factuurnummer. Heeft de rij geen nummer, dan noteert hij
Row …: missing invoice number (column not recognized or empty). - Herhaald nummer. Kwam het nummer al in een eerdere rij voor, dan noteert hij
Row …: Duplicate series number "…" (also row …). De tweede genoemde rij is de eerste waarin dat nummer voorkwam. - Waarschuwingen van de lezer. Heeft de lezer de rij van een eigen waarschuwing voorzien, dan noteert hij die als
Row …: …, met de tekst van de waarschuwing.
Het rijnummer telt de rijen die de lezer heeft verkregen, en de meldingen worden genoteerd in dezelfde volgorde als waarin ze worden gecontroleerd.
Wat er verandert als de controle klaar is
Wanneer de doorloop zonder te stoppen eindigt, schrijft de module drie dingen weg in de migratie:
- De lijst met meldingen, opgeslagen als tekst, met accenten en speciale tekens ongewijzigd.
- Het totaal aantal records, dat is het aantal gelezen rijen.
- De
Estado, die een andere waarde krijgt dan die hij had. Met die wijziging verdwijnt de knop.
Bovendien worden de eerdere regels van die migratie verwijderd en opnieuw aangemaakt met wat net is gelezen.
Wat te doen als hij stopt
No file uploaded.Upload het bestand inFichero Origen, in de groepSourcevan het formulier, en klik opnieuw op de knop. Er was niets opgeslagen: de status is gebleven zoals hij was en de knop blijft zichtbaar.Could not parse file: …Lees de details na de dubbele punt en controleer of het bestand overeenkomt met het bronsysteem van de migratie, want de lezer wordt op basis van dat systeem gekozen. Ook nu is er niets opgeslagen en blijft de knop beschikbaar.
Zie je meldingen per rij, dan is de knop niet gestopt: de controle is afgerond en heeft ze opgeslagen. Rijen met een ongeldige NIF, zonder nummer of met een herhaald nummer zijn de rijen die je in het bronbestand kunt nakijken. Wil je weten wat de module van branch tot branch verandert, lees dan wat er verandert tussen de gepubliceerde Odoo-versies.
Zo helpt FlexigoTech
Ben je Odoo aan het implementeren en ga je facturen uit een ander programma overbrengen? FlexigoTech implementeert Odoo 17, 18, 19 en 20 en ontwikkelt connectoren en integraties op maat. De app vind je op de Odoo Apps-pagina, gepubliceerd voor de versies 17, 18, 19 en 20.
Lees verder
Gecontroleerd in de broncode van de module (versie 20.0) en in de gelinkte bronnen
Bronnen
- Broncode van de module: flexigo_spain_verifactu 20.0 (1fdc980f): views/verifactu_migracion_views.xml
- Broncode van de module: flexigo_spain_verifactu 20.0 (1fdc980f): models/verifactu_migracion.py
- apps.odoo.com/apps/modules/20.0/flexigo_spain_verifactu
- flexigotech.com/en/services.html
