مشكلات حقيقية من ستة مشاريع تنفيذ Odoo: إعداد ضريبة القيمة المضافة، تتبع المخزون، تكلفة المنتجات، تواريخ القفل، صلاحيات المستخدمين، المدفوعات، استيراد البيانات والترجمة، مع الفحص الذي نجريه الآن قبل التشغيل.
هذه المشكلات من ستة مشاريع تنفيذ Odoo في قطاعات التجزئة والإلكترونيات والتجارة والتوزيع والتأجير والخدمات. حذفنا تفاصيل العملاء. كل بند يشرح ما الذي تعطل، ولماذا تعطل، والفحص الذي نجريه الآن قبل التشغيل الفعلي.
1. معرفة Odoo القديمة لا تعمل على Odoo 19
فشلت سكربتات وقوالب استيراد وأدلة منشورة على الإنترنت كُتبت لإصدارات أقدم عند تطبيقها على Odoo 19. من الأمثلة التي واجهناها:
- حقل الجوال المنفصل في جهات الاتصال لم يعد موجوداً. عمليات الاستيراد التي ربطت عمود "الجوال" فشلت أو أسقطت الأرقام.
- بيانات عقود الموظفين انتقلت من نموذج العقود القديم إلى إصدارات الموظف.
- أُزيلت مجموعات الحسابات، ففشل استيراد دليل الحسابات بالطريقة القديمة.
- مرشحات البحث المرسلة عبر واجهة البرمجة يجب أن تستخدم صيغة tuple. القوائم التي كانت الإصدارات السابقة تقبلها أصبحت تسبب أخطاء.
ما نفعله الآن: نتحقق من الحقول الفعلية في الإصدار المستهدف قبل كتابة أي استيراد أو سكربت، ونختبر على ذلك الإصدار لا على الذاكرة.
2. البضاعة استُلمت والمخزون ما زال صفراً
في Odoo 19 لا يتتبع المنتج المخزون إلا إذا كان خيار تتبع المخزون مفعلاً. المنتجات التي أُنشئت بسرعة من سطر أمر الشراء جاءت بدونه. استُلمت البضاعة، وبقيت الكمية المتوفرة صفراً، وتوقفت عمليات التسليم للعملاء.
ما نفعله الآن: نتحقق من هذا الخيار في كل منتج مادي قبل أول استلام، ونحدد من يُسمح له بإنشاء منتجات من سطور الشراء.
3. التكلفة صفر تعني تكلفة بضاعة مباعة صفراً
المنتجات التي أُدخلت من فواتير الموردين بدون تكلفة، أو وُضعت في فئة بدون تقييم آلي للمخزون، سُلّمت بقيمة صفر. رُحّلت الفواتير بدون تكلفة بضاعة مباعة، فبدت الهوامش أعلى من حقيقتها وظهر المخزون في الميزانية أقل من قيمته.
وفي حالة أخرى كان حساب مخرجات المخزون في الفئة يشير إلى الحساب الوسيط (المستلم) بدلاً من حساب تكلفة البضاعة المباعة. ظل رصيد الحساب الوسيط يكبر، ولم يظهر بند تكلفة البضاعة المباعة في قائمة الأرباح والخسائر.
ما نفعله الآن: لا يدخل أي منتج التشغيل بدون تكلفة وفئة بحسابات صحيحة. ننفذ عملية بيع تجريبية ونقرأ القيد المحاسبي قبل فتح النظام للمستخدمين.
4. ضريبة تبدو صحيحة وتقرير يظهرها خطأ
مشكلتان منفصلتان:
- في أحد المشاريع جاءت ضريبة المبيعات القياسية بنسبة 15% بدلاً من 5% المعمول بها في عُمان. وجب تصحيحها، بما في ذلك التسميات العربية، قبل إصدار أي فاتورة.
- وفي مشروع آخر ظهرت الضريبة صحيحة في الفواتير، لكن تقرير ضريبة القيمة المضافة طبع 0.000. سطور الضريبة لم تكن مرتبطة بوسوم شبكة الضريبة، وتقرير الضريبة في Odoo 19 يُبنى من هذه الوسوم.
وفي السياق نفسه: دليل الحسابات يُطبّق عند إنشاء الشركة بحسب دولتها. تثبيت حزمة التوطين لاحقاً لا يستبدل دليل حسابات عاماً موجوداً.
ما نفعله الآن: نحدد دولة الشركة ودليل الحسابات أولاً، ونتحقق من كل نسبة ضريبة، ونشغّل تقرير ضريبة القيمة المضافة على فواتير تجريبية قبل التشغيل.
5. تاريخ القفل لا يمنع الترحيل
توقعنا أن الترحيل في فترة مقفلة سيعطي خطأ. في Odoo 19 لا يحدث ذلك. يُنقل القيد بصمت إلى أول تاريخ مفتوح. القفل النهائي وحده يرفض القيد، والقفل النهائي لا يمكن التراجع عنه.
ما نفعله الآن: نختبر سلوك القفل على نسخة من قاعدة البيانات، ونشرح لفرق المالية ما الذي يفعله القفل العادي فعلاً، ولا نفعّل القفل النهائي أبداً بدون موافقة موثقة.
6. نجح مع المدير ولم ينجح مع المستخدم الفعلي
نجحت العروض واختبارات القبول عند تشغيلها بحساب المدير. وعند الدخول بدور الموارد البشرية رأى المستخدم نفسه عدداً أقل بكثير من مجلدات المستندات، ولا قوالب توقيع، ولا ورديات مخططة (لأنها كانت ما تزال مسودات)، وقائمة تظهر لكنها لا تفتح. كان الدور ينقصه مجموعات صلاحيات وقواعد سجلات.
ما نفعله الآن: كل سيناريو اختبار قبول يُشغّل بحساب الشخص الذي سيستخدمه، لا بحساب المدير.
7. إعدادات صغيرة توقف سير العمل
- فئة موافقات فيها معتمد محدد بالاسم مع خيار "موافقة المدير" احتسبت الشخص نفسه مرة واحدة. لم يكن ممكناً الوصول إلى عدد الموافقات المطلوب، فتعذر تقديم الطلبات.
- قاعدة مبنية على القسم في تخطيط الورديات أخفت كل الورديات المفتوحة. فأظهر التخطيط التلقائي رسالة "لا شيء للتعيين"، وهي الرسالة نفسها التي تظهر عندما لا توجد ورديات مفتوحة فعلاً.
ما نفعله الآن: نختبر الموافقات بحساب مقدم الطلب، ونتحقق من عدد السجلات التي يراها المستخدم فعلاً قبل اعتبار سير العمل جاهزاً.
8. مدفوعات البطاقات والمحافظ والشيكات
إعداد المدفوعات الافتراضي في Odoo يفترض أن البنك يدفع المبلغ كاملاً وأن المرجع مطابق. في الواقع:
- وصلت تسويات البطاقات بعد خصم الرسوم. بقيت الفواتير مفتوحة جزئياً ولم تُسجل الرسوم. الحل كان دفاتر منفصلة للبطاقات وقاعدة تسوية تسجل الفرق في مصاريف البنك.
- وصلت تحويلات المحافظ الإلكترونية بأوصاف نصية حرة لم تستطع المطابقة القياسية قراءتها. المطابقة على أنماط المرجع والمبلغ والتاريخ حلت معظم الحالات.
- الشيكات المؤجلة تحتاج مراحل خاصة بها (مستلم، مودع، محصّل، مرتجع) وحساباً وسيطاً، حتى لا يحتسب رصيد البنك أموالاً لم تُحصّل بعد.
ما نفعله الآن: نحصر كل طرق الدفع التي يستخدمها العملاء فعلاً قبل إعداد الدفاتر.
9. استيراد البيانات القديمة
- قُرئت تواريخ جداول البيانات على أنها شهر/يوم بدلاً من يوم/شهر. كل تاريخ يومه 12 أو أقل دخل خطأً بدون أي رسالة.
- جهات اتصال من عدة أوراق فيها تكرار وأسماء ناقصة وأرقام هواتف ملتصقة ببعضها.
- إجماليات الاشتراكات شاملة الضريبة لم تساوِ مبلغ الشيك، ففشلت المطابقة الآلية حتى استخدمت أسعار الوحدات منازل عشرية أكثر.
ما نفعله الآن: يجري الاستيراد عبر سكربت مع تشغيل تجريبي، وتوحيد أرقام الهواتف في صيغة واحدة، وإزالة التكرار حسب الهاتف، ووسم كل سجل مستورد حتى يمكن التراجع عنه، والتطبيق على بيئة الاختبار أولاً.
10. قواعد يستطيع الموظفون الالتفاف عليها
- حُسبت العمولة على الإجماليات شاملة الضريبة وبتاريخ الفاتورة. فحصل موظفو المبيعات على عمولة على الضريبة. عُدّلت لتُحسب على المبالغ قبل الضريبة وبتاريخ تأكيد الطلب.
- كان حقل الخصم مقفلاً، لكن الموظفين أضافوا سطر منتج عام بسعر سالب. قفل حقل في الواجهة ليس ضابطاً رقابياً. أُزيل منتج الخصم العام من المبيعات.
- جلسة نقطة بيع مغلقة تركت طلبات مدفوعة بدون قيود محاسبية، فلم يتطابق ميزان المراجعة. الحل كان إعادة تشغيل عملية الإغلاق، لا ترحيل قيود يدوية.
ما نفعله الآن: بعد إعداد أي ضابط رقابي نحاول الالتفاف عليه بأنفسنا قبل أن يفعل ذلك موظفو العميل.
11. الترجمة والنصوص من اليمين إلى اليسار
- في متجر إلكتروني ثنائي اللغة، أدت تعديلات صغيرة على الوصف الإنجليزي إلى كسر مقاطع الترجمة العربية. رأى العملاء نصاً مختلطاً بين الإنجليزية والعربية.
- في مشروع بلغة تُكتب من اليمين إلى اليسار، أعطت الترجمة الآلية "شامل الضريبة" و"غير شامل الضريبة" الصياغة نفسها. طبّق أمناء الصندوق الضريبة بشكل خاطئ حتى صُححت المصطلحات يدوياً.
- تعطلت تقارير PDF أو طبعت نصاً عربياً مكسوراً حتى استُبدل محرك PDF بالإصدار المعدّل وزيدت ذاكرته.
ما نفعله الآن: يراجع شخص يقرأ اللغة مصطلحات الضريبة والدفع والحالات، ونطبع كل تقرير بتلك اللغة قبل التشغيل.
نقطة أخيرة: احذف البيانات التجريبية قبل التشغيل
السجلات التجريبية التي بقيت في قاعدة البيانات عند الانتقال شوّهت قائمة الأرباح والخسائر وميزان المراجعة. يجب ألا تحتوي بيئة الاختبار على أي منها، وأي سجل متبقٍ يجب حذفه قبل أول قيد حقيقي.
تخطط لتطبيق Odoo 19؟
إذا كنت تخطط لتطبيق Odoo 19، أو يظهر نظامك الحالي بعض هذه العلامات، يمكنني مراجعته معك. اطلع على طريقة عملي في تنفيذ Odoo في عُمان، أو تواصل معي.
روابط ذات صلة
احجز مراجعة مجانية لـ Odoo مدتها ٣٠ دقيقة
تخطط لتطبيق Odoo 19 أو تريد إصلاح نظامك الحالي؟ احصل على قائمة واضحة بما يجب فحصه.