البيانات والتقارير
حدود يوم العمل في Foodics، وتوثيقٌ ضعيف، وتقارير لا يُوثَق بها، وملايين السطور المحاسبية أبطأ من أن تُستعلَم.
دراسة حالة · المطاعم والضيافة · Foodics + Odoo
أعدنا هندسة نظام Foodics + Odoo كان ينهار تحت الحِمل الفوري — مهما كان العتاد — إلى نظامٍ واحد يصمد عند 7,000–20,000 طلب يوميًا، يوحّد Foodics والمخزون والتصنيع والمحاسبة والموارد البشرية على مصدرٍ واحد للحقيقة عبر 32 فرعًا.

01 العميل
مجموعة أغذيةٍ سريعة النمو للخدمة السريعة بتصنيعها الخاص: 32 فرعًا، ومقرٌّ رئيسي واحد، ومصنعٌ واحد، ومستودعان — مستودعٌ مركزي ومطبخٌ مركزي — وأكثر من 600 موظف. تبلغ الحركة نحو 7,000 طلب في أيام الأسبوع و20,000 في عطلات نهايته، تتركّز في دفقةٍ ضيّقة من 7 مساءً إلى 1 صباحًا.
مؤسّسون شبابٌ توسّعوا معًا منذ البداية، والعمل يسبق أنظمته الخاصة — كما تفعل الشركات سريعة النمو.

02 المشكلة الجوهرية
Foodics خرطومٌ فوري — في الذروة تنهمر 20,000 طلب داخل نافذةٍ من ست ساعات. وOdoo نظامٌ متجانس: كل طلبٍ يتفرّع إلى عمليات كتابةٍ متزامنة — الطلب، وسطوره، والانتقاء، وحركات المخزون، والقيود المحاسبية — كلٌّ منها يحمل منطق العمل والحقول المحسوبة وأقفال الجداول. وتحت دفقةٍ فوريةٍ مركّزة، يصبح مسار الكتابة هو الجدار.
وهذا ما يخطئ فيه معظم الفرق: لا قدرَ من البنية التحتية يُصلحه. خوادمُ أكبر، وذاكرةٌ أكثر، وعمّالٌ أكثر — ويظلّ النظام ينهار، لأن الاختناق ليس في العتاد، بل في البنية.
الدفق
لا يتوزّع حجم نهاية الأسبوع على مدار اليوم — بل ينهمر في نافذةٍ من ست ساعات، من 7 مساءً إلى 1 صباحًا.
ذروة 7 م – 1 صبقية اليوم
النظام المتجانس المتزامن لا يمكنه استيعاب دفقةٍ فورية بحكم تصميمه. عولجت المشكلة كأنها بنيةٌ تحتية — ولم تكن كذلك قط.
03 نقطة البداية
كان العمل يُدار بجداول البيانات والحدس الثاقب — ونجح، حتى تجاوزه الحجم. فريقٌ مخصّص يقضي أيامه في بناء جداول المخزون والتدفّق النقدي والتقارير يدويًا. وكان Foodics وOdoo يختلفان على حقائق أساسية — أيام عملٍ مختلفة، وتوثيقٌ ضعيف، وتقاريرُ صحيحةٌ أحيانًا فقط.
ورغم آلاف الطلبات يوميًا، كان التدفّق النقدي مُجهَدًا، لأن لا أحد يرى الأرقام في الوقت المناسب ليتصرّف بناءً عليها. وكحال معظم العمليات سريعة التوسّع، كانت الإجراءات في رؤوس الناس لا في المستندات. لم تكن هناك مواصفاتٌ لتُنفَّذ — كان لا بدّ من تصميمها أولًا، معًا.

04 التحدّيات
حدود يوم العمل في Foodics، وتوثيقٌ ضعيف، وتقارير لا يُوثَق بها، وملايين السطور المحاسبية أبطأ من أن تُستعلَم.
الشراء بالأطنان، والتخزين بالكيلوغرامات، والوصفات بالغرامات — مع مواصلة البيع حتى عند نفاد المخزون.
الطلب المُرتجع ينقسم — البضائع المختومة تعود للمخزون، والطعام المُحضَّر يُتلَف — والجزء المُتلَف يجب أن يُحمَّل على التكلفة، لا كإتلافٍ عادي.
المُعدِّل يغيّر الوصفة المُستهلَكة فعلًا، فيجب أن ينساب إلى الاستهلاك والتكلفة بشكلٍ صحيح.
باركود داخلي وGS1، وهدرٌ ومنتجاتٌ ثانوية، وتنويعات، وعملٌ تحت التنفيذ واحد يُنتج عدّة منتجاتٍ نهائية، وتتبّع مصدر الشراء.
موافقاتٌ ديناميكية مشروطة حتى عشرة مستويات، موجَّهة إلى الأشخاص المناسبين مع الإشعارات.
مزامنةٌ فورية تحت حِمل الدفقة، ومشترياتٌ ثنائية الاتجاه، وورديّاتٌ تُطابَق مع تسوياتٍ أسبوعية — بينما النقد في ثلاثة أماكن في آنٍ واحد.
تدفّقات باركود، وورديّاتٌ مُحاذاة لأيام عمل Foodics، إضافةً إلى الإسكان ونظام موارد بشرية كامل لـ600 موظف.
المرتجع ليس فعلًا واحدًا
الطلب المُرتجع ينقسم. البضائع المختومة تعود إلى المخزون؛ والطعام المُحضَّر يُتلَف — والجزء المُتلَف عليه أن يُحمَّل على تكلفة البضاعة المباعة، لا كإتلافٍ عادي.
مُستردّ للمخزونمشطوب على COGS
05 المنهج
لم تكن هناك مواصفاتٌ تُسلَّم لي، فبنيتُ الفهم بنفسي: تشخيص كيف تعمل العملية فعلًا، وإبراز التسليمات والاستثناءات التي لا تعيش إلا في رؤوس الناس، وتصميم الإجراء معهم، ثم ربط كل جزءٍ في نظامٍ واحد. لم تكن قيمتي عمقًا تخصّصيًا في زاويةٍ واحدة — بل رؤية الرقعة كاملة: كيف أنّ طلبًا في الساعة 2 صباحًا عليه أن ينساب إلى مخزونٍ بالكيلوغرامات، ويُكلَّف من وصفةٍ بمستوى الغرام، وإلى ربحٍ وخسارةٍ مؤرَّخٍ بالوردية، وموافقةٍ متعدّدة المستويات، ومطابقةٍ أسبوعية — وجعلها كلها تتّفق.
وكان القرار الأحسم هو الأول: هذه مشكلة بنيةٍ ترتدي زيّ بنيةٍ تحتية. فبدلًا من توسيع العتاد حتى الجدار، أعدتُ الهندسة حول حدود النظام المتجانس.
طابورٌ يمتصّ الدفقة بدلًا من أن يختنق بها الـORM.
SQL مباشر، حتى لا تموت عشرات آلاف الطلبات سجلًّا تلو الآخر.
لا تنافس التقاريرُ الدفقةَ الحيّة أبدًا.
معرفة أين يكمن القيد الحقيقي كانت هي اللعبة كلها.

06 الحل
طابور رسائل مع تحديد المعدّل يمتصّ الدفقة الليلية، وSQL مباشر على المسار الساخن يُبقي تأكيد الطلب إلى المخزون بالجملة سريعًا. مخزونٌ ومشترياتٌ ثنائية الاتجاه.
طرق عرضٍ مادّية في PostgreSQL بتحديثٍ متزامن — تختصر التقارير الثقيلة من دقائق إلى ثوانٍ وتُحيل الجداول اليدوية إلى التقاعد.
تاريخ عملٍ مخصّص عبر الطلبات والانتقاءات والحركات والإتلاف، فتصبح وردية 7 م–1 ص يوم عملٍ واحدًا مُحاذى لـFoodics — لا يومًا تقويميًا مكسورًا.
تحويل وحداتٍ متعدّد المستويات من الأطنان إلى الكيلوغرامات إلى الغرامات، وبيعٌ بمخزونٍ سالب حتى لا تتوقّف الفروع.
توجيهٌ مشروط حسب القيمة، من مستوى إلى عشرة مستويات، قائمٌ على المجموعات، مع إشعاراتٍ بالبريد والنشاط والرسائل.
تنويعات الوصفات، والهدر والمنتجات الثانوية، وعملٌ تحت التنفيذ إلى عدّة منتجاتٍ نهائية، ومُعدِّلاتٌ مربوطة بالاستهلاك والتكلفة الفعليّين، وتتبّع مصدر الشراء.
اعترافٌ وردية بوردية يُطابَق مع تسوياتٍ أسبوعية، وتتبّعٌ للنقد عبر تطبيق التوصيل والفرع والعميل، ومرتجعاتٌ واعية بالتكلفة تُقيَّد على تكلفة البضاعة المباعة، وفوترةٌ إلكترونية متوافقة مع ZATCA.
إسكانٌ بخصوماتٍ من الرواتب، ورواتب، وGOSI، وسُلَف، وعملٌ إضافي، وتتبّع انتهاء المستندات، وعُهدة، وسياسة حضور، وتطبيقٌ جوّال يعرض عشرات أنواع طلبات الموظفين — كلّها عبر محرّك الموافقات نفسه.
مكوّن واحد، ثلاث وحدات
الشراء بالأطنان، والتخزين بالكيلوغرامات، وتكلفة الوصفات بالغرامات — مُطابَقة تلقائيًا، ويواصل البيع عند نفاد المخزون.
07 النتيجة
مصدرٌ واحد فوري للحقيقة عبر 32 فرعًا، والمصنع، والمستودعات، والمقر الرئيسي — Foodics والمخزون والتصنيع والمحاسبة والموارد البشرية تتّفق أخيرًا. استُبدلت التقارير اليدوية القائمة على الجداول بتقارير فورية موثوقة، فأصبح بوسع العمل أخيرًا رؤية أرقامه في الوقت المناسب ليتصرّف — الرؤية اللازمة لمعالجة مشكلة التدفّق النقدي من جذرها.
تواصل الفروع البيع رغم نفاد المخزون، وللمصنع تتبّعٌ كامل، وتحدث الموافقات في النظام لا في محادثات الدردشة.
من الدقائق إلى الثواني
طرق العرض المادّية بتحديثٍ متزامن اختصرت التقارير الثقيلة من دقائق عديدة إلى ثوانٍ — وأحالت الجداول اليدوية إلى التقاعد.
لماذا يهمّ هذا
لم يكن هذا تركيب برمجيات — بل إضفاء بنيةٍ على عمليةٍ من 600 موظف تجاوز نموّها أنظمتها، وترجمة ما يحتاجونه أسرع ممّا يستطيعون التعبير عنه.
حين ينهار نظامٌ تحت الحِمل، فالحلّ ليس خادمًا أكبر — بل بنيةً مختلفة. العثور على العطل الحقيقي، لا الصاخب — هذا هو العمل.