عربية أولًا · مصر
شغّل مقهاك أو مطعمك أو صالة الألعاب من نظام واحد.
ترابيزة تدير الصالة: الكاشير، وجهاز النادل، وشاشة المطبخ، والطلب من هاتف الضيف، والطلبات الخارجية، والمخزون، وغرفة البلايستيشن، ومنطقة الأطفال — كلها متصلة لحظةً بلحظة، بالعربية والإنجليزية، وتُقفَل على فاتورة واحدة.
كل ما يجري في المكان، يبدأ من الترابيزة.
الجولة تجري على مكانك أنت: مناطقك وقائمتك وليلة الجمعة عندك، لا على مكان تجريبي.
- صُنعت في مصر، على طريقة تشغيل الأماكن هنا.
- بالعربية والإنجليزية، وفي الاتجاهين، من أول شاشة.
- كل سطر في هذه الصفحة شاشة نفتحها أمامك.
الاسم
ليس برنامجًا. كل شيء يدور حول الترابيزة.
حمل المنتج اسم الترابيزة، بالكلمة اليومية التي ينطقها العاملون فيه فعلًا لا بالكلمة الفصحى.
ترابيزةالكلمة المصرية اليومية للطاولة.
ترابيزة هي الكلمة المصرية اليومية للطاولة؛ ليست الكلمة الفصحى المهذّبة، بل الكلمة التي يناديها النادل من آخر الصالة. عليها يجلس الضيوف، وباسمها يخرج الطلب، وعليها تُقاس سرعة الخدمة، وعندها تُقفَل الفاتورة.
ولهذا فالعلامة ترابيزة: سطح وعمود وقاعدة، مرسومة ببساطة لا كحرفٍ مزخرف. علامة الترابيزة تبقى واضحة مطبوعة على إيصال حراري ومطرزة على مريلة، وهذان هما المكانان اللذان تعيش فيهما علامة أي مكان.
في نظام ترابيزة، الترابيزة ليست سطرًا في قائمة، بل كائن على خريطة له حالة وجلسة وأشخاص حوله ومبالغ مُعلَّقة عليه وتاريخ خلفه.
٠١الصالة
مخطط صالة تُشغّله، لا صورة رفعتها.
شاشة واحدة تجيب عمّا يجري في المكان كله: أي ترابيزة عليها ضيوف، وأي جهاز يعمل منذ ساعة ونصف، وهل بقي في منطقة الأطفال متسع، وعلى أي فاتورة كلٌّ من ذلك. رسمٌ واحد للمكان، والرسم حيّ — لأن الترابيزات والموارد التي عليه هي الحقيقية لا صورة عنها.
- خريطة واحدة تحمل ذلك كله: الترابيزات والمناطق والموارد المؤقّتة — جهاز بلايستيشن وترابيزة بلياردو وغرفة أطفال — والجدران والأبواب والبار والكاونتر والمدخل حولها.
- كل عنصر يُربط بالترابيزة أو المورد الحقيقي الذي يمثله، فيحمل شكله على الرسم حالة تلك الترابيزة وجلستها المفتوحة والوقت الجاري عليها.
- وضع التحرير ووضع التشغيل على المشهد نفسه: سحب وتحجيم وتدوير والتصاق بالشبكة وتجميع وقفل وتراجع.
- حالة الترابيزة ملوّنة بالطريقة نفسها على الخريطة وجهاز النادل والكاشير، لأن الألوان تأتي من ملف رموز واحد مشترك.
- المناطق — داخلي، خارجي، كبار الزوار، الأطفال، الألعاب، التراس — كيانات حقيقية لها سعتها وهل تقبل الحجز ولوحة سياسات خاصة بها. ليست وسومًا.
- النطاق مفروض من الخادم: الموظف يرى المناطق التي يغطيها فقط، ولا شيء غيرها.
٠٢التطبيقات
خمس واجهات، خادم واحد.
خمس واجهات تتشارك خادمًا واحدًا، ويستطيع المكان أن يفتح بالمتصفح وحده: فالكاشير ولوحة المطبخ ومحطة النادل ومحرر خريطة الصالة كلها شاشات داخل لوحة الإدارة، على أي حاسوب أو جهاز لوحي في المكتب. أما تطبيقات الموظفين فهي العمل نفسه محمولًا — جهاز مقترن بفرعه، ومناوبة تبدأ برمز سري، وصالة تواصل أخذ الطلبات حين تنقطع الشبكة.
- ٠١النادلجهاز لوحي أو هاتف، داخل الصالة
- يفتح تطبيق النادل على خريطة حيّة للمناطق التي تغطيها. تفتح جلسة، وتأخذ الطلب بالوجبات والإضافات، وترسله إلى المطبخ، وتنقل أو تدمج أو تقسّم، وتستجيب لطلبات الخدمة، وتطلب الفاتورة. وتُحفظ الطلبات محليًا وتُزامَن دون تكرار حين تعود الشبكة.
- ٠٢الكاشيرمحطة الدفع
- يجمع تطبيق الكاشير بين الجلوس في المكان والطلبات الخارجية على شاشة واحدة. تقسيم بالصنف أو إلى حصص متساوية أو بالنسبة المئوية؛ دفع جزئي، وإلغاء بتفويض، وخصومات، وإكراميات، ومرتجعات. ومناوبات صندوق بإيداع وسحب ومقارنة المتوقع بالفعلي.
- ٠٣شاشة المطبخشاشات المطبخ والبار
- توجّه شاشة المطبخ التذاكر لكل محطة — بار، مطبخ ساخن، شواء، حلويات — بمؤقّت لكل صنف ينذر قبل تجاوز الهدف، واسترجاع للتذكرة بعد خروجها، وملاحظات الطلب، وطابور مستقل للطلبات الخارجية. و«جاهز» في المطبخ ليست «قُدِّم»: زمن الالتقاط يُقاس وحده.
- ٠٤هاتف الضيفمن هاتفه هو، دون تحميل تطبيق
- يمسح الرمز على الترابيزة فتعرف الجلسة الفرع والترابيزة. القائمة بلغته، وسلة، ومتابعة حيّة لكل صنف، ونداء النادل، وطلب الماء أو الفاتورة، وبيانات الواي فاي، والعروض، والتقييم.
- ٠٥الإدارة والمشرفالمتصفح، في المكتب وفي الصالة
- إعداد المستأجر والفروع، والقائمة وقوائم الطعام، ومحرر خريطة الصالة، والأدوار والنطاقات والسياسات، والمخزون والمشتريات، والحجوزات، والموافقات، والتقارير. ولوحة الإدارة نفسها تفتح كاشيرًا ولوحة مطبخ ومحطة نادل داخل المتصفح، فيستطيع الفرع أن يعمل ليلته الأولى قبل تثبيت أي تطبيق.
٠٣الفوترة
سهرة واحدة. فاتورة واحدة. مهما بلغ عدد الترابيزات.
طلب على الترابيزة، وساعة في منطقة الأطفال، وجلسة على جهاز: تُقفَل كلها على فاتورة واحدة — ولا أحد مضطر لأن يصف العائلة للنظام أولًا. لا مجموعة تُنشأ، ولا مُضيف يُسمّى، ولا ملف عميل يُفتح. الجلسة مكان، والفاتورة مال، والرسم الذي ينشأ في أي ركن من المكان يقع على الفاتورة المفتوحة أصلًا.
- أربعة بالغين يفتحون جلسة على ترابيزة ١٢ في الداخل.
- طفلان يدخلان منطقة الأطفال لساعة، على فاتورة الترابيزة نفسها.
- أحد البالغين يبدأ جهاز بلايستيشن في صالة الألعاب.
- قهوة وحلوى تُطلَبان من هاتف الضيف، عند الجهاز.
أربعة مواضع، وثلاثة أنواع من الرسوم، وفاتورة واحدة — دون أن يُكتب حرف عن هوية أحد. وفي النهاية تُدفع كاملة أو تُقسَّم بالطريقة التي تريدها العائلة.
٠٤الموارد بالوقت
الوقت منتج، ولذلك يُسعَّر كمنتج.
الكاشير الذي لا يعرف إلا بيع الطبق لا يُشغّل صالة ألعاب. فجهاز البلايستيشن، وترابيزة البلياردو، وغرفة الكاريوكي، والغرفة الخاصة، ومنطقة الأطفال، وقاعة الاجتماعات: كل واحد منها مورد له جلسته الخاصة — بدء، وإيقاف مؤقت، واستئناف، وتمديد، وإنهاء — وتُسعَّر دقائقه بقاعدة مكتوبة له. وتقع الساعة والقهوتان على الفاتورة نفسها، عند الكاشير نفسه، وفي دفعة واحدة.
- بالدقيقة، أو بنصف الساعة، أو بالساعة، أو باقة بمدة ثابتة.
- أيام الأسبوع ونافذة داخل اليوم، وتفوز القاعدة الأعلى أولويةً حين تتقاطع اثنتان — وهذا هو تسعير الذروة هنا.
- تنبيهات بالوقت المتبقي، وسياسة إغلاق تلقائي للجلسة التي لم يعد إليها أحد.
- ومنطقة الأطفال تضيف سعة، وقائمة انتظار عند الامتلاء، ودخولًا وخروجًا، وعلاقة بوليّ الأمر — مع الاكتفاء ببيانات الطفل التي يحتاجها التشغيل ولا شيء زيادة.
٠٥القائمة والمخزون
من الوصفة إلى تكلفة الطبق.
القائمة هي السجل الواحد الذي يقرأ منه المطبخ والمخزن والكاشير جميعًا. لا لائحة أسعار بصور.
- أصناف بمقاسات ومجموعات إضافات، وقوائم طعام تخصّ فرعًا، ومواعيد إتاحة، ونسبة ضريبة، وتوجيه إلى محطة المطبخ.
- الوجبات والكومبو أصناف من الدرجة الأولى: طبق رئيسي وطبق جانبي ومشروب، مع استبدالات ورسوم إضافية، وتخصم من المخزون عبر مكوناتها.
- الباقات تجمع سلعًا واستحقاقات — ١٢٠ دقيقة بلايستيشن ومشروبان وطبق ناتشوز، تُباع كشيء واحد.
- المواد الخام والوصفات والهالك وأوامر الشراء تُغلق الدائرة حتى تكلفة البضاعة المباعة.
٠٦الأساسات
الأجزاء التي يصعب إضافتها لاحقًا.
اللغتان من اليوم الأول. يقلب التخطيط اتجاهه من تلقاء نفسه، وتُترجَم القائمة بنيةً لا نسخةً ثانية منها. وكل ما تحته يعيش في الموضع نفسه — في الأساس، حيث لا يستطيع مكان أن يضيفه لاحقًا.
عربية أولًا، وفي الاتجاهين
العربية والإنجليزية من اليوم الأول — حزمة واجهة واحدة تحمل فيها اللغتان مجموعة المفاتيح نفسها، وتصنيفات القائمة وأصنافها مترجَمة لكل لغة في جداول خاصة بها، ولغة على المستأجر وعلى الموظف وعلى العميل، وتوقيت لكل فرع، وتنسيق للعملة والتاريخ والأرقام يتبع اللغة. والاتجاه من اليمين إلى اليسار تخطيطٌ صُمِّم النظام فيه، لا ورقة أنماط أُضيفت بعد الانتهاء.
تعدد المستأجرين حتى مستوى السطر
كل سجل يحمل مستأجره، والعزل مفروض من الخادم لا بمرشِّح يتذكره أحدهم. ونشرة واحدة تكفي لمقهى واحد أو لمجموعة امتياز كاملة.
أدوار ونطاقات وسياسات
الدور يجيب عمّا يُسمح لك به، والنطاق يجيب عن أين — فرع أو دور أو منطقة — والسياسة تجيب عن الشروط، وفيها تعيش حدود الخصم، والإلغاء بعد بدء المطبخ، وتفويض المرتجعات.
أحداث لا استعلام متكرر
تُطلق خدمات المجال في ترابيزة أحداثًا، وطبقة واحدة للزمن الحقيقي تحوّلها إلى غرف. فتعرف شاشة المطبخ وجهاز النادل وهاتف الضيف بالطلب نفسه في اللحظة نفسها.
تطبيقات تحتمل انقطاع الشبكة
يواصل تطبيقا النادل والكاشير العمل رغم انقطاع الاتصال، بطابور محلي ومزامنة لا تُكرِّر العملية، لأن الواي فاي في قبو مقهى هو ما هو عليه، والضيف ما زال ينتظر.
تدقيق افتراضي
كل عملية حسّاسة تكتب سطر تدقيق، والسجل للقراءة فقط بحكم التصميم — سجل تدقيق يمكن تعديله ليس سجل تدقيق.
٠٧مبنيّ لأجل
خمسة أماكن تستحق أكثر من سطر في قائمة.
كل واحد منها صفحة لا فقرة. اقرأ الصفحة التي تشبه الغرفة التي تشغّلها أنت.
المقاهي والمطاعم
مخطط الصالة والقائمة وشاشة المطبخ والكاشير، على نموذج واحد.
صالات الألعاب
مؤقّت يحترم الإيقاف، وخمس وحدات تسعير، ودقائق مدفوعة مسبقًا، وفاتورة واحدة مع الطعام.
الأماكن العائلية
سعة وطابور ورابط وليّ أمر وتسليم لا يتمّ إلا برمز مدير.
حين تنقطع الشبكة
طابور على الجهاز، وإعادة إرسال بالترتيب، ومعرّف يتذكره الخادم، ومدفوعات لا تخمّن أبدًا.
العربية والاتجاه
٣٨٣٨ مفتاحًا لكل لغة، واتجاه من المنصة، ومحتوى قائمة داخل قاعدة البيانات.
٠٨أسئلة
أسئلة تستحق أن تُطرح قبل التفكير في نظام جديد.
إجابات مباشرة، محدَّدة بما يكفي لتحاسبنا عليها في الجولة كلمةً كلمة. الأسئلة التي يُبنى عليها قرار الشراء أولًا، وما بعدها تحتها بالتفصيل نفسه.
ما هي ترابيزة؟
ترابيزة منصة تشغيل متعددة المستأجرين للمقاهي والمطاعم وصالات الألعاب والأماكن العائلية. خادم واحد وقاعدة بيانات واحدة خلف خريطة الصالة وجهاز النادل والكاشير وشاشة المطبخ وهاتف الضيف — فيُطلَب على الترابيزة وعلى جهاز الألعاب وفي جلسة الأطفال، ويُتابَع الطلب، ويُقفَل كله على فاتورة واحدة.
ما العتاد الذي نحتاجه؟
أجهزة لوحية أو هواتف يحملها موظفوك أصلًا، وشاشة للمطبخ، ومتصفح للمكتب. ولا شيء يُثبَّت حتى تفتح: فالكاشير ولوحة المطبخ ومحطة النادل ومحرر خريطة الصالة شاشات في لوحة الإدارة، فيعمل الفرع ليلته الأولى على حاسوب المكتب وجهاز لوحي على الكاونتر. وتطبيقات الموظفين هي ما تنتقل إليه حين تريد جهازًا مقترنًا بفرعه، ومناوبة تبدأ برمز سري، وطابور طلبات يعيش أطول من الواي فاي؛ وهي تعمل على الأجهزة اللوحية والهواتف ولا يفرض أيٌّ منها اتجاه شاشة، فيعمل النادل طوليًّا على هاتف ويعمل المطبخ عرضيًّا على شاشة مثبّتة على الحائط من النسخة نفسها — ولوحة المطبخ تقيس نفسها من النافذة التي أُعطيت لها لا من تخمين عن الجهاز. والضيف يستعمل الكاميرا التي في جيبه على الرمز المطبوع على الترابيزة، فلا شيء يُوزَّع عند الباب ولا شيء يُشحَن كل ليلة.
هل يواصل النظام العمل حين تنقطع الشبكة؟
نعم، في العمل الذي لا يحتمل انتظار موجّه الشبكة. فالطلب المأخوذ على تطبيق النادل أو الكاشير يُكتب على الجهاز قبل لمس الشبكة، ويحمل معرّف عملية، ويُعاد إرساله بالترتيب حين يعود الاتصال — والخادم يتذكر ذلك المعرّف، فيصل الطلب المُعاد كما هو لا كطلب ثانٍ، ويستلم المطبخ الليلة بالترتيب الذي أُخذت به. أما الدفع بالبطاقة والمحفظة والتحويل البنكي فيلتزم بقاعدة أشدّ ويرفض بوضوح بدل أن ينتظر في الطابور، لأنه يحتاج الوصول إلى مزوّد ليصير حقيقة، ولأن دفعة ربما حدثت أسوأ من دفعة لم تحدث بوضوح. والقائمة محفوظة على الجهاز، فالجهاز اللوحي الذي أُعيد تشغيله في نقطة ميتة يفتح على شيء يستطيع النادل العمل منه.
هل يشغّل البلايستيشن والبلياردو ومنطقة الأطفال إلى جانب الطعام؟
نعم — جهاز البلايستيشن وترابيزة البلياردو وغرفة الكاريوكي والغرفة الخاصة وقاعة الاجتماعات ومنطقة الأطفال كلها موارد لها جلساتها الخاصة. تبدأ الجلسة وتتوقف مؤقتًا وتُستأنف وتُمدَّد وتنتهي، وتُسعَّر بالدقيقة أو بنصف الساعة أو بالساعة أو بمدة ثابتة أو بسعر مقطوع، مع حدٍّ أدنى للرسم ونوافذ لأيام الأسبوع ولساعات اليوم وتقريب الوقت لأعلى إلى وحدة التسعير. ويقع الرسم على الفاتورة نفسها مع القهوة. والباقات المدفوعة مسبقًا تخصم الدقائق من رصيد وتعيد ما لم يُلعَب منها.
كيف يتعامل النظام مع العربية ومع الاتجاه من اليمين إلى اليسار؟
العربية والإنجليزية كلتاهما من الدرجة الأولى، في الواجهة وفي البيانات. فالتطبيقات تتشارك حزمة ترجمة واحدة تحمل فيها اللغتان مجموعة المفاتيح نفسها تمامًا، والاتجاه من اليمين إلى اليسار يأتي من اتجاه التخطيط في المنصة نفسها لا من ورقة أنماط معكوسة، ومحتوى القائمة يُترجَم لكل لغة في جدول خاص به — فيحمل التصنيف أو الطبق اسمًا عربيًا حقيقيًا لا اسمًا لاتينيًا أُلحقت به العربية.
كم يكلّف النظام؟
يُباع النظام خططًا شهرية لا بتسعير لكل صفقة على حدة، وكل خطة تحمل الواجهات الخمس واللغتين والصالة كاملة. والذي يختلف بينها حجم ما تشغّله: كم فرعًا، وكم حساب موظف، وكم جهازًا على الصالة — وهي الأشياء الثلاثة التي تختلف فعلًا من مكان إلى آخر، فتدفع مقابل ما تشغّله أنت لا مقابل شريحة عليك أن تكبر حتى تناسبها. وسعر الإطلاق، حيث تكون الخطة عليه، مكتوب على الخطة نفسها بجوار السعر الذي خُفِّض منه. أما المجموعة ذات الفروع الكثيرة أو المكان الذي يحتاج ما لا تغطيه الخطط فيُسعَّر في محادثة — أحضر الأرقام الثلاثة إلى الجولة وتكون محادثة قصيرة.
بقية الأسئلة، بإجاباتها كاملة
على أي تقنيات يعمل النظام؟
الخادم مبنيّ على NestJS فوق قاعدة PostgreSQL، ومعه Prisma طبقةً للبيانات وSocket.IO لنقل التحديثات الحيّة. وتطبيقات النادل والكاشير والمطبخ والضيف مكتوبة بـReact Native عبر Expo، ولوحة الإدارة وصفحة طلب الضيف بـReact داخل المتصفح. وكلها تقرأ من مجموعة واحدة مشتركة من قواعد المجال ورموز التصميم والترجمات، فتُكتب قاعدة السعر أو اللون أو العبارة مرة واحدة لا سبع مرات.
كيف تُفصَل بيانات مكان عن بيانات مكان آخر؟
العزل تفرضه قاعدة PostgreSQL نفسها لا مرشِّح في شيفرة التطبيق. فالجداول المرتبطة بالمكان تحمل سياسات أمان على مستوى السطر مربوطة بإعداد يُضبط لكل معاملة، وامتداد لعميل قاعدة البيانات يضبط ذلك الإعداد قبل تنفيذ أي استعلام — فالاستعلام الذي ينسى المكان الذي يخصّه يعود بلا شيء إطلاقًا بدل أن يعود بسطور غيره. وفوق ذلك يُضيّق حارس النطاق كل موظف على الفروع والطوابق والمناطق والترابيزات والموارد التي يغطيها فعلًا، فيرى المشرف دورًا واحدًا، ويرى المدير فرعًا واحدًا، ويرى المالك المجموعة كلها.
هل يمكن تقسيم الفاتورة بين الأشخاص؟
تُقسَّم الفاتورة بالصنف، أو إلى حصص متساوية، أو بالنسبة المئوية. ويمكن كذلك دمج الفواتير ونقل الرسوم بينها وتسوية فاتورة واحدة بأكثر من وسيلة دفع — نقدًا أو بطاقة أو محفظة أو تحويلًا بنكيًا أو قسيمة — فتنتقل من مفتوحة إلى مدفوعة جزئيًا إلى مدفوعة مع وقوع كل دفعة. والخصم والإلغاء والمرتجع والإكرامية يحمل كلٌّ منها سببًا، وفوق حدٍّ معيّن موافقة مدير. والمبالغ تُحفظ أرقامًا عشرية من الطرف إلى الطرف لا أرقامًا عائمة.
ماذا يستطيع الضيف أن يفعل من هاتفه؟
أن يطلب، دون تحميل أي شيء. فمسح الرمز على الترابيزة يُعرِّف الجلسة بالفرع والترابيزة اللذين تخصّهما، ثم يفتح القائمة بلغة الضيف نفسه: سلة، وإضافات، ومتابعة صنفًا صنفًا مع تقدّم المطبخ في الطلب، وطريقة لنداء النادل أو طلب الماء أو طلب الفاتورة دون أن يلتقط نظر أحد. وبيانات الواي فاي على الشاشة نفسها، ومعها عروض المكان ومكان لترك تقييم. أما التسوية فتحدث عند الكاشير، حيث تُقسَّم الفاتورة وتُقبَض بأكثر من وسيلة دفع.
كيف ندخل قائمتنا إلى النظام؟
من ملف الجداول الذي تحفظها فيه أصلًا. يقرأ المستورِد الملف، ويطابق عناوين الأعمدة بالعربية أو بالإنجليزية، ويحوّل أعمدة اللغات إلى صفوف ترجمة حقيقية وورقة المقاسات إلى مقاسات لصنف واحد، ويعرض عليك بالضبط ما فهمه قبل أن يُكتب سطر واحد. وشغّله ثانيةً للتحديث؛ ففي وضع الاستبدال يُحيل المنتجات التي تركتها إلى التقاعد بدل حذفها، فتبقى طلبات الشهر الماضي وحركات مخزونه مشيرةً إلى شيء حقيقي. وبقية الإعداد — الفروع والمناطق والموظفون والأدوار ومخطط الصالة نفسه — يجري في لوحة الإدارة أمام قائمة من تسع خطوات تقرأ الحساب وتقول لك ما هو معلَّق فعلًا لا ما نسي أحدهم أن يؤشّر عليه.
كم فرعًا وكم موظفًا نستطيع تشغيله عليه؟
بقدر ما في المجموعة. نشرة واحدة تحمل أماكن كثيرة؛ والمكان يحمل فروعًا، والفرع يحمل أدوارًا، والدور يحمل مناطق، والمنطقة تحمل ترابيزات وموارد بالوقت — ولا شيء يحدّ عدد أيٍّ منها. ولكل فرع توقيته وعملته وعنوانه، فتكون مجموعة فيها فرع ساحلي وفرع في المدينة حسابًا واحدًا لا نظامين يُطابَق بينهما باليد. والذي يضيق هو ما يراه الشخص لا ما يحمله النظام: الدور يجيب عمّا يُسمح لك به، والنطاق يجيب عن أين، من المجموعة كلها نزولًا إلى ترابيزة واحدة على دور واحد.
هل نستطيع التحكم فيما يُسمح به لكل موظف؟
نزولًا إلى ترابيزة واحدة، وبشروط تضعها أنت. فالدور يجيب عمّا يُسمح للشخص به، والنطاق يجيب عن أين — المجموعة أو فرع أو دور أو منطقة أو ترابيزة أو مورد بعينه — والسياسة تجيب عن الشروط، وفيها يعيش سقف الخصم، والإلغاء بعد أن يكون المطبخ قد بدأ، وتجاوز السعر، وتسوية المخزون. والفعل الذي يتجاوز السياسة إما يُرفض صراحةً وإما يُوقَف طلبَ موافقة يبتّه من يحمل الصلاحية، فيُسأل المشرف بدل أن يُردّ الضيف عند الكاشير بلا تفسير. وكل فعل حسّاس يكتب سطر تدقيق، والسجل للقراءة فقط بحكم التصميم.
هل يقول لنا كم يكلّفنا الطبق فعلًا؟
نعم، من الوصفة لا من التقدير. فالمواد الخام تحمل تكلفة بالمتوسط المتحرك لكل وحدة مخزون، والوصفة لها إصدارات والإصدار غير قابل للتعديل — فتبقى مبيعات مارس مشيرة إلى الوصفة التي كانت سارية في مارس — وتكلفة البضاعة المباعة لعملية بيع تُجمَع من حركات الاستهلاك التي سبّبتها تلك العملية لا تُعاد حسابها من أسعار موردي هذا الأسبوع، وهذا هو الفرق بين رقم هامش وتخمين. والهالك يُكتب بسبب على السجل نفسه، وكل مادة خام تحمل حدّ إعادة الطلب وكميته، فيُنذَر المخزن قبل أن يُنذَر المطبخ.
لمن تعود البيانات، وهل نستطيع إخراجها؟
البيانات للمكان. صفوف التقارير تُصدَّر ملف قيم مفصولة بفواصل لمن يحمل دوره صلاحية التصدير، والفاتورة الواحدة تُطبَع أو تُحفَظ ملفًا من المتصفح مباشرةً، والنسخة الكاملة للحساب تُؤخَذ من قاعدة PostgreSQL التي يعيش فيها — فلا صيغة مغلقة تقف بين المكان وتاريخ مبيعاته. وما يحقّ لشخص أن يصدّره محكوم بالطريقة نفسها التي يُحكَم بها كل شيء آخر: بالصلاحية على دوره، فيكون التصدير فعلًا مقصودًا من صاحب حقّ فيه لا زرًّا على كل شاشة.
ماذا يحدث إذا توقف المكان عن استخدام النظام؟
يُؤرشَف الحساب، ولا يُتلَف شيء. فإنهاء الخدمة يوسم الحساب مؤرشفًا بتاريخه ويرفعه من قائمة عمل المشغّل لا من قاعدة البيانات، والأمر نفسه ينطبق على عميل أو منتج أو فرع أو موظف يُزال في أثناء الأسبوع: كلٌّ منها يحمل تاريخ إزالته، لأن الطلبات وحركات المخزون ما زالت تشير إليه، ولأن تقريرًا يفقد العام الماضي بصمت أسوأ من تقرير صريح. فيبقى التاريخ مقروءًا ويبقى ملكًا للمكان. أما تاريخ الحذف فأمر يُتَّفق عليه كتابةً، حتى يكون الإتلاف قرارًا يتخذه إنسان لا مهمة خلفية تتخذه عنه.
إن كنت تدير مكانًا وقرأت هذا فوجدته النظام الذي تفشل في شرائه كل مرة، فأحضر الليلة التي تكسر كل شيء آخر — أربعة أجهزة تعمل، وعائلة تريد فاتورة واحدة ومجموعة تريد أربعًا، ومنطقة أطفال ممتلئة في السابعة — ونمشي فيها على صالتك أنت لا على صالة عرض.
تعال وفكّكه.
جولة في خريطة الصالة ومسار الطلب ونموذج الفوترة، على مكانك أنت لا على مكان تجريبي. أحضر الحالة التي تظنها ستكسره.
موعد، ومشاركة شاشة، ومخطط صالتك أنت عليها.
[email protected]