مركز تجربة المعاينة — كل ما يُجرَّب هنا مسودة محلية في المتصفح، والنشر يُقرَّر من مكانه المخصص له.

مركز التجربة

صفحة واحدة تجمع ما بُني حتى الآن من أدوات المعاينة: محرر مسودة وصفة التكلفة مع معاينة التحجيم، ومسودة طلب البيع وتوجيه المطبخ — مع سيناريوهات إدخال يدوية ونتائجها المتوقعة وقائمة قبول قصيرة يتابعها المالك خطوة خطوة.

الأداتان مسودتان محليتان تُفقدان عند التحديث أو الإغلاق — ليستا نظام بيع أو حفظ إنتاجيًا: لا قاعدة بيانات ولا بيع ولا تأثير في المبيعات أو المخزون، ولا إرسال لأي طابعة أو شاشة أو شبكة، ولا بيانات تجريبية تُعبَّأ تلقائيًا — كل القيم في السيناريوهات أدناه أمثلة حسابية تُكتب باليد وتُدخل في الفحص فقط.

حالة الجاهزية — كما هي

مَنجَز ومُفحوص في المعاينة

  • محرر مسودة وصفة التكلفة مع وحدتا الناتج «حصة» و«كوب» ومعاينة التحجيم.
  • مسودة طلب البيع وتوجيه المطبخ: قنوات ثابتة وطاولة للصالة وتذاكر بحسب المحطة.
  • اختبارات معزولة ناجحة على الدوال النقية للوصفات والطلبات والتقسيم والمطبخ والجاهز — العدد الكلي المحدَّث موثق في دليل التسليم docs/07 و docs/08.
  • فحص بالمعاينة نفسها على الشاشة والهاتف (390) والروابط ولوحة المفاتيح.

ما يحتاج غير المعاينة

  • قاعدة البيانات: حفظ الوصفات والطلبات وربط المخزون — مؤجلة لمرحلة المخزون.
  • الأجهزة: طابعة مطبخ وشاشة عرض (KDS) — غير مبنية إطلاقًا.
  • حماية الدخول تخص الشاشات التشغيلية غير المقبولة نهائيًا؛ أداتا المعاينة مفتوحتان عمدًا بلا بيانات حقيقية — أي تسجيل دخول يُفحص في جولة الشاشات التشغيلية بعد جاهزية الأساس.
  • الدفع والفوترة والضرائب: قرار مرحلة لاحقة — لا شيء منها محاكى هنا.

ما يوقف مرحلة الأساس

  • عائق PostgreSQL في المعاينة باقٍ كما هو — دون محاولة تجاوزه.
  • إعادة الفحص النهائي للفحص الذاتي بعد تشديد حمايته لم تكتمل بعد.
  • الأساس غير مقبول نهائيًا — لا يُدَّعى غير ذلك في أي صفحة هنا.

تنبيه صريح: الاختبارات الناجحة أعلاه تُغطي الدوال النقية للأداتين وسيناريوهات هذا المركز فقط — لا تعني قبول النظام كله ولا جاهزية نشر، ولا تُعد إجابة عن فحص الأساس المتوقف.

الأداة الأولى: محرر مسودة وصفة التكلفة والتحجيم

تُحسب تكلفة وصفة وتكلفة وحدة الناتج لحظيًا في المتصفح، مع نسبة هدر تقلّل الناتج المتاح بلا تغيير في تكلفة المكونات، ومعاينة تحجيم اختيارية تُحسب من المسودة الأصلية في كل مرة.

افتح محرر الوصفات ←

  • وصفة بسيطة: 2 حصة بتكلفة وحدة 2.5

    1. افتح مسودة وصفة فارغة قبل الإدخال: حدّث الصفحة — مكونات سيناريو سابق لا تبقى
    2. المنتج: شوربة — وحدة الناتج: حصة — الكمية: 2 — الهدر: 0
    3. مكون: ماء — كمية 1 لتر — طريقة مباشرة — التكلفة 2
    4. مكون: توابل — كمية 1 قطعة — طريقة مباشرة — التكلفة 3

    النتيجة المتوقعة: الإجمالي 5.000 د.أ، وتكلفة الوحدة 2.500 د.أ، والناتج المتاح 2

  • تحجيم ×3: من 2 حصة إلى 6

    1. نفّذ سيناريو «وصفة بسيطة» أولًا — ثم فعّل معاينة التحجيم أسفل النتيجة
    2. كمية الناتج المستهدفة: 6 — والوحدة تظهر «حصة» نفسها بلا تحويل
    3. المتوقع: العامل ×3، والتكلفة 15.000 د.أ، والناتج المتاح 6، وتكلفة الوحدة 2.500 د.أ
    4. المسودة الأصلية تبقى 2 حصة كما هي — التحجيم لا يعدّلها ولا يتراكم

    النتيجة المتوقعة: الإجمالي 5.000 د.أ، وتكلفة الوحدة 2.500 د.أ، والناتج المتاح 2 — التحجيم: عامل ×3 والتكلفة 15.000 د.أ والناتج المتاح 6

  • هدر 20% مع تحجيم: ناتج متاح 8

    1. افتح مسودة وصفة فارغة قبل الإدخال: حدّث الصفحة — مكونات سيناريو سابق لا تبقى
    2. المنتج: معكرونة — وحدة الناتج: حصة — الكمية: 5 — الهدر: 20
    3. مكون: دقيق — كمية 1 كجم — طريقة مباشرة — التكلفة 10
    4. معاينة التحجيم: الهدف 10 حصة — العامل ×2
    5. المتوقع: الناتج المتاح 8 (10 مطروحًا منه 20%)، والتكلفة 20.000 د.أ، وتكلفة الوحدة 2.500 د.أ — والهدر يقلّل الناتج ولا يغيّر تكلفة المكونات

    النتيجة المتوقعة: الإجمالي 10.000 د.أ، وتكلفة الوحدة 2.500 د.أ، والناتج المتاح 4 — التحجيم: عامل ×2 والتكلفة 20.000 د.أ والناتج المتاح 8

  • عبوة مع تحجيم: العبوة كما هي والاستخدام يتحجّم

    1. افتح مسودة وصفة فارغة قبل الإدخال: حدّث الصفحة — مكونات سيناريو سابق لا تبقى
    2. المنتج: عجينة — وحدة الناتج: حصة — الكمية: 2 — الهدر: 0
    3. مكون: دقيق — كمية 250 جم — طريقة عبوة: كمية العبوة 1 كجم — وحدة العبوة: كجم — تكلفتها 8
    4. التكلفة الأصلية المتوقعة: (8 ÷ 1) × 0.25 = 2.000 د.أ
    5. معاينة التحجيم: الهدف 4 حصة — العامل ×2 — المتوقع: الاستخدام 500 جم والتكلفة 4.000 د.أ، وبيانات العبوة (1 كجم بـ8) بلا تغيير

    النتيجة المتوقعة: الإجمالي 2.000 د.أ، وتكلفة الوحدة 1.000 د.أ، والناتج المتاح 2 — التحجيم: عامل ×2 والتكلفة 4.000 د.أ والناتج المتاح 4

  • كمية ناتج صفر تمنع النتيجة بلا نتيجة قديمة

    1. افتح مسودة وصفة فارغة قبل الإدخال: حدّث الصفحة — مكونات سيناريو سابق لا تبقى
    2. أدخل وصفة صحيحة كاملة من الصفر (كبيانات «وصفة بسيطة») — ثم غيّر كمية الناتج إلى 0
    3. المتوقع: النتيجة كلها تختفي وتظهر رسالة عربية عن كمية الناتج — بلا أرقام قديمة

    النتيجة المتوقعة: تظهر رسالة عربية والنتيجة القديمة تختفي كليًا

الأداة الثانية: مسودة طلب البيع وتوجيه المطبخ

قنوات ثابتة (مباشر، صالة، توصيل، أونلاين) ورقم طاولة للصالة حصرًا، وبنود تكتبها باليد، وتجمع تذاكر مطبخ بحسب محطات التحضير — تذاكر ببنود وكميات وقناة وطاولة فقط، بلا أسعار ولا بيانات شخصية.

افتح مسودة الطلب ←

  • طلب صالة بتذكرة واحدة

    1. افتح مسودة فارغة قبل الإدخال: حدّث الصفحة — بنود سيناريو سابق لا تبقى
    2. القناة: صالة — الطاولة: 12
    3. بند: شاي — تصنيف مشروبات — كمية 2 — سعر 0.5
    4. بند: حمص — تصنيف مقبلات — كمية 1 — سعر 3
    5. محطتان: «البار» و«المطبخ الساخن» — وربط مشروبات ومقبلات معًا بـ«البار»

    النتيجة المتوقعة: الإجمالي 4.000 د.أ بلا ضريبة أو خصم — تذاكر المحطات: البار (الطاولة 12)

  • محطتان منفصلتان: تذكرة لكل محطة

    1. افتح مسودة فارغة قبل الإدخال: حدّث الصفحة — بنود سيناريو سابق لا تبقى
    2. القناة: توصيل — بلا طاولة
    3. بند: شاورما — تصنيف مشاوي — كمية 2 — سعر 4
    4. بند: كيك — تصنيف حلويات — كمية 1 — سعر 2.5
    5. ربط مشاوي بـ«المطبخ الساخن» وحلويات بـ«الحلويات»

    النتيجة المتوقعة: الإجمالي 10.500 د.أ بلا ضريبة أو خصم — تذاكر المحطات: المطبخ الساخن، الحلويات

  • دقة الجمع النقدي: 0.1 و0.2

    1. افتح مسودة فارغة قبل الإدخال: حدّث الصفحة — بنود سيناريو سابق لا تبقى
    2. القناة: مباشر
    3. بند: أ — تصنيف أطباق — كمية 3 — سعر 0.1
    4. بند: ب — تصنيف أطباق — كمية 2 — سعر 0.2
    5. أضف محطة «المطبخ الساخن» واربط تصنيف أطباق بها — فيظهر إجمالي 0.700 د.أ وسطر النتيجة «تذاكر المحطات: المطبخ الساخن» بالبندين

    النتيجة المتوقعة: الإجمالي 0.700 د.أ بلا ضريبة أو خصم — تذاكر المحطات: المطبخ الساخن

  • تصنيف غير مربوط يمنع التذاكر

    1. افتح مسودة فارغة قبل الإدخال: حدّث الصفحة — بنود سيناريو سابق لا تبقى
    2. القناة: صالة — الطاولة: 5
    3. بند: عصير — تصنيف مشروبات — كمية 1 — سعر 1.25
    4. بند: كبة — تصنيف مشاوي — كمية 2 — سعر 3
    5. محطة واحدة «البار» وربط مشروبات بها فقط — اترك مشاوي بلا ربط

    النتيجة المتوقعة: الإجمالي 7.250 د.أ يظهر كما هو بلا ضريبة أو خصم — ولا تذاكر: تظهر رسالة رفض (مشاوي، غير مربوط) وتُمنع تذاكر تبدو مكتملة

  • كمية مكسورة ترفض النتيجة فورًا

    1. افتح مسودة فارغة قبل الإدخال: حدّث الصفحة — بنود سيناريو سابق لا تبقى
    2. القناة: مباشر
    3. بند: ماء — تصنيف مشروبات — كمية 2.5 (خطأ متعمد) — سعر 1
    4. لاحظ: الإجمالي يختفي وتظهر رسالة عربية عن الكمية — بلا نتيجة قديمة

    النتيجة المتوقعة: لا إجمالي ولا تذاكر — تظهر رسالة رفض (كمية) وتختفي النتيجة القديمة فورًا

الأداة الثالثة: نموذج الكمية الجاهزة للبيع

رصيد جاهز غير سالب لكل منتج بهويته الثابتة يُدخله المطبخ، ويُخصم مع الطلب التجريبي نجاحًا كاملًا أو رفضًا كاملًا بلا خصم جزئي ولا رصيد سالب، ومحاكاة تنافس داخل الصفحة: طلبان أ وب يقرآن الإصدار ذاته، وتنفيذ الأول يرفع الإصدار فيُرفض الثاني القديم دون خصم حتى يُحدَّث ويُعاد التحقق من المتاح — محاكاة تسلسلية بإصدار حالة في الذاكرة، ليست معاملات خادم ولا قفلًا فعليًا.

افتح نموذج الجاهز للبيع ←

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

قائمة القبول القصيرة

  1. افتح كل أداة من الروابط أعلاه ونفّذ سيناريوهاتها بالقيم المكتوبة، باليد.
  2. تأكد أن النتيجة المتوقعة هي التي تظهر — وأن الخطأ المتعمد في السيناريوهات يظهر رسالة عربية ويخفي النتيجة القديمة فورًا.
  3. تأكد أن تذاكر المطبخ بلا أسعار ولا بيانات شخصية، وأن طاولة الصالة وحدها تظهر.
  4. راجع وثيقة القبول والتسليم الكاملة داخل ملفات المشروع: docs/08-acceptance-handover.md — بمسارات الملفات والأوامر الشُغِّلت ونتائجها. عرضها عبر الويب لم يُبنَ في هذه الجولة.