Overslaan naar inhoud

Het account.move Model: Inzicht in Odoo's Facturen en Journaalposten

Een complete gids voor Odoo's centrale boekhoudmodel voor ontwikkelaars en functionele consultants
10 maart 2026 in
Het account.move Model: Inzicht in Odoo's Facturen en Journaalposten
Dasolo
| Nog geen reacties

Inleiding


In Odoo definiëren modellen hoe gegevens zijn gestructureerd en opgeslagen in de database. Elk stuk bedrijfsdata waarmee je werkt, van verkooporders tot facturen tot journaalposten, bevindt zich in een model.


Het begrijpen van Odoo-modellen is essentieel voor zowel ontwikkelaars als functionele consultants. Modellen zijn de basis van de Odoo-gegevensarchitectuur. Ze definiëren Odoo-velden, relaties en bedrijfslogica.

Dit artikel richt zich op een van de belangrijkste modellen in Odoo Accounting: account.move. Of je nu aangepaste rapporten bouwt, externe systemen integreert of factureringsworkflows configureert, je zult met dit model werken.

Wat is het account.move Model


Het account.move-model vertegenwoordigt journaalposten in Odoo. In Odoo 13 en later is het verenigd wat voorheen aparte modellen waren: klantfacturen, leveranciersfacturen, creditnota's en handmatige journaalposten. Tegenwoordig leven ze allemaal in account.move.


Dit model in Odoo wordt gebruikt door de Boekhoudmodule. Het is de ouder van account.move.line, die de individuele debet- en creditregels bevat. Elke factuur, factuur of journaalpost is één account.move-record met een of meer regels.


Het model is gedefinieerd in de accountmodule. Andere modules breiden het uit via Odoo-modelovererving. Verkoop voegt factuurcreatie vanuit bestellingen toe. Aankoop voegt factuurcreatie toe. Elke module voegt toe wat het nodig heeft zonder de kernstructuur te dupliceren.

Belangrijke Velden in het Model


Hier zijn de belangrijkste Odoo-velden in het account.move-model. Het begrijpen hiervan zal je helpen om effectief te werken met facturen, facturen en journaalposten.


1. naam

Type: Char. Dit veld slaat het nummer of de naam van de journaalpost op. Het wordt doorgaans automatisch gegenereerd vanuit de journaalsequentie. Weergegeven in lijstweergaven en op afgedrukte documenten.


2. move_type

Type: Selectie. Bepaalt het type beweging: entry (handmatige journaalpost), out_invoice (klantfactuur), out_refund (klantcreditnota), in_invoice (leveranciersfactuur), in_refund (leverancierscreditnota). Dit veld stuurt welke weergaven en workflows van toepassing zijn.


3. staat

Type: Selectie. De workflowstatus: concept, gepost of geannuleerd. Conceptbewegingen kunnen worden bewerkt. Geposte bewegingen zijn vergrendeld en hebben invloed op de algemene grootboek. Annuleren keert het effect om.


4. datum

Type: Datum. De documentdatum. Gebruikt voor rapportage, veroudering en periode-afsluiting. Voor facturen is dit vaak de factuurdatum.


5. journal_id

Type: Many2one (account.journal). Het journaal waartoe deze beweging behoort. Verkoop-, aankoop-, bank- en diverse journaals hebben elk hun eigen. Het journaal bepaalt de volgorde en standaardrekeningen.


6. company_id

Type: Many2one (res.company). In multi-company opstellingen geeft dit aan tot welke onderneming de beweging behoort. Beïnvloedt de zichtbaarheid van records en consolidatie.


7. partner_id

Type: Many2one (res.partner). De klant of leverancier. Vereist voor facturen en rekeningen. Gebruikt voor ouderdomsrapporten, betalingsmatching en documentkoppen.


8. currency_id

Type: Many2one (res.currency). De valuta van de beweging. Bedragen worden in deze valuta opgeslagen. Multi-valuta bewegingen gebruiken de bedrijfsvaluta voor rapportage.


9. amount_total

Type: Monetair. Het totale bedrag van de beweging. Voor facturen is dit het verschuldigde bedrag. Berekend op basis van de regels.


10. amount_residual

Type: Monetair. Het onbetaalde bedrag. Voor betaalde facturen is dit nul. Gebruikt voor ouderdoms- en betalingsworkflows.


11. betalingsstatus

Type: Selectie. Betalingsstatus: niet_betald, in_betaling, betaald, gedeeltelijk, omgekeerd, of facturering_legacy. Stuurt betalingsherinneringen en rapportage.


12. lijn_ids

Type: One2many (account.move.line). De journaalboekingen. Elke lijn heeft een rekening, debet en credit. De som van de debetbedragen moet gelijk zijn aan de som van de creditbedragen.


13. factuur_lijn_ids

Type: One2many (account.move.line). Voor facturen en rekeningen zijn dit de product- of dienstlijnen. Elke lijn genereert een of meer journaalboekingen wanneer deze worden geboekt.


14. factuurdatum

Type: Datum. De factuurdatum. Gebruikt voor facturering en belastingperiodes. Kan in sommige configuraties verschillen van de boekingsdatum.


15. vervaldatum_factuur

Type: Datum. De vervaldatum van de betaling. Berekend op basis van betalingsvoorwaarden of handmatig ingesteld. Gebruikt voor veroudering en aanmaning.


16. ref

Type: Char. Externe referentie of nummer van de leveranciersfactuur. Nuttig voor het matchen van betalingen en het reconciliëren met externe documenten.


17. invoice_origin

Type: Char. Het brondocument. Voor facturen van verkooporders slaat dit het SO-nummer op. Maakt traceerbaarheid van bestelling naar factuur mogelijk.


18. create_date

Type: Datetime. Slaat de datum en tijd op wanneer het record is aangemaakt. Automatisch beheerd door Odoo.


19. write_date

Type: Datetime. Slaat de datum en tijd van de laatste wijziging op. Ook automatisch beheerd.


20. narration

Type: Text. Interne notities of memo. Weergegeven op afgedrukte journaalposten. Niet zichtbaar voor klanten op facturen.


21. fiscal_position_id

Type: Many2one (account.fiscal.position). De fiscale positie voor belastingregels. Bepaalt welke belastingen van toepassing zijn op basis van partner en land.


22. invoice_payment_term_id

Type: Many2one (account.payment.term). Betalingsvoorwaarden (bijv. Net 30). Gebruikt om invoice_date_due te berekenen en betalingen te splitsen.


23. invoice_user_id

Type: Many2one (res.users). De verkoper of verantwoordelijke gebruiker voor de factuur. Gebruikt voor commissie en rapportage.


24. reversed_entry_id

Type: Many2one (account.move). Voor omgekeerde boekingen, dit linkt naar de omgekeerde boeking. Maakt een audit trail van correcties mogelijk.


25. to_check

Type: Boolean. Vlag voor boekingen die moeten worden beoordeeld. Gebruikt in bankafstemming en uitzonderingsworkflows.


26. active

Type: Boolean. Vlag voor zachte verwijdering. Wanneer False, wordt het record gearchiveerd. Geannuleerde boekingen worden doorgaans ingesteld op active=False.


27. sequence_number

Type: Integer. Het volgnummer van het journaal. Gebruikt voor ordening en weergave. Beheerd door de sequence mixin.


28. amount_untaxed

Type: Monetary. Het subtotaal vóór belasting. Voor facturen is dit de som van de lijnbedragen vóór belasting.


29. amount_tax

Type: Monetair. Het totale belastingbedrag. Berekend op basis van factuurregels en belastingconfiguratie.


30. invoice_source_email

Type: Char. Voor leveranciersfacturen die vanuit e-mail zijn aangemaakt, slaat dit het bron-e-mailadres op. Gebruikt voor geautomatiseerde factuurinvoer.

Hoe Dit Model Wordt Gebruikt in Bedrijfsworkflows


1. Klantfacturering

Wanneer een verkooporder wordt geleverd, creëert Odoo een account.move met move_type out_invoice. De invoice_line_ids komen van de orderregels. Het boeken van de beweging creëert de journaalboekingen en werkt de vorderingen bij.


2. Leveranciersfacturen

Inkooporders kunnen facturen genereren, of facturen worden handmatig ingevoerd. Elke factuur is een account.move met move_type in_invoice. De partner_id is de leverancier. Het boeken werkt de schulden bij.


3. Betalingsverzoening

Betalingen worden gekoppeld aan facturen met behulp van de velden amount_residual en payment_state. Het verzoeningsproces koppelt betalingsbewegingen aan factuurbewegingen en ruimt het residu op.


4. Handmatige Journaalboekingen

Accountants creëren bewegingen met move_type entry voor aanpassingen, accruals of correcties. Ze voegen handmatig line_ids toe met rekeningen, debet en credit. De beweging moet in balans zijn voordat deze wordt geboekt.


5. Creditnota's en Terugbetalingen

Creditnota's zijn bewegingen met move_type out_refund of in_refund. Ze keren het effect van de oorspronkelijke factuur of rekening terug. De reversed_entry_id verwijst terug naar de oorspronkelijke voor audit.

Hoe Ontwikkelaars Dit Model Uitbreiden


Ontwikkelaars breiden account.move uit met verschillende patronen. Odoo modelovererving is het belangrijkste mechanisme.


Modelovererving

Gebruik _inherit = 'account.move' om het model uit te breiden. Voeg nieuwe Odoo-velden toe, overschrijf methoden of voeg beperkingen toe. Het geërfde model in Odoo houdt je wijzigingen in een aparte module voor gemakkelijke upgrades.


Velden Toevoegen

Definieer nieuwe Odoo-velden in je geërfde model. Gebruik het juiste veldtype: Char, Many2one, Boolean, Integer, Text, Selection. Overweeg bedrijfsspecifieke velden voor meerdere bedrijven. Voor factuurspecifieke velden, gebruik een domein op move_type.


Python Uitbreidingen

Overschrijf create, write, _post, of button_draft om logica toe te voegen. Gebruik super() om de originele aan te roepen. Wees voorzichtig met berekende velden en hun afhankelijkheden. Het API-model in Odoo-decorators (@api.model, @api.depends) controleert wanneer methoden worden uitgevoerd.


Odoo Studio

Odoo Studio stelt je in staat om velden toe te voegen zonder code. Goed voor snelle aanpassingen zoals extra referentievelden. Voor complexe logica, validatie of geautomatiseerde acties zijn aangepaste modules beter onderhoudbaar.


Opmerking: account.move is een regulier model, geen Odoo abstract model of Odoo transient model. Abstracte modellen worden gebruikt als sjablonen en creëren geen database-tabellen. Transiente modellen zijn tijdelijk en worden gebruikt voor wizard-functies. account.move slaat permanente boekhoudgegevens op.

Beste Praktijken


  • Filter altijd op move_type bij het opstellen van rapporten of integraties. Verschillende types hebben verschillende vereiste velden en gedragingen.
  • Gebruik het juiste journaal voor elk move type. Het mengen van journaals kan sequenties en rapportage verstoren.
  • Zorg ervoor dat line_ids in balans zijn (debet = credit) voordat je moves via de API plaatst. Ongebalanceerde moves zullen de validatie niet doorstaan.
  • Bij het aanmaken van facturen vanuit externe systemen, koppel je documenttypes correct aan move_type. out_invoice voor verkopen, in_invoice voor aankopen.
  • Gebruik het x_ voorvoegsel voor aangepaste velden om conflicten met toekomstige Odoo-versies te vermijden.

Veelvoorkomende Fouten


  • Moves plaatsen zonder gebalanceerde regels. Odoo zal de plaatsing afwijzen. Controleer altijd of de debet- en credittotalen overeenkomen.
  • Geplaatst moves direct aanpassen. Geplaatste moves zijn vergrendeld. Gebruik een omkering en maak in plaats daarvan een nieuwe move aan.
  • Vergeten partner_id in te stellen op klant- of leveranciersmoves. Veel rapporten en workflows zijn afhankelijk van deze instelling.
  • Het verkeerde move_type gebruiken. Een out_refund is niet hetzelfde als een negatieve out_invoice. Gebruik het juiste type voor terugbetalingen en creditnota's.
  • Kernmethoden overschrijven zonder super() aan te roepen. Dit kan andere modules of toekomstige upgrades verstoren.

Conclusie


Het account.move-model is centraal in Odoo Accounting. Het vertegenwoordigt facturen, rekeningen en journaalposten in een uniforme structuur. Begrijpen van de velden en hoe modules het uitbreiden zal je helpen Odoo effectief te configureren, aanpassen en integreren.


Of je nu een functionele consultant bent die bedrijfsprocessen in kaart brengt of een ontwikkelaar die aangepaste modules bouwt, een goed begrip van account.move zal tijd besparen en fouten voorkomen.

Hulp Nodig Bij Je Odoo Implementatie?


Dasolo helpt bedrijven bij het implementeren, aanpassen en optimaliseren van Odoo. We zijn gespecialiseerd in API-integraties en Odoo-ontwikkeling. Ons team heeft diepgaande ervaring met de Odoo-gegevensarchitectuur en modellen zoals account.move.

Als je hulp nodig hebt bij je Odoo-implementatie, aangepaste modules of integraties, zijn we hier om te helpen. Boek een demo om je project te bespreken.

Het account.move Model: Inzicht in Odoo's Facturen en Journaalposten
Dasolo 10 maart 2026
Deel deze post
Aanmelden om een reactie achter te laten