⚙️

التنفيذ: أوامر الإنتاج والصرف والتأكيد والاستلام (Execution)

طبقة التنفيذ هي «الواقع»: تحوّل الخطط إلى أحداث فعلية مُسجَّلة على أرض المصنع. الفارق بين المُخطَّط والفعلي يُنتج الانحرافات (تُعالَج في ملف التكاليف). تتكوّن من أربع وثائق متسلسلة — أمر الإنتاج، ثم صرف المواد، ثم تأكيد العمليات، ثم استلام المنتج التام — وكل حدث فعلي فيها يُولِّد قيداً محاسبياً فورياً في دفتر الأستاذ العام.

التسلسل العام للطبقة

  1. Production Order — أمر الإنتاج (العقد الداخلي المُصرِّح بالإنتاج)
  2. Material Issue — صرف المواد من المخزون الخام إلى تحت التشغيل
  3. Confirmation — تأكيد ما نُفِّذ فعلياً لكل عملية (كميات، عمالة، هالك)
  4. Goods Receipt — استلام المنتج التام إلى مخزون الأصناف الجاهزة

كل وثيقة لاحقة ترتبط بأمر إنتاج محدّد، وتورِث القواعد الحاكمة من ملف المبادئ: اللقطة المُجمَّدة، آلات الحالة، الربط متعدد-إلى-متعدد بين الطلب والإمداد، التكرار متعدد المستويات، التهيئة بدل الترميز، وقيد محاسبي لكل حدث فعلي.

3.1 أمر الإنتاج (Production Order)

العقد الداخلي الذي يُصرِّح بإنتاج كمية محددة من منتج محدد. الفكرة الجوهرية هي اللقطة المُجمَّدة: عند الانتقال من Planned إلى Released يأخذ الأمر نسخة مُجمَّدة من شجرة المكوّنات BOM ومسار التشغيل Routing النشطين؛ أي تعديل لاحق على البيانات الرئيسية لا يؤثر على هذا الأمر — حمايةً للتكلفة التاريخية ومسار التدقيق.

حقول رأس الأمر Production_Order_Header

الحقلالنوع / القيمالملاحظة
order_noمفتاح أساسيرقم الوثيقة
order_typeStandard, Rework, Repairنوع الأمر
product_id, quantityمرجع + رقمالمنتج والكمية المطلوبة
production_typeMakeToStock, MakeToOrder, TollManufacturingيقود منطق التفرّع (يضيف ملف 00 أيضاً AssembleToOrder)
material_ownershipOwn, Customer«Customer» = تصنيع لدى الغير / بضاعة أمانة
start_date, finish_dateتاريخالتواريخ المخطَّطة
statusPlanned, Released, InProcess, Completed, Closedآلة الحالة أدناه
bom_snapshot_id, routing_snapshot_idمرجعمرجعا اللقطة المُجمَّدة
tool_idمرجعالقالب / الإسطمبة المُخصَّصة
source_orders[]قائمةالربط Pegging — أوامر البيع التي يخدمها هذا الأمر
wip_accountمرجع محاسبيحساب «تحت التشغيل» الذي يُرحَّل إليه

بنود المكوّنات Order_Component (نسخة مُجمَّدة من سطور الـ BOM)

الحقلالملاحظة
component_idالمادة / المكوّن
required_quantityالكمية المطلوبة = bom_qty × order_qty × (1 + scrap%)
issued_quantityإجمالي المصروف حتى الآن
reserved_quantityالمحجوز عند الإطلاق
operation_seqالعملية التي تستهلك المكوّن

بنود العمليات Order_Operation (نسخة مُجمَّدة من مسار التشغيل)

الحقلالملاحظة
operation_no, work_center_id, tool_idتعريف العملية ومركز العمل والأداة
planned_setup_time, planned_run_timeالمعايير المخطَّطة
actual_setup_time, actual_run_timeالأزمنة الفعلية
statusWaiting, Ready, InProgress, Completed — تستهلكها مراقبة أرض المصنع SFC
actual_start_time, actual_end_timeطوابع زمنية
confirmed_quantity, scrap_quantityالكميات الفعلية لكل عملية

آلة الحالة لأمر الإنتاج (الانتقالات وآثارها)

  1. Planned → Released: أخذ لقطة الـ BOM والـ Routing؛ حجز المواد؛ حجز الأداة والطاقة
  2. Released → InProcess: بدء أول صرف أو تأكيد؛ يبدأ تتبّع الزمن
  3. InProcess → Completed: اكتمال كل العمليات؛ الكمية المؤكّدة ≈ كمية الأمر
  4. Completed → Closed: إقفال «تحت التشغيل»؛ حساب الانحرافات النهائية؛ منع أي ترحيلات لاحقة

3.2 صرف المواد (Material Issue)

أول حركة محاسبية حقيقية: تنتقل المادة من مخزون الخام RM إلى «تحت التشغيل» WIP. لكل وثيقة صرف نوع وتوقيت ومستوى تفصيل.

حقول الصرف Material_Issue_Header و Material_Issue_Line

الحقلالنوع / القيمالملاحظة
issue_no, issue_dateمفتاح + تاريخ
issue_typeManual, Backflush, AutoIssueيختلف التوقيت
issue_levelPerOrder, PerShift, PerOperationدرجة تفصيل الصرف
order_no, operation_no, issuer_id, warehouse_fromمراجعالأمر/العملية/الصارف/المخزن المصدر
statusDraft, Posted, Reversedحالة الوثيقة
material_code, quantityصنف + كميةبند الصرف
batch_no/lot_no, bin_locationقيمتتبّع اللوط والموقع
cost_price, total_costتكلفةحسب costing_method (FIFO/LIFO/Standard/Average)
ownershipOwn, Customerتتبّع بضاعة الأمانة

أنواع الصرف (يختلف التوقيت)

النوعالسلوك
Manualالعامل يصرف صراحةً عند الحاجة بالكمية الفعلية — الأدق والأبطأ
Backflushصرف تلقائي عند التأكيد؛ الكمية = المُنتَج × الـ BOM؛ الفارق → انحراف
AutoIssueكل المواد تُصرف دفعة واحدة عند الإطلاق — يناسب الأوامر الصغيرة

خوارزمية الصرف والقيد المحاسبي

  1. التحقق: الأمر Released/InProcess؛ المتاح ≥ الكمية؛ المادة ضمن لقطة الـ BOM
  2. جلب التكلفة cost_price = get_cost(material, costing_method)
  3. إنقاص المتاح والمحجوز؛ زيادة WIP[order] += qty × cost_price
  4. الترحيل: Debit WIP / Credit Raw Materials بمقدار qty × cost_price
  5. تحديث order_component[material].issued += qty

فرع الأمانة: إذا كانت ملكية المادة للعميل تُصرف من مخزون أمانة منفصل لا من مخزونك، والمحاسبة تختلف (لا يوجد «دائن مخزون خام» بتكلفتك لأنها ليست أصلاً لك)؛ تُسجَّل حركة «استهلاك مادة العميل» للتتبّع فقط.

3.3 التأكيد (Confirmation)

يسجّل ما نُفِّذ فعلياً من الأمر لكل عملية: كم أُنتِج، كم من العمالة/زمن الآلة استُهلك، وكم الهالك — وهو المصدر الحقيقي للأرقام الفعلية مقابل المعايير.

كيانات التأكيد

الكيان / الحقلالملاحظة
Confirmation_Headerconfirmation_no, order_no, operation_no, confirmation_type {Partial,Final,Reversal}, operator_id, work_center_id, shift, timestamp
Confirmation_Yield (مُعمَّم — توزيع لا رقم مفرد)grade_code (A/B/C... أو درجة واحدة للمصانع العادية)، quantity، unit_sale_price (لتوزيع تكلفة المنتجات المشتركة)
Confirmation_Detailscrap_quantity, rework_quantity, setup_time_actual, run_time_actual, labor_hours, machine_hours, reason_code (سبب الهالك/التأخير لتحليل باريتو)

القاعدة الجوهرية للمردود

المؤشرالمعادلة
متطابقة المدخلاتΣ(grade quantities) + scrap = total_input
نسبة المردود yield%Σgrades / input
نسبة المرور من أول مرة first_pass%grade_A / input (مؤشر جودة رئيسي)

خوارزمية التأكيد (مع الـ Backflush والقيود)

  1. التحقق: الأمر InProcess؛ العملية مفتوحة
  2. إن كانت العملية بها مواد Backflush: consumed = total_input × BOM_qty وصرف تلقائي
  3. تكلفة العمالة حسب labor_calc: Hourly → labor_hours × labor_rate أو PieceRate → produced × piece_rate
  4. machine_cost = machine_hours × machine_rate؛ overhead = (labor_hours + machine_hours) × overhead_rate
  5. الترحيل: Debit WIP / Credit Labor Applied + Machine Applied + Overhead Applied
  6. الهالك: Debit Scrap Expense / Credit WIP بمقدار scrap × unit_cost
  7. إن كان Final: إقفال العملية؛ وإن لم تكن الأخيرة: تحويل العملية التالية إلى Ready (← SFC)

توزيع تكلفة المنتجات المشتركة (طريقة صافي القيمة البيعية NRV)

الخطوةالمعادلة
إجمالي القيمة البيعيةtotal_sale_value = Σ(grade.qty × grade.price)
التكلفة المخصَّصة للدرجةgrade.allocated_cost = total_cost × (grade.qty × grade.price) / total_sale_value
تكلفة الوحدة للدرجةgrade.unit_cost = grade.allocated_cost / grade.qty

الدرجة الأعلى سعراً تمتصّ تكلفة أكبر؛ والمصانع العادية تستخدم درجة واحدة فيؤول الأمر إلى السلوك المعياري المفرد.

3.4 استلام المنتج التام (Goods Receipt)

الخطوة الأخيرة: يدخل المنتج التام المخزون، فيُقفَل «تحت التشغيل» ويُفتَح مخزون الأصناف الجاهزة FG، محوِّلاً التكلفة المتراكمة إلى تكلفة منتج جاهز للبيع.

كيانات الاستلام

الكيان / الحقلالملاحظة
Goods_Receipt_Headergr_no, gr_date, order_no, receipt_type {Full,Partial}, warehouse_to, receiver_id, status {Draft,Posted,Reversed}
Goods_Receipt_Line (سطر لكل درجة)item_id, received_quantity, grade_code, batch_no/lot_no, bin_location, cost_per_unit (= allocated WIP / qty), quality_status {Released,OnHold,Rejected}

خوارزمية الاستلام (التكلفة المعيارية)

  1. Total_WIP = Σ(material + labor + machine + overhead)
  2. متعدّد الدرجات: تقسيم إلى سطور، لكلٍّ تكلفته المخصَّصة (راجع 3.3)؛ زيادة FG_Inventory[item, grade]
  3. الترحيل: Debit FG Inventory (standard×qty) + Debit Variance Acct (الفارق) / Credit WIP (الفعلي)
  4. إن Full: الأمر → Completed
  5. إن مرتبطاً بأوامر بيع: توزيع الكميات على العملاء؛ ثم حساب الانحرافات النهائية والأمر → Closed

مثال الاستلام متعدّد الدرجات (ميلامين): أمر مكبس 100 طبق → 3 سطور + هالك: A: 70 @ 11.77، B: 18 @ 7.06، C: 7 @ 3.53، هالك 5؛ القيد: Debit FG-A 824 / FG-B 127 / FG-C 25 / Scrap 24 ; Credit WIP 1000.

فرع التصنيع لدى الغير: الناتج يذهب لملكية العميل لا لمخزونك؛ الإيراد = أجر التحويل فقط (Debit Customer / Credit Toll-service revenue)؛ ويُقفَل «تحت تشغيل التحويل» (عمالة+آلة+غير مباشر، بلا مواد).

بوابة الانحراف النهائي: عند الإقفال تُحسَب وتُحلَّل الانحرافات (سعر/استخدام/عمالة/غير مباشر) وهي مدخل طبقة التكاليف (ملف 04).

القيود المحاسبية التي تولّدها هذه الطبقة

5أنواع قيود (صرف، تحويل، هالك، استلام، Toll)
4وثائق متسلسلة بآلات حالة مستقلة
11+تعدادات (Enums) حاكمة للسلوك

ماذا يعني هذا لـ Moon ERP