استيراد كشوف الحسابات البنكية إلى Odoo ليس سوى الخطوة الأولى. وتتحقق الفائدة الفعلية عندما يمكن مطابقة الحركة البنكية بشكل موثوق مع فاتورة العميل أو فاتورة المورّد أو الإشعار الدائن أو الدفعة الصحيحة.
في هذه المرحلة تحديدًا، يفتقر Odoo 19 Community إلى وسيلة مريحة في واجهة المستخدم. لذلك تبقى بنود كشف الحساب البنكي المستوردة مبدئيًا في الحساب البنكي الوسيط، ويجب ربطها ببند محاسبي مفتوح لمتابعة معالجتها.
لذلك طوّرنا Bank Statement Matcher لبيئة Odoo 19 Community الخاصة بنا. ولأن هذه المشكلة لا تقتصر علينا، نتيح الوحدة مجانًا على GitHub بموجب الترخيص الحر AGPL-3.
المشروع على GitHub:
Odoo 19 Bank Statement Matcher
من استيراد كشف الحساب البنكي إلى الفاتورة الصحيحة
يتيح مشروعنا المنشور سابقًا Odoo 19 Bank Statement Import استيراد صيغ مختلفة من كشوف الحسابات البنكية إلى Odoo 19 Community. وتشمل هذه الصيغ CAMT.053 وCAMT.054 وOFX وSWIFT MT940، وغيرها.
يضيف Bank Statement Matcher الجديد إلى عملية الاستيراد خطوة العمل الأساسية التالية:
أي بند مفتوح تقابله كل حركة بنكية مستوردة؟
تبحث الوحدة في الذمم المدينة والدائنة المفتوحة، وتقيّم النتائج المحتملة، وتوضح للمستخدمين سبب اقتراح مطابقة معينة. ويمكن مراجعة الاقتراح أو تأكيده أو تصحيحه أو استبداله باختيار يدوي.
وبذلك يتوفر في Odoo 19 Community سير عمل متكامل:
استيراد كشف الحساب البنكي
تحديد المطابقات المحتملة
مراجعة الاقتراحات معًا
اعتماد النتائج ذات التطابق الواضح
معالجة الحالات غير الواضحة يدويًا
إمكانات Odoo 19 Bank Statement Matcher
طُوّرت الوحدة للاستخدام العملي في المحاسبة. وهي تدعم، من بين أمور أخرى، الوظائف التالية:
البحث عن فواتير العملاء وفواتير المورّدين والإشعارات الدائنة والمدفوعات المناسبة
توليد اقتراحات المطابقة تلقائيًا عند إنشاء بند في كشف الحساب البنكي
عرض واضح لقاعدة المطابقة المستخدمة ومستوى الثقة بها
إعادة البحث في وقت لاحق
مطابقة فردية أو معالجة عدة بنود بنكية معًا
اختيار بند مفتوح يدويًا عندما لا يناسب أيٌّ من الاقتراحات
التراجع عن مطابقة أُجريت سابقًا
التعرف على النتائج المتكافئة دون اختيار اعتباطي بينها
تنبيهات بشأن عروض أسعار أو طلبات لا يوجد لها بند محاسبي مفتوح بعد
انتقال مباشر اختياري من استيراد كشوف الحسابات البنكية من OCA إلى واجهة المطابقة
ترجمة ألمانية مع نص مصدر باللغة الإنجليزية
يمكن الوصول إلى الواجهة الرئيسية في Odoo عبر المحاسبة → المحاسبة → مطابقة بنود كشف الحساب البنكي. وتتيح هذه الواجهة البحث في البنود البنكية التي لا تزال مفتوحة ومعالجتها معًا.
مطابقة واضحة الأسس بدلًا من آلية مبهمة
عند التعامل مع البيانات المالية، لا يكفي اقتراح أي نتيجة مطابقة. بل يجب أن يتمكن المستخدمون من فهم سبب اقتراح مطابقة حركة بنكية بمستند معين.
لذلك يعمل Bank Statement Matcher وفق قواعد محددة بوضوح ومستويات ثقة مختلفة:
| الثقة | القاعدة | المعنى |
|---|---|---|
| 100 | المرجع | عُثر على رقم مستند أو مرجع دفع أو مرجع مصدر في وصف القيد. |
| 80 | الشريك والمبلغ | يتطابق كل من الشريك التجاري والمبلغ المتبقي. |
| 60 | مبلغ ذو تطابق وحيد | يطابق المبلغ بدقة بندًا مفتوحًا واحدًا فقط. |
| 30 | الشريك | الشريك مطابق، لكن المبلغ غير مطابق؛ وهذا مجرد مؤشر. |
يمكن تحديد الحد الأدنى لمستوى الثقة لكل دفتر يومية، بحيث يُسمح باعتماد الاقتراح ذي التطابق الواضح ضمن الإجراء الجماعي. وتظل النتائج الأقل ثقة ظاهرة، لكن يجب مراجعتها وتأكيدها كلٌّ على حدة.
من المهم هنا التأكيد على أن الوحدة لا تُجري قيودًا محاسبية في الخلفية دون إشراف. بل تنشئ اقتراحات. ولا تتم المطابقة إلا بإجراء مقصود من المستخدم، إما بشكل فردي أو ضمن معالجة جماعية خاضعة للمراجعة.
مراعاة المراجع البنكية المعقدة أيضًا
لا تنقل البنوك مراجع الدفع دائمًا بصيغة موحدة. فقد يُدمج رقم الفاتورة مع أسماء أو أرقام أو بيانات أخرى. وقد تغيب الفواصل أو تظهر بشكل مختلف عما ورد في المستند الأصلي.
لذلك يوحّد Bank Statement Matcher صيغة القيم المستخدمة في المقارنة، ويراعي أيضًا مواضع الانتقال بين الحروف والأرقام. وبذلك يمكنه التعرف على المراجع حتى عندما تكون ملتصقة بمحتوى آخر في وصف الحركة البنكية.
يبدأ البحث عمدًا من مستند Odoo باتجاه وصف الحركة البنكية. ويمنع ذلك سلاسل الأرقام القصيرة والعامة في وصف القيد من توليد عدد كبير من النتائج غير المناسبة.
لا تقتصر القواعد على بنك معين أو بلد معين أو نمط ترقيم محدد مسبقًا. وهذا يجعل الوحدة مفيدة أيضًا لبيئات Odoo 19 Community الأخرى.
لماذا تُعد إعادة البحث مهمة؟
لا يمكن مطابقة كل دفعة بنكية فور استيرادها. فقد تصل دفعة قبل إنشاء الفاتورة المرتبطة بها أو ترحيلها في Odoo. وقد تُسجّل فاتورة مورّد أو إشعار دائن في وقت لاحق أيضًا.
لذلك يمكن إعادة فحص بنود كشف الحساب البنكي في وقت لاحق باستخدام «البحث مجددًا». وبمجرد توفر البند المفتوح المناسب، قد تصبح الحركة البنكية التي تعذرت مطابقتها سابقًا ذات تطابق واضح.
إذا أشار وصف الحركة البنكية مثلًا إلى عرض سعر أو طلب لم تُنشأ له فاتورة بعد، وبالتالي لا يوجد له بند مفتوح، تقدم الوحدة تنبيهًا مفيدًا. فبدلًا من الاكتفاء بعرض «لا توجد نتائج مطابقة»، تنبّه إلى احتمال الحاجة إلى إنشاء الفاتورة أولًا.
الأمان أولًا
قد تتسبب المطابقة التلقائية الخاطئة في عمل محاسبي إضافي يفوق ما يتطلبه بند بنكي لم تتم تسويته. لذلك صُمّم Bank Statement Matcher بعناية ليتصرف بحذر:
لا يُختار تطابق اعتباطيًا عند تساوي تقييمات النتائج.
تُعرض الاقتراحات ضعيفة الثقة، لكن لا تُعتمد ضمن الإجراء الجماعي.
قبل إجراء المطابقة، يُتحقق مجددًا من أن البند المفتوح لا يزال متاحًا.
لا يُعالَج البند مجددًا إذا كان مستخدم آخر قد سوّاه في هذه الأثناء.
يُعالَج كل بند من بنود كشف الحساب البنكي ضمن نقطة حفظ مستقلة في قاعدة البيانات.
لا يمنع وقوع خطأ في أحد بنود كشف الحساب البنكي معالجة بقية البنود.
تُستبعد البيانات القديمة غير المكتملة التي تفتقر إلى تاريخ قيد صالح، احتياطًا.
وبذلك تدعم الوحدة الأتمتة حيث توفر الوقت، وتطلب قرارًا يدويًا حين لا تكون البيانات واضحة بما يكفي.
التكامل مع Bank Statement Import الخاص بنا
يتكون المستودع من وحدتين:
| الوحدة | الوظيفة |
|---|---|
| account_statement_matcher | توفر وظائف البحث والتقييم والتحقق والمطابقة الأساسية. ولا تتطلب سوى وحدة account في Odoo. |
| account_statement_matcher_import_oca | وحدة ربط اختيارية مع استيراد كشوف الحسابات البنكية من OCA. تفتح واجهة المطابقة مباشرةً بعد الاستيراد، وتعرض البنود المستوردة حديثًا. |
تُثبّت وحدة الربط الاختيارية تلقائيًا عند توفر كل من Bank Statement Matcher ووحدة OCA المسماة account_statement_import_file. وبذلك تتكامل عملية استيراد كشوف الحسابات البنكية مباشرةً مع عملية المطابقة اللاحقة.
للمزيد عن استيراد صيغ كشوف الحسابات البنكية المدعومة، يُرجى الاطلاع على مقالنا:
Odoo 19 Bank Statement Import – إضافاتنا إلى Odoo Community
التثبيت في Odoo 19 Community
تُثبّت الوحدة بالطريقة المعتادة لتثبيت وحدات Odoo الإضافية:
نسخ مجلدات الوحدات إلى أحد مسارات إضافات Odoo المهيأة.
تحديث قائمة التطبيقات في Odoo.
تثبيت وحدة Bank Statement Matcher.
تحديد ما إذا كان ينبغي البحث عن اقتراحات عند الاستيراد لكل دفتر يومية بنكي.
اختيار الحد الأدنى المطلوب للمطابقة الجماعية الخاضعة للمراجعة.
طُوّرت هذه الوحدة واختُبرت للعمل مع Odoo 19.0 Community. وقبل استخدامها مع إصدارات أخرى من Odoo، يجب التحقق خصوصًا من التغييرات التي طرأت على وظائف المحاسبة والتسوية الداخلية.
كما هو الحال مع أي إضافة في مجال المحاسبة، نوصي بالتحقق من التثبيت أولًا في بيئة اختبار باستخدام نسخة من قاعدة بياناتك وكشوف حساب بنكية معتادة.
مجاني ومفتوح المصدر لمجتمع Odoo
نطوّر في Biricon IT Services GmbH حلولًا تلبي أولًا احتياجات محددة في عملنا. وعندما ينتج عن ذلك وحدة قابلة للاستخدام على نطاق أوسع، نرغب في إتاحتها للجميع بدلًا من حصرها في تثبيت واحد.
لذلك يتوفر Odoo 19 Bank Statement Matcher مجانًا كمشروع مفتوح المصدر. ويمكن الاطلاع على الشيفرة المصدرية وفحصها وتعديلها ومواصلة تطويرها ضمن شروط رخصة AGPL-3.
هدفنا هو تقليل العمل المتكرر مع ضمان بقاء المطابقات المالية قابلة للتتبع والمراجعة، وليس أتمتة أكبر عدد ممكن من القرارات المحاسبية دون تدقيق.
هذا ما نعنيه بتطوير برمجيات مفتوحة المصدر ذات فائدة: حل مشكلة فعلية، وتوثيق الحل بشفافية، ثم إتاحته للمجتمع.
المشروع والشيفرة المصدرية والمساهمة
تتوفر الشيفرة المصدرية الكاملة وإرشادات التثبيت والوثائق التقنية على GitHub:
فتح Odoo 19 Bank Statement Matcher على GitHub
نرحب بتجارب الاستخدام العملية وتقارير الأخطاء واقتراحات التحسين والمساهمات من مجتمع Odoo.
مجاني. قابل للتتبع. مفتوح المصدر. مخصص لـ Odoo 19 Community.