خطة تنفيذ من ست مراحل تُوفّق بين ترتيب البناء الذي نصّت عليه المواصفة (12 خطوة في ملف التكامل) وبين الواقع الفعلي لـMoon ERP: موديول Modules/Production القائم بجداوله السبعة، وقضبان التكامل الجاهزة في المخزون والمحاسبة. كل مرحلة تنتهي بمُخرَج تشغيلي ملموس يستفيد منه المصنع فوراً — وليس مجرد طبقة تقنية مؤجّلة القيمة.
المواصفة تضع «التكاملات» في الخطوة الأخيرة (12) وتبني التخطيط (MPS/MRP/CRP) قبل التنفيذ. قرارنا المدروس عكس ذلك في ثلاث نقاط، التزاماً بقاعدة المواصفة نفسها «كل حدث فعلي يُرحّل قيداً محاسبياً لحظياً» وبوصفة Moon ERP المجرَّبة:
Modules\Accounting\Actions\CreateJournalEntry وحركات مخزون عبر ApproveIssue/ApproveReceipt) — لأن أكبر فجوة في الموديول الحالي هي بالضبط غياب الترحيل للمخزون والمحاسبة.sales_orders ونقاط إعادة الطلب.وقرار الاتجاه المعتمد: التوسعة في المكان — نمدّ موديول Modules/Production القائم ولا نعيد بناءه؛ لا توجد بيانات إنتاجية ولا مفاتيح خارجية واردة، والواجهة الأمامية وخريطة الـ19 صلاحية جاهزتان. التقدير: S ≈ أسبوع مطوّر، M ≈ 2–4 أسابيع، L ≈ 4–8 أسابيع — وهذا مقياس للمراحل ويختلف عن مقياس الفجوات المفردة في قسم الفجوات (S = أيام / M ≤ 3 أسابيع / L > 3 أسابيع)؛ لا يُسقط أحدهما على الآخر عند وضع الميزانية.
| المرحلة | النطاق الأساسي | الموديولات المتأثرة | ماذا يستطيع المصنع فعله بعدها؟ | الحجم |
|---|---|---|---|---|
| 0 — التأسيس والتصليب | توحيد الهجرات الدفاعية الثلاث، إنشاء طبقات Actions/Events/Listeners الغائبة، تسجيل مساهم الصلاحيات production في PermissionDependencyRegistry، إضافة حالة Production إلى ApprovalModule، تفعيل BomStatus المعلَّق، بذر مفاتيح إعدادات فضاء production.* الوحيد (نفس الفضاء الذي تقرؤه إجراءات الترحيل لاحقاً)، وهيكلة اختبارات Pest — إضافةً إلى مسار ملاحق المواصفة: كتابة ملاحق الفجوات B1–B25 كلها (المالك: مهندس المنتج + خبير المصنع، مدة أسبوع بالتوازي، بوابة إلزامية قبل خروج المرحلة 1). |
Production, Core | لا مخرج تشغيلي — إزالة الدين الهندسي وتجهيز الأساس لكل ما بعده. | S |
| 1 — بيانات أساسية v2 + تنفيذ حقيقي ⭐ | BOM متعدد المستويات بإصدارات وتواريخ سريان وبدائل في جدول ابن mfg_bom_substitutes (لا JSON — قرار D-18)، آلة حالات الأمر Planned→Released→InProcess→Completed→Closed مع التجميد (Frozen Snapshot) عند الإطلاق، حجز المخزون، صرف مواد فعلي (خصم مخزون + قيد WIP) واستلام منتج تام بتكلفة فعلية مجمّعة (إضافة مخزون + قيد) عبر مستندي التصنيع mfg_material_issues/mfg_goods_receipts فوق قضبان المخزون (قرار نهائي D-19 — لا استخدام مباشر لمستندات المخزون)؛ حالة جودة الاستلام افتراضياً «مفرج عنه» حتى بوابات المرحلة 6 (D-21). إن انزلق الجدول يُقسَّم إلى 1أ (بيانات أساسية) و1ب (قضبان الترحيل). |
Production, Inventory, Accounting, Core | أول تشغيل حقيقي: أوامر إنتاج يدوية كاملة الدورة بمخزون صحيح وقيود محاسبية لحظية — يتوقف الموديول عن «الكذب» على المحاسبة. | L |
| 2 — التوجيه والقوالب والتأكيدات | كيانات mfg_routing_headers/operations المُصدَّرة (cavity_count، أزمنة الدورة)، توسعة production_centers بأعمدة الطاقة والمعدلات والمُسبّب (طاقة يومية، مضاعِف، كفاءة، استغلال، معدلات تجهيز/عمالة/آلة، labor_calc، cost_driver — كانت غير مجدولة في أي مرحلة)، سجل القوالب mfg_tools بعمر الدورات مربوطاً بأصول CMMS وبسجل الأصول الثابتة القائم، تأكيدات العمليات بتوزيع الدرجات A/B/C وتخصيص التكلفة بالقيمة (NRV)، الصرف الآلي (Backflush)، وأجر بالساعة أو بالقطعة من معدل مركز العمل (D-06). |
Production, Accounting, HRM, CMMS | تسجيل تشغيل على مستوى العملية بأزمنة فعلية، تكلفة تحويل حقيقية (عمالة + آلة + أوفرهيد داخل WIP)، إنتاج متعدد الدرجات بتكلفة عادلة، وتتبّع عمر القوالب بتنبيهات صيانة. | L |
| 3 — محرك التكاليف والانحرافات | تكلفة معيارية لكل صنف mfg_standard_costs، طريقة تكلفة لكل صنف (Standard/Actual/Average/FIFO) على جدول الامتداد mfg_item_mrp_settings الذي يُنشأ هنا (قرار D-20 — لا تضخيم لجدول products ولا هجرة Enum عليه)، الانحرافات السبعة (MPV…FOVV) بنطاقات تسامح وتوجيه للمسؤول — مدخلا FOVV: موازنة الإنفاق من budget_lines القائمة + عمود حجم موازني جديد على مركز العمل، وبغيابهما تُعلن 6 انحرافات (D-22) — تسوية الأوفرهيد شهرياً قبل إقفال الفترة، وتوزيع مراكز الخدمة عبر CostAllocationService. |
Production, Accounting, Core | الإدارة تحصل على أثمن مخرجات المواصفة: تفكيك انحراف كل أمر مغلق إلى أسبابه السبعة مع تحديد المسؤول وتقرير Pareto. | M |
| 4 — التخطيط: MRP وCRP والربط بالمشتريات والمبيعات | إعدادات تخطيط لكل صنف، تشغيل MRP متعدد المستويات (تفجير BOM، قواعد تحجيم الدفعات، فرع التصنيع لحساب الغير)، رسائل استثناءات، جدول الربط mfg_peggings بأوامر البيع، توليد طلبات شراء عبر CreatePurchaseRequest، فحص الطاقة CRP بتقويم عمل وورديات جديد (mfg_work_calendars + ربط calendar_id على مراكز العمل، وخصم الأعطال عبر مدخل القراءة GetDowntimeWindows)، وMPS مبسّط. |
Production, Purchases, Sales, Inventory | المخطِّط يشغّل MRP من الطلب الفعلي والمخزون فيحصل على أوامر إنتاج مقترحة وطلبات شراء تلقائية، ويرى تحميل الطاقة الزائد قبل الإطلاق، وكل أمر إنتاج مربوط بأوامر البيع التي يخدمها. | L |
| 5 — شاشات الورش والمتابعة اللحظية | طرفية لمسية لكل مركز عمل (على نمط pos-layout) بزرّي [Start]/[Done]، التقدّم الآلي للعملية التالية عبر حدث OperationCompleted، إدخال الكمية/الدرجات/الهالك، ولوحة مشرف حيّة لاكتشاف الاختناقات. |
Production, HRM, الواجهة الأمامية | أرضية مصنع بلا ورق: التكلفة تصبح لحظية بدل إدخال آخر اليوم، والمشرف يرى الاختناق الحالي مباشرة، وتتراكم الأزمنة الفعلية تمهيداً لـOEE. | M |
| 6 — التصنيع لحساب الغير والتتبع العميق | مخازن أمانة بعلم is_consignment لمواد العميل (تُمسَك ولا تُقيَّم ولا تُشترى — قرار D-15، وبُعد الملكية الكامل مؤجل)، فوترة أجر تشغيل فقط، تشغيلات/دُفعات كاملة الصلاحية في المخزون مع شجرة نسب (Genealogy) من خامة إلى منتج، بوابات فحص QMS على مستوى العملية، خصم أعطال CMMS من طاقة CRP، وتغذية أجر القطعة إلى الرواتب عبر Action بملكية HRM يكتب جدولاً تملكه HRM (لا تقرأ الرواتب أي جدول تصنيعي). |
Production, Inventory, Sales, QMS, CMMS, HRM, Accounting | قبول أعمال تشغيل لحساب الغير بدفاتر نظيفة، وتتبّع أي دفعة منتج تام رجوعاً إلى دفعات الخامات (جاهزية الاستدعاء)، وربط الجودة والصيانة والرواتب بالإنتاج. | L |
مراحل مستقبلية محجوزة الواجهات وخارج هذه الخطة: الجدولة التفصيلية APS، حساب OEE، أوامر التغيير الهندسي PLM/ECO، والتقاط بيانات الآلات (IoT).
StockService::reserve()/release() على عمود reserved_quantity اليتيم، وأنواع حركة إنتاجية في MovementType مع إضافة حالة ProductionOrder لتعدادي أنواع المرجعية (صرف واستلام)، وتأسيس حسابات WIP/FG ومفاتيح إعدادات production.*_account_id عبر AutoAccountService (نفس الفضاء المبذور في المرحلة 0)، وربط production_centers بمراكز التكلفة.labor_cost_rate (قرار D-06 — حقول HRM مؤجلة كتجاوز اختياري بعد الإصدار الأول، بلا تعديل مخطط في HRM)، وجدول قراءات عدادات cmms_asset_meters لتراكم دورات القوالب، وإضافة طريقة الإهلاك بالاستخدام UnitsOfProduction في المحاسبة (سجل الأصول الثابتة موجود ومتحقق منه).type على cost_centers (إنتاجي/خدمي/مساعد)، وتأسيس حسابات الانحرافات السبعة، ومدخلا FOVV: إعادة استخدام موازنات budget_lines القائمة + عمود حجم موازني على مركز العمل (لا هجرة Enum على products — طريقة التكلفة تسكن جدول الامتداد D-20).Purchases\Actions\CreatePurchaseRequest (إنشاء طلبات الشراء اليوم حبيس الـController)، وعمود promised_date على sales_orders بالاسم القانوني الوحيد (D-16) مع Action الكتابة SetPromisedDate، وبناء كيان تقويم العمل والورديات (فجوة لم تحلّها المواصفة أصلاً).batch_number نص حر)، وإضافة operation_no ومفاتيح خارجية حقيقية لجداول QMS.mfg_.ALTER) — لا تكرار لنمط force_create.draft→planned، confirmed→released، in_progress→in_process مع تحديث Angular في الإصدار نفسه.bom_operations إلى توجيه مُصدَّر في المرحلة 2 (توليد mfg_routing_header لكل BOM له عمليات)، ثم إيقاف الجدول القديم بعد إصدار انتقالي.اختبارات Pest وفق نمط النظام مع حد أدنى 80% تغطية قبل اعتماد أي مرحلة: المرحلة 1 تُثبت توازن كل قيد محاسبي وخصم المخزون وثبات اللقطة المجمّدة بعد الإطلاق؛ المرحلة 2 اختبارات وحدات خالصة لرياضيات التجاويف وتخصيص NRV؛ المرحلة 3 اختبار خاصية أن مجموع الانحرافات السبعة يساوي متبقي WIP حتى القرش؛ المرحلة 4 ملفات ذهبية لسيناريو الميلامين (6000 طبق، عبء 148% يُحل بقالب 4 تجاويف إلى 33 ساعة)؛ المرحلتان 5 و6 اختبارات تزامن الطرفيات وتتبّع النسب وعدم تقييم مخزون الأمانة.
| القرار المطلوب | الخيارات | التوصية |
|---|---|---|
| هوية الموديول | موديول Manufacturing جديد / توسعة Production القائم | التوسعة في المكان — لا بيانات ولا مراجع واردة، والواجهة والصلاحيات جاهزة |
| آلة حالات أمر الإنتاج | إبقاء الحالات الخمس الحالية / اعتماد آلة المواصفة (مع Closed وCancelled) | اعتماد آلة المواصفة مع هجرة تحويل |
| مالك مراكز التكلفة | الإنتاج / المحاسبة | المحاسبة (cost_centers) مع إضافة عمود type؛ مراكز العمل تشير إليها |
| طريقة التكلفة في الإطلاق الأول | معيارية من اليوم الأول / فعلية (FIFO/متوسط) أولاً ثم معيارية في المرحلة 3 | فعلية أولاً — القضبان جاهزة، والمعيارية تحتاج محرك الانحرافات |
| أنواع حركة المخزون الإنتاجية | قيم جديدة في MovementType / الاكتفاء بمرجعية reference_type | قيم جديدة (تقارير أنظف) بموافقة مالك المخزون |
| مصدر أجر العامل | حقول على employees / معدل مركز العمل / خدمة HR | معدل مركز العمل (labor_cost_rate) في الإصدار الأول؛ حقول HRM ومدخل GetLaborRate مؤجلان بعد الإصدار الأول كتجاوز اختياري (مطابق للخريطة) |
| توقيت التصنيع لحساب الغير | المرحلة 6 / تقديمه مبكراً | المرحلة 6، ويُقدَّم مكان المرحلة 4 فور توقيع عميل تشغيل فعلي |
| سياسة عجز الصرف الآلي (Backflush) | منع التأكيد / السماح بالسالب / صرف جزئي | المنع افتراضياً مع احترام allow_negative_stock لكل مخزن |
| طرق توزيع مراكز الخدمة | مباشر فقط / بناء Step-Down وReciprocal | المباشر أولاً (موجود عبر CostAllocationService) |
| إعادة تقييم المخزون عند تفعيل المعيارية | إعادة تقييم بقيد / الجديد فقط | إعادة تقييم بقيد، بتوقيع المحاسب القانوني |
| مصدر التنبؤات لـMPS | شاشة إدخال يدوي / استيراد / تأجيل MPS كلياً | إدخال يدوي + استهلاك أوامر البيع المؤكدة (MPS مبسّط) |
| إعادة تاريخ الوعد إلى المبيعات | كتابة آلية لتاريخ CTP / حقل استرشادي | حقل استرشادي أولاً ثم الأتمتة — العمود promised_date بالاسم القانوني الوحيد (D-16) |
| نقل البيانات اللحظي لشاشات الورش | Polling دوري / WebSockets عبر Laravel Reverb | Polling أولاً، وReverb إذا أضرّ التأخير بالتشغيل |
| نطاق الدفعات في المخزون | بُعد دفعات كامل على الأرصدة والطبقات / جدول نسب فقط | البُعد الكامل خلف مفتاح تفعيل لكل شركة (أكبر تغيير عابر للموديولات في الخطة) |
| نموذج أمانة مواد العميل (D-15) | علم is_consignment على المخازن / بُعد ملكية على الأرصدة والحركات | مخازن أمانة بالعلم في الإصدار الأول (نهج الخريطة)، والبُعد الكامل مؤجل |
| اسم عمود وعد التسليم (D-16) | promised_date / promised_delivery_date / production_promised_date | sales_orders.promised_date — اسم واحد في كل الوثائق، وAction باسم SetPromisedDate |
| الأسماء القانونية للأحداث والإجراءات (D-17) | تسميات الخريطة / تنويعات العقود وخارطة الطريق | اعتماد تسميات الخريطة: ProductionOrderReleased, MaterialIssued, OperationCompleted, ConfirmationPosted, GoodsReceiptPosted, ProductionOrderClosed, MrpRunCompleted؛ وإجراء الإقفال CloseProductionOrder |
| بنية بدائل BOM (D-18) | جدول ابن mfg_bom_substitutes / حقل JSON | الجدول الابن بأولوية ونسبة (نهج الخريطة) |
| ملكية مستندي الصرف والاستلام (D-19) | جداول تصنيعية فوق قضبان المخزون / استخدام مستندات المخزون مباشرة | الجداول التصنيعية نهائياً — مستندات المخزون بلا موضع لحقول نوع/مستوى الصرف والعملية والدرجة |
| موطن طريقة التكلفة لكل صنف (D-20) | جدول الامتداد mfg_item_mrp_settings / Enum على products | جدول الامتداد، ويُنشأ في المرحلة 3 (لا تضخيم لبطاقة الصنف؛ أعمدة التخطيط تُملأ بالمرحلة 4) |
| حالة جودة الاستلام قبل بوابات QMS (D-21) | مفرج عنه تلقائياً / معلّق افتراضياً | مفرج عنه تلقائياً في المراحل 1–5، وتُحسم من نتيجة الفحص اعتباراً من المرحلة 6 |
| سياسة انحراف حجم الأعباء الثابتة FOVV (D-22) | حسابه من موازنات budget_lines القائمة + حجم موازني جديد / تقليص النطاق | يُحسب عند وجود موازنة معتمدة (إعادة استخدام الموازنات القائمة + عمود حجم على مركز العمل)؛ وإلا تُعلن 6 انحرافات للفترة |
ست مراحل بأحجام S, L, L, M, L, M, L: المصنع يعمل فعلياً (مخزون وقيود حقيقية على أوامر يدوية) بنهاية المرحلة 1، وكل مرحلة لاحقة تضيف قدرة مكتملة بذاتها — تكلفة التحويل، ثم الانحرافات السبعة، ثم MRP/CRP، ثم شاشات الورش اللحظية، ثم التشغيل لحساب الغير والتتبع — دون أي إعادة عمل، لأن التكامل مع المخزون والمحاسبة مبنيّ من الأساس داخل كل مرحلة لا مؤجَّلاً إلى الخطوة الأخيرة كما اقترحت المواصفة.