تخطي للذهاب إلى المحتوى

نموذج account.move: فهم فواتير أودو وإدخالات السجل

دليل كامل لنموذج المحاسبة المركزي في أودو للمطورين والمستشارين الوظيفيين
10 مارس 2026 بواسطة
نموذج account.move: فهم فواتير أودو وإدخالات السجل
Dasolo
لا توجد تعليقات بعد

مقدمة


في أودو، تحدد النماذج كيفية هيكلة البيانات وتخزينها في قاعدة البيانات. كل قطعة من بيانات الأعمال التي تعمل معها، من طلبات المبيعات إلى الفواتير إلى قيود اليومية، تعيش في نموذج.


فهم نماذج أودو أمر ضروري لكل من المطورين والاستشاريين الوظيفيين. النماذج هي أساس بنية بيانات أودو. إنها تحدد حقول أودو، والعلاقات، والمنطق التجاري.

تركز هذه المقالة على أحد أهم النماذج في محاسبة أودو: account.move. سواء كنت تقوم ببناء تقارير مخصصة، أو دمج أنظمة خارجية، أو تكوين سير عمل الفواتير، ستعمل مع هذا النموذج.

ما هو نموذج account.move


نموذج account.move يمثل قيود اليومية في أودو. في أودو 13 وما بعده، تم توحيد ما كان نماذج منفصلة: فواتير العملاء، فواتير الموردين، ملاحظات الائتمان، وقيود اليومية اليدوية. اليوم، جميعها تعيش في account.move.


يتم استخدام هذا النموذج في أودو بواسطة وحدة المحاسبة. إنه الوالد لـ account.move.line، الذي يحتفظ بالخطوط الفردية للمدين والدائن. كل فاتورة، أو فاتورة، أو قيد يومية هو سجل واحد من account.move مع خط أو أكثر.


تم تعريف النموذج في وحدة الحساب. وحدات أخرى توسعها من خلال وراثة نموذج أودو. تضيف وحدة المبيعات إنشاء الفواتير من الطلبات. تضيف وحدة الشراء إنشاء الفواتير. كل وحدة تضيف ما تحتاجه دون تكرار الهيكل الأساسي.

الحقول الرئيسية في النموذج


إليك أهم حقول أودو في نموذج account.move. سيساعدك فهم هذه الحقول على العمل بفعالية مع الفواتير، والفواتير، وقيود اليومية.


1. الاسم

النوع: نص. يخزن هذا الحقل رقم قيد اليومية أو الاسم. يتم إنشاؤه عادةً تلقائيًا من تسلسل اليومية. يظهر في طرق العرض القائمة وعلى الوثائق المطبوعة.


2. نوع الحركة

النوع: اختيار. يحدد نوع الحركة: إدخال (قيد يومية يدوي)، فاتورة خارجية (فاتورة عميل)، ملاحظة ائتمان خارجية (ملاحظة ائتمان عميل)، فاتورة داخلية (فاتورة مورد)، ملاحظة ائتمان داخلية (ملاحظة ائتمان مورد). يقود هذا الحقل أي طرق عرض وسير عمل تنطبق.


3. الحالة

النوع: اختيار. حالة سير العمل: مسودة، منشورة، أو ملغاة. يمكن تعديل الحركات المسودة. الحركات المنشورة مقفلة وتؤثر على دفتر الأستاذ العام. الإلغاء يعكس التأثير.


4. التاريخ

النوع: تاريخ. تاريخ الوثيقة. يستخدم للتقارير، والتقادم، وإغلاق الفترات. بالنسبة للفواتير، غالبًا ما يكون هذا هو تاريخ الفاتورة.


5. journal_id

النوع: Many2one (account.journal). السجل الذي تنتمي إليه هذه الحركة. لكل من سجلات المبيعات، والمشتريات، والبنوك، والمMisc سجلاتها الخاصة. يحدد السجل التسلسل والحسابات الافتراضية.


6. company_id

النوع: Many2one (res.company). في إعدادات الشركات المتعددة، يشير هذا إلى الشركة التي تنتمي إليها الحركة. يؤثر على رؤية السجلات والتجميع.


7. partner_id

النوع: Many2one (res.partner). العميل أو المورد. مطلوب للفواتير والفواتير المستحقة. يستخدم لتقارير الشيخوخة، ومطابقة المدفوعات، ورؤوس الوثائق.


8. currency_id

النوع: Many2one (res.currency). العملة الخاصة بالحركة. يتم تخزين المبالغ بهذه العملة. تستخدم الحركات متعددة العملات عملة الشركة للتقارير.


9. amount_total

النوع: نقدي. المبلغ الإجمالي للحركة. بالنسبة للفواتير، هذا هو المبلغ المستحق. يتم حسابه من السطور.


10. amount_residual

النوع: نقدي. المبلغ غير المدفوع. بالنسبة للفواتير المدفوعة، يكون هذا صفرًا. يستخدم لتقارير الشيخوخة وعمليات الدفع.


11. payment_state

النوع: اختيار. حالة الدفع: غير مدفوع، قيد الدفع، مدفوع، جزئي، معكوس، أو فواتير_قديمة. يدفع تذكيرات الدفع والتقارير.


12. line_ids

النوع: One2many (account.move.line). خطوط قيد اليومية. كل خط يحتوي على حساب، مدين، ودائن. يجب أن يساوي مجموع المدينين مجموع الدائنين.


13. invoice_line_ids

النوع: One2many (account.move.line). بالنسبة للفواتير والفواتير، هذه هي خطوط المنتج أو الخدمة. كل خط يولد واحد أو أكثر من خطوط قيد اليومية عند النشر.


14. invoice_date

النوع: تاريخ. تاريخ الفاتورة. يستخدم للفواتير وفترات الضرائب. يمكن أن يختلف عن تاريخ الحركة في بعض التكوينات.


15. invoice_date_due

النوع: تاريخ. تاريخ استحقاق الدفع. يتم حسابه من شروط الدفع أو تعيينه يدويًا. يستخدم للتقادم والتحصيل.


16. ref

النوع: حرف. مرجع خارجي أو رقم فاتورة المورد. مفيد لمطابقة المدفوعات والتسوية مع الوثائق الخارجية.


17. invoice_origin

النوع: نص. الوثيقة المصدر. بالنسبة للفواتير الناتجة عن أوامر البيع، يتم تخزين رقم أمر البيع هنا. يتيح تتبع العملية من الطلب إلى الفاتورة.


18. create_date

النوع: تاريخ ووقت. يخزن التاريخ والوقت الذي تم فيه إنشاء السجل. يتم إدارته تلقائيًا بواسطة Odoo.


19. write_date

النوع: تاريخ ووقت. يخزن التاريخ والوقت لآخر تعديل. يتم إدارته أيضًا تلقائيًا.


20. narration

النوع: نص. ملاحظات داخلية أو مذكرات. تظهر في السجلات المطبوعة. لا تظهر للعملاء على الفواتير.


21. fiscal_position_id

النوع: Many2one (account.fiscal.position). الوضع الضريبي لقواعد الضرائب. يحدد الضرائب التي تنطبق بناءً على الشريك والدولة.


22. invoice_payment_term_id

النوع: Many2one (account.payment.term). شروط الدفع (مثل: صافي 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. رقم التسلسل من السجل. يُستخدم للترتيب والعرض. يتم إدارته بواسطة مزيج التسلسل.


28. amount_untaxed

النوع: Monetary. المجموع الفرعي قبل الضريبة. بالنسبة للفواتير، هذا هو مجموع مبالغ السطور قبل الضريبة.


29. amount_tax

النوع: مالي. إجمالي مبلغ الضريبة. يتم حسابه من خطوط الفاتورة وتكوين الضريبة.


30. invoice_source_email

النوع: حرفي. بالنسبة لفواتير الموردين التي تم إنشاؤها من البريد الإلكتروني، يتم تخزين عنوان البريد الإلكتروني المصدر هنا. يُستخدم لعملية استيراد الفواتير تلقائيًا.

كيف يتم استخدام هذا النموذج في سير العمل التجاري


1. فواتير العملاء

عندما يتم تسليم طلب مبيعات، يقوم Odoo بإنشاء account.move مع move_type out_invoice. تأتي invoice_line_ids من خطوط الطلب. يؤدي نشر الحركة إلى إنشاء خطوط قيد اليومية وتحديث الحسابات المستحقة.


2. فواتير الموردين

يمكن أن تولد أوامر الشراء فواتير، أو يتم إدخال الفواتير يدويًا. كل فاتورة هي account.move مع move_type in_invoice. partner_id هو المورد. يؤدي النشر إلى تحديث الحسابات المستحقة الدفع.


3. تسوية المدفوعات

يتم مطابقة المدفوعات مع الفواتير باستخدام الحقول amount_residual و payment_state. تربط عملية التسوية بين حركات المدفوعات وحركات الفواتير وتزيل الرصيد المتبقي.


4. قيود اليومية اليدوية

يقوم المحاسبون بإنشاء حركات مع move_type entry للتعديلات أو الاستحقاقات أو التصحيحات. يضيفون يدويًا line_ids مع الحسابات والخصومات والائتمانات. يجب أن تتوازن الحركة قبل النشر.


5. ملاحظات الائتمان والمبالغ المستردة

ملاحظات الائتمان هي حركات من نوع move_type out_refund أو in_refund. إنها تعكس تأثير الفاتورة أو الفاتورة الأصلية. يرتبط reversed_entry_id بالرجوع إلى الأصل للتدقيق.

كيف يقوم المطورون بتمديد هذا النموذج


يقوم المطورون بتمديد account.move باستخدام عدة أنماط. وراثة نموذج Odoo هي الآلية الرئيسية.


وراثة النموذج

استخدم _inherit = 'account.move' لتمديد النموذج. أضف حقول Odoo جديدة، أو override طرق، أو أضف قيود. يحتفظ النموذج الموروث في Odoo بتغييراتك في وحدة منفصلة لتسهيل التحديثات.


إضافة الحقول

حدد حقول Odoo جديدة في النموذج الموروث. استخدم نوع الحقل الصحيح: Char، Many2one، Boolean، Integer، Text، Selection. ضع في اعتبارك الحقول المعتمدة على الشركة لعدة شركات. بالنسبة للحقول الخاصة بالفواتير، استخدم نطاقًا على move_type.


امتدادات بايثون

قم بتجاوز create، write، _post، أو button_draft لإضافة منطق. استخدم super() لاستدعاء الأصل. كن حذرًا مع الحقول المحسوبة واعتمادياتها. تتحكم زينة نموذج API في Odoo (@api.model، @api.depends) في متى يتم تشغيل الطرق.


استوديو Odoo

يتيح لك استوديو Odoo إضافة حقول بدون كود. جيد للتخصيصات السريعة مثل حقول المرجع الإضافية. بالنسبة للمنطق المعقد، أو التحقق، أو الإجراءات الآلية، فإن الوحدات المخصصة أكثر قابلية للصيانة.


ملاحظة: account.move هو نموذج عادي، وليس نموذج Odoo تجريدي أو نموذج Odoo عابر. تُستخدم النماذج التجريدية كقوالب ولا تنشئ جداول قاعدة بيانات. تُستخدم النماذج العابرة مؤقتًا وتستخدم للسحوبات. تخزن account.move بيانات المحاسبة الدائمة.

أفضل الممارسات


  • قم دائمًا بتصفية حسب move_type عند بناء التقارير أو التكاملات. الأنواع المختلفة لها حقول وسلوكيات مطلوبة مختلفة.
  • استخدم السجل الصحيح لكل نوع حركة. خلط السجلات يمكن أن يكسر التسلسلات والتقارير.
  • عند إنشاء الحركات عبر API، تأكد من توازن line_ids (المدينون = الدائنون) قبل النشر. الحركات غير المتوازنة ستفشل في التحقق.
  • لإنشاء الفواتير من أنظمة خارجية، قم بتعيين أنواع مستنداتك إلى move_type بشكل صحيح. out_invoice للمبيعات، in_invoice للمشتريات.
  • استخدم بادئة x_ للحقول المخصصة لتجنب التعارضات مع إصدارات Odoo المستقبلية.

الأخطاء الشائعة


  • نشر الحركات بدون خطوط متوازنة. ستقوم Odoo برفض النشر. تحقق دائمًا من تطابق إجمالي المدين والدائن.
  • تعديل الحركات المنشورة مباشرة. الحركات المنشورة مقفلة. استخدم عكسًا وأنشئ حركة جديدة بدلاً من ذلك.
  • نسيان تعيين partner_id على حركات العملاء أو الموردين. تعتمد العديد من التقارير وسير العمل على ذلك.
  • استخدام move_type غير الصحيح. out_refund ليس هو نفسه out_invoice السلبية. استخدم النوع الصحيح لاسترداد الأموال وملاحظات الائتمان.
  • تجاوز الطرق الأساسية دون استدعاء super(). يمكن أن يؤدي ذلك إلى كسر وحدات أخرى أو ترقيات مستقبلية.

الخاتمة


نموذج account.move هو محور المحاسبة في Odoo. يمثل الفواتير، والفواتير، ومدخلات السجل في هيكل موحد. سيساعدك فهم حقوله وكيفية توسيع الوحدات في تكوين Odoo وتخصيصه وتكامله بشكل فعال.


سواء كنت مستشارًا وظيفيًا يقوم برسم العمليات التجارية أو مطورًا يقوم ببناء وحدات مخصصة، فإن فهم account.move بشكل جيد سيوفر الوقت ويمنع الأخطاء.

هل تحتاج إلى مساعدة في تنفيذ أودو الخاص بك؟


تساعد شركة Dasolo الشركات في تنفيذ وتخصيص وتحسين أودو. نحن متخصصون في تكامل واجهات برمجة التطبيقات وتطوير أودو. يتمتع فريقنا بخبرة عميقة في بنية بيانات أودو ونماذج مثل account.move.

إذا كنت بحاجة إلى مساعدة في تنفيذ أودو الخاص بك، أو الوحدات المخصصة، أو التكاملات، فنحن هنا للمساعدة. احجز عرضًا تجريبيًا لمناقشة مشروعك.

نموذج account.move: فهم فواتير أودو وإدخالات السجل
Dasolo 10 مارس 2026
شارك هذا المنشور
تسجيل الدخول حتى تترك تعليقاً