هذا الملف هو الدستور الحاكم لوحدة التصنيع بأكملها؛ كل ملفات المواصفات الأخرى (٠١ إلى ٠٦) ترث قواعده. المطلب الجوهري: بناء وحدة تصنيع عامة (Generic) تصلح لأي مصنع، تُركَّب فوق نظام ERP قائم لديه بالفعل المالية والمخزون والمشتريات والمبيعات والموارد البشرية. مصنع أدوات الميلامين يُستخدم فقط كمثال اختبار إجهاد لإثبات العمومية — وليس نموذجاً يُبرمَج بشكل ثابت.
تغطي الوحدة دورة الإنتاج الكاملة: البيانات الأساسية ← التخطيط ← التنفيذ ← التكاليف، إضافة إلى طبقة التحكم بأرضية المصنع Shop Floor Control (SFC) للتتبع اللحظي. ما يلي خارج النطاق ويتم التكامل معه لا إعادة بنائه: دفتر الأستاذ العام، نواة المخزون والمستودعات، نواة المشتريات، أوامر المبيعات، الموارد البشرية والرواتب.
تتدفق البيانات من الأعلى للأسفل، مع حلقة مغلقة: انحرافات التكاليف وتعارضات السعة في CRP تعود لتصحيح التخطيط.
| الطبقة | ملف المواصفة | السؤال الجوهري |
|---|---|---|
| البيانات الأساسية (Master Data) | 01_master_data.md | ما المنتج وكيف يُصنع؟ |
| التخطيط (Planning) | 02_planning.md | هل نستطيع صنعه؟ أي مواد؟ أي جدول زمني؟ |
| التنفيذ (Execution) | 03_execution.md | ماذا حدث فعلياً على أرضية المصنع؟ |
| التكاليف (Costing) | 04_costing.md | كم كلّف؟ وأين المشكلات؟ |
| التحكم بأرضية المصنع (SFC) | 05_shop_floor_control.md | أين كل أمر إنتاج الآن (لحظياً)؟ |
| التكاملات ونموذج البيانات | 06_integrations_and_data_model.md | كيف يتصل بالنظام + نموذج البيانات الكامل |
القاعدة الأهم على الإطلاق: لا تُبرمِج سلوك مصنع واحد بشكل ثابت أبداً. كل سلوك خاص بمصنع يجب أن يُعبَّر عنه بصيغة إعداد (حقل/تعداد) + منطق تفرّع، لا كمسار برمجي منفصل. القاعدة الذهبية للمطوّر: حين تجد سلوكاً "يفعله هذا المصنع وحده"، لا تفرّع الكود حسب المصنع — أضف حقل إعداد قيمته الافتراضية هي السلوك الشائع، وفرّع بناءً عليه.
| واقع خاص بالمصنع (الميلامين) | الآلية العامة في النظام |
|---|---|
| إنتاج حسب الطلب وللمخزون والتصنيع لدى الغير معاً | تعداد production_type + تفرّع |
| العميل يورّد المادة الخام (toll) | تعداد material_ownership {Own, Customer} |
| دورة كبس واحدة تنتج عدة قطع (قالب متعدد التجاويف) | حقل cavity_count على الأداة/العملية |
| دورة واحدة تنتج درجات A/B/C بأسعار مختلفة | منتجات مشتركة: الإنتاجية توزيع لا قيمة مفردة |
| عامل المكبس يُدفع بالقطعة، الباقون براتب ثابت | تعداد labor_calc {Hourly, PieceRate} |
| العامل يسحب البودرة لوردية كاملة | تعداد issue_level {PerOrder, PerShift, PerOperation} |
| القالب (لا الماكينة) هو قيد السعة | تجريد Resource بـ resource_type {Machine, Tool, Labor} |
| الطلاء يُرش بكميات ضئيلة | المادة تُعامَل كمستهلك أعباء (Overhead)، لا كبند في الـ BOM |
| القوالب المركّبة فقط هي التي تتآكل | الإهلاك بالاستخدام (عدد الدورات)، لا بالزمن التقويمي |
تنطبق هذه القواعد على كل كيان وعملية في الوحدة:
Release أمر الإنتاج يُؤخذ نسخة مجمّدة من الـ BOM والـ Routing النشطين؛ أي تغيير لاحق في البيانات الأساسية لا يؤثر على الأوامر المُصدَرة — حمايةً للتكلفة التاريخية ومسار التدقيق.Pegging يسجّل الروابط.Resource بأنواع مختلفة؛ السعة الفعلية للعملية مقيّدة بـالحد الأدنى المتاح عبر كل الموارد المطلوبة.حالة أمر الإنتاج order_status:
Planned — مُخطَّطReleased — مُصدَر (تؤخذ هنا اللقطة المجمّدة)InProcess — قيد التنفيذCompleted — مكتملClosed — مُغلقحالة العملية operation_status:
Waiting — منتظرReady — جاهزInProgress — قيد التشغيلCompleted — مكتمل| التعداد | القيم |
|---|---|
production_type | MakeToStock, MakeToOrder, AssembleToOrder, TollManufacturing |
material_ownership | Own, Customer |
procurement_type | Buy, Make |
costing_method | Standard, Actual, Average, FIFO |
labor_calc | Hourly, PieceRate |
issue_type | Manual, Backflush, AutoIssue |
issue_level | PerOrder, PerShift, PerOperation |
resource_type | Machine, Tool, Labor |
lot_sizing_rule | Exact, Fixed, MinMax, EOQ, PeriodOrder |
order_status | Planned, Released, InProcess, Completed, Closed |
operation_status | Waiting, Ready, InProgress, Completed |
| المكوّن | الحالة في التحليل | ملاحظة للمطوّر |
|---|---|---|
| البيانات الأساسية (BOM, Routing, WC) | محدد بالكامل | أضف الأداة/القالب كمورد من الدرجة الأولى |
| التخطيط (MPS, MRP, CRP) | محدد بالكامل | جدولة APS التفصيلية فجوة معروفة (ملف ٠٢) |
| التنفيذ (PO, Issue, Confirm, GR) | محدد بالكامل | يشمل الدرجات والدفع بالقطعة وصرف الوردية |
| التكاليف (طرق، عناصر، مراكز، انحرافات) | محدد بالكامل | تخصيص المنتجات المشتركة مُدرَج |
| التحكم بأرضية المصنع (SFC) | محدد منطقياً | طبقة الواجهات/الطرفيات تُبنى (ملف ٠٥) |
| الجودة، إدارة القوالب، الصيانة، OEE | مُعرَّف لا محدد | مراحل مستقبلية — الواجهات مُشار إليها |
Modules\Accounting\Actions\CreateJournalEntry فقط، والمخزون عبر وحدة Inventory، والمشتريات/المبيعات/الموارد البشرية عبر وحداتها القائمة — مطابق لمبدأ "خارج النطاق" في المواصفة.Production الحالية تملك بالفعل BillOfMaterials وBomComponent/Operation وProductionOrder وProductionCenter — أساس يُبنى عليه، لكنه يحتاج توسعة لتعدد التجاويف والمنتجات المشتركة وتجريد الموارد.Enums داخل الوحدة وفق وصفة Moon ("enums per state machine")؛ وآلتا الحالة order_status/operation_status تُنفَّذان كآلات حالة بأحداث ومستمعين.PostLabInvoice → CreateJournalEntry): صرف/تأكيد/استلام كل منها يستدعي قيداً مزامناً.SequenceService، وBaseModel/TenantAware يضمنان company_id ونطاق الفرع عبر DataScope — مطابق لوصفة الوحدات السريرية.Core PermissionDependencyRegistry ببادئة mfg، تماماً كما تفعل LIS.