هذا ملحق للتحليل المنشور يُفرّغ مقابلة مالك مصنع أدوية يعمل تصنيعاً للغير بالأوردر (Toll / Make-to-Order) إلى مواصفة متطلبات مرقّمة وقابلة للاختبار. الملحق يضيف واجهة العميل في بداية دورة الحياة — التسعير الاستكشافي، قائمة التركيب المبدئية، الباتش التجريبي، بوابة الدفعة المقدمة، وشاشات المراحل — وهي أمور لم يغطّها التحليل الأصلي. الملحق لا يُعيد فتح القرارات المُعتمدة سابقاً (مواد العميل والأمانة D-15، الحجز A5، آلة حالات الأمر، عائلات القيود في القسم 22)، بل يركّب المتطلبات الجديدة فوق تلك القضبان الجاهزة. كل ما يلي يعيش داخل Modules/Production الموسَّعة ببادئة mfg_* للجداول الجديدة وبادئة الصلاحيات production.*.
| كلام العميل | المصطلح القياسي للتصنيع للغير | الركيزة في Moon ERP (هذا الملحق) |
|---|---|---|
| دورة التكلفة الاستكشافية / تسعير مبدئي | تسعير عرض الأسعار (RFQ / quotation costing) | جدولان جديدان mfg_cost_estimates + mfg_cost_estimate_versions (التسمية القانونية من الملحق 34 — سُحبت الأسماء المؤقتة mfg_quotations/mfg_quotation_costings)؛ مستند العرض للعميل يُعاد استخدام SalesQuotation (D-29) |
| التركيبة، وR&D تعمل قائمة تركيب مبدئية | قائمة تركيب مبدئية/هندسية (Draft / Engineering BOM) | bill_of_materials بنوع bom_type=Engineering وحالة status=Draft (امتداد مُعتمد في خريطة 20) |
| عينة / باتش تجريبي للعميل | باتش تجريبي/نموذجي (Pilot / Sample batch) | جدول جديد mfg_trial_batches + أمر إنتاج حقيقي بوسم order_type=Trial |
| دفعة تحت حساب | بوابة دفعة العميل المقدمة (Customer advance gate) | جدول جديد mfg_customer_advances بمفتاح ملف الأمر case_id (الملحق 35) + شرط مانع للإصدار وللشراء بالنيابة معاً؛ القبض عبر سند القبض ReceiptVoucher/ApproveReceiptVoucher (التعديل المعتمد LA-1/D-33) |
| العميل يورّد خامته وتظل ملكه | مواد العميل / الإصدار الحر (أمانة، ملكية العميل) (Free-issue / consignment) | material_ownership=Customer + warehouses.is_consignment (قرار D-15 المُعتمد) |
| حجز الخامات لهذا الأوردر | حجز مواد مربوط بالأمر (Order-pegged reservation) | StockService::reserve()/release() (الفجوة A5) |
| واجهات لكل مرحلة إنتاجية تنقل الأوردر | شاشات بوابات المراحل (Stage-gate workspaces) | جدول جديد mfg_order_stage_gates بمفتاح ملف الأمر case_id يقود آلة مراحل الملف (الملحق 35) من الشاشات — وتفسير «مرحلة إنتاجية» (مراحل تجارية أم مراحل تصنيع فيزيائية) مُسجَّل سؤالاً مفتوحاً OQ-9 |
| كل المستندات مربوطة بأوردر العميل | نَسَب المستندات المربوط بالأمر (Order-pegged lineage) | mfg_peggings + وسم sales_order_id على كل مستند تصنيعي |
دورة لا تُحدث أي أثر مخزني أو محاسبي؛ مخرجها عرض سعر مؤقت يبدأ دورة الإنتاج إذا قَبِله العميل.
| الرقم | المتطلب | الجهة الفاعلة | المُحفّز | المخرجات | القاعدة الحاكمة |
|---|---|---|---|---|---|
| R-01 | استقبال طلب التسعير من العميل | المبيعات / الواجهة الأمامية | العميل يقدّم منتجاً بتركيبته ويطلب سعراً | mfg_cost_estimates بحالة Draft ومرقّم عبر SequenceService بمفتاح 'cost_estimate' | طلب التسعير ليس أمر بيع ولا يُحدث مخزوناً ولا قيداً؛ هو رأس نَسَب مربوط بأمر العميل |
| R-02 | R&D تبني قائمة تركيب مبدئية | قسم البحث والتطوير | إسناد الطلب إلى R&D (توجيه عمل لا حالة — آلة الملحق 34 الرشيقة) | قائمة تركيب bom_type=Engineering وstatus=Draft مرتبطة بالتقدير | القائمة المبدئية لا تُسحب إلى أمر إنتاج؛ فقط القائمة Active/Production قابلة للإصدار — مع استثناء واحد معتمد (D-32): أوامر Trial خلف الإعداد production.trial_allow_draft_bom؛ الأوامر العادية أبداً |
| R-03 | الحسابات تحتسب التكلفة المبدئية | الحسابات / مهندس التكلفة | جاهزية القائمة المبدئية (DraftBomReady ← الحالة Estimated عند الحساب) | mfg_cost_estimate_versions: خامات + عمالة + أعباء ← تكلفة الوحدة ← هامش ← سعر معروض + valid_until | يُعاد استخدام محرك التجميع نفسه (ComputeStandardCost) لكن على القائمة المبدئية وينتج تقديراً لا تكلفة معيارية؛ بلا قيد محاسبي |
| R-04 | إعادة التكلفة/العرض المبدئي للعميل | المبيعات | اعتماد التكلفة (Quoted) | مستند عرض سعر مؤرّخ الصلاحية يُرسل للعميل | العرض يحمل نافذة صلاحية صريحة؛ بعد انتهائها يلزم إعادة تسعير قبل التحويل لأمر |
mfg_cost_estimates بحالة Draft. R-01Engineering/Draft. R-02cost_driver ← نسخة في mfg_cost_estimate_versions (الحالة Estimated). R-03Quoted) ← المبيعات تعيد التكلفة المبدئية للعميل كمستند مؤرّخ الصلاحية. R-04| الرقم | المتطلب | الجهة الفاعلة | المُحفّز | المخرجات | القاعدة الحاكمة |
|---|---|---|---|---|---|
| R-05 | طلب باتش تجريبي/عينة | المبيعات ← R&D | العميل يطلب عينة للتقييم | mfg_trial_batches + أمر إنتاج بوسم order_type=Trial مربوط بالطلب | التجربة عملية حقيقية بتكلفة حقيقية تستهلك مواداً وتراكم تحت تشغيل وتُرحّل القيود كاملة؛ تنفّذها R&D وتُميَّز فقط بـTrial ليُفصل تقريرها وتُستبعد من المعايرة حتى تُعتمد |
| R-06 | تنفيذ وتكليف التجربة | R&D / خط التجربة | إصدار أمر التجربة | تأكيدات وتكلفة وعائد/خردة التجربة؛ actual_unit_cost وresult | تتبع التجربة نفس قضبان الإصدار→الصرف→التأكيد→الاستلام→الإقفال (بلا منطق ترحيل جديد). من يتحمل تكلفة التجربة وماذا يحدث عند فشلها غير محدَّدين — انظر OQ-1/OQ-3 |
| R-07 | تقييم العميل للتجربة | العميل (تُسجِّله المبيعات) | تسليم العينة للعميل بمستند تسليم العينة (R-20) — مخرَج التجربة يقيم في دلو التقييم لا في مخزون التام القابل للبيع | result = Passed | Failed | تسجيل القرار مشروط بوجود مستند التسليم (sample_delivery_doc_id)؛ الفشل يمنع إنشاء الأمر الرسمي حتى تنجح تجربة جديدة أو يتخلى العميل؛ إعادة التجربة ترجع إلى R-05 |
| الرقم | المتطلب | الجهة الفاعلة | المُحفّز | المخرجات | القاعدة الحاكمة |
|---|---|---|---|---|---|
| R-08 | التحويل إلى أمر عميل رسمي | المبيعات | موافقة العميل (بعد العرض و/أو نجاح التجربة) | أمر بيع مؤكد SalesOrder؛ الطلب Converted | كل المستندات من هنا تُربط بأمر العميل؛ الأمر الرسمي هو مرتكز الطلب لخطة الإنتاج والربط |
| R-09 | R&D تثبّت قائمة التركيب | البحث والتطوير | إنشاء الأمر الرسمي | ترقية القائمة إلى bom_type=Production وstatus=Active (نسخة نشطة واحدة لكل نافذة سريان) | القائمة النشطة فقط مؤهلة لتجميد لقطة الإصدار؛ الترقية انتقال حالة محكوم لا تعديل في المكان |
| R-10 | التخطيط يحدد الاحتياجات والجاهزية | التخطيط | تثبيت القائمة | قائمة الاحتياج (إجمالي←صافي)، النواقص، حكم الجاهزية، ومسوّدات طلبات شراء تُجهَّز ولا تُرفع | يجب فصل المواد المشتراة بمعرفة المصنع عن مواد العميل المورَّدة (إصدار حر، ملك العميل، في مخزن الأمانة — تُستلم بمستند R-19)؛ مواد العميل لا تُشترى ولا تُقيَّم. طلبات الشراء بالنيابة لا تُرفع إلا بعد بوابة الدفعة (R-11) — فهي علة الدفعة عند العميل (قاعدة U-6) |
| R-11 | بوابة الدفعة المقدمة | الحسابات (تسجّل) — البوابة في ReleaseProductionOrder | جاهزية التخطيط + الحاجة لشراء مواد بالنيابة | mfg_customer_advances بمفتاح الملف (Received) عبر سند قبض reference_type='mfg_order_case' وسطره دائن لحساب الدفعات — قيد السند نفسه (مدين نقدية / دائن دفعات العملاء — التزام) هو الترحيل الوحيد (LA-1/D-33؛ يُسحب تصميم CreateJournalEntry المباشر السابق) | البوابة تمنع الإصدار والشراء بالنيابة معاً (لا حجز ولا رفع طلبات شراء موسومة ولا تصنيع) حتى تُستوفى (مُستلمة أو مُعفاة بصلاحية)؛ تُسوَّى الدفعة لاحقاً على الفاتورة النهائية (production_advance_settlement). النسبة غير محددة — OQ-2/D-25 |
| R-12 | حجز المواد لهذا الأمر (أثر جانبي للإصدار R-13) | النظام (داخل ReleaseProductionOrder — وفق الصف 13 المعتمد: الحجز لا يسبق الإصدار أبداً) | تنفيذ ReleaseProductionOrder (الذي تسبقه بوابة الدفعة R-11) | كتابة reserved_quantity لكل مكوّن عبر StockService::reserve() وحجز الأداة | الحجز مربوط بالأمر فلا يَعِد أمران بنفس الرصيد؛ مكوّنات العميل تُحجز من مخزن الأمانة والمكوّنات المملوكة من المخزون الذاتي |
| R-13 | إنشاء أمر التصنيع (الإصدار) | التخطيط / مدير الإنتاج | استيفاء بوابة الدفعة (R-11) والوضع المالي سليم | الأمر Planned → Released؛ تجميد لقطة القائمة والمسار + تنفيذ الحجز كأثر جانبي (R-12)؛ حدث ProductionOrderReleased | الإصدار هو النقطة الوحيدة التي تجمّد اللقطة وتُطلق الحجز وتجهيز الفحص ذرّياً (يُصحَّح الترتيب الدائري السابق بين R-12 وR-13)؛ بوابة الدفعة تسبق هذا الانتقال |
| R-14 | صرف المواد | أمين المخزن | إصدار الأمر | mfg_material_issues ← ApproveIssue ← مدين تحت التشغيل / دائن خام (المملوكة)؛ مواد العميل حركة تتبّع فقط | تفرّع الملكية لكل سطر؛ مواد العميل لا تُدين خاماً ذاتياً ولا تُحمّل تكلفة مادة على WIP (تكلفة تحويل فقط)؛ يُستهلك الحجز هنا |
| R-15 | التصنيع (تأكيدات العمليات) | المشغّلون / الخط | الأمر تحت التشغيل | mfg_confirmations + قيود أجور وأعباء محمّلة؛ تقدّم آلي للعملية التالية | إعادة استخدام محرك التأكيد والتقدّم الآلي للمحطات دون تغيير |
| R-16 | الإنهاء والاستلام في مخزن التام | أمين المخزن / النظام | تأكيد العملية الأخيرة | mfg_goods_receipts ← ApproveReceipt ← مدين تام / دائن WIP (المملوك) أو فرع التشغيل: تام بملكية العميل + إخلاء خامة النيابة (production_toll_material_cogs، R-21) + الفاتورة النهائية | في أمر التشغيل يكون التام ملك العميل؛ الفاتورة النهائية — تُنشأ للأمام عبر الإجراء الرفيع الجديد Sales\CreateServiceInvoice (سدّ U-4؛ لا نداء متحكم ولا كتابة مباشرة) — تحمل أجر التحويل + سطر تمرير الخامة المشتراة بالنيابة (R-21) وتُسوَّى عليها الدفعة (production_advance_settlement)؛ وتمر للفوترة الإلكترونية |
mfg_order_stage_gates بمفتاح الملف (من حرّك الملف ومتى ومن أين إلى أين). كل انتقال محكوم بصلاحية production.*. المراحل التجارية (Quotation, Trial, Awaiting-Advance …) تعيش على آلة mfg_order_cases (الملحق 35) — آلة حالات أمر الإنتاج المعتمدة (Planned → Released → InProcess → Completed → Closed) لا تتسع ولا تُمسّ. الشاشات لا تتجاوز أي آلة حالات — الزر يستدعي نفس الـAction الذي تعرضه الواجهة البرمجية. تفسير «مرحلة إنتاجية» مُسجَّل OQ-9.ApproveReceipt بفرع تتبّعي بلا تقييم وبلا قيد (ملك العميل في عُهدة)، بمرجع الملف وتسجيل اللوطات في الأنساب؛ والمتبقي غير المستخدم يعود عند الإقفال بمستند الصرف المرآتي + تسوية ختامية (المستلَم − المصروف − خردة الأمانة D-30 = المرتجع). لا رصيد مخزني يُمسّ خارج مستندات الاعتماد أبداً.mfg_trial_batches — وتسجيل قرار العميل (R-07) مشروط بوجوده.production_toll_material_cogs، وتحمل الفاتورة النهائية سطر تمرير الخامة بالتكلفة (+ نسبة مناولة تعاقدية) بجوار أجر التحويل — فتتسوّى الدفعة (نسبة من تكلفة الخامة، D-25) على فاتورة تحتوي الخامة التي موّلتها: حساب النقدية يُقفل.mfg_trial_batches + أمر order_type=Trial تنفّذه R&D مربوطاً بالتقدير/الملف. R-05Passed أو Failed؛ الفشل ← إعادة تجربة أو تخلٍّ. R-07Production/Active. R-09Received عبر سند القبض (LA-1)؛ الإصدار والشراء بالنيابة محجوبان حتى الاستيفاء — وطلبات الشراء تُرفع الآن فقط. R-11ProductionOrderReleased. R-13 R-12| الكائن | الحكم | ملاحظات |
|---|---|---|
mfg_cost_estimates | جديد | رأس التقدير/طلب التسعير (الاسم القانوني من الملحق 34): العميل، المنتج المرشَّح، الكمية، draft_bom_id، sales_quotation_id (إعادة استخدام)، حالة رشيقة {Draft, Estimated, Quoted, Won, Lost}، وsales_order_id عند الفوز |
mfg_cost_estimate_versions | جديد | تقدير مُؤرشَف بالإصدارات غير قابل للتعديل: خامات/عمالة/أعباء، تكلفة الوحدة، الهامش، السعر المعروض، valid_until، أساس التسعير |
mfg_order_cases | جديد (الملحق 35) | مظلّة الدورة الثانية التجارية: آلة 14 مرحلة، حقول الدفعة، مخزن الأمانة، القائمة المعتمدة؛ ملف واحد ↔ N أوامر إنتاج — وآلة حالات أمر الإنتاج لا تُمسّ |
mfg_trial_batches | جديد | case_id، cost_estimate_id، production_order_id (أمر Trial)، الكمية، التكلفة الفعلية، النتيجة {Pending, Passed, Failed}، ومستند تسليم العينة (R-20). أُبقي كياناً مستقلاً (خلافاً لميل الدليل 32 لعلمٍ على الأمر) لأن الملف يمتد عبر N أوامر إعادة تجربة لكلٍّ حكمه وتسليمه |
mfg_customer_advances | جديد | case_id (دفعة واحدة للتعاقد — الملحق 35)، المبلغ، النسبة، الحالة {Due, Received, Waived}، receipt_voucher_id، journal_entry_id (قيد السند — LA-1)، applied_invoice_id |
mfg_order_stage_gates | جديد | جدول التدقيق والانتقال خلف الشاشات بمفتاح الملف (الملحق 35): الملف، من مرحلة، إلى مرحلة، الفاعل، لقطة البوابة، التوقيت |
| مستندا إدخال/إرجاع الأمانة + مستند تسليم العينة | امتداد/جديد رفيع | فرع تتبّعي لمستندي ApproveReceipt/ApproveIssue لخامة العميل (R-19) + مستند صرف تتبّعي من دلو التقييم للعينة (R-20) — لا مساس مباشراً بالأرصدة أبداً |
bill_of_materials.bom_type/status | امتداد مُعتمد | Engineering+Draft = القائمة المبدئية الاستكشافية؛ Production+Active = المثبّتة (لا عمود جديد) |
production_orders.order_type | امتداد | إضافة Trial للتعداد ليصبح التشغيل التجريبي أمراً مستقلاً منفصل التقرير |
ReleaseProductionOrder | امتداد | إضافة شرط بوابة الدفعة المقدمة قبل اللقطة والحجز — ونفس البوابة تحجب رفع طلبات الشراء بالنيابة |
| حساب وأنواع القيود | امتداد محاسبي | production_customer_advance (قيد السند — LA-1/D-33)، production_advance_settlement (التسوية عند الفوترة — اسم واحد قانوني)، production_advance_refund (D-35)، عائلة سياسة التجربة production_trial_absorb/_defer/_apply/_writeoff (D-23)، وproduction_toll_material_cogs (R-21)؛ + مفتاح إعداد production.customer_advance_account_id يُزرع عبر AutoAccountService |
| الرقم | السؤال المفتوح | لماذا يهم | الافتراض المقترح (بانتظار المجلس) |
|---|---|---|---|
| OQ-1 | من يدفع تكلفة الباتش التجريبي؟ العميل أم يتحملها المصنع؟ | يحدد هل تُفوتر التجربة للعميل أم تُرحّل كمصروف بحث وتطوير داخلي — يؤثر على قيد R-06 | سياسة لكل ملف trial_cost_policy ∈ {Bill, Absorb, CreditOnWin} بعائلة قيودها (الملحق 35 §1.1) — اعتُمدت D-23 وسُحب الاقتراح الثنائي السابق |
| OQ-2 | نسبة الدفعة المقدمة؟ ثابتة، لكل عميل، لكل أمر، أم على أساس تكلفة الخامات؟ | تحدد مبلغ بوابة R-11 وسياسة الائتمان | إعداد production.default_advance_percent مع تجاوز لكل أمر؛ الإصدار الأول = نسبة من تكلفة المواد المشتراة بالنيابة |
| OQ-3 | ماذا لو فشلت التجربة؟ إعادة (من يدفع؟)، إعادة تفاوض، أم تخلٍّ؟ | يؤثر على حلقة R-07 وملكية التكلفة وإغلاق النَسَب | إعادة التجربة مسموحة؛ ملكية التكلفة تتبع قرار OQ-1؛ تجارب فاشلة متكررة ← وسم تلقائي للمراجعة |
| OQ-4 | ملكية خردة مواد العميل المورَّدة (الإصدار الحر) — تُعاد، تُفوتر، أم تُشطب على العميل؟ | خردة الأمانة ملك العميل ولا يجوز تقييمها كمصروف خردة ذاتي | تتبّع خردة الأمانة منفصلة (بلا قيد خردة ذاتي)، تسوية/إعادة للعميل حسب العقد، تظهر في تقرير حركة أمانة |
| OQ-5 | فترة صلاحية سعر العرض (valid_until) | العروض المنتهية يجب إعادة تسعيرها قبل التحويل (R-04←R-08) | إعداد production.quote_validity_days (افتراضي 30)؛ العرض المنتهي يحجب التحويل حتى إعادة التسعير |
| OQ-6 | سياسة استرداد/مصادرة الدفعة عند إلغاء العميل بعد استلامها | معالجة التزام حساب دفعات العملاء | حسب العقد؛ الافتراضي = تُطبَّق على التكلفة المتكبَّدة والباقي قابل للرد |
| OQ-7 | هل شاشات المراحل حصرية بالدور (كل مرحلة لقسم) أم يمكن لمستخدم تغطية مراحل؟ | يحدد دقة الصلاحيات في R-17 | شريحة صلاحية لكل مرحلة تحت production.*؛ دور المشرف يغطي كل المراحل |
| OQ-8 | علاقة كمية التجربة الدنيا/المستهدفة بكمية الأمر الكامل | تسوية تكلفة التجربة على الأمر الكامل | كمية التجربة مستقلة؛ تكلفة الأمر الكامل يُعاد تقديرها من فعليات التجربة |
| OQ-9 | ما معنى «واجهات لكل مرحلة إنتاجية»؟ مراحل الملف التجارية (R&D/تخطيط/دفعة/حجز — قراءة الملحق 35) أم مراحل التصنيع الفيزيائية (خلط/تحبيب/كبس/تعبئة — مرجَّحة دوائياً)؟ | يحدد هل تكفي ورش الملف (المرحلتان 2–2.5) لإيفاء R-17 أم تلزم إضافةً ورش لكل عملية مسار (المرحلة 5) | يُسأل العميل عند بوابة المرحلة 0؛ الافتراض: ورش الملف 2–2.5، وإن تأكدت قراءة مراحل التصنيع فورش العمليات مع المرحلة 5 + شاشة مراقبة قراءة-فقط مبكرة في 2.5 |
cost_driver التي يسعّر بها التقدير تصل في المرحلة 2 — وقبل المرحلة 4 (التخطيط): mfg_cost_estimates + النسخ، دورة حياة القائمة المبدئية، mfg_trial_batches مع دلو التقييم ومستند العينة (تركب قضبان أوامر المرحلة 1 بوسم Trial)، وشاشات الدورة الأولى والملف. نواة الملف وبوابة الدفعة (mfg_customer_advances + شرط الإصدار) وجدول البوابات تصل أصلاً في المرحلة 2 — انظر الملحق 36 ثالثاً (الذي أعاد تسمية الموضع المؤقت «1.5»).