خطة معالجة الثغرات: التخطيط + ملكية الخامات المختلطة والأمانة

تحليل الوضع الحالي + الحل المقترح للمعضلات الثلاث التي رفعها المالك

1. المعضلات الثلاث (كما طُرحت)

2. الوضع الحالي (تشخيص صريح)

القدرةالحالةالتفصيل
ملكية على مستوى الأمر (own/customer)موجودproduction_orders.material_ownership + isToll()
ملكية على مستوى سطر الصرفموجودmfg_material_issue_lines.ownership — البنية التحتية موجودة فعلاً
الترحيل المحاسبي «أمان الأمانة»موجودownTotalCost() يستبعد سطور العميل من WIP — سطر بسطر
إعلان ملكية لكل مكوّن في المعادلة (BOM)ناقصBomComponent مافيهوش حقل ملكية — المعادلة كلها أمانة أو كلها ملكي
انقسام صنف واحد (جزء مني + جزء العميل)ناقصالسطور بتتختم كلها من علم الأمر — مفيش منطق يقسّم مكوّن لسطرين
دفتر مخزون أمانة العميل عندكناقصمفيش جدول لرصيد خامة العميل عند المصنع
الاستلاف + التسوية (ترجيع/شراء)ناقصمفيش آلية «المصنع استلف من العميل ومدين له / هيشتري»
دفعة مقدّمة للعميل (Advance)موجودdown_payment_total → حساب «أمانات العملاء»
مرحلة التخطيط (MRP/MPS)رفيعةMRP يولّد أوامر مخططة للمبيعات، لكن أوامر الأمانة بتتخطّى التخطيط خالص

الخبر الجيد

أصعب جزء محاسبيًا (الملكية على مستوى السطر + استبعاد تكلفة العميل من WIP) موجود وشغّال. الناقص بمعظمه إضافي (additive) فوق الأساس ده — مش إعادة بناء.

3. الحل — المعضلة B: ملكية مختلطة + انقسام الصنف Phase A — سريع

نستغل بنية «السطر» الموجودة، ونضيف إعلان ملكية لكل مكوّن + منطق تقسيم عند بناء مواد الأمر.

نموذج البيانات (إضافات)

الجدولالإضافةالمعنى
bom_componentssupply_source enum {factory, customer, split}
customer_qty_per_unit decimal (للـsplit)
المعادلة بتعلن: المكوّن ده يجيبه العميل، ولا المصنع، ولا مقسوم — وكام من العميل لكل وحدة منتج
mfg_toll_contract_lines(اختياري) override للمكوّنات الي العميل بيوفّرهاتعديل لكل عقد فوق افتراض الـBOM
mfg_material_issue_linesلا تغيير — ownership موجودالمكوّن المقسوم = سطرين: سطر own + سطر customer

المنطق (Build-Components)

التكلفة التقديرية

منخفضة — حقول على BomComponent + منطق تقسيم في build-components + UI. يستفيد كليًا من البنية الموجودة.

4. الحل — المعضلة A: مرحلة تخطيط واضحة Phase B — متوسط

نضيف مرحلة «تخطيط وجاهزية المواد» صريحة بين الطلب (عقد أمانة / أمر بيع) وأمر الإنتاج — ونمرّر أوامر الأمانة من خلالها (بدل ما تتخطّاها).

المرحلة الجديدة (Production Plan / Material Readiness)

الطلبعقد أمانة / أمر بيع
التخطيطتفجير BOM + جاهزية المواد
قرار الموادملكي/أمانة/شراء لكل مكوّن
إطلاق أمر الإنتاججاهز ماديًا

قرار مطلوب

هل المرحلة دي إلزامية لكل أمر (يمنع الإطلاق قبل الجاهزية) ولا اختيارية (تحذير فقط)؟

5. الحل — المعضلة C: مخزون أمانة العميل + الاستلاف والتسوية Phase C — الأثقل

الجزء الأكبر — لأنه مفقود تمامًا. نضيف دفتر مخزون أمانة لخامة العميل عند المصنع + آليات الاستلاف والتسوية.

نموذج البيانات (جديد)

الجدول الجديدالغرض
mfg_consignment_receiptsاستلام خامة من العميل (يدخل كمخزون مملوك للعميل عند المصنع، بدون قيمة في مخزونك)
mfg_consignment_ledgerرصيد لكل (عميل، خامة): مستلَم − مصروف لأوامر العميل − مُستلَف لأوامرك − مُسوّى
mfg_consignment_settlementsتسوية الاستلاف: ترجيع (نفس الخامة) أو شراء (تبقى أنت المشتري → فاتورة شراء من العميل-كمورّد)

السيناريوهات

قرارات مطلوبة

  • سعر الاستلاف/الشراء: تكلفة العميل المعلنة، ولا سعر السوق، ولا متفق عليه في العقد؟
  • التسوية الافتراضية: ترجيع أم شراء؟
  • هل نتتبّع خامة العميل بدفعات/صلاحية (دوائي) ولا كميات فقط؟

6. خطة التنفيذ المقترحة (مراحل)

المرحلةتحلّالحجمالمخرجات
Aالمعضلة B (ملكية لكل مكوّن + انقسام)سريع / إضافيحقول BOM + منطق تقسيم + UI المواد + اختبارات + تقرير «ملكية مواد الأمر»
Bالمعضلة A (مرحلة التخطيط)متوسطلوحة تخطيط/جاهزية + تمرير الأمانة عبر التخطيط + توليد طلبات شراء للنواقص الملكية
Cالمعضلة C (الأمانة والاستلاف)الأثقلدفتر مخزون الأمانة + استلام/صرف/استلاف + تسوية (ترجيع/شراء) + التكامل المحاسبي

التوصية

نبدأ Phase A (أعلى قيمة لأقل مجهود — يستغل الأساس الموجود ويحلّ الملكية المختلطة والانقسام)، وبعدها B (التخطيط)، وأخيرًا C (الأمانة والاستلاف — الأثقل، بعد تثبيت القرارات أعلاه). كل مرحلة بنفس دورة الأوتوبايلوت: سبيك → أيجنتس متوازية → جِيت → مراجعة → نشر → بوش.

7. القرارات المطلوبة منك قبل البدء