Skip to Content

account.move σε Odoo: Οδηγός για Τιμολόγια και Καταχωρίσεις Ημερολογίου

Ολοκληρωμένος οδηγός για το κεντρικό λογιστικό μοντέλο του Odoo — για προγραμματιστές και λειτουργικούς συμβούλους
10 Μαρτίου 2026 από
account.move σε Odoo: Οδηγός για Τιμολόγια και Καταχωρίσεις Ημερολογίου
Dasolo
| No comments yet

Εισαγωγή


Στο Odoo, κάθε είδος επιχειρηματικής πληροφορίας —τιμολόγιο, παραγγελία ή λογιστική εγγραφή— αποθηκεύεται μέσα σε ένα «μοντέλο». Το μοντέλο ορίζει τη δομή, τους τύπους δεδομένων και πώς αυτά φυλάσσονται στη βάση, ώστε να υπάρχει ενιαία και προβλέψιμη διαχείριση των εγγραφών.


Η γνώση των μοντέλων του Odoo είναι απαραίτητη τόσο για τους προγραμματιστές όσο και για τους λειτουργικούς συμβούλους. Τα μοντέλα αποτελούν τη ραχοκοκαλιά της δομής δεδομένων: προσδιορίζουν πεδία, σχέσεις μεταξύ αντικειμένων και την επιχειρησιακή λογική που διέπει τις εγγραφές.

Αυτό το κείμενο εστιάζει σε ένα από τα πιο κρίσιμα μοντέλα στο λογιστικό μέρος του Odoo: το account.move. Είτε φτιάχνετε αναφορές, είτε ενσωματώνετε εξωτερικά συστήματα, είτε διαμορφώνετε ροές τιμολόγησης, το account.move θα είναι στο κέντρο της λύσης σας.

Τι είναι το μοντέλο account.move


Το account.move αντιστοιχεί στις λογιστικές εγγραφές. Από την Odoo 13 και μετά, ενοποίησε σε έναν τύπο τις πελάτες, προμηθευτές, πιστωτικά, και χειροκίνητες εγγραφές που παλαιότερα ήταν σε διαφορετικά μοντέλα — όλα πλέον είναι εγγραφές account.move.


Το μοντέλο χρησιμοποιείται από το λογιστικό module και αποτελεί γονέα του account.move.line, όπου φυλάσσονται οι μεμονωμένες χρεώσεις και πιστώσεις. Κάθε τιμολόγιο, λογαριασμός ή εγγραφή ισοδυναμεί με μία εγγραφή account.move που περιέχει μία ή περισσότερες γραμμές.


Ο ορισμός του μοντέλου βρίσκεται στο module account, ενώ άλλα modules το επεκτείνουν μέσω της κληρονομικότητας μοντέλων του Odoo. Το module Πωλήσεων προσθέτει λειτουργίες δημιουργίας τιμολογίων από παραγγελίες, το Προμηθειών δημιουργία λογαριασμών — όλα προσθέτουν μόνο ό,τι χρειάζεται χωρίς να διπλοκαταχωρούν τη βασική δομή.

Βασικά πεδία του μοντέλου


Παρακάτω παρουσιάζονται τα πιο σημαντικά πεδία του account.move που πρέπει να γνωρίζετε. Αυτά καθορίζουν συμπεριφορές, αναφορές και ροές εργασίας για τιμολόγια, λογαριασμούς και εγγραφές.


1. name

Τύπος: Char. Αποθηκεύει τον αριθμό ή την ονομασία της εγγραφής (π.χ. αρίθμηση τιμολογίου). Συνήθως προέρχεται από τη σειρά του journal και εμφανίζεται σε λίστες και εκτυπώσεις.


2. move_type

Τύπος: Selection. Καθορίζει το είδος της εγγραφής: χειροκίνητη εγγραφή, τιμολόγιο πελάτη, πιστωτικό πελάτη, τιμολόγιο προμηθευτή ή πιστωτικό προμηθευτή. Από αυτό εξαρτώνται οι views και οι ροές εργασίας που εφαρμόζονται.


3. state

Τύπος: Selection. Κατάσταση ροής εργασίας: draft, posted ή cancel. Στη φάση draft οι εγγραφές μπορούν να τροποποιηθούν. Στο posted κλειδώνουν και επηρεάζουν το γενικό καθολικό. Το cancel αναιρεί την επίδραση.


4. date

Τύπος: Date. Η ημερομηνία του εγγράφου — κρίσιμη για αναφορές, ageing και κλείσιμο περιόδων. Στα τιμολόγια αντιστοιχεί συνήθως στην ημερομηνία τιμολόγησης.


5. journal_id

Τύπος: Many2one (account.journal). Το ημερολόγιο στο οποίο ανήκει η εγγραφή (π.χ. Πωλήσεις, Αγορές, Τράπεζα). Το journal καθορίζει τη σειρά αρίθμησης και προεπιλεγμένους λογαριασμούς.


6. company_id

Τύπος: Many2one (res.company). Σε πολυεταιρικά περιβάλλοντα δείχνει σε ποια εταιρεία ανήκει η εγγραφή. Επηρεάζει ορατότητα, συγκεντρωτικές καταστάσεις και ενοποίηση.


7. partner_id

Τύπος: Many2one (res.partner). Ο πελάτης ή ο προμηθευτής. Απαραίτητο για τιμολόγια και λογαριασμούς, χρησιμοποιείται στις αναφορές ageing, στη συμφωνία πληρωμών και ως επικεφαλίδα εγγράφων.


8. currency_id

Τύπος: Many2one (res.currency). Το νόμισμα της εγγραφής. Τα ποσά καταγράφονται σε αυτό. Για πολυνομισματικές εγγραφές οι μετατροπές γίνονται σε εταιρικό νόμισμα για αναφορές.


9. amount_total

Τύπος: Monetary. Το συνολικό ποσό της εγγραφής. Στα τιμολόγια αντιστοιχεί στο ποσό που οφείλεται και υπολογίζεται από τις γραμμές.


10. amount_residual

Τύπος: Monetary. Το ανεξόφλητο υπόλοιπο. Σε εξοφλημένα τιμολόγια είναι μηδέν. Χρησιμοποιείται για ageing και διαδικασίες είσπραξης.


11. payment_state

Τύπος: Selection. Κατάσταση πληρωμής: not_paid, in_payment, paid, partial, reversed ή παλαιά κατάσταση invoicing_legacy. Επηρεάζει ειδοποιήσεις πληρωμής και αναφορές.


12. line_ids

Τύπος: One2many (account.move.line). Οι γραμμές της εγγραφής. Κάθε γραμμή περιλαμβάνει λογαριασμό, χρέωση και πίστωση. Το άθροισμα χρεώσεων πρέπει να ισούται με το άθροισμα πιστώσεων.


13. invoice_line_ids

Τύπος: One2many (account.move.line). Στα τιμολόγια και τους λογαριασμούς, αυτές είναι οι γραμμές προϊόντων/υπηρεσιών. Κατά το posting κάθε γραμμή παράγει μία ή περισσότερες γραμμές λογιστικού βιβλιαρίου.


14. invoice_date

Τύπος: Date. Η ημερομηνία τιμολόγησης — σημαντική για φορολογικές περιόδους. Μπορεί να διαφέρει από την ημερομηνία της εγγραφής σε ορισμένες ρυθμίσεις.


15. invoice_date_due

Τύπος: Date. Η ημερομηνία λήξης/πληρωμής. Υπολογίζεται από τους όρους πληρωμής ή τίθεται χειροκίνητα. Χρησιμοποιείται για ageing και ειδοποιήσεις καθυστερήσεων.


16. ref

Τύπος: Char. Εξωτερική αναφορά ή αριθμός προμηθευτή. Βοηθά στην αντιστοίχιση πληρωμών και στην συμφωνία με εξωτερικά έγγραφα.


17. invoice_origin

Τύπος: Char. Το έγγραφο προέλευσης. Για τιμολόγια που προέρχονται από παραγγελίες, εδώ αποθηκεύεται ο αριθμός της παραγγελίας για ιχνηλασιμότητα.


18. create_date

Τύπος: Datetime. Η ημερομηνία και ώρα δημιουργίας της εγγραφής. Διαχειρίζεται αυτόματα από το Odoo.


19. write_date

Τύπος: Datetime. Η τελευταία ημερομηνία/ώρα τροποποίησης της εγγραφής. Επίσης διαχειρίζεται αυτόματα.


20. narration

Τύπος: Text. Εσωτερικές σημειώσεις ή υπόμνημα για την εγγραφή. Εμφανίζεται στις εκτυπώσεις των λογιστικών εγγραφών αλλά όχι απαραίτητα στους πελάτες στα τιμολόγια.


21. fiscal_position_id

Τύπος: Many2one (account.fiscal.position). Η φορολογική θέση που καθορίζει κανόνες φόρου βάσει πελάτη/χώρας — επηρεάζει ποίοι φόροι εφαρμόζονται.


22. invoice_payment_term_id

Τύπος: Many2one (account.payment.term). Όροι πληρωμής (π.χ. Net 30). Χρησιμοποιείται για υπολογισμό invoice_date_due και διαίρεση πληρωμών.


23. invoice_user_id

Τύπος: Many2one (res.users). Ο υπεύθυνος χρήστης ή πωλητής για το τιμολόγιο. Χρησιμοποιείται σε αναφορές και υπολογισμούς προμηθειών.


24. reversed_entry_id

Τύπος: Many2one (account.move). Σε εγγραφές αντιλογισμού συνδέει την αντίστροφη εγγραφή με την αρχική — διευκολύνει τον έλεγχο και την ιχνηλασιμότητα.


25. to_check

Τύπος: Boolean. Σημαία για εγγραφές που χρειάζονται έλεγχο, π.χ. κατά την συμφωνία τραπεζικών κινήσεων ή σε εξαιρέσεις.


26. active

Τύπος: Boolean. Σημαία «μη οριστικής διαγραφής». Όταν είναι False η εγγραφή αρχειοθετείται. Συχνά οι ακυρωμένες εγγραφές θέτονται σε active=False.


27. sequence_number

Τύπος: Integer. Ο αριθμός σειράς από το journal για ταξινόμηση και εμφάνιση. Διαχειρίζεται μέσω του mixin της αρίθμησης.


28. amount_untaxed

Τύπος: Monetary. Το υποσύνολο πριν τους φόρους. Στα τιμολόγια είναι το άθροισμα των γραμμών χωρίς φόρους.


29. amount_tax

Τύπος: Monetary. Το συνολικό ποσό φόρων. Υπολογίζεται από τις γραμμές τιμολογίου και τις φορολογικές ρυθμίσεις.


30. invoice_source_email

Τύπος: Char. Σε λογαριασμούς προμηθευτών που εισάγονται από email, αποθηκεύει τη διεύθυνση προέλευσης — χρήσιμο για αυτοματοποιημένη εισαγωγή τιμολογίων.

Πώς χρησιμοποιείται στο επιχειρηματικό ροή εργασιών


1. Τιμολόγηση Πελατών

Όταν μια παραγγελία πωλήσεων παραδίδεται, το Odoo δημιουργεί ένα account.move με move_type out_invoice. Οι γραμμές τιμολογίου προέρχονται από τις γραμμές της παραγγελίας. Με το posting παράγονται οι λογιστικές γραμμές και ενημερώνονται οι απαιτήσεις.


2. Λογαριασμοί Προμηθευτών

Οι παραγγελίες αγοράς μπορούν να δημιουργήσουν αυτόματα bills ή τα bills καταχωρούνται χειροκίνητα. Κάθε bill είναι account.move με move_type in_invoice και ο partner_id είναι ο προμηθευτής — το posting ενημερώνει τις πληρωτέες υποχρεώσεις.


3. Συμφωνία Πληρωμών

Οι πληρωμές αντιστοιχίζονται με τα τιμολόγια μέσω των πεδίων amount_residual και payment_state. Η διαδικασία συμφωνίας συνδέει τις κινήσεις πληρωμών με τα τιμολόγια και μηδενίζει τα ανεξόφλητα υπόλοιπα.


4. Χειροκίνητες Λογιστικές Εγγραφές

Οι λογιστές δημιουργούν εγγραφές με move_type entry για προσαρμογές, δεδουλευμένες ή διορθώσεις. Προσθέτουν χειροκίνητα τις line_ids με λογαριασμούς, χρεώσεις και πιστώσεις — και η εγγραφή πρέπει να ισοσκελίζει πριν το posting.


5. Πιστωτικά Σημειώματα και Επιστροφές

Τα πιστωτικά είναι εγγραφές με move_type out_refund ή in_refund και αντιστρέφουν το αποτέλεσμα του αρχικού τιμολογίου/λογαριασμού. Το reversed_entry_id κρατάει τη σύνδεση με το πρωτότυπο για φορολογικό και ελεγκτικό αποτύπωμα.

Πώς το επεκτείνουν οι προγραμματιστές


Οι προγραμματιστές επεκτείνουν το account.move με γνωστά μοτίβα του Odoo. Η βασική τεχνική είναι η κληρονομικότητα μοντέλων.


Κληρονομικότητα Μοντέλων

Χρησιμοποιείτε _inherit = 'account.move' για να προσθέσετε πεδία, να παρακάμψετε μεθόδους ή να επιβάλετε περιορισμούς. Η κληρονομικότητα κρατά τις αλλαγές σε ξεχωριστό module, διευκολύνοντας αναβαθμίσεις και συντήρηση.


Προσθήκη Πεδίων

Ορίζετε νέα πεδία στο κληρονομημένο μοντέλο με τον κατάλληλο τύπο: Char, Many2one, Boolean, Integer, Text, Selection. Σκεφτείτε αν πρέπει να είναι company-dependent σε πολυεταιρικά περιβάλλοντα και χρησιμοποιήστε domain στο move_type για πεδία που αφορούν μόνο τιμολόγια.


Επεκτάσεις σε Python

Μπορείτε να υπερκαλύψετε create, write, _post ή button_draft για να προσθέσετε επιχειρησιακή λογική — πάντα καλώντας super() ώστε να διατηρούνται οι βασικές λειτουργίες. Προσέξτε τα υπολογιζόμενα πεδία και τις εξαρτήσεις τους, χρησιμοποιώντας σωστά τα @api decorators.


Odoo Studio

Το Odoo Studio επιτρέπει την προσθήκη πεδίων χωρίς κώδικα — ιδανικό για γρήγορες προσαρμογές, όπως ένα επιπλέον πεδίο αναφοράς. Για σύνθετη λογική, επαληθεύσεις ή αυτοματισμούς, προτιμήστε ένα προσαρμοσμένο module για καλύτερη επεκτασιμότητα.


Σημείωση: Το account.move είναι κανονικό μοντέλο που αποθηκεύει μόνιμα λογιστικά δεδομένα — δεν είναι abstract (πρότυπο χωρίς πίνακα) ούτε transient (προσωρινό, για wizard). Αυτό σημαίνει ότι κάθε αλλαγή έχει μόνιμο αντίκτυπο στη βάση.

Καλές πρακτικές


  • Φιλτράρετε πάντα κατά move_type όταν φτιάχνετε αναφορές ή ενσωματώσεις — οι διάφοροι τύποι έχουν διαφορετικές ανάγκες και απαιτήσεις πεδίων.
  • Χρησιμοποιήστε το σωστό journal για κάθε είδος κίνησης. Η ανάμιξη journals μπορεί να σπάσει αρίθμηση και να δυσκολέψει τις αναφορές.
  • Κατά τη δημιουργία κινήσεων μέσω API, φροντίστε οι line_ids να ισοσκελίζουν (χρέωση = πίστωση) πριν το posting. Οι μη ισοσκελισμένες εγγραφές απορρίπτονται.
  • Στις εισαγωγές τιμολογίων από εξωτερικά συστήματα αντιστοιχίστε σωστά τα είδη εγγράφων στο move_type: out_invoice για πωλήσεις, in_invoice για αγορές.
  • Χρησιμοποιήστε το πρόθεμα x_ στα προσαρμοσμένα πεδία για να αποφύγετε συγκρούσεις με μελλοντικές εκδόσεις του Odoo.

Συνήθη λάθη


  • Δημιουργία ή posting εγγραφών χωρίς ισοζύγιο γραμμών. Το Odoo θα απορρίψει το posting — επιβεβαιώστε ότι τα σύνολα χρεώσεων και πιστώσεων ταιριάζουν.
  • Τροποποίηση ήδη δημοσιευμένων εγγραφών. Οι posted εγγραφές είναι κλειδωμένες — για διόρθωση δημιουργείστε αντιλογισμό ή νέα διόρθωση, αντί να αλλάζετε απευθείας.
  • Παραβλέποντας το partner_id σε κινήσεις πελατών/προμηθευτών. Πολλές λειτουργίες, αναφορές και συμφωνίες πληρωμών εξαρτώνται από αυτό το πεδίο.
  • Χρήση λάθους move_type. Ένα out_refund δεν είναι το ίδιο με ένα αρνητικό out_invoice — χρησιμοποιήστε τον σωστό τύπο για επιστροφές και πιστωτικά.
  • Υπερκαλύπτοντας βασικές μεθόδους χωρίς να καλείτε super(). Αυτό μπορεί να σπάσει λειτουργίες άλλων modules ή να δυσκολέψει μελλοντικές αναβαθμίσεις.

Συμπεράσματα


Το account.move είναι το κεντρικό μοντέλο για το λογιστικό κομμάτι του Odoo — συγκεντρώνει τιμολόγια, λογαριασμούς και λογιστικές εγγραφές σε μία ενιαία δομή. Καλή γνώση των πεδίων και του τρόπου επέκτασης θα σας βοηθήσει να διαμορφώσετε, να προσαρμόσετε και να ενσωματώσετε το Odoo αποδοτικά.


Είτε εργάζεστε ως λειτουργικός σύμβουλος που απεικονίζει επιχειρησιακές ροές, είτε ως προγραμματιστής που κατασκευάζει προσαρμοσμένα modules, μια γερή κατανόηση του account.move θα μειώσει τα σφάλματα και θα εξοικονομήσει χρόνο.

Χρειάζεστε βοήθεια με την υλοποίηση Odoo;


Η Dasolo υποστηρίζει επιχειρήσεις στην υλοποίηση, προσαρμογή και βελτιστοποίηση του Odoo. Ειδικευόμαστε σε API ενσωματώσεις και ανάπτυξη Odoo, με βαθιά γνώση της δομής δεδομένων και μοντέλων όπως το account.move.

Αν χρειάζεστε υποστήριξη για υλοποίηση Odoo, προσαρμοσμένα modules ή ενσωματώσεις, μπορούμε να βοηθήσουμε. Κλείστε μια επίδειξη για να συζητήσουμε το έργο σας.

account.move σε Odoo: Οδηγός για Τιμολόγια και Καταχωρίσεις Ημερολογίου
Dasolo 10 Μαρτίου 2026
Share this post
Σύνδεση to leave a comment