🔌

عقود التكامل: كيف يتفاعل التصنيع مع كل موديول (Integration Contracts)

يحدّد هذا القسم العقود الملزمة بين وحدة التصنيع وكل وحدة قائمة في النظام، باتباع الوصفة المُجرَّبة في وحدة المختبرات: الاستدعاءات الأمامية عبر Actions، والتفاعلات الخلفية عبر الأحداث (Events). الخلاصة الإدارية: التصنيع يعتمد على ثماني وحدات قائمة ولا تعتمد عليه أي وحدة؛ نقاط البيع والمتجر الإلكتروني والفوترة الإلكترونية بلا أي ارتباط مباشر — يصلهم أثر التصنيع عبر المخزون والمبيعات فقط. المطلوب بناؤه عند الجيران محدود: سبعة مداخل خدمية رقيقة فقط، والباقي قضبان جاهزة ومُجرَّبة. هوية الوحدة الملزمة لكل عقد أدناه (القرار D-01): طبقة التصنيع تعيش داخل Modules/Production الموسَّعة — بادئة الصلاحيات production.*، مفتاح الترقيم production (موصول أصلاً)، وفضاء الإعدادات production.*، ومراكز العمل هي production_centers الموسَّعة لا جدولاً جديداً.

القاعدتان الحاكمتان

مصفوفة التفاعل مع كل موديول

الموديولماذا يأخذ منه التصنيعماذا يعطيهالآلية
النواة (Core)دليل الأصناف products، وحدات القياس والتحويلات product_units، الترقيم SequenceService، الإعدادات، نطاق الفروع، المرفقات، الموافقاتجدول امتداد إعدادات الصنف التصنيعية mfg_item_mrp_settings، تسجيل مساهم صلاحيات على البادئة القائمة production، إضافة حالة ApprovalModule::Productionقراءة + خدمات للأمام، وتسجيل عند الإقلاع
المخزون (Inventory)StockService للتسعير قراءةً فقط (getIssueCost/getProductCost)، وإجراءا ApproveIssue وApproveReceipt هما قناة تغيير الأرصدة الوحيدة — لا استدعاء مباشر لزيادة أو إنقاص رصيد بلا مستند، أرصدة التوفر، المستودعاتحجوزات المواد عند الإصدار (بناء جديد reserve/release)، صرف خام ← تحت التشغيل، استلام تام بتكلفة مُجمَّعة، مخازن أمانة بعلم is_consignment لمواد العميل (Toll — قرار D-15)Actions للأمام + مرجعية reference_type='production_order' + إضافة حالة ProductionOrder لتعدادي أنواع المرجعية
المشتريات (Purchases)أوامر الشراء المفتوحة كعرض زمني لاحتساب صافي الاحتياج (MRP)طلبات شراء آلية من تخطيط الاحتياجات تدخل دورة الاعتماد والتحويل القائمةAction جديد رقيق CreatePurchaseRequest يُستدعى للأمام
المبيعات (Sales)أوامر البيع المؤكدة = مصدر الطلب لخطة الإنتاج الرئيسية، ومحفّز أوامر التصنيع حسب الطلبتاريخ تسليم موعود محسوب بالطاقة (CTP) يُكتب رجوعاً في عمود promised_date (الاسم القانوني الوحيد — D-16)، وربط الطلب بالعرض عبر جدول mfg_peggings المملوك للتصنيعFK على جانب التصنيع فقط + Action جديد SetPromisedDate
الحسابات (Accounting)قناة القيد الوحيدة CreateJournalEntry، مراكز التكلفة وبُعد السطر، توزيع الخدمات CostAllocationService، زرع الحسابات، إغلاق الفتراتخمس عائلات قيود لكل أمر إنتاج + قيد امتصاص الأعباء الشهري، كل قيد موسوم بـsource_type='production_order' ومركز التكلفةAction للأمام حصراً؛ التسوية قبل CloseFiscalPeriod
الموارد البشرية (HRM)سلسلة هوية المشغّل employees.user_id، الورديات والحضور؛ معدل الأجر في الإصدار الأول من مركز العمل labor_cost_rate (قرار D-06)، وحقول معدلات HRM مؤجلة كتجاوز اختياري لاحقكميات أجر القطعة المؤكدة لكل موظف لتغذية الرواتب، وساعات العمل الفعليةمستمع داخل التصنيع يستدعي Action جديداً بملكية HRM (RecordPieceworkEntry) يكتب جدولاً تملكه HRM (hrm_piecework_entries) تقرؤه الرواتب — لا تقرأ HRM أي جدول mfg_* إطلاقاً
الجودة (QMS)نتائج الفحص التي تحكم تقدّم العملية وحالة جودة الاستلام (مفرج/معلّق/مرفوض)طلبات فحص أثناء التشغيل للعمليات الموسومة inspection_required، وبلاغات عدم مطابقة عند تجاوز عتبة الخردةActions جديدة CreateInspection/CreateNonConformance؛ الجداول جاهزة بعمود production_order_id
الصيانة (CMMS)سجل أصول الماكينات والقوالب cmms_assets، جداول الصيانة الوقائية بالعداد، ساعات التوقف لخصمها من الطاقة المتاحةعدادات أشواط القوالب التراكمية بعد كل تأكيد، وإطلاق أمر صيانة وقائية عند بلوغ العتبةFK على جانب التصنيع + Actions جديدة RecordMeterReading/CreateWorkOrder وجدول عدادات جديد + مدخل قراءة فقط GetDowntimeWindows يستهلكه CRP بدل أي قراءة مباشرة لجداول الصيانة
نقاط البيع والمتجر (POS/WebStore)توفر المنتج التام بشكل غير مباشر فقط: الاستلام يرفع رصيد المخزون الذي يقرآنه أصلاًصفر ارتباط مباشر — المخزون هو الوسيط
الفوترة الإلكترونية (EInvoicing)لا شيء مباشر؛ فاتورة أجر التشغيل لحساب الغير (Toll) تصدر كفاتورة مبيعات عادية وتمر عبر القناة القائمةصفر ارتباط مباشر — المبيعات هي الوسيط

عقود الأحداث المسماة

الحدثالمُصدِرالمستهلكونأهم حقول الحمولة
ProductionOrderReleasedإصدار أمر الإنتاج (مع تجميد نسخة BOM والمسار)حجز المواد، تجهيز خطط الفحص، إدراج أول عملية في طابور المحطةorder_id, product_id, quantity, production_type, material_ownership, bom_snapshot_id, routing_snapshot_id
MaterialIssuedترحيل صرف المواد بعد ApproveIssue والقيدمُجمِّع تكلفة تحت التشغيل، فك الحجز، تحديث النواقص ولوحة المتابعةissue_id, order_id, operation_no, lines[product, qty, unit_cost, batch_no, ownership], journal_entry_id
ConfirmationPostedترحيل تأكيد العملية (يرحّل أجور وأعباء مُحمَّلة) — الاسم القانوني الموحّد (قرار D-17)التقدّم الآلي للعملية التالية (حدث OperationCompleted)، مراكمة أشواط القالب، تغذية أجر القطعة عبر RecordPieceworkEntry، تقييم الخردة لبلاغ عدم مطابقةorder_id, operation_no, work_center_id, tool_id, employee_id, yield[grade, qty], scrap_quantity, labor_hours, reason_code
GoodsReceiptPostedترحيل استلام التام بعد ApproveReceipt والقيدإيفاء الربط مع أوامر البيع، تحديث التوفر والوعود، متابعة بوابة الجودة المعلّقةgr_id, order_id, lines[item, grade_code, qty, unit_cost, quality_status, batch_no], journal_entry_id
ProductionOrderClosedإقفال الأمر عبر CloseProductionOrder (احتساب الانحرافات السبعة وتصفير WIP) — الاسم القانوني الموحّد (قرار D-17)توجيه الانحرافات للمسؤولين حسب النوع وحدود التفاوت، قائمة مراجعة المعايير، تقرير باريتوorder_id, variances[type, amount, percent, band, owner_role], journal_entry_id
MoldShotCountReachedمُراكِم أشواط الأدوات عند بلوغ عتبة العدادإطلاق أمر صيانة وقائية في CMMS وتحويل حالة القالب إلى صيانة (يُستبعد من الطاقة)tool_id, cmms_asset_id, cycles_used, life_cycles, threshold
MrpRunCompletedتشغيل تخطيط الاحتياجاتإنشاء طلبات الشراء المخططة، إنشاء أوامر الإنتاج المخططة، رسائل الاستثناءاتmrp_run_id, planned_purchase_count, planned_order_count, exceptions[]

المداخل المسماة التي يستدعيها التصنيع

المدخلالموديولالحالةالاستخدام
CreateJournalEntryالحساباتجاهز ومُجرَّبكل قيود دورة التكلفة الخمسة وقيد الامتصاص الشهري
ApproveIssue / ApproveReceipt / StockService::getIssueCostالمخزونجاهزالصرف والاستلام والتسعير بطريقتي FIFO/المتوسط
StockService::reserve/releaseالمخزونبناء جديدحجز المواد عند الإصدار وفكّه عند الصرف (العمود موجود بلا منطق)
CreatePurchaseRequestالمشترياتبناء جديدتحويل مخرجات MRP إلى طلبات شراء داخل الدورة القائمة
SetPromisedDateالمبيعاتبناء جديدكتابة تاريخ التسليم الموعود المحسوب بالطاقة رجوعاً في promised_date
CreateInspection / CreateNonConformanceالجودةبناء جديدبوابات الفحص أثناء التشغيل وعند الاستلام وبلاغات الخردة
RecordMeterReading / CreateWorkOrderالصيانةبناء جديدعدادات أشواط القوالب وأوامر الصيانة الوقائية
GetDowntimeWindowsالصيانةبناء جديدمدخل قراءة فقط يخصم نوافذ الأعطال من طاقة CRP بلا قراءة جداول مباشرة
RecordPieceworkEntryالموارد البشريةبناء جديدتغذية أجر القطعة في جدول تملكه HRM تقرؤه الرواتب
GetLaborRateالموارد البشريةمؤجل بعد الإصدار الأولتجاوز اختياري لمعدل الموظف لاحقاً — الإصدار الأول يعتمد معدل مركز العمل (D-06)
CostAllocationService / SequenceService / SettingsServiceالحسابات / النواةجاهزتوزيع مراكز الخدمة، الترقيم المستندي، ربط الحسابات بالإعدادات

خريطة الترحيل المحاسبي لدورة التكلفة

  1. صرف المواد: مدين WIP / دائن مخزون الخام — بالكمية × تكلفة الصرف الفعلية — نوع production_material_issue.
  2. الأجور المباشرة عند التأكيد: مدين WIP / دائن أجور مُحمَّلة — بالساعات × المعدل أو الكمية × أجر القطعة — نوع production_labor.
  3. الأعباء الصناعية عند التأكيد: مدين WIP / دائن أعباء مُحمَّلة — بمُسبّب التكلفة × معدل التحميل (كلاهما على مركز العمل: عمود cost_driver الجديد × overhead_rate القائم) — نوع production_overhead؛ ومفاتيح الحسابات كلها في فضاء production.* الواحد الذي تبذره المرحلة 0 نفسها.
  4. الخردة غير الطبيعية: مدين مصروف خردة / دائن WIP — نوع production_scrap.
  5. استلام التام بالمعياري مع توزيع القيمة على الدرجات (A/B/C): مدين مخزون التام / دائن WIP — نوع production_receipt.
  6. التسوية عند الإقفال: الرصيد المتبقي في WIP يُحلَّل إلى الانحرافات السبعة (سعر واستخدام المواد ← المشتريات/الإنتاج، معدل وكفاءة العمالة ← الإنتاج، إنفاق وكفاءة الأعباء ← الإدارة، حجم الأعباء الثابتة ← المبيعات/الإدارة) ضمن حدود تفاوت: أقل من 2% طبيعي، 2–5% مراقبة، أكثر من 5% تحقيق — نوع production_variance.
  7. نهاية الشهر: مطابقة الأعباء المُحمَّلة مع الفعلية بعد توزيع مراكز الخدمة، وترحيل الفرق لقائمة الدخل قبل إغلاق الفترة المالية.

في أوامر التشغيل لحساب الغير (Toll) لا يُقيَّد أي عنصر مواد — مواد العميل أمانة بلا قيمة دفترية، وWIP يحمل تكلفة التحويل فقط، والإيراد فاتورة أجر تشغيل عبر المبيعات تمر للفوترة الإلكترونية كالمعتاد.

قانون الاعتماد

8وحدات يستوردها التصنيع للأمام
0وحدات تستورد التصنيع
7أحداث نطاقية مسماة
15مدخلاً خدمياً (منها 7 بناء جديد + 1 مؤجل)
7عائلات قيود محاسبية