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

Odoo 19 Community: مطابقة المدفوعات المصرفية مع الفواتير تلقائيًا – مطابق كشوف الحساب Bank Statement Matcher مفتوح المصدر الخاص بنا

14 سبتمبر 2026 بواسطة
Odoo 19 Community: مطابقة المدفوعات المصرفية مع الفواتير تلقائيًا – مطابق كشوف الحساب Bank Statement Matcher مفتوح المصدر الخاص بنا
Alexander Biringer | Biricon IT Services GmbH

استيراد كشوف الحساب المصرفية في Odoo ليس سوى الخطوة الأولى. فالفائدة الحقيقية لا تتحقق إلا عندما يمكن إسناد الحركة المصرفية بصورة موثوقة إلى الفاتورة الصادرة أو فاتورة المورّد أو الإشعار الدائن أو الدفعة الصحيحة.

وهنا بالذات تفتقر Odoo 19 Community إلى إمكانية مريحة في واجهة المستخدم. فتبقى بنود البنك المستوردة في البداية على حساب البنك الوسيط، ويجب إسنادها إلى بند قيد مفتوح لمواصلة معالجتها.

ولذلك طوّرنا لتركيب Odoo 19 Community الخاص بنا Bank Statement Matcher. ولأن هذه المشكلة لا تخصنا وحدنا، فإننا نتيح الوحدة مجانًا على 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 سير عمل متكامل:

  1. استيراد كشف الحساب

  2. تحديد المطابقات الممكنة

  3. مراجعة الاقتراحات دفعة واحدة

  4. اعتماد النتائج الواضحة

  5. معالجة الحالات غير الواضحة يدويًا

ما الذي يستطيع Odoo 19 Bank Statement Matcher فعله

طُوّرت الوحدة للاستخدام العملي في المحاسبة. وهي تدعم، من بين أمور أخرى، الوظائف التالية:

  • البحث عن الفواتير وفواتير الموردين والإشعارات الدائنة والمدفوعات المناسبة

  • تحديد اقتراحات المطابقة تلقائيًا عند إنشاء سطر مصرفي

  • عرض مفهوم لقاعدة المطابقة المستخدمة ومدى موثوقيتها

  • إعادة البحث في وقت لاحق

  • مطابقة فردية أو معالجة عدة سطور مصرفية معًا

  • اختيار يدوي لبند مفتوح إذا لم يناسب أي اقتراح

  • التراجع عن مطابقة أُجريت بالفعل

  • اكتشاف عدة نتائج متكافئة دون اتخاذ قرار عشوائي

  • تنبيهات إلى عروض الأسعار أو الطلبات التي لا يوجد لها بعدُ بند قيد مفتوح

  • تسليم مباشر اختياري من استيراد كشوف الحساب في OCA إلى عرض المطابقة

  • ترجمة ألمانية مع نص مصدري إنجليزي

يمكن الوصول إلى النظرة العامة المركزية في Odoo عبر المحاسبة ← المحاسبة ← مطابقة السطور المصرفية. وهناك يمكن البحث في السطور المصرفية التي لا تزال مفتوحة ومعالجتها معًا.

مطابقة قابلة للتتبع بدلاً من صندوق أسود

في البيانات المالية لا يكفي مجرد اقتراح أي نتيجة. بل يجب أن يتمكن المستخدمون من معرفة سبب ملاءمة حركة مصرفية لمستند معين.

ولذلك يعمل Bank Statement Matcher بقواعد محددة بوضوح ومستويات ثقة مختلفة:

الثقةالقاعدةالمعنى
100المرجععُثر في نص القيد على رقم مستند أو مرجع دفع أو مرجع مصدر.
80الشريك والمبلغيتطابق الشريك التجاري مع المبلغ المفتوح.
60مبلغ فريدالمبلغ يطابق بالضبط بندًا مفتوحًا واحدًا فقط.
30الشريكالشريك صحيح لكن المبلغ غير صحيح؛ وهذا مجرد تلميح.

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

والمهم هنا: لا تُجري الوحدة قيودًا دون إشراف في الخلفية. إنها تُنشئ اقتراحات. ولا تتم المطابقة إلا بإجراء متعمَّد من المستخدم – فرديًا أو عبر المعالجة الجماعية الخاضعة للرقابة.

وتُراعى أيضًا المراجع المصرفية الصعبة

لا تنقل البنوك مراجع الدفع دائمًا بصيغة موحدة. فقد يكون رقم الفاتورة مقترنًا بأسماء أو أرقام أو بيانات أخرى. وقد تغيب الفواصل أو تُعرض بشكل مختلف عن المستند الأصلي.

ولذلك يوحّد المطابِق قيم المقارنة ويراعي أيضًا الانتقالات بين الحروف والأرقام. وبذلك يمكن التعرف على المراجع حتى لو أُلحقت في نص البنك مباشرةً بمحتويات أخرى.

ويجري البحث عمدًا من مستند Odoo نحو نص البنك. وبذلك يُتجنَّب أن تؤدي متواليات الأرقام القصيرة والعامة في نص القيد إلى عدد كبير من النتائج غير المناسبة.

القواعد غير مقصورة على بنك معين ولا على بلد معين ولا على نظام ترقيم محدد مسبقًا. وهذا يجعل الوحدة مثيرة للاهتمام لتركيبات Odoo 19 Community الأخرى أيضًا.

لماذا تُعد إعادة البحث مهمة

لا يمكن مطابقة كل دفعة مصرفية عند الاستيراد. ففي الواقع العملي قد تصل الدفعة قبل إنشاء الفاتورة المقابلة في Odoo أو ترحيلها. وقد تُسجَّل فاتورة المورّد أو الإشعار الدائن لاحقًا فقط.

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

وإذا ذكر نص البنك مثلًا عرض سعر أو طلبًا لم تُنشأ له فاتورة بعد، ومن ثم لا يوجد بند مفتوح، فإن الوحدة تقدّم تلميحًا مفيدًا. فبدلاً من عرض «لا توجد نتيجة» فقط، تنبّه إلى أنه قد يلزم أولًا إنشاء الفاتورة.

الأمان له الأولوية

قد تتسبب مطابقة تلقائية خاطئة في المحاسبة بعمل أكثر من سطر مصرفي مفتوح. ولذلك صُمم Bank Statement Matcher عمدًا بصورة حذرة:

  • النتائج ذات التقييم المتساوي لا تُحسم بصورة عشوائية.

  • تُعرض الاقتراحات الضعيفة لكنها لا تُعتمد عبر الإجراء الجماعي.

  • قبل المطابقة يُفحص مجددًا ما إذا كان البند المفتوح لا يزال متاحًا.

  • ولا يُعالَج مرة أخرى بند سبق أن سوّاه مستخدم آخر في هذه الأثناء.

  • يُعالَج كل سطر مصرفي ضمن نقطة حفظ (Savepoint) خاصة به في قاعدة البيانات.

  • ولا يمنع الخطأ في سطر مصرفي واحد معالجة جميع السطور الأخرى.

  • تُستبعد احتياطًا البيانات القديمة غير المكتملة التي لا تحمل تاريخ قيد صالحًا.

وبذلك تدعم الوحدة الأتمتة حيث توفّر الوقت، وتطلب قرارًا يدويًا حيث لا تكون البيانات واضحة بما يكفي.

التكامل مع Bank Statement Import الخاص بنا

يتكوّن المستودع من وحدتين:

الوحدةالمهمة
account_statement_matcherتوفّر البحث الفعلي والتقييم والفحص والمطابقة. وتحتاج فقط إلى وحدة Odoo المسماة account.
account_statement_matcher_import_ocaجسر اختياري إلى استيراد كشوف الحساب في OCA. وبعد الاستيراد يُفتح مباشرةً عرض المطابقة مع السطور المستوردة حديثًا.

يُثبَّت الجسر الاختياري تلقائيًا عندما يتوفر كلٌّ من المطابِق ووحدة OCA المسماة account_statement_import_file. وبذلك يتكامل استيراد كشوف الحساب والمطابقة اللاحقة مباشرةً.

يمكنكم الاطلاع على المزيد عن استيراد الصيغ المصرفية المدعومة في مقالنا:

Odoo 19 Bank Statement Import – إضافاتنا لمجتمع Odoo

التثبيت في Odoo 19 Community

يتم التثبيت كما في أي وحدة إضافية معتادة في Odoo:

  1. نسخ مجلدات الوحدات إلى مسار إضافات Odoo (Addons) المُعدّ.

  2. تحديث قائمة التطبيقات في Odoo.

  3. تثبيت الوحدة Bank Statement Matcher.

  4. تحديد لكل دفتر يومية مصرفي ما إذا كان ينبغي البحث عن اقتراحات عند الاستيراد.

  5. اختيار الحد الأدنى المطلوب للمطابقة الجماعية الخاضعة للرقابة.

طُوّرت الوحدة واختُبرت لـ 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.