١. تجهيز البيانات الأساسية
منتجات + مخزن + رصيد افتتاحي. هذه الخطوة في التطبيق الرئيسي /app/core.
1إنشاء المنتجات الثلاثة
المسار: /app/core/products ← المنتجات
الإجراء
- افتح شاشة المنتجات واضغط زر إضافة منتج.
- أنشئ الأصناف الثلاثة بالقيم التالية. الحقل وحدة القياس الأساسية (base_unit) والمفتاح تتبع المخزون (track_inventory) هما الأهم.
القيم المدخلة
| الاسم | الوحدة الأساسية | تتبع المخزون | سعر/تكلفة الشراء |
| خام بودرة ميلامين | كجم | مفعّل ✓ | 8.00 |
| كرتونة تغليف | قطعة | مفعّل ✓ | 3.00 |
| طقم أطباق ميلامين | طقم | مفعّل ✓ | — |
النتيجة المتوقعة: تحقّق تظهر الأصناف الثلاثة في قائمة المنتجات. الخام والكرتونة بوحداتٍ تتبع المخزون (سيظهر لهما رصيد لاحقاً)، والطقم منتج تام بلا رصيد بعد.
ليه ده مهم محاسبياً؟ سعر شراء الخام (8) هو ما يقيّم به الصرف لاحقاً، وتفعيل «تتبع المخزون» هو ما يسمح للنظام بإمساك دفتر كميات وقيمة لكل صنف.
2إنشاء المخزن + الرصيد الافتتاحي
المسار: /app/core/warehouses (المخازن) ثم /app/core/stock-receipts (أذونات الاستلام)
الإجراء
- من شاشة المخازن أنشئ مخزناً باسم «مخزن المصنع الرئيسي» وفعّله.
- انتقل إلى أذونات الاستلام المخزني واضغط إذن إضافة جديد.
- اختر النوع/المرجع رصيد افتتاحي والمخزن «مخزن المصنع الرئيسي»، ثم أضف السطرين:
القيم المدخلة
| الصنف | الكمية | تكلفة الوحدة | الإجمالي |
| خام بودرة ميلامين | 500 كجم | 8.00 | 4,000.00 |
| كرتونة تغليف | 200 قطعة | 3.00 | 600.00 |
احفظ الإذن (واعتمده/رحّله إن طُلب ذلك).
النتيجة المتوقعة: تحقّق في شاشة أرصدة المخزون (/app/core/stock-balances) يظهر: 500 كجم خام و200 كرتونة في «مخزن المصنع الرئيسي» بقيمة إجمالية 4,600 ريال.
ليه ده مهم؟ الرصيد الافتتاحي من نوع «opening» هو نقطة بداية الدفتر المخزني — بدونه لن يكون هناك ما يُصرَف للإنتاج، وأمر الإنتاج سيُحجب عند الإطلاق بسبب نقص المخزون (سياسة block-on-shortage).
٢. مركز العمل + القالب + تقويم العمل
من هنا نعود إلى مساحة المصنع /app/factory — قسم «البيانات الأساسية».
3إنشاء مركز العمل «خط الكبس والتشكيل»
المسار: /app/factory/centers ← مراكز العمل
الإجراء
- اضغط مركز جديد.
- عبّئ الحقول. الشاشة تعرض قسم «معدلات التكلفة» وقسم «السعة». املأ: الكود، النوع (آلة/عمالة/مختلط)، الاسم، ثم في «معدلات التكلفة»: معدل تكلفة العمالة، معدل تكلفة الماكينة، الأوفرهيد (مبلغ نقدي لكل وحدة مُحرّك)، طريقة حساب العمالة، مُحرّك التكلفة.
القيم المدخلة
| الحقل (كما في الشاشة) | القيمة |
| الكود | PRESS-01 |
| الاسم | خط الكبس والتشكيل |
| النوع | مختلط (عمالة + آلة) |
| معدل تكلفة العمالة labor_cost_rate | 60.00 |
| معدل تكلفة الماكينة machine_cost_rate | 40.00 |
| الأوفرهيد overhead_rate | 20.00 |
| مُحرّك التكلفة cost_driver | ساعات العمالة (labor_hours) |
| طريقة حساب العمالة labor_calc | بالساعة (hourly) |
ملاحظة دقة مهمة: الشاشة الآن تعرض الحقول التفصيلية مباشرة في قسم «معدلات التكلفة». أدخل معدل العمالة = 60 ومعدل الماكينة = 40 والأوفرهيد = 20 — وجميعها مبالغ نقدية لكل ساعة عمالة (مُحرّك التكلفة = labor_hours، طريقة الحساب = hourly)، وليست نِسباً مئوية. هذه القيم الثلاثة هي ما يقرؤه النظام عند احتساب التكلفة المعيارية، فلا حاجة لأي حقل «تكلفة/ساعة» مُجمَّع بعد الآن.
النتيجة المتوقعة: تحقّق يظهر «خط الكبس والتشكيل» في قائمة مراكز العمل، وفي بطاقة الإجمالي يزيد عدّاد «إجمالي المراكز» بمقدار 1.
4إنشاء القالب «قالب أطباق 4 تجاويف»
المسار: /app/factory/tools ← العُدد (Tooling)
القيم المدخلة
| الحقل | القيمة |
| الكود | MOLD-4C |
| الاسم | قالب أطباق 4 تجاويف |
| عدد التجاويف (cavity_count) | 4 |
| العمر الافتراضي (life_cycles) | 100,000 |
| الحالة | متاح |
النتيجة المتوقعة: تحقّق القالب يظهر بحالة «متاح» و«الدورات المستخدمة = 0». لاحقاً مع كل تأكيد إنتاج ستزيد cycles_used بمقدار (الكمية ÷ 4).
ليه ده مهم؟ 4 تجاويف تعني أن كل دورة كبس تنتج 4 أطباق دفعة واحدة — وهذا ما يربط زمن الدورة بالإنتاجية، كما أن النظام يراقب عمر القالب وينقله تلقائياً إلى «صيانة» عند تجاوز 100,000 دورة.
5تقويم العمل (اختياري لكنه يغذّي تخطيط الطاقة)
المسار: /app/factory/calendars ← تقويمات العمل
- اضغط تقويم جديد، سمّه «أسبوع عمل قياسي من ٥ أيام».
- حدّد أيام العمل (الأحد–الخميس) وأضف وردية واحدة لكل يوم (مثلاً 08:00 إلى 16:00).
- فعّل تعيين كتقويم افتراضي.
النتيجة المتوقعة: تحقّق يظهر التقويم بعلامة «افتراضي»، وعمود «ساعات الأسبوع» يحسب 5 أيام × 8 ساعات = 40. هذا التقويم سيحدّد «الدقائق المتاحة» في شاشة تخطيط الطاقة (CRP).
٣. قائمة المواد (BOM)
وصفة الطقم: المكوّنات + نسبة الهدر + البدائل، مع شجرة التفجير.
6بناء قائمة مواد «طقم أطباق ميلامين»
المسار: /app/factory/boms ← قوائم المواد
الإجراء
- اضغط قائمة مواد جديدة.
- في المعلومات الأساسية: المنتج = «طقم أطباق ميلامين»، النوع = إنتاج، كمية الدفعة (BATCH_QUANTITY) = 1، فعّل تعيين كافتراضي.
- في تبويب المكوّنات اضغط إضافة مكون مرتين وأدخل:
المكوّنات
| المكوّن | النوع | الكمية | نسبة الهدر % |
| خام بودرة ميلامين | مادة خام | 2 | 5 |
| كرتونة تغليف | تعبئة | 1 | 0 |
(اختياري) في صف الخام افتح البدائل واضغط إضافة بديل لتعريف خامة بديلة بأولوية ونسبة — لتجربة آلية البدائل.
تقدير التكلفة (يظهر في لوحة «تقدير التكلفة»)
| البند | الحساب | القيمة |
| تكلفة المواد | 2 × 1.05 × 8 + 1 × 3 | 19.80 |
النتيجة المتوقعة: تحقّق لوحة «تقدير التكلفة» تعرض تكلفة المواد = 19.80. افتح تبويب التفكيك (Explosion) لأمر بكمية 20 → سترى الكميات مضخّمة بالهدر: خام مطلوب = 42 كجم (20×2×1.05) وكرتون = 20.
ليه ده مهم؟ نسبة الهدر 5% تُضخّم الكمية المعيارية (2 → 2.1 كجم/طقم) فتعكس الفاقد الحقيقي للخامة في التكلفة المعيارية وفي حساب احتياجات الشراء بـ MRP.
٧. التخطيط: أمر بيع ← MRP ← تحويل
نُثبت طلباً حقيقياً ثم ندع النظام يخطّط لنا أمر الإنتاج.
10إنشاء أمر بيع مؤكد (مصدر الطلب)
المسار: /app/sales/orders ← أوامر البيع
- أنشئ أمر بيع لأي عميل: المنتج «طقم أطباق ميلامين»، الكمية 50، تاريخ التسليم بعد 20 يوماً.
- أكّد الأمر (يجب أن يكون «مؤكد» ليلتقطه الـ MRP — الأوامر المسودّة تُتجاهل).
النتيجة المتوقعة: تحقّق أمر بيع بحالة «مؤكد» بكمية 50 وتاريخ تسليم واضح. تذكّر أن لدينا 20 طقم سنستلمها لاحقاً، فالصافي المطلوب سيكون 30.
11تشغيل MRP وفحص النتائج والربط (Pegging)
المسار: /app/factory/mrp ← قمرة تخطيط الاحتياجات
الإجراء
- اضغط تشغيل MRP. في حوار التشغيل: مصدر الطلب = أوامر البيع + MPS، الأفق = 90 يوماً، ثم نفّذ.
- انتظر حتى تتحول حالة العملية إلى «مكتملة» واخترها من قائمة «عمليات التشغيل».
- تنقّل بين التبويبات الثلاثة: الأوامر المخططة / الاستثناءات / الربط.
50
إجمالي الطلب (أمر البيع)
النتيجة المتوقعة: تحقّق في تبويب الأوامر المخططة يظهر أمر إنتاج مقترح للطقم بكمية 30 (= 50 طلب − 20 متاح) نوعه «إنتاج». في تبويب الربط ترى هذا التوريد مربوطاً بأمر البيع رقم 50 بكمية مخصّصة. كما يظهر أمر شراء مخطط للخام لتغطية الـ 30 الإضافية.
يُفترض أن يكون لديك 20 طقم on‑hand (من دورة التنفيذ في القسم ٨) ليظهر الصافي 30 بدقة. إن شغّلت MRP قبل التنفيذ، سيكون الصافي = 50 — وهذا سليم منطقياً.
12تحويل الأمر المخطط إلى أمر إنتاج حقيقي
المسار: نفس الشاشة ← تبويب «الأوامر المخططة» ← زر تحويل
- (اختياري) اضغط تثبيت أولاً لتجميد الأمر عبر عمليات التشغيل القادمة.
- اضغط تحويل على صف الطقم → أكّد «تحويل إلى أمر إنتاج فعلي».
النتيجة المتوقعة: تحقّق تتغير حالة الصف إلى «محوّل»، ويُنشأ أمر إنتاج حقيقي بحالة «مخطط» في شاشة أوامر الإنتاج. كما يُكتب promised_date على أمر البيع المرتبط (تاريخ الوعد = تاريخ استحقاق الأمر المخطط).
ليه ده مهم؟ هذه هي حلقة CTP المصغّرة: ربط الطلب بالتوريد ووعد العميل بتاريخ تسليم مبني على خطة فعلية وليس تخميناً.
٨. التنفيذ الكامل لأمر الإنتاج
سننفّذ أمر 20 طقم يدوياً لنرى دورة الـ WIP كاملة برقمها. (أنشئ أمراً جديداً بـ 20 إن أردت رقماً منفصلاً عن الـ 30 المُحوّل.)
13إنشاء أمر إنتاج 20 طقم
المسار: /app/factory/orders ← أوامر الإنتاج ← أمر إنتاج جديد
| الحقل | القيمة |
| المنتج | طقم أطباق ميلامين |
| قائمة المواد | الافتراضية (19.80) |
| الكمية المخططة | 20 |
| مستودع المصدر / الوجهة | مخزن المصنع الرئيسي |
النتيجة المتوقعة: تحقّق أمر بحالة «مخطط». في تبويب «المواد» داخل تفاصيل الأمر سترى الخامات المخططة: 42 كجم خام + 20 كرتونة.
14إطلاق الأمر (Release)
الإجراء: من صف الأمر أو تفاصيله اضغط إطلاق
النتيجة المتوقعة: تحقّق تتحول الحالة إلى «مُطلق»، ويُجمّد النظام نسخة (snapshot) من المواد والعمليات، ويحجز (reserve) الخامات في المخزون. لو لم يكفِ المخزون، يُرفض الإطلاق برسالة نقص (block‑on‑shortage).
ليه ده مهم؟ الإطلاق هو نقطة «تجميد العقد»: بعدها لا تتغير الوصفة، ويُحجز المخزون فلا يُسحب لأمر آخر.
15صرف المواد بالدُفعة/FEFO (Issue)
الإجراء: اضغط صرف المواد على الأمر المُطلق
- في الحوار، الكميات الافتراضية = المتبقي (42 و20). اتركها كما هي.
- في سطر الخام افتح تخصيص الدُفعات واضغط الأقدم انتهاءً → سيخصّص النظام 42 كجم من LOT‑MEL‑001 تلقائياً.
- أكّد الصرف.
قيمة الصرف الفعلية
| الصنف | الكمية | السعر | القيمة |
| خام | 42 | 8 | 336.00 |
| كرتونة | 20 | 3 | 60.00 |
| المواد الفعلية | | | 396.00 |
النتيجة المتوقعة: تحقّق الحالة تصبح «قيد التنفيذ»، وفي تبويب «التكلفة» يظهر مواد فعلية = 396.00. يُنشأ قيد محاسبي production_material_issue (مدين إنتاج تحت التشغيل / دائن مخزون).
16تأكيد التشغيل: المحطة (Terminal) أو شاشة التأكيدات
الخيار أ — المحطة: /app/factory/terminal | الخيار ب — التأكيدات: /app/factory/confirmations
عبر المحطة (واجهة المشغّل اللمسية)
- اختر مركز العمل «خط الكبس» من المنتقي العلوي (يُحفظ محلياً).
- على بطاقة العملية اضغط بدء → تتحول إلى «قيد التنفيذ».
- اضغط إنهاء → يفتح حوار الإنهاء، أدخل القيم التالية ثم تأكيد:
القيم المدخلة (تأكيد نهائي)
| الحقل | القيمة |
| نوع التأكيد | نهائي |
| الكمية المنتجة — الدرجة A | 20 |
| ساعات العمل (labor_hours) | 2.5 |
| ساعات الماكينة (machine_hours) | 2.5 |
| كمية الهالك | 0 |
حساب التحويل
| البند | الحساب | القيمة |
| عمالة (شاملة الآلة) | 2.5×60 + 2.5×40 | 250.00 |
| أوفرهيد | 2.5 × 20 | 50.00 |
النتيجة المتوقعة: تحقّق رسالة «تم تأكيد العملية»، وتتحول العملية إلى «مكتمل». تُسجَّل عمالة 250 وأوفرهيد 50 على الأمر، وتُنشأ قيود production_labor وproduction_overhead. كما يزيد cycles_used للقالب بمقدار 5 (20÷4).
عبر شاشة التأكيدات بدلاً من المحطة: اختر الأمر ← العملية، تبويب «تأكيد»، أدخل نفس القيم (نوع = نهائي، درجة A = 20، ساعات عمالة 2.5، ساعات ماكينة 2.5) ثم إرسال التأكيد. تبويب «لوحة العمليات» يعرض حالة العمليات حسب مركز العمل.
17استلام المنتج التام (Receive FG)
الإجراء: على الأمر اضغط استلام المنتج النهائي
أدخل الكمية المستلمة = 20، المستودع = «مخزن المصنع الرئيسي»، رمز الدرجة = A (اختياري)، ثم أكّد.
حساب التكلفة
النتيجة المتوقعة: تحقّق يُستلم 20 طقم. إجمالي تكلفة التشغيل (WIP) = 696.00 → تكلفة الوحدة الفعلية = 34.80 ريال/طقم. تُنشأ دُفعة منتَجة تلقائياً للطقم (تظهر في شاشة الدُفعات بحالة «نشطة»).
ليه ده مهم؟ الفرق بين الوحدة الفعلية 34.80 والمعيارية 31.80 (= 3.00/وحدة × 20 = 60 إجمالاً) هو جوهر الانحراف الذي سنراه في الخطوة التالية. مع طريقة «معياري» يُرسمل المخزون التام بالمعياري 31.80 ويُرحَّل الفرق كانحراف.
18إقفال الأمر (Close)
الإجراء: على الأمر اضغط إغلاق
النتيجة المتوقعة: تحقّق تتحول الحالة إلى «مغلق». لمنتج بطريقة «معياري»، يولّد الإقفال قيد الاستلام واحتساب الانحرافات. تنتقل الآن للقسم ٩ للتحقق المالي.
٩. التحقق المالي والإداري
هنا نُثبت أن كل ريال له قيد، وكل انحراف له تفسير.
19القيود في المحاسبة
المسار: /app/accounting/journal-entries ← قيود اليومية
صفّي القيود حسب المصدر «أمر إنتاج». ستجد سلسلة القيود:
| نوع القيد | مدين | دائن | المبلغ |
production_material_issue | إنتاج تحت التشغيل | المخزون | 396.00 |
production_labor | إنتاج تحت التشغيل | عمالة مُحمّلة | 250.00 |
production_overhead | إنتاج تحت التشغيل | أوفرهيد مُحمّل | 50.00 |
production_fg_receipt | مخزون تام 636 + فرق تكلفة 60 | إنتاج تحت التشغيل | 696.00 |
النتيجة المتوقعة: تحقّق قيد الاستلام: مدين مخزون تام 20×31.80 = 636 + مدين فرق تكلفة 60 / دائن إنتاج تحت التشغيل 696. الحساب متوازن ويُغلق رصيد الـ WIP إلى الصفر.
20شاشة الانحرافات (Variances)
المسار: /app/factory/variances ← انحرافات التكلفة
ستظهر سجلات الانحراف للأمر المُقفل، مصنّفة حسب النوع (MPV سعر المواد، MUV استهلاك المواد، LRV/LEV عمالة، إلخ) والتصنيف (طبيعي/مراقبة/تحقيق) والمسؤول (إنتاج/مشتريات/إدارة).
النتيجة المتوقعة: تحقّق صافي انحراف غير مُرضٍ بقيمة ≈ 60 (الفرق بين 696 الفعلي و636 المعياري). مخطط باريتو يرتّب الأنواع حسب الأثر. السجلات التي تتجاوز 5% تُعلَّم «تحقيق».
ليه ده مهم إدارياً؟ الانحراف يحوّل «المصنع تكلّف أكثر» إلى تشخيص دقيق: هل السبب سعر خامة (مسؤولية المشتريات) أم استهلاك زائد أم بطء عمالة (مسؤولية الإنتاج)؟ هذا أساس المساءلة وتحسين التكلفة.
21سلالة الدُفعة (Genealogy) واللوحة الحية والتقارير
السلالة: /app/factory/batches ← السلالة | اللوحة: /app/factory/board | التقارير: /app/factory/reports | الداشبورد: /app/factory
- في الدُفعات، افتح السلالة لدُفعة الطقم المنتَجة: الجزء العلوي (المنبع) يُظهر LOT‑MEL‑001 كخامة دخلت في التصنيع، والسفلي (المصب) يُظهر أين استُخدِمت لاحقاً.
- في اللوحة الحية: حالة أرضية الإنتاج لكل الأوامر النشطة + نقاط الاختناق (طوابير مراكز العمل) — تتحدث كل 30 ثانية.
- في التقارير: تبويبات الملخص والكفاءة والانحراف. وفي الداشبورد: بطاقات الأوامر حسب الحالة ومراكز العمل النشطة.
النتيجة المتوقعة: تحقّق شجرة السلالة تربط الطقم بالخامة LOT‑MEL‑001؛ تقرير الانحراف يطابق رقم شاشة Variances؛ الداشبورد يعكس الأمر المُقفل ضمن «المكتملة/المغلقة».