الدورة المحاسبية الكاملة لوحدة المقاولات

دليل تدريبي عملي للمحاسب المبتدئ — نظام KEMTOVA ERP
مشروع واحد… من العطاء حتى الإقفال، بأرقام حقيقية تُنفَّذ خطوة بخطوة داخل البرنامج
وحدة المقاولات (CONTR) · جميع القيود المذكورة في هذا الدليل منقولة حرفياً من الكود المُنفِّذ

المحتويات

  1. كيف تقرأ هذا الدليل
  2. الجزء الأول: أساسيات لا غنى عنها
  3. لماذا محاسبة المقاولات مختلفة؟
  4. خريطة الوحدة والدورة الكاملة
  5. جدول الشاشات ومساراتها في البرنامج
  6. قبل أن تبدأ: الإعدادات والحسابات
  7. بيانات مثالنا الكامل
  8. العطاءات والتقدير — /contr/tenders
  9. العقود وجدول الكميات — /contr/contracts
  10. موازنة تكلفة العقد — /contr/budgets
  11. هيكل تجزئة العمل — /contr/wbs
  12. البرنامج الزمني الشبكي — /contr/schedule
  13. خطابات الضمان — /contr/guarantees
  14. الدفعة المقدمة من المالك — /contr/receipts
  15. الموارد التشغيلية — /contr/resources
  16. تكاليف العقود: صرف المواد — /contr/costs
  17. تكاليف العقود: إيجار المعدات
  18. كشوف التشغيل — /contr/timesheets
  19. عقود الباطن — /contr/subcontracts
  20. دفعات الباطن المقدمة — /contr/sub-advances
  21. مستخلصات الباطن — /contr/sub-billings
  22. المستخلص الأول — /contr/billings
  23. أوامر التغيير — /contr/variations
  24. المستخلص الثاني
  25. الاعتراف بالإيراد — /contr/revenue
  26. مطابقة التكلفة بالقيمة (CVR) — /contr/cvr
  27. منحنى S — /contr/s-curve
  28. التدفق النقدي المتوقع — /contr/cash-flow
  29. سجلات الموقع — /contr/site
  30. ضبط المستندات — /contr/documents
  31. سجل المطالبات — /contr/claims
  32. المشاريع المشتركة — /contr/joint-ventures
  33. الرواتب وملف حماية الأجور — /contr/payroll
  34. مكافأة نهاية الخدمة — /contr/end-of-service
  35. المستخلص الختامي والإفراج عن المحتجزات وإقفال العقد
  36. لوحة المقاولات وربحية العقود
  37. ميزان المراجعة المصغّر وإثبات التطابق
  38. ملحق أ: خريطة مفاتيح الحسابات
  39. ملحق ب: من يُغذّي مَن — سلسلة المستندات
  40. ملحق ج: تنبيهات وملاحظات على السلوك الحالي

1 · كيف تقرأ هذا الدليل

هذا الدليل ليس شرحاً نظرياً. هو تمرين واحد متصل: عقد مقاولة بقيمة مليون ريال، نتابعه من لحظة تسعير العطاء حتى إقفاله، ونمرّ في الطريق على كل شاشة من شاشات وحدة المقاولات. كل رقم في الدليل مُشتقّ من الرقم الذي قبله، وفي النهاية نضع ميزان مراجعة مصغّراً يثبت أن الأرقام تتطابق.

في كل شاشة ستجد أربعة أشياء بالترتيب نفسه:

وعدٌ بالدقّة كل قيد في هذا الدليل مأخوذ من الكود المُنفِّذ في النظام، لا من قواعد محاسبية عامة. حيث يوجد مستند لا يُنشئ قيداً محاسبياً (وهذا يحدث كثيراً في المقاولات) قُلنا ذلك صراحةً ووضعنا عليه شارة لا يُرحَّل. والمستندات التي تُرحّل تحمل شارة يُرحَّل.

الرموز المستخدمة

2 · الجزء الأول: أساسيات لا غنى عنها

إن كنت تعرف الفرق بين المدين والدائن فاقفز إلى الفصل الثالث. وإن لم تكن، فهذه الصفحتان تكفيان تماماً لفهم كل قيد في هذا الدليل.

2.1 المعادلة الوحيدة في المحاسبة

كل ما تملكه المنشأة (الأصول) إمّا مموَّل من الغير (الالتزامات) أو من أصحابها (حقوق الملكية):

الأصول = الالتزامات + حقوق الملكية

وبما أن الطرفين يجب أن يظلا متساويين دائماً، فأي عملية تُسجَّل مرتين: مرة على حساب ومرة على حساب آخر، بالمبلغ نفسه. هذا هو «القيد المزدوج»، وهو سبب وجود عمودَي مدين ودائن.

2.2 مدين ودائن — القاعدة العملية

«مدين» و«دائن» ليسا «جيد» و«سيئ». هما ببساطة الجانب الأيمن والأيسر من الحساب. القاعدة التي تحتاجها:

نوع الحسابمثاليزيد بـينقص بـ
أصلالبنك، العملاء، المخزون، المحتجزات لدى العملاءمديندائن
التزامالموردون، ضريبة مخرجات، دفعات مقدمة من الملاكدائنمدين
حقوق ملكيةرأس المال، الأرباح المرحّلةدائنمدين
إيرادإيرادات العقوددائنمدين
مصروفمواد المشاريع، عمالة المشاريع، مقاولو الباطنمديندائن
لماذا الإيراد دائن والمصروف مدين؟ لأن الربح يخصّ أصحاب المنشأة، والربح جزء من حقوق الملكية التي تزيد بالدائن. فالإيراد — الذي يزيد الربح — يزيد بالدائن، والمصروف — الذي ينقص الربح — يزيد بالمدين. لا تحفظها؛ افهم أنها امتداد للمعادلة أعلاه.

2.3 ما هو «قيد اليومية»؟

قيد اليومية هو تسجيل عملية واحدة على شكل سطرين أو أكثر، مجموع مدينها = مجموع دائنها. مثال بسيط: استلمنا 100,000 ريال من المالك دفعةً مقدمة:

مثال تعليمي — استلام نقدية
الحسابمديندائن
1010201 البنك الرئيسي (أصل زاد)100,000.00
20104 دفعات مقدمة من الملاك (التزام زاد — المال ليس لنا بعد)100,000.00
الإجمالي100,000.00100,000.00

لاحظ العبارة المفتاحية: المال ليس لنا بعد. النقد دخل البنك (أصل زاد ← مدين)، لكننا لم ننفّذ عملاً مقابله، فنحن مدينون به للمالك (التزام زاد ← دائن). هذه هي روح محاسبة المقاولات كلها.

2.4 مصطلحات ستتكرر

المصطلحالمعنى
الترحيل (Post)تحويل المستند إلى قيد فعلي في دفتر اليومية. قبل الترحيل المستند «مسودة» ولا أثر له على الحسابات.
إلغاء الترحيل (Unpost)النظام لا يمحو القيد، بل يُنشئ قيداً عكسياً يُلغيه، ويُعيد المستند إلى حالة مسودة قابلة للتعديل.
مركز التكلفة«وعاء» نُلصقه على سطور المصروف لنعرف لاحقاً كم كلّف هذا العقد بالذات. في هذه الوحدة: لكل عقد مركز تكلفة خاص به لا يشاركه فيه عقد آخر (النظام يرفض المشاركة).
كود التكلفةمحور ثانٍ أدق من مركز التكلفة: يقسّم تكلفة العقد الواحد إلى بنود (حفر، خرسانة، كهرباء…).

3 · لماذا محاسبة المقاولات مختلفة؟

في بيع بضاعة عادي: تُسلّم البضاعة، تُصدر الفاتورة، تُثبت الإيراد، تُحصّل النقد. الأمر ينتهي خلال أيام. أما عقد المقاولة فيمتد سنة أو أكثر، والعميل يدفع على دفعات، ويحتجز جزءاً من كل دفعة، ويسبقك أحياناً بدفعة مقدمة. أربعة اختلافات جوهرية:

3.1 الإيراد بنسبة الإنجاز، لا عند التسليم

لو انتظرنا تسليم المبنى لإثبات الإيراد، لأظهرنا خسارة كل شهر طوال سنتين ثم ربحاً هائلاً في شهر واحد. المعيار الدولي (IFRS 15) يقول: أثبت الإيراد بقدر ما أنجزت. والنظام يقيس الإنجاز بطريقة التكلفة إلى التكلفة:

نسبة الإنجاز = التكلفة الفعلية حتى تاريخه ÷ التكلفة التقديرية عند الإتمام (EAC)

وهذه صيغة موجودة حرفياً في الكود، في دالة واحدة تقرأ منها كل الشاشات حتى لا تختلف شاشتان في الرقم نفسه:

الصيغة كما هي في الكود EAC = (cost-to-complete > 0) ? actual + cost-to-complete : max(budget, actual)
percent = (EAC > 0) ? min(round(actual / EAC × 100, 4), 100) : 0
بمعنى: إن أدخلتَ تقديراً لتكلفة الإكمال فهو المعتمد؛ وإلا فالموازنة هي التقدير، إلا إذا تجاوزتها التكلفة الفعلية فتصبح هي.

3.2 المحتجزات (Retention)

المالك يحتجز نسبة (5% عادةً) من كل مستخلص، لا يفرج عنها إلا بعد انتهاء فترة الضمان. هذا المبلغ أُنجز واستُحقّ — فهو إيراد كامل — لكنه لن يُقبض الآن. لذلك يُثبت كأصل مستقل: «محتجزات لدى العملاء»، لا كجزء من ذمم العملاء العادية، حتى تعرف في أي لحظة كم من مالك محبوس لدى الملاك.

3.3 الدفعة المقدمة واستردادها

المالك يدفع مقدماً (10% عادةً) قبل أي عمل. هذه ليست إيراداً — هي التزام. ثم تُسترد تدريجياً بخصم نسبة من كل مستخلص. النظام يحسب الاسترداد هكذا:

الصيغة كما هي في الكود advanceRecovery = min( gross × AdvancePercent% , AdvanceReceived − AdvanceRecovered )
أي: النسبة المتفق عليها من إجمالي المستخلص، لكن لا تتجاوز أبداً ما تبقّى من الدفعة غير مسترد. وإن خرجت سالبة تُصفَّر.

3.4 التكلفة لا بد أن تُنسب إلى العقد

شراء الحديد يضع المال في المخزون (أصل)، وهذا ليس تكلفة عقد بعد. التكلفة تولد لحظة صرف الحديد إلى المشروع. ولهذا كل سطر مصروف في هذه الوحدة يحمل مركز تكلفة العقد، والنظام يعرّف «التكلفة الفعلية للعقد» تعريفاً واحداً صارماً:

تعريف التكلفة الفعلية للعقد (من الكود) مجموع (مدين − دائن) لكل سطور القيود التي: كل ما لا يحمل مركز التكلفة — مثل الطرف الدائن للأجور المستحقة — لا يدخل في تكلفة العقد.

4 · خريطة الوحدة والدورة الكاملة

١ · ما قبل العقد العطاء والتقدير بناء السعر من الموارد ضمان ابتدائي سجل تذكيري فقط ترسية العطاء تُنشئ العقد + جدول الكميات + الموازنة ٢ · تأسيس العقد العقد + جدول الكميات مركز تكلفة خاص موازنة التكلفة وتكلفة الإكمال هيكل تجزئة العمل والبرنامج الزمني ٣ · جانب الإيراد (المالك) الدفعة المقدمة التزام على المنشأة المستخلص (١، ٢، الختامي) إجمالي − محتجز − استرداد + ضريبة أمر التغيير يُعدّل الكميات والقيمة الإفراج عن المحتجزات ٤ · جانب التكلفة صرف مواد من المخزون إيجار معدات كشف تشغيل عمالة ومعدات مملوكة مستخلص باطن ودفعته المقدمة مركز تكلفة العقد في دفتر الأستاذ التكلفة الفعلية = حسابات المصروف فقط ٥ · القياس والإقفال الاعتراف بالإيراد تسوية المُنجز مقابل المُفوتر تقارير CVR و S والتدفق النقدي لوحة المقاولات ربحية كل عقد إقفال العقد ممنوع ما لم تُفرَج كل المحتجزات إطار سميك = يُنشئ قيداً محاسبياً إطار رفيع = سجل إداري لا يُرحَّل
الدورة الكاملة لوحدة المقاولات — الاتجاه من اليمين إلى اليسار ومن الأعلى إلى الأسفل

5 · جدول الشاشات ومساراتها في البرنامج

كل شاشات الوحدة تحت بند «المقاولات» في القائمة الجانبية. الجدول التالي هو الفهرس الكامل — لا توجد شاشة في الوحدة خارجه:

اسم الشاشة في القائمةالمسارالقيدالوظيفة باختصار
لوحة المقاولات/dashboard/contrمؤشرات المحفظة وربحية كل عقد من دفتر الأستاذ.
العطاءات والتقدير/contr/tendersلاتسعير البنود ببناء السعر من الموارد؛ الترسية تُنشئ العقد والموازنة.
العقود/contr/contractsلابيانات العقد، جدول الكميات، النسب، مركز التكلفة، الحالة.
المستخلصات/contr/billingsنعممطالبة المالك بقيمة المنفَّذ؛ تحسب المحتجز والاسترداد والضريبة.
تكاليف العقود/contr/costsنعمصرف مواد من مستودع، أو تكلفة مدفوعة نقداً/بنكياً.
مطابقة التكلفة بالقيمة/contr/cvrلاتقرير شهري يسأل: هل الربح المُعلَن حقيقي؟
موازنة تكلفة العقد/contr/budgetsلاالموازنة مقابل الفعلي مقابل الملتزم به، وتقدير تكلفة الإتمام.
هيكل تجزئة العمل/contr/wbsلاشجرة حزم العمل والقيمة المكتسبة (EV) لكل حزمة.
البرنامج الزمني الشبكي/contr/scheduleلاالأنشطة والعلاقات، المسار الحرج والفوائض (CPM).
ضبط المستندات/contr/documentsلاسجل المخططات وإصداراتها ومذكرات التسليم.
منحنى S/contr/s-curveلاالمخطط والمكتسب والفعلي على محور واحد.
التدفق النقدي المتوقع/contr/cash-flowلاتوقّع نقدية العقد المتبقية شهراً بشهر وذروة التمويل.
الاعتراف بالإيراد/contr/revenueنعمتسوية الإيراد إلى ما أُنجز فعلاً بنسبة الإنجاز.
خطابات الضمان/contr/guaranteesلاسجل التزامات محتملة خارج الميزانية + التمديد والإفراج.
الدفعات والمحتجزات/contr/receiptsنعماستلام الدفعة المقدمة، والإفراج عن المحتجزات.
أوامر التغيير/contr/variationsلاالطريق الوحيد لتغيير كميات وقيمة عقد قائم.
المشاريع المشتركة/contr/joint-venturesنعمحصص الشركاء من الإيراد والتكلفة وتسوياتهم النقدية.
سجلات الموقع/contr/siteلايومية الموقع، طلبات المعلومات (RFI)، قائمة الملاحظات.
سجل المطالبات/contr/claimsلامطالبات متنازع عليها + مهلة الإخطار؛ تسويتها تُنشئ أمر تغيير.
الموارد التشغيلية/contr/resourcesلاملف العمالة والمعدات: الأجر بالساعة وبيانات التوظيف.
كشوف التشغيل/contr/timesheetsنعمتحميل العقد بساعات العمالة والمعدات المملوكة.
مكافأة نهاية الخدمة/contr/end-of-serviceنعماحتساب المخصص شهرياً وتسوية المغادر.
الرواتب/contr/payrollنعممسيّر الرواتب الشهري، وصرفه، وملف حماية الأجور.
عقود الباطن/contr/subcontractsلاالتعاقد مع مقاول باطن؛ يُنشئ «التزاماً» يخصم من الموازنة.
دفعات الباطن المقدمة/contr/sub-advancesنعمدفع مقدم لمقاول الباطن كأصل يُسترد من مستخلصاته.
مستخلصات الباطن/contr/sub-billingsنعماعتماد أعمال الباطن مع الضريبة والاستقطاع واسترداد الدفعة.
إعدادات المقاولات/settings ← تبويب المقاولاتسياسة ضبط الموازنة، قواعد نهاية الخدمة، بيانات WPS.

6 · قبل أن تبدأ: الإعدادات والحسابات

وحدة المقاولات لا تكتب أكواد حسابات في الكود. كل قيد يبحث عن حساب عبر «مفتاح إعداد»، فإن لم يكن مضبوطاً يرفض النظام الترحيل برسالة صريحة مثل: Configure Contr.WipAccountCode. لذلك أول خطوة عملية هي التأكد من ربط المفاتيح.

هذه هي المفاتيح التي تستخدمها الوحدة، مع الحساب الافتراضي في شجرة نشاط «المقاولات»:

المفتاحالكوداسم الحسابيُستخدم في
Contr.ContractRevenueAccountCode40103إيرادات العقودالمستخلص، الاعتراف بالإيراد
Contr.RetentionReceivableAccountCode10107محتجزات لدى العملاءالمستخلص، الإفراج عن المحتجزات
Contr.OwnerAdvanceAccountCode20104دفعات مقدمة من الملاكالدفعة المقدمة، استردادها
Contr.WipAccountCode10106أعمال تحت التنفيذالاعتراف بالإيراد (أصل عقدي)
Contr.ExcessBillingsAccountCode20102فواتير زائدة عن الإنجازالاعتراف بالإيراد (التزام عقدي)
Contr.MaterialsAccountCode50102مواد المشاريعصرف المواد للعقد
Contr.SubcontractorAccountCode50103مقاولو الباطنمستخلص الباطن
Contr.EquipmentRentalAccountCode50104إيجار معداتتكلفة معدات + ساعات المعدات المملوكة
Contr.EquipmentRecoveryAccountCode50107استرداد تكلفة المعداتالطرف الدائن لساعات المعدات المملوكة
Contr.LabourCostAccountCode50106عمالة المشاريعكشف التشغيل
Contr.WagesAccrualAccountCode20107أجور مستحقةالطرف الدائن للعمالة؛ تُصفّيه الرواتب
Contr.SubcontractorAdvanceAccountCode10105مصروفات مدفوعة مقدماًدفعة الباطن المقدمة (أصل)
Contr.WhtPayableAccountCode20105ضريبة استقطاع مستحقةمستخلص الباطن
Contr.OnerousLossAccountCode50105خسائر العقود الخاسرةمخصص العقد الخاسر
Contr.OnerousProvisionAccountCode20106مخصص العقود الخاسرةمخصص العقد الخاسر
Contr.JvPartnerRevenueShareAccountCode40104حصة الشركاء من الإيرادتوزيع المشاريع المشتركة
Contr.JvPartnerCostShareAccountCode50108حصة الشركاء من التكلفةتوزيع المشاريع المشتركة
Contr.JvPartnerCurrentAccountCode20108جاري شركاء المشاريع المشتركةالتوزيع والتسوية النقدية
Contr.UnallocatedLabourAccountCode50109عمالة غير موزعةالرواتب
Contr.NetPayrollPayableAccountCode20109رواتب مستحقة الدفعالرواتب وصرفها
Contr.PayrollDeductionsPayableAccountCode20110استقطاعات مستحقةالرواتب
Contr.EmployerContributionAccountCode50110مساهمات صاحب العملالرواتب
Contr.EmployerContributionPayableAccountCode20111مساهمات صاحب العمل مستحقةالرواتب
Contr.EosProvisionAccountCode20112مخصص نهاية الخدمةنهاية الخدمة
Contr.EosExpenseAccountCode50111مصروف نهاية الخدمةنهاية الخدمة

وتستخدم الوحدة أيضاً أربعة مفاتيح مشتركة من الحسابات التجارية:

المفتاحالكوداسم الحسابيُستخدم في
Comm.ReceivableAccountCode10103العملاءصافي المستخلص المستحق على المالك
Comm.PayableAccountCode20101الموردونصافي مستخلص الباطن
Comm.VatOutputAccountCode20103ضريبة القيمة المضافة — مخرجاتضريبة المستخلص
Comm.VatInputAccountCode10104ضريبة القيمة المضافة — مدخلاتضريبة مستخلص الباطن
Comm.InventoryAccountCode10106المخزونالطرف الدائن لصرف المواد
Comm.CashAccountCode1010101الخزنة الرئيسيةالافتراضي عند عدم اختيار خزنة/بنك
تنبيه مهم على القيم الافتراضية في شجرة نشاط المقاولات، الكود 10106 اسمه «أعمال تحت التنفيذ»، وهو في الوقت نفسه القيمة الافتراضية لمفتاح Comm.InventoryAccountCode (المخزون). كذلك 20102 يُستخدم افتراضياً كـ«فواتير زائدة عن الإنجاز» وهو في الشجرة الأساسية «مصروفات مستحقة». قبل التشغيل الفعلي افتح «الإعدادات ← الحسابات» وأنشئ حسابات مستقلة لكل من: أعمال تحت التنفيذ، المخزون، فواتير زائدة عن الإنجاز، ودفعات مقدمة لمقاولي الباطن — وإلا اختلطت أرصدة لا يصح اختلاطها.

6.1 إعدادات الوحدة

الإعدادالمعنى والقيمة في مثالنا
وضع ضبط الموازنةOff لا فحص · Warn ينبّه ويسمح (الافتراضي) · Block يرفض المستند. نستخدم Warn.
نسبة السماحهامش تجاوز مسموح قبل التنبيه/الرفض. نستخدم 0%.
أيام نهاية الخدمة — أول 5 سنوات15 يوماً عن كل سنة (نظام العمل السعودي: نصف شهر).
أيام نهاية الخدمة — بعد 5 سنوات30 يوماً عن كل سنة (شهر كامل).
احتساب البدلات ضمن الأجرنعم — يُضاف بدل السكن وبدل «أخرى» إلى الأجر الأساسي.
بيانات ملف حماية الأجوررقم المنشأة، رمز بنك المنشأة، آيبان المنشأة.

6.2 مركز التكلفة وأكواد التكلفة

أنشئ من وحدة الحسابات مركز تكلفة باسم «مبنى إداري — الرياض» وخصّصه لهذا العقد وحده.

قاعدة يفرضها النظام مركز التكلفة الواحد لا يجوز أن يخدم أكثر من عقد. لو حاولت اختياره لعقد ثانٍ ظهرت رسالة: «That cost centre already belongs to contract …». السبب: التكلفة الفعلية تُقرأ من دفتر الأستاذ بهذا البُعد، فلو تشاركه عقدان لَقرأ كلٌّ منهما مصروف الآخر على أنه مصروفه.

وأنشئ كذلك أكواد التكلفة التالية (شجرة بسيطة) — سنستخدمها لتفصيل التكلفة داخل العقد الواحد:

الكودالاسم
C-10أعمال ترابية
C-20خرسانة وحديد
C-30مباني وتشطيبات
C-40كهرباء وميكانيكا
C-50معدات

7 · بيانات مثالنا الكامل

هذه هي كل أرقام المثال في مكان واحد. اطبع هذه الصفحة وضعها بجوارك أثناء التنفيذ.

7.1 العقد

البندالقيمة
كود العقدCONTR-00001 (يولّده النظام تلقائياً)
الاسمإنشاء مبنى إداري — الرياض
العميل (المالك)شركة الواحة للتطوير
قيمة العقد الأصلية1,000,000.00 ريال
نسبة المحتجزات5%
نسبة الدفعة المقدمة10%
نسبة ضريبة القيمة المضافة15%
تاريخ البدء / الانتهاء2026-01-01 / 2026-12-31
مهلة سداد المالك30 يوماً
مهلة سداد الموردين30 يوماً
أيام الإفراج عن المحتجزات365 يوماً بعد نهاية الأعمال
مركز التكلفةمبنى إداري — الرياض

7.2 جدول الكميات (BOQ) عند التوقيع

#الوصفالوحدةالكميةسعر الوحدةالإجمالي
1أعمال الحفر والردمم٣5,00020.00100,000.00
2الخرسانة المسلحةم٣1,200400.00480,000.00
3أعمال المبانيم٢4,00055.00220,000.00
4التشطيباتم٢4,00050.00200,000.00
إجمالي جدول الكميات = قيمة العقد1,000,000.00

7.3 موازنة التكلفة

#التصنيفكود التكلفةالوصفالمبلغ
1مواد MaterialsC-20 خرسانة وحديدحديد وخرسانة ومواد بناء300,000.00
2مقاولو الباطن SubcontractorsC-40 كهرباء وميكانيكاأعمال الكهرباء والميكانيكا200,000.00
3عمالة LabourC-30 مباني وتشطيباتعمالة الموقع المباشرة250,000.00
4معدات EquipmentC-50 معداتإيجار كرين + ساعات حفارة مملوكة100,000.00
إجمالي الموازنة850,000.00

الربح المتوقع عند التوقيع = 1,000,000 − 850,000 = 150,000 ريال (15% من قيمة العقد).

7.4 الجدول الزمني للأحداث

التاريخالحدثالمبلغالشاشة
2026-01-05خطاب ضمان حسن التنفيذ50,000خطابات الضمان
2026-01-10استلام الدفعة المقدمة100,000الدفعات والمحتجزات
2026-02-01توقيع عقد باطن (كهرباء وميكانيكا)200,000عقود الباطن
2026-02-05دفعة مقدمة لمقاول الباطن20,000دفعات الباطن المقدمة
2026-03-20صرف مواد من المستودع250,000تكاليف العقود
2026-04-15إيجار كرين برجي60,000تكاليف العقود
2026-04-30المستخلص رقم 1 (إجمالي)300,000المستخلصات
2026-06-30كشف تشغيل (عمالة 150,000 + معدات 40,000)190,000كشوف التشغيل
2026-06-30مسيّر رواتب شهر 06160,000الرواتب
2026-07-10أمر تغيير رقم 1 (زيادة القيمة)+50,000أوامر التغيير
2026-08-25مستخلص باطن رقم 1 (إجمالي)180,000مستخلصات الباطن
2026-08-31المستخلص رقم 2 (إجمالي)600,000المستخلصات
2026-08-31الاعتراف بالإيراد — الجولة 1تسوية 60,000الاعتراف بالإيراد
2026-10-20صرف مواد إضافية50,000تكاليف العقود
2026-11-30كشف تشغيل (عمالة)100,000كشوف التشغيل
2026-12-15مستخلص باطن رقم 2 (ختامي)20,000مستخلصات الباطن
2026-12-31المستخلص رقم 3 — الختامي150,000المستخلصات
2026-12-31الاعتراف بالإيراد — الجولة 2تسوية 60,000الاعتراف بالإيراد
2026-12-31مخصص نهاية الخدمة5,996مكافأة نهاية الخدمة
2027-12-31الإفراج عن المحتجزات52,500الدفعات والمحتجزات
2027-12-31إقفال العقدالعقود

8 · العطاءات والتقدير

لماذا توجد

لأن التقدير هو الموازنة. المقاول الذي يرسو عليه عمل ثم يجلس ليكتب موازنة تكلفة من ذاكرته يكون قد ألقى بالأرقام الوحيدة التي فكّر فيها أحد فعلاً. لذلك تُسعَّر البنود هنا بـ«بناء السعر»: تُدخل لكل بند مواردَه (كمية المادة لكل وحدة، ساعات العمالة، ساعات المعدة) فيخرج لك سعر التكلفة، ثم تضيف عليه هامشاً.

فرق يجب ألا تخلط بينه هامش الإضافة (Mark-up) يُحسب على التكلفة: 20% على 100 = 120.
هامش الربح (Margin) يُحسب على سعر البيع: من 120 يكون الربح 20 أي 16.7% فقط.
الخلط بينهما هو الطريقة الأشيع لتقديم عطاء أرخص مما تظن.

متى تفتحها

قبل وجود العقد أصلاً — هذه أول شاشة في الدورة.

ماذا تُدخل في مثالنا

عطاء باسم «مبنى إداري — الرياض»، بأربعة بنود بنفس كميات جدول الكميات في الفصل 7، وبأسعار بيع مطابقة، مع تكلفة مبنيّة تُجمّع إلى 850,000 موزعة على أكواد التكلفة كما في جدول الموازنة.

ماذا يحدث

عند الضغط على ترسية يطلب منك النظام: العميل، تاريخ البدء والانتهاء، نسب المحتجز والدفعة والضريبة، ومركز التكلفة. ثم يقوم بثلاثة أشياء في خطوة واحدة:

  1. يُنشئ عقداً بحالة مسودة، وقيمته = القيمة المقدَّمة في العطاء بالضبط (لا رقم آخر).
  2. ينسخ بنود العطاء إلى جدول كميات العقد بسعر البيع.
  3. ينسخ التكلفة المبنيّة إلى موازنة تكلفة العقد، مجمَّعةً حسب كود التكلفة.

ويصبح العطاء بحالة «فائز» ومربوطاً بالعقد. لا يُنشأ أي قيد محاسبي: العطاء وعد بالعمل، لا معاملة مالية.

لماذا لا يُرحَّل العطاء؟ لأنه ليس التزاماً على أحد. لا أصل تغيّر، ولا دين نشأ. المحاسبة تُسجّل الأحداث الاقتصادية، والتقديم على عطاء ليس حدثاً اقتصادياً حتى تُقبل. (خطاب الضمان الابتدائي المرافق له — انظر الفصل 13 — لا يُرحَّل للسبب نفسه.)

9 · العقود وجدول الكميات

لماذا توجد

هذه الشاشة هي «دستور» العقد: كل رقم فيها تقرأه مستندات لاحقة ولا تسأل عنه مرة أخرى. نسبة المحتجز تحدد كم يُحتجز من كل مستخلص، ونسبة الدفعة تحدد كم يُسترد، ومركز التكلفة يحدد أين تُقاس التكلفة.

ماذا تُدخل في مثالنا

افتح العقد الذي أنشأته الترسية (أو أنشئه يدوياً بـجديد) وتأكد من القيم في الفصل 7.1، وأدخل بنود جدول الكميات الأربعة.

الحقول التي يُساء فهمها

الحقلالمعنى الدقيق
قيمة العقدينبغي أن تساوي مجموع جدول الكميات. النظام لا يفرض ذلك، لكن نسبة الإنجاز والاعتراف بالإيراد يقيسان على «قيمة العقد» بينما القيمة المكتسبة تقيس على جدول الكميات — فاختلافهما يجعل الشاشتين تحكيان حكايتين.
مركز التكلفةإجباري عملياً: بدونه يرفض النظام الاعتراف بالإيراد و CVR والمشاريع المشتركة برسالة «العقد بلا مركز تكلفة فلا يمكن قياس تكلفته».
مهلة سداد المالك / الموردينلا أثر لها على القيود؛ تستخدمها شاشة التدفق النقدي لتحريك التوقيت بالأشهر.
أيام الإفراج عن المحتجزاتكذلك للتدفق النقدي فقط: تُحدد الشهر الذي تظهر فيه المحتجزات كتدفق داخل.
الحالةمسودةنشط → (معلّق) → مقفل.
قواعد الحالة كما يفرضها النظام

الخطوة العملية

بعد حفظ العقد اضغط على تغيير الحالة إلى نشط. من هنا فقط تبدأ باقي الشاشات في قبول مستندات على هذا العقد.

10 · موازنة تكلفة العقد

لماذا توجد

هذه الشاشة هي «الجانب الآخر» من العقد. بدونها لا توجد نسبة إنجاز بالتكلفة، ولا إنذار تجاوز، ولا أساس للاعتراف بالإيراد. وهي تعرض أربعة أرقام لا اثنين:

الموازنة − الفعلي − الملتزم به = المتاح

لماذا «الملتزم به» وليس الفعلي فقط؟ لأن الرقابة على الفعلي رقابة تصل متأخرة: حين يصل المصروف إلى الدفاتر يكون المال قد صُرف. المقاول يتجاوز موازنته في اللحظة التي يوقّع فيها عقد باطن أو يُصدر أمر شراء، لا في اللحظة التي يدفع فيها. لذلك «الالتزامات» محسوبة لا مُرحَّلة — الوعد بالدفع ليس التزاماً محاسبياً حتى ينفّذ الطرف الآخر، تماماً كخطابات الضمان.

ماذا تُدخل في مثالنا

البنود الأربعة من الفصل 7.3، وفي حقل تكلفة الإكمال اترك 0 الآن. سنعود إليه قبل تشغيل الاعتراف بالإيراد.

ماذا يحدث

لا قيد. لكن الشاشة تصبح مصدر الحقيقة لثلاث شاشات أخرى:

حالة مثالنا بعد توقيع عقد الباطن واعتماد مستخلصه الأول

التصنيفالموازنةالفعليالملتزم بهالمتاح
مقاولو الباطن200,000180,00020,0000

الالتزام المفتوح = قيمة عقد الباطن (200,000) − ما اعتُمد منه (180,000) = 20,000. يتلاشى تلقائياً مع كل مستخلص باطن حتى يصل إلى صفر.

ملاحظة عن دقّة التوزيع حسب التصنيف تعرض الشاشة علماً باسم CategorySplitAmbiguous يُرفع عندما تشترك عدة مفاتيح في الحساب نفسه. عندها يبقى الإجمالي صحيحاً لكن توزيعه على التصنيفات مجرّد استدلال. التوزيع الدقيق يأتي من كود التكلفة لا من التصنيف — ولهذا ربطنا كل بند موازنة بكود تكلفة في الفصل 7.3.

11 · هيكل تجزئة العمل والقيمة المكتسبة

لماذا توجد

إجمالي العقد لا يخبرك أين يسير الأمر خطأً. الهيكل يقسّم العقد إلى حزم عمل، ويُلحَق كل بند من جدول الكميات بحزمة. عندها تصبح القياسات أمينة:

المؤشركيف يُحسب في النظام
القيمة المخططة PVقيمة الحزمة × نسبة ما انقضى من نافذتها الزمنية المخططة.
القيمة المكتسبة EVمجموع (الكمية المعتمَدة في مستخلص مُرحَّل × سعر الوحدة) لبنود الحزمة.
انحراف الجدول SVEV − PV. موجب = متقدم على البرنامج.
مؤشر أداء الجدول SPIEV ÷ PV. فارغ إذا لم يكن للحزمة تواريخ أساس.
التكلفة الفعلية AC للحزمةفقط إذا رُبطت الحزمة بفرع كود تكلفة؛ عندها = كل ما رُمّز تحت ذلك الفرع.
نزاهة مقصودة في التصميم القيمة المكتسبة تأتي من كميات وقّع عليها مهندس في مستخلص مُرحَّل، لا من «تقريباً 60% خلصت». وحين لا يكون للحزمة كود تكلفة، لا يُقدَّر مؤشر CPI لها بل يُترك فارغاً — «غير معلوم» لا «صفر». اختلاق توزيع للتكلفة تحت مستوى العقد كان سيكون أسهل شيء وأكثره تضليلاً.

ماذا تُدخل في مثالنا

الكودالحزمةبنود جدول الكمياتالنافذة المخططةالقيمة
W-1الأعمال الترابيةالبند 101-01 → 03-31100,000
W-2الهيكل الخرساني والمبانيالبندان 2 و302-01 → 08-31700,000
W-3التشطيبات والتكييفالبندان 4 و507-01 → 12-31250,000
الإجمالي (بعد أمر التغيير)1,050,000

قراءة الشاشة في 2026-08-31 (بعد المستخلص الثاني)

المؤشرالقيمةالقراءة
القيمة المخططة PV883,300ما كان يفترض إنجازه حتى اليوم.
القيمة المكتسبة EV900,000ما اعتُمد فعلاً في المستخلصين.
التكلفة الفعلية AC680,000من مركز التكلفة في دفتر الأستاذ.
SPI1.019أعلى من 1 ← متقدم قليلاً على البرنامج.
CPI1.324أعلى من 1 ← ننجز بأقل من قيمة ما ننجزه: العقد رابح حتى الآن.

12 · البرنامج الزمني الشبكي

لماذا توجد

لأنها تجيب على سؤالين لا يجيب عنهما مخطط شريطي: أي الأنشطة تُحدّد تاريخ الانتهاء (المسار الحرج)، وكم يستطيع كل نشاط آخر أن يتأخر (الفائض). وتُحسب بطريقة CPM من الأنشطة وعلاقاتها.

ماذا تُدخل في مثالنا

أربعة أنشطة مربوطة بحزم العمل: حفر (60 يوماً) ← خرسانة (120) ← مباني (60) ← تشطيبات (90)، بعلاقة «انتهاء–بداية» بلا فترات تراخٍ. النشاط الذي لا يملك فائضاً يظهر بعلامة حرج.

ماذا يحدث

لا قيد. لكن وجود شبكة يغيّر شيئاً مهماً في شاشة أخرى: منحنى S يأخذ منها «القيمة المخططة» بدل نوافذ حزم العمل، ويعلن مصدر الخطة صراحةً (Schedule بدل Wbs بدل ContractDates) — لأن مصدر الخطة يُغيّر معنى الرقم.

13 · خطابات الضمان

هذه هي النقطة التي يخطئ فيها المبتدئ أكثر من غيرها خطاب الضمان لا يُنشئ أي قيد محاسبي في هذا النظام. تحققنا من ذلك في الكود: شاشة الضمانات سجلٌّ فقط، ولا تستدعي محرّك الترحيل إطلاقاً. والسبب محاسبي سليم: خطاب الضمان التزام محتمل — لا يصبح التزاماً حقيقياً إلا إذا صادره المستفيد. الالتزام المحتمل يُفصح عنه في الإيضاحات ولا يُثبت في الميزانية.

ماذا يفعله السجل إذن؟

يفعل الشيء الوحيد الذي لا يجوز أن يفشل فيه: يُظهر ما هو ساري وما يوشك أن ينتهي. أي خطاب يتبقى على انتهائه 30 يوماً أو أقل يُرفع إلى أعلى القائمة بعلامة «قارب الانتهاء»، والمنتهية تظهر بأيام سالبة.

ماذا تُدخل في مثالنا

الحقلالقيمة
النوعضمان حسن التنفيذ (Performance)
رقم الخطاب / البنكLG-2026-114 / البنك الأهلي
المستفيدشركة الواحة للتطوير
المبلغ50,000 (5% من قيمة العقد)
تاريخ الإصدار / الانتهاء2026-01-05 / 2027-03-31
العمولة750
الغطاء النقدي5,000

أنواع الضمانات التي يدعمها النظام

النوعمتى
ابتدائي Bidيُقدَّم مع العطاء، قبل وجود عقد (لذلك حقل العقد اختياري).
حسن تنفيذ Performanceطوال مدة العقد.
دفعة مقدمة AdvancePaymentيغطي الدفعة المقدمة حتى تُسترد بالكامل.
محتجزات Retentionيُصدر للإفراج المبكر عن المحتجزات.
صيانة Maintenanceيغطي فترة ضمان العيوب بعد التسليم.

الإجراءات على خطاب ساري

14 · الدفعة المقدمة من المالك

لماذا توجد

لأن المال الذي يصلك قبل أن تعمل ليس إيرادك. الشاشة تسجّل نوعين فقط: دفعة مقدمة وإفراج عن محتجزات — وكلاهما حركة نقدية مقابل حساب في الميزانية، لا مقابل الإيراد.

ماذا تُدخل في مثالنا

الحقلالقيمة
العقدCONTR-00001
النوعدفعة مقدمة Advance
التاريخ2026-01-10
المبلغ100,000.00 (= 10% × 1,000,000)
حساب القبض1010201 البنك الرئيسي

القيد الذي يُرحّله النظام

سند CR-00001 — دفعة مقدمة · 2026-01-10
الحسابمديندائن
1010201 البنك الرئيسي100,000.00
20104 دفعات مقدمة من الملاك100,000.00
الإجمالي100,000.00100,000.00

سطران فقط، بلا استثناء: new(payAcc, amount, 0) وnew(counterAcc, 0, amount)، حيث يُحدَّد الحساب المقابل من مفتاح Contr.OwnerAdvanceAccountCode لأن النوع «دفعة مقدمة».

ماذا تغيّر خارج القيد

يزيد الحقل «الدفعة المقدمة المستلمة» على العقد بمقدار 100,000. هذا الحقل هو ما تقرأه المستخلصات لاحقاً لتقرر كم تسترد. وهذه أول حلقة في السلسلة:

الدفعة المقدمة ← رصيد غير مسترد ← خصم على كل مستخلص ← يصل الرصيد إلى صفر

تصحيح سند خاطئ

السند يُرحَّل لحظة إنشائه. فإن أخطأت:

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

15 · الموارد التشغيلية

لماذا توجد

ملف تعريفي لكل ما «يُحمَّل بالساعة»: عامل أو معدة مملوكة. من هنا يأتي سعر الساعة الذي تستخدمه كشوف التشغيل، ومن هنا تأتي بيانات التوظيف التي تستخدمها الرواتب وملف حماية الأجور ومكافأة نهاية الخدمة.

ماذا تُدخل في مثالنا

الكودالاسمالنوعسعر الساعةالإضافيكود التكلفةبيانات إضافية
RES-001فريق العمالة أعمالة25.0037.50C-30تاريخ التعيين 2025-01-01، أساسي 6,000، سكن 0
RES-002حفارة كاتربيلرمعدة50.0050.00C-50مربوطة بالأصل الثابت في وحدة الأصول
ثلاث قواعد يفرضها النظام

16 · تكاليف العقود: صرف المواد من المخزون

لماذا توجد

هذه الشاشة هي التي تحوّل الشراء إلى تكلفة عقد. شراء الحديد من المورد وضعه في المخزون — وهو أصل، لا مصروف. لحظة صرفه إلى الموقع يتحول إلى مصروف يحمل مركز تكلفة العقد. هذه هي اللحظة التي تبدأ عندها ربحية العقد في الظهور.

ماذا تُدخل في مثالنا

الحقلالقيمة
العقدCONTR-00001
نوع التكلفةمواد Materials
التاريخ2026-03-20
الصنفحديد تسليح 16مم
المستودعالمستودع الرئيسي
الكمية100 طن
كود التكلفةC-20 خرسانة وحديد
المبلغلا تُدخله — انظر التنبيه أدناه
لا تكتب مبلغاً في صرف المواد النظام يتجاهل أي مبلغ تكتبه. عند الترحيل يُخرج الكمية من المستودع بـمتوسط التكلفة المرجّح ويجعل القيمة التي خرجت فعلاً من المخزون هي التكلفة. لو خرج 100 طن بمتوسط 2,500 ريال للطن فالتكلفة 250,000 حتماً. وإذا كانت القيمة الخارجة صفراً يرفض النظام الترحيل برسالة: «المخزون المصروف بلا قيمة — راجع تكلفة الصنف قبل صرفه لعقد».

القيد الذي يُرحّله النظام

تكلفة عقد CCST-00001 — صرف مواد · 2026-03-20
الحسابالأبعادمديندائن
50102 مواد المشاريعمركز تكلفة العقد
كود التكلفة C-20
250,000.00
10106 المخزونبلا مركز تكلفة250,000.00
الإجمالي250,000.00250,000.00
10106 المخزون (أصل) مدين دائن 400,000 رصيد سابق 250,000 صرف للعقد 150,000 الرصيد المتبقي القيمة تنتقل من أصل إلى مصروف 50102 مواد المشاريع (مصروف) مدين دائن 250,000 يحمل مركز التكلفة 250,000 تكلفة فعلية للعقد مركز التكلفة على سطر المصروف فقط — ولهذا يقرأ النظام 250,000 كتكلفة لهذا العقد بالذات
صرف المواد: القيمة لا تُخلَق، بل تنتقل من أصل (المخزون) إلى مصروف يحمل بُعد العقد

الصرف الثاني في مثالنا

كرّر الشاشة نفسها في 2026-10-20 لصرف مواد تشطيبات بقيمة 50,000 على كود التكلفة C-30. القيد بالشكل نفسه.

تصحيح تكلفة

17 · تكاليف العقود: إيجار المعدات وغيرها

الفرق عن صرف المواد

هنا تكتب المبلغ، لأن لا شيء يخرج من مخزون؛ المال يخرج من خزنة أو بنك مباشرة. والنظام يختار حساب المصروف تلقائياً حسب النوع:

النوعحساب المدين (المفتاح)حساب الدائن
معدات EquipmentContr.EquipmentRentalAccountCode → 50104الخزنة/البنك المختار، أو Comm.CashAccountCode
أخرى OtherContr.MaterialsAccountCode → 50102الخزنة/البنك المختار
مواد MaterialsContr.MaterialsAccountCode → 50102Comm.InventoryAccountCode → 10106

ويمكنك دائماً تجاوز الاختيار التلقائي بتحديد «حساب المصروف» يدوياً — بشرط أن يكون حساباً يقبل الترحيل.

ماذا تُدخل في مثالنا

الحقلالقيمة
النوع / التاريخمعدات · 2026-04-15
الوصفإيجار كرين برجي — 3 أشهر
المبلغ60,000.00
حساب الدفع1010201 البنك الرئيسي
كود التكلفةC-50 معدات
تكلفة عقد CCST-00002 — إيجار معدات · 2026-04-15
الحسابالأبعادمديندائن
50104 إيجار معداتمركز تكلفة العقد
كود التكلفة C-50
60,000.00
1010201 البنك الرئيسيبلا مركز تكلفة60,000.00
الإجمالي60,000.0060,000.00

18 · كشوف التشغيل

لماذا توجد شاشة منفصلة عن التكاليف؟

لأن العمالة والمعدات المملوكة لا يقابلهما دفعٌ خاص بالعقد. الرواتب مبلغ واحد آخر الشهر لكل العمال، والحفّارة التي تملكها لا ترسل لك فاتورة. فكيف نحمّل العقد نصيبه؟

الجواب: بالساعة × السعر، مع طرف دائن مقابل يمنع اختراع مصروف جديد على مستوى الشركة:

البندالمدين (يحمل مركز التكلفة)الدائن (بلا مركز تكلفة)
عمالة50106 عمالة المشاريع20107 أجور مستحقة — تُصفّيها الرواتب لاحقاً
معدات مملوكة50104 تكلفة المعدات50107 استرداد تكلفة المعدات — حساب مصروف مقابل
ما معنى «استرداد تكلفة المعدات»؟ تكلفة الحفّارة الحقيقية (إهلاك، وقود، إصلاح) مُسجّلة أصلاً في وحدة الأصول/الأسطول كمصروف على مستوى الشركة. لو حمّلنا العقد 40,000 دون طرف مقابل لَظهرت التكلفة مرتين في قائمة الدخل. فالقيد يُحمّل العقد ويُضيف في المقابل ديناً على حساب مصروف عكسي، ورصيد هذا الحساب يخبرك: كم من تكلفة أسطولك الحقيقية استوعبتها المشاريع فعلاً؟

ماذا تُدخل في مثالنا — الكشف الأول

الموردالنوعساعاتسعر الساعةالتكلفة
فريق العمالة أعمالة6,00025.00150,000.00
حفارة كاتربيلرمعدة80050.0040,000.00
إجمالي الكشف TS-00001 بتاريخ 2026-06-30190,000.00

حساب سطر واحد: cost = hours × hourlyRate + overtimeHours × overtimeRate، وإذا لم يُضبط سعر إضافي يُستخدم السعر العادي.

كشف تشغيل TS-00001 · 2026-06-30
الحسابالأبعادمديندائن
50106 عمالة المشاريعمركز التكلفة · C-30150,000.00
50104 تكلفة المعداتمركز التكلفة · C-5040,000.00
20107 أجور مستحقةبلا مركز تكلفة150,000.00
50107 استرداد تكلفة المعداتبلا مركز تكلفة40,000.00
الإجمالي190,000.00190,000.00
تفصيل تلقائي بكود التكلفة لو حمل الكشف بنّائين ونجّارين لهم أكواد تكلفة مختلفة، فالنظام يقسّم سطر المدين حسب كود التكلفة ولا يُرحّل رقماً واحداً مجمّعاً. أما الطرفان الدائنان (الأجور المستحقة والاسترداد) فيبقيان مجمّعين، لأنهما ليسا تكلفة ولا يحملان كوداً.

الكشف الثاني في مثالنا

كشف TS-00002 بتاريخ 2026-11-30: عمالة 4,000 ساعة × 25 = 100,000، بلا معدات. القيد: مدين 50106 عمالة المشاريع 100,000 / دائن 20107 أجور مستحقة 100,000.

دورة حياة الكشف

مسودة (قابل للتعديل) ← مُرحَّل. وإلغاء الترحيل يُعيده إلى مسودة لا إلى «ملغى» — لأن الساعات سجل صحيح لما عُمل فعلاً، والكشف عادةً يُصحَّح ويُعاد ترحيله لا يُهجَر.

ملخص التكلفة الفعلية على مركز التكلفة حتى 2026-08-31

الحسابالاسمالمصدرالمبلغ
50102مواد المشاريعصرف مواد 03-20250,000.00
50104إيجار وتكلفة المعداتإيجار كرين 60,000 + حفارة 40,000100,000.00
50106عمالة المشاريعكشف TS-00001150,000.00
50103مقاولو الباطنمستخلص باطن رقم 1 (الفصل 21)180,000.00
التكلفة الفعلية للعقد حتى 2026-08-31680,000.00

لاحظ أن 50107 «استرداد تكلفة المعدات» بمبلغ 40,000 غير مشمول: لا يحمل مركز تكلفة، فلا يُنقص تكلفة هذا العقد. هذا مقصود.

19 · عقود الباطن

لماذا لا يُرحَّل توقيع عقد الباطن؟

لأن الوعد بالدفع ليس التزاماً محاسبياً حتى ينفّذ الطرف الآخر. لكنه يُنشئ التزاماً إدارياً يخصم فوراً من الموازنة، ولهذا يفحص النظام الموازنة لحظة التوقيع لا لحظة أول مستخلص.

ما الذي يُفحص بالضبط عند إنشاء عقد الباطن يُستدعى ContractBudgetGuard على تصنيف «مقاولو الباطن» بقيمة العقد كاملة. وعند تعديل القيمة يُفحص الفرق فقط، بحيث لا يُحسب العقد ضد نفسه. النتيجة تتبع سياسة الإعدادات: Off لا شيء · Warn يُنبّه ويسمح · Block يرفض.

ماذا تُدخل في مثالنا

الحقلالقيمة
الكودSUB-00001
العقد الأصليCONTR-00001
مقاول الباطن (المورد)مؤسسة النور للمقاولات الكهروميكانيكية
الوصفتوريد وتركيب أعمال الكهرباء والميكانيكا
قيمة العقد200,000.00
نسبة المحتجزات5%
نسبة الدفعة المقدمة10%
نسبة ضريبة القيمة المضافة15%
نسبة ضريبة الاستقطاع5%
كود التكلفةC-40 كهرباء وميكانيكا
جدول الكمياتبند واحد: «أعمال كهروميكانيكية» — 200 نقطة × 1,000 = 200,000
مقاس أم مقطوعية؟ النظام يقرر من وجود جدول الكميات إن أدخلت جدول كميات فالعقد مقاس: لا يمكن كتابة إجمالي المستخلص يدوياً، بل يُقاس من الكميات المنفَّذة — فيتطابق المستخلص مع الجدول دائماً. وإن لم تُدخل جدولاً فالعقد مقطوعية وتُدخل رقماً واحداً. ولا يمكن الخلط: مستخلص بكميات على عقد بلا جدول مرفوض، والعكس مرفوض.

ما تغيّر

لا قيد. لكن شاشة الموازنة صار فيها التزام مفتوح 200,000 تحت «مقاولو الباطن»، والمتاح انخفض بمقداره.

20 · دفعات الباطن المقدمة

الفكرة

المال الذي تدفعه قبل أن يعمل مقاول الباطن ليس مصروفاً — هو أصل (دَين لك عليه) يُسترد تدريجياً من مستخلصاته. وهو صورة المرآة تماماً للدفعة المقدمة من المالك: هناك التزام عليك، وهنا أصل لك.

ماذا تُدخل

عقد الباطن SUB-00001، التاريخ 2026-02-05، المبلغ 20,000 (= 10% × 200,000)، حساب الدفع: البنك الرئيسي.

دفعة باطن مقدمة SADV-00001 · 2026-02-05
الحسابمديندائن
10105 دفعات مقدمة لمقاولي الباطن (أصل)20,000.00
1010201 البنك الرئيسي20,000.00
الإجمالي20,000.0020,000.00

ويزيد الحقل «الدفعة المدفوعة» على عقد الباطن بـ 20,000 — وهو ما يقرأه مستخلص الباطن ليحسب الاسترداد.

قيد على إلغاء الترحيل لا يمكن إلغاء ترحيل دفعة استُرد جزء منها في مستخلص باطن: الرسالة «تم استرداد جزء من هذه الدفعة في مستخلصات الباطن — ألغِ ترحيل تلك المستخلصات أولاً». السبب: السحب سيجعل رصيد الدفعة غير المستردة سالباً.

21 · مستخلصات الباطن

الحسابات التي يجريها النظام

خمس عمليات بالترتيب، كلها من الكود حرفياً:

الرقمالصيغةملاحظة
الإجمالي grossمجموع (كمية هذه الفترة × السعر)للعقد المقاس. للمقطوعية: الرقم المُدخل.
المحتجزgross × RetentionPercent%يُسجَّل ولا يُخصم من المستحق — انظر التنبيه.
استرداد الدفعةmin(gross × AdvancePercent%, المتبقي غير المسترد)لا يتجاوز أبداً ما دُفع فعلاً.
ضريبة المدخلاتgross × VatPercent%تُضاف على المستحق.
ضريبة الاستقطاعgross × WhtPercent%على قيمة العمل فقط، لا على الضريبة.
الصافي المستحقgross + vat − advanceRecovery − wht
لماذا الاستقطاع على العمل فقط وليس على الضريبة؟ لأن ضريبة القيمة المضافة مال الجهة الضريبية يمرّ عبرك، والاستقطاع عليها يكون ضريبة على ضريبة. والاستقطاع ليس تكلفة أيضاً: هو يخرج مما هو مستحق له، فينقل الدائنية من ذمته إلى ذمة الجهة — بينما يبقى العبء في قائمة الدخل هو الإجمالي كاملاً.

مستخلص الباطن رقم 1 في مثالنا

البندالحسابالمبلغ
إجمالي أعمال الفترة (180 نقطة × 1,000)180,000.00
محتجز 5% (يُسجَّل فقط)180,000 × 5%9,000.00
استرداد الدفعة المقدمةmin(18,000 ; 20,000)18,000.00
ضريبة المدخلات 15%180,000 × 15%27,000.00
ضريبة الاستقطاع 5%180,000 × 5%9,000.00
الصافي المستحق للمقاول180,000+27,000−18,000−9,000180,000.00
مستخلص باطن SB-00001 (#1) — SUB-00001 · 2026-08-25
الحسابالأبعادمديندائن
50103 مقاولو الباطنمركز التكلفة · C-40180,000.00
10104 ضريبة القيمة المضافة — مدخلات27,000.00
10105 دفعات مقدمة لمقاولي الباطن18,000.00
20105 ضريبة استقطاع مستحقة9,000.00
20101 الموردون180,000.00
الإجمالي207,000.00207,000.00

لاحظ ثلاثة أشياء تعليمية في هذا القيد:

  1. التكلفة هي الإجمالي 180,000 كاملاً. الاسترداد والاستقطاع غيّرا لمن يُدفع المال، لا كم كلّف العمل.
  2. سطر المصروف وحده يحمل مركز تكلفة العقد الأصلي — لأن تكلفة مقاول الباطن هي تكلفة عقدك.
  3. استرداد الدفعة يُقفل الأصل الذي أنشأناه في الفصل 20 (دائن 10105).
تنبيه مهم: محتجزات الباطن سجل تذكيري فقط راجعنا الكود: المبلغ 9,000 يُحسب ويُضاف إلى الحقل RetentionHeld على عقد الباطن، لكنه لا يظهر في القيد ولا يُخصم من الصافي المستحق — الصافي المُرحَّل على ذمة المورد هو المبلغ الكامل. عملياً هذا يعني أن حجز مستحقات مقاول الباطن يجب أن يُدار عند سداده من وحدة الحسابات (سند صرف بمبلغ أقل)، لا من هذه الشاشة. ولا توجد شاشة «إفراج عن محتجزات الباطن» في الوحدة.

المستخلص الختامي للباطن

في 2026-12-15 اعتمد الكميات المتبقية (20 نقطة = 20,000):

البندالمبلغ
الإجمالي20,000.00
محتجز 5% (تذكيري)1,000.00
استرداد الدفعة — المتبقي فقط min(2,000 ; 2,000)2,000.00
ضريبة مدخلات 15%3,000.00
ضريبة استقطاع 5%1,000.00
الصافي المستحق20,000.00
مستخلص باطن SB-00002 (#2) · 2026-12-15
الحسابمديندائن
50103 مقاولو الباطن (مركز التكلفة · C-40)20,000.00
10104 ضريبة مدخلات3,000.00
10105 دفعات مقدمة لمقاولي الباطن2,000.00
20105 ضريبة استقطاع مستحقة1,000.00
20101 الموردون20,000.00
الإجمالي23,000.0023,000.00

بذلك أصبح رصيد «دفعات مقدمة لمقاولي الباطن» = 20,000 − 18,000 − 2,000 = صفر، وأصبح مجموع ما اعتُمد للباطن 200,000 = قيمة عقده كاملة، فسقط الالتزام المفتوح إلى صفر في شاشة الموازنة.

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

22 · المستخلص الأول — قلب الدورة

هذه أهم شاشة في الوحدة. افهمها جيداً وستفهم الباقي.

كيف تفتح المستخلص

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

الحماية الوحيدة الحقيقية إذا (الكمية السابقة + كمية هذه الفترة) > الكمية التعاقدية → رفض
لا يمكن اعتماد أكثر مما في العقد. ولزيادة الكمية يجب أمر تغيير — لا التفاف على الجدول.

ماذا تُدخل في مثالنا

#البندالكمية السابقةهذه الفترةالسعرالقيمة
1أعمال الحفر والردم05,00020.00100,000.00
2الخرسانة المسلحة0500400.00200,000.00
3أعمال المباني0055.00
4التشطيبات0050.00
إجمالي أعمال الفترة300,000.00

التاريخ 2026-04-30، الفترة من 01-01 إلى 04-30. البنود التي كميتها صفر تُحذف تلقائياً من المستخلص.

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

البندالصيغة والأرقامالنتيجة
الإجمالي100,000 + 200,000300,000.00
المحتجزات300,000 × 5%15,000.00
استرداد الدفعة المقدمةmin(300,000×10% ; 100,000−0)30,000.00
ضريبة القيمة المضافة300,000 × 15%45,000.00
الصافي المستحق على المالك300,000 + 45,000 − 15,000 − 30,000300,000.00

القيد الذي يُرحّله النظام

مستخلص PB-00001 (#1) — CONTR-00001 · 2026-04-30
الحسابالأبعادمديندائن
10103 العملاء (الصافي المستحق)مركز التكلفة300,000.00
10107 محتجزات لدى العملاء15,000.00
20104 دفعات مقدمة من الملاك (الاسترداد)30,000.00
40103 إيرادات العقود (الإجمالي كاملاً)مركز التكلفة300,000.00
20103 ضريبة القيمة المضافة — مخرجات45,000.00
الإجمالي345,000.00345,000.00
اقرأ القيد كجملة واحدة «أنجزنا عملاً قيمته 300,000 فأصبح إيراداً كاملاً (دائن الإيراد)، وعليه ضريبة 45,000 ندين بها للجهة (دائن الضريبة). والمجموع 345,000 يُقابله ثلاثة أشياء: جزء احتجزه المالك ولن نقبضه الآن لكنه حقٌّ لنا (مدين المحتجزات 15,000)، وجزء يستنزل من دفعة سبق أن قبضناها فينقص التزامنا نحوه (مدين الدفعات المقدمة 30,000)، والباقي دَينٌ عليه يدفعه نقداً (مدين العملاء 300,000).»
قيد المستخلص رقم 1 — موزَّعاً على حسابات T مجموع الجانب المدين 345,000 = مجموع الجانب الدائن 345,000 10103 العملاء مديندائن 300,000 10107 محتجزات مديندائن 15,000 20104 دفعات مقدمة مديندائن 30,000 100,000 من الدفعة استرداد 40103 إيرادات العقود مديندائن 300,000 الإجمالي كاملاً 20103 ضريبة مخرجات مديندائن 45,000 الإيراد يُثبَّت بالإجمالي دائماً — المحتجز والاسترداد لا يُنقصانه، بل يغيّران شكل ما نستلمه
المستخلص رقم 1 على حسابات T — لاحظ أن حساب الدفعات المقدمة يُستنزل تدريجياً

ماذا تغيّر خارج القيد — هذه هي السلسلة

الحقلقبلبعدمن يقرؤه لاحقاً
الكمية المفوترة للبند 105,000«الكمية السابقة» في المستخلص التالي · القيمة المكتسبة في WBS
الكمية المفوترة للبند 20500نفس ما سبق
إجمالي المفوتر0300,000الاعتراف بالإيراد · التدفق النقدي · CVR
المحتجزات المحتجزة015,000سقف الإفراج عن المحتجزات · شرط إقفال العقد
الدفعة المستردة030,000سقف الاسترداد في المستخلص التالي

حالات المستخلص

مسودة → (اختيارياً) معتمَدمُرحَّل → (إلغاء الترحيل) مسودة.

23 · أوامر التغيير

لماذا لا يُرحَّل أمر التغيير؟

لأنه لا يُنشئ إيراداً بذاته. هو يُعدّل العقد: يغيّر الكميات وأسعار الوحدات وقيمة العقد. الإيراد يأتي لاحقاً حين يُعتمد المستخلص على الكميات الجديدة. هذا هو الطريق الوحيد لتغيير نطاق عقد قائم.

صيغة أثر السطر — انتبه لها

من الكود
بند موجود: lineChange = (الكمية الحالية + التغيير) × السعر الجديد − الكمية الحالية × السعر القديم
بند جديد: lineChange = التغيير × السعر الجديد
أي أن أمر التغيير يستطيع تغيير السعر أيضاً، لا الكمية فقط — والصيغة تحسب الفرق بين ما سيصبح عليه البند وما هو عليه اليوم.

ماذا تُدخل في مثالنا

#البندجديد؟تغيير الكميةالسعرأثر القيمة
4التشطيباتقائم+50050.00(4,000+500)×50 − 4,000×50 = 25,000
5أعمال تكييف إضافيةجديد+50050.00500 × 50 = 25,000
صافي أثر أمر التغيير VO-00001+50,000.00

ماذا يحدث عند الاعتماد

  1. يُعاد حساب الأثر على أساس جدول الكميات الحالي (لا أرقام بائتة).
  2. البند 4: الكمية تصبح 4,500 والإجمالي 225,000.
  3. البند 5: يُضاف بند جديد إلى جدول الكميات بكمية 500 وسعر 50.
  4. قيمة العقد تصبح 1,000,000 + 50,000 = 1,050,000.
  5. حالة الأمر تصبح «معتمَد».
حمايتان وقرار تصميمي

جدول الكميات بعد أمر التغيير

#الوصفالكميةالسعرالإجماليالمفوتر حتى الآن
1أعمال الحفر والردم5,00020.00100,0005,000
2الخرسانة المسلحة1,200400.00480,000500
3أعمال المباني4,00055.00220,0000
4التشطيبات4,50050.00225,0000
5أعمال تكييف إضافية50050.0025,0000
قيمة العقد الجديدة1,050,000

24 · المستخلص الثاني

افتح المستخلص فتجد «الكمية السابقة» مملوءة تلقائياً بما اعتُمد في المستخلص الأول، والكميات التعاقدية محدَّثة بأمر التغيير. هذه هي السلسلة تعمل.

#البندالسابقةهذه الفترةالتراكميةالسعرالقيمة
2الخرسانة المسلحة5007001,200400.00280,000.00
3أعمال المباني04,0004,00055.00220,000.00
4التشطيبات02,0002,00050.00100,000.00
إجمالي أعمال الفترة600,000.00
البندالصيغة والأرقامالنتيجة
المحتجزات600,000 × 5%30,000.00
استرداد الدفعةmin(600,000×10% ; 100,000−30,000)60,000.00
الضريبة600,000 × 15%90,000.00
الصافي المستحق600,000 + 90,000 − 30,000 − 60,000600,000.00

لاحظ سقف الاسترداد: النسبة تعطي 60,000 والمتبقي غير المسترد 70,000 — فالنسبة هي الأصغر وهي المطبَّقة. لو كان المتبقي 40,000 فقط لَاستُرد 40,000 لا أكثر.

مستخلص PB-00002 (#2) · 2026-08-31
الحسابمديندائن
10103 العملاء600,000.00
10107 محتجزات لدى العملاء30,000.00
20104 دفعات مقدمة من الملاك60,000.00
40103 إيرادات العقود600,000.00
20103 ضريبة القيمة المضافة — مخرجات90,000.00
الإجمالي690,000.00690,000.00
تركيبة كل مستخلص: من الإجمالي إلى ما يُقبض فعلاً مستخلص 1 345,000 مستخلص 2 690,000 مستخلص 3 172,500 صافي من الإجمالي (يُقبض نقداً) محتجز 5% (يُقبض لاحقاً) استرداد الدفعة المقدمة (لا يُقبض) ضريبة 15% (تُقبض وتُورَّد للجهة) الأجزاء الثلاثة الأولى مجموعها = إجمالي المستخلص؛ والضريبة تُضاف فوقه
تركيبة المستخلصات الثلاثة في مثالنا — الطول يتناسب مع الإجمالي + الضريبة

25 · الاعتراف بالإيراد بنسبة الإنجاز

الفكرة التي يجب أن تُفهم قبل أي رقم

المستخلصات سبق أن أثبتت إيراداً (دائن 40103 بمقدار 900,000 حتى الآن). فهذه الشاشة لا تعترف بالإيراد من جديد، بل تُرحّل تسوية تنقل الإيراد المُثبَت من «ما فوترناه» إلى «ما أنجزناه»، وتضع الفرق في الميزانية:

الحالةالمعنىالحساب
المُنجز > المفوترعملنا أكثر مما طالبنا بهأصل عقدي: 10106 أعمال تحت التنفيذ
المُنجز < المفوترطالبنا بأكثر مما عملناالتزام عقدي: 20102 فواتير زائدة عن الإنجاز

ويُرحَّل الفرق عن الجولة السابقة فقط، فتظل الحسابان يحملان الوضع التراكمي الصحيح دائماً ويظل إيراد قائمة الدخل مساوياً للإيراد المُنجز حتى تاريخه.

ما يشترطه النظام قبل التشغيل

الجولة الأولى — 2026-08-31

قبل التشغيل، افتح شاشة الموازنة وأدخل تكلفة الإكمال = 170,000 (تقدير المهندس لما تبقّى). ثم افتح شاشة الاعتراف بالإيراد على العقد؛ تعرض لك «معاينة» قبل الالتزام:

البندالصيغةالقيمة
إجمالي الموازنةمجموع بنود موازنة التكلفة850,000.00
التكلفة الفعلية حتى تاريخهمركز التكلفة × حسابات المصروف680,000.00
تكلفة الإكمالمُدخلة يدوياً170,000.00
EAC — التكلفة عند الإتمام680,000 + 170,000850,000.00
نسبة الإنجاز680,000 ÷ 850,000 × 10080.0000%
الإيراد المُنجز حتى تاريخه1,050,000 × 80%840,000.00
المفوتر حتى تاريخهإجمالي المستخلصين900,000.00
صافي الوضع840,000 − 900,000−60,000.00
الوضع السابقلا توجد جولة سابقة0.00
الحركة المُرحَّلة هذه الجولة−60,000 − 0−60,000.00
الخسارة المتوقعةmax(850,000 − 1,050,000 ; 0)0.00
اعتراف بالإيراد REV-00001 (#1) — 80.00% · 2026-08-31
الحسابمديندائن
40103 إيرادات العقود (مع مركز التكلفة)60,000.00
20102 فواتير زائدة عن الإنجاز (التزام عقدي)60,000.00
الإجمالي60,000.0060,000.00

بعد هذا القيد يصبح رصيد الإيراد في قائمة الدخل: 300,000 + 600,000 − 60,000 = 840,000 = الإيراد المُنجز بالضبط. والفرق 60,000 صار التزاماً في الميزانية لأننا فوترنا أكثر مما أنجزنا.

كيف يتوازن القيد رياضياً؟ النظام يحسب: Δأصل = max(الصافي الحالي,0) − max(الصافي السابق,0) وΔالتزام = max(−الصافي الحالي,0) − max(−الصافي السابق,0)، ويأخذ سطر الإيراد الفرق. وبما أن Δالصافي = Δأصل − Δالتزام فالقيد متوازن بالبناء دائماً.

الجولة الثانية — 2026-12-31

في نهاية العام أُنجزت الأعمال كلها وصُرفت التكاليف المتبقية، وصار: التكلفة الفعلية 850,000، وتكلفة الإكمال 0، فـ EAC = max(850,000 ; 850,000) = 850,000 ونسبة الإنجاز 100%.

البندالقيمة
الإيراد المُنجز = 1,050,000 × 100%1,050,000.00
المفوتر (بعد المستخلص الختامي)1,050,000.00
صافي الوضع0.00
الوضع السابق−60,000.00
الحركة المُرحَّلة+60,000.00
اعتراف بالإيراد REV-00002 (#2) — 100.00% · 2026-12-31
الحسابمديندائن
20102 فواتير زائدة عن الإنجاز60,000.00
40103 إيرادات العقود60,000.00
الإجمالي60,000.0060,000.00

الالتزام العقدي عاد إلى صفر، وإيراد العقد استقر على 1,050,000 = قيمة العقد كاملة. هكذا تُقفل الدورة.

لو كان العقد خاسراً (مثال جانبي)

افترض أن تقدير تكلفة الإكمال ارتفع فصار EAC = 1,150,000 وقيمة العقد 1,050,000. عندها:

لماذا عن المتبقي فقط؟ لأن خسارة العمل المُنجز وقعت في قائمة الدخل بالفعل: في عقد خاسر تعترف طريقة التكلفة إلى التكلفة بإيراد أقل من التكلفة المصروفة. فالمخصص بكامل الخسارة كان سيحمّل ذلك الجزء مرتين. والقيد لو تحرك المخصص للأعلى: مدين 50105 خسائر العقود الخاسرة / دائن 20106 مخصص العقود الخاسرة، والعكس عند التحسّن.
تفصيلة دقيقة ومقصودة سطرا مخصص الخسارة لا يحملان مركز التكلفة. لو حملاه لَدخل المخصص في «التكلفة الفعلية» فترتفع EAC فترتفع الخسارة المتوقعة فيزيد المخصص… إلى ما لا نهاية. البُعد العقدي ينتقل عبر «المشروع» الذي لا يقرؤه دفتر التكلفة.

26 · مطابقة التكلفة بالقيمة (CVR)

السؤال الذي يطرحه هذا التقرير

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

ثلاثة أشياء تجعله أميناً

  1. الاستحقاق يُدخَل ولا يُشتق. التكلفة التي وقعت ولم تدخل الدفاتر لا يمكن استخراجها من الدفاتر — ذلك تعريفها. لذلك يسألك التقرير عنها لكل كود تكلفة، لأن هذا هو المستوى الذي يعرف فيه المهندس المساح الإجابة فعلاً.
  2. يقارن هامش اليوم بهامش النهاية. أخذ هامش أعلى اليوم مما سينتهي عليه المشروع هو أخذ ربح مبكر، وهو أشيع طريقة تُجمّل بها حسابات المقاول نفسها.
  3. لقطة تحمل سابقتها. «ما الذي تغيّر هذا الشهر؟» سؤال الإدارة، والحركة يجب أن تكون داخل المستند لا في جدول يُعاد بناؤه.

الصيغ كما في الكود

البندالصيغة
القيمة حتى تاريخهالمعتمَد + المطالبات المحتملة + تعديل القيمة
إجمالي التكلفة حتى تاريخهالتكلفة الدفترية + الاستحقاق المُدخل
الهامش حتى تاريخهالقيمة − التكلفة · ونسبته = الهامش ÷ القيمة
التكلفة النهائية المتوقعةمجموع «التكلفة النهائية» لكل سطر (ولا تقلّ عن ما صُرف + استُحق)
الفوترة الزائدة/الناقصةالقيمة حتى تاريخه − المفوتر
علم «ربح مبكر»نسبة الهامش الحالي − نسبة الهامش النهائي > 0.5%

المطالبات المحتملة تدخل القيمة فقط لغير المرفوضة والمنسحبة والمسوّاة — وهو قيد IFRS 15 على المقابل المتغيّر.

CVR شهر 08 في مثالنا

البندالمصدرالقيمة
المعتمَد حتى تاريخهإجمالي المستخلصين900,000.00
مطالبات محتملةلا يوجد بعد0.00
تعديل القيمة (تقدير)0.00
القيمة حتى تاريخه900,000.00
التكلفة الدفتريةمركز التكلفة680,000.00
الاستحقاق المُدخل (مواد وصلت بلا فاتورة)يُدخله المساح20,000.00
إجمالي التكلفة حتى تاريخه700,000.00
الهامش حتى تاريخه900,000 − 700,000200,000.00 (22.22%)
القيمة النهائية المتوقعةقيمة العقد + المحتمل1,050,000.00
التكلفة النهائية المتوقعةمجموع السطور870,000.00
الهامش النهائي المتوقع1,050,000 − 870,000180,000.00 (17.14%)
اقرأ هذا السطر هامش اليوم 22.22% وهامش النهاية 17.14% — الفارق +5.08 نقطة، فيرفع النظام علم «ربح مبكر». المعنى: نأخذ اليوم ربحاً أعلى مما سينتهي عليه المشروع. هذا ليس خطأ في النظام؛ هو التحذير الذي وُجد التقرير لأجله. علاجه إما تعديل تقدير التكلفة النهائية، أو الاعتراف بأننا سنُظهر انخفاضاً في الهامش لاحقاً.

الحالات

مسودة (تُعدَّل الأحكام) → صادر (يُثبَّت الشهر). CVR صادر لا يُعدَّل ولا يُحذف: «هذا سجل الشهر — افتح الشهر التالي». ولا يمكن إصدار شهر إذا صدر شهر بعده.

27 · منحنى S

ثلاثة منحنيات على محور واحد

المنحنىالاسمالمصدر في النظام
PVالقيمة المخططةمن البرنامج الزمني إن وُجد، وإلا من نوافذ حزم WBS، وإلا من تواريخ العقد بتوزيع متساوٍ — والشاشة تُعلن أيّها استُخدم.
EVالقيمة المكتسبةمجموع قيم بنود المستخلصات المُرحَّلة شهراً بشهر.
ACالتكلفة الفعليةسطور القيود على مركز تكلفة العقد وحسابات المصروف.
التزامان يحفظان صدق الرسم
المنحنى التراكمي للعقد — بالألف ريال 0 200 400 600 800 1000 1 2 3 4 5 6 7 8 9 10 11 12 شهور سنة 2026 مستخلص 1 مستخلص 2 الختامي PV القيمة المخططة EV القيمة المكتسبة AC التكلفة الفعلية
EV يصعد على شكل درجات لأنه يتحرك فقط عند ترحيل مستخلص؛ AC يبقى تحت EV طوال المشروع — وهذه صورة عقد رابح

كيف تقرأ الصورة

28 · التدفق النقدي المتوقع

لماذا توجد

لأن العقد قد يكون رابحاً ويُغرق الشركة. الربح والنقد ليسا شيئاً واحداً في مشروع يُفوتر شهرياً، ويُحتجَز منه 5% لسنة، ويدفع لمقاولي باطنه قبل أن يقبض من مالكه.

ما لا تدّعيه هذه الشاشة لا يوجد في النظام ربط بين تحصيل من عميل وبين المستخلص الذي سدّده. لذلك لا تستطيع الشاشة معرفة كم من المفوتر سابقاً ما زال غير محصَّل — وبدل اختلاق الرقم، تبدأ التوقعات من العمل الذي لم يُعتمد بعد، مضافاً إليه المحتجزات (وهي معلومة بدقة). والشاشة تُعلن ذلك صراحةً.

كيف يُبنى التوقع (من الكود)

  1. المتبقي للاعتماد = max(قيمة العقد − المفوتر ; 0)، يُوزَّع بالتساوي على أشهر العمل المتبقية.
  2. لكل شهر: الوارد = الإجمالي + الضريبة − المحتجز − استرداد الدفعة، بنفس صيغ المستخلص.
  3. يُزاح الوارد بمقدار مهلة سداد المالك ÷ 30 شهراً كاملة.
  4. الصادر = التزامات الباطن المفتوحة + أوامر الشراء المفتوحة + الموازنة غير الملتزم بها، موزَّعة كذلك ومُزاحة بمهلة سداد الموردين.
  5. المحتجزات (القائمة + المتوقعة على العمل القادم) تظهر كتدفق داخل في شهر واحد: نهاية الأعمال + أيام الإفراج.
  6. ذروة التمويل = أدنى نقطة يبلغها الرصيد التراكمي — وهو أهم رقم في الشاشة.

قراءة الشاشة في مثالنا بعد المستخلص الثاني

البندالقيمة
المتبقي للاعتماد (1,050,000 − 900,000)150,000.00
المحتجزات القائمة45,000.00
المحتجزات المتوقعة على العمل القادم (150,000×5%)7,500.00
الالتزامات المفتوحة (عقد الباطن المتبقي)20,000.00
الموازنة غير الملتزم بها (850,000 − 680,000 − 20,000)150,000.00
الإفراج عن المحتجزات المتوقَّع في 2027-1252,500.00

الرقم الأخير 52,500 هو نفسه الذي ستُفرج عنه فعلياً في الفصل 34 — وهذا ما يجعل التوقع قابلاً للتحقق لا مجرد رسم.

29 · سجلات الموقع

ثلاثة تبويبات في شاشة واحدة، ولا شيء منها يمسّ الحسابات. قيمتها ليست محاسبية بل إثباتية: مطالبة تأخير بلا سجلات يومية مجرد ادّعاء، ومعها تصبح دليلاً.

التبويبالمسارماذا يسجّل ولماذا
يومية الموقع/contr/site/diary/newالطقس، ساعات العمل، عدد العمال والمعدات، ما نُفّذ، ما وصل من مواد، الزوار، المعوقات. وعَلَم «حدث تأخير» يُمكّن من تحويل اليوم إلى مطالبة.
طلبات المعلومات (RFI)/contr/site/rfi/newسؤال فني للاستشاري وتاريخ طرحه وتاريخ الرد. سؤال يُجاب خلال يومين لا يكلّف شيئاً؛ والسؤال نفسه معلَّقاً ستة أسابيع وطاقم واقف = تأخير قابل للمطالبة.
قائمة الملاحظات (Punch)/contr/site/punch/newملاحظات التسليم وحالة معالجتها — شرط عملي لاستلام المشروع والإفراج عن المحتجزات.
الرابط العملي من يومية موقع فيها «حدث تأخير»، أو من RFI متأخر الرد، تستطيع إنشاء مطالبة مباشرة. وهذه الطبقة هي ما يجعل سجل المطالبات قابلاً للاستخدام بدل أن يكون أمنية.

في مثالنا

سجّل يومية 2026-05-12: «توقف صبّ السقف الثاني بانتظار اعتماد مخطط التسليح المعدّل»، مع تفعيل «حدث تأخير»، و RFI رقم 7 بتاريخ 2026-05-10 بلا رد حتى 2026-05-24. سنستخدمهما في الفصل 31.

30 · ضبط المستندات

لماذا توجد

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

التبويبالمحتوى
سجل المخططاتالمخططات وإصداراتها، وتاريخ «مطلوب في» وتاريخ «وصل في»، ومنه يُحسب عدد أيام التأخير — وهو الرقم الذي تُبنى عليه مطالبة «تأخر المعلومات».
مذكرات التسليملمن أُرسل وأي إصدار ومتى، وهل أُقرّ الاستلام.

31 · سجل المطالبات

الفرق الجوهري بين المطالبة وأمر التغيير

أمر التغييرالمطالبة
الحالةمتفق عليهمتنازع عليه
الأثر على قيمة العقديغيّرها فوراً عند الاعتمادلا يغيّرها إطلاقاً حتى تُسوّى
الأثر المحاسبيلا قيد (لكنه يغيّر البيانات)لا قيد ولا تغيير بيانات

الأمران اللذان يبرران وجود السجل

  1. الإخطار. عقود المقاولات تُسقط المطالبة إذا لم يُرسَل الإخطار خلال مهلة من الحدث (FIDIC 20.1: 28 يوماً). والسجل يحسب:
    الموعد النهائي للإخطار = تاريخ الحدث + مهلة الإخطار في العقد
    ساقطة بالتقادم = لم يُرسل إخطار AND اليوم > الموعد النهائي
    إخطار في خطر = لم يُرسل بعد AND المتبقي ≤ 7 أيام
    والقائمة مرتّبة بحيث تطفو الساقطة ثم المهدَّدة إلى الأعلى — سجل مرتّب بالكود يدفنها.
  2. معيار IFRS 15. المطالبة «مقابل متغيّر» لا يدخل سعر المعاملة إلا حيث يكون الانعكاس الجوهري مستبعداً جداً. لذلك المبلغ المُطالَب به لا يمسّ الإيراد أبداً؛ الذي يدخل التقارير هو المبلغ المُقدَّر «مرجَّحاً» فقط، وهو الرقم الذي تقرؤه شاشة CVR.

ماذا تُدخل في مثالنا

الحقلالقيمة
الكود / العقدCLM-00001 · CONTR-00001
النوع / العنوانتأخر معلومات · «تأخر اعتماد مخطط تسليح السقف الثاني»
تاريخ الحدث2026-05-10
تاريخ الإخطار2026-05-20 (داخل المهلة ← غير ساقطة)
المبلغ المُطالَب به40,000.00
المبلغ المرجَّح25,000.00
الأيام المُطالَب بها14 يوماً

ماذا يحدث عند التسوية

عند الضغط على تسوية وإدخال المبلغ المتفق عليه (لنقل 25,000) والأيام الممنوحة (10 أيام):

  1. يُصفَّر «المبلغ المرجَّح» فوراً حتى لا يُحتسب مرتين.
  2. يُنشئ النظام أمر تغيير ببند واحد: «تسوية مطالبة CLM-00001» بكمية 1 وسعر 25,000.
  3. تصبح المطالبة «مسوّاة» ومربوطة بأمر التغيير.
طريق واحد إلى قيمة العقد المطالبة لا تُغيّر قيمة العقد بنفسها أبداً؛ أمر التغيير وحده يفعل. مدخل واحد لا مدخلان يمكن أن يختلفا. ولا يمكن الاتفاق على أكثر مما طُولب به («أصدر أمر تغيير بدلاً من ذلك»)، ولا تعيين الحالة «مسوّاة» يدوياً، ولا حذف مطالبة مسوّاة.

في مثالنا لن ننفّذ التسوية حتى لا نغيّر قيمة العقد المستخدمة في المطابقة النهائية؛ سنترك المطالبة قائمة بمبلغ مرجَّح 25,000 لتظهر في CVR، ثم نفترض رفضها في نهاية العقد (المرفوضة يُصفَّر مبلغها المرجَّح تلقائياً).

32 · المشاريع المشتركة

الفكرة

حين تُنفَّذ العملية باسم شركتك بينما حصة من إيرادها وتكلفتها تخص شريكاً، يجب أن تُخرَج حصته من قائمة دخلك — دون أن تختفي الأرقام الإجمالية. لذلك تُستخدم حسابات مقابلة:

الحسابالنوعالغرض
40104 حصة الشركاء من الإيرادإيراد مقابلينزل من الإيراد ويبقى ظاهراً للمراجعة
50108 حصة الشركاء من التكلفةمصروف مقابلينزل من التكلفة ويبقى ظاهراً
20108 جاري شركاء المشاريع المشتركةالتزامما يستحقه كل شريك (ولكل شريك تعيين حساب خاص به)

الصيغ

الإيراد في الدفاتر = الإيراد المُعترف به إن وُجد، وإلا إجمالي المفوتر
حصة الشريك من الإيراد = الإيراد × نسبته% ; حصته من التكلفة = التكلفة الفعلية × نسبته%
وضع الشريك = حصته من الإيراد − حصته من التكلفة · الحركة = الوضع − وضعه في الجولة السابقة
ومجموع الحصص يجب أن يقلّ عن 100% وإلا لم يبقَ لشركتك شيء (النظام يرفض).

مثال جانبي مختصر

لو كان لهذا العقد شريك بنسبة 30%، وشُغّلت جولة توزيع في 2026-12-31 بعد الاعتراف بالإيراد (الإيراد في الدفاتر 1,050,000، التكلفة 850,000):

البندالقيمة
حصة الشريك من الإيراد (1,050,000×30%)315,000.00
حصة الشريك من التكلفة (850,000×30%)255,000.00
وضعه (ما يستحقه)60,000.00
توزيع مشروع مشترك JVA-00001 — الشركاء 30%
الحسابمديندائن
40104 حصة الشركاء من الإيراد315,000.00
50108 حصة الشركاء من التكلفة255,000.00
20108 جاري الشريك60,000.00
الإجمالي315,000.00315,000.00

القيد متوازن بالبناء: حركة كل شريك = فرق حصته من الإيراد ناقص فرق حصته من التكلفة. ولا يحمل أي سطر مركز تكلفة العقد — وإلا لأعاد التوزيع إدخال نفسه في تكلفة العقد.

تسوية الشريك نقداً

تسوية JVS-00001 — دفع للشريك 60,000
الحسابمديندائن
20108 جاري الشريك60,000.00
1010201 البنك الرئيسي60,000.00
الإجمالي60,000.0060,000.00

وفي حالة التحصيل من الشريك يُعكس الاتجاه. التسوية لا تمسّ الإيراد ولا التكلفة إطلاقاً — الوضع قرّرته جولة التوزيع، والتسوية تُنفّذه لا تُعيد صياغته.

ملاحظة على مثالنا: عقدنا ليس مشروعاً مشتركاً، ولذلك لا تدخل هذه القيود في ميزان المراجعة النهائي في الفصل 37.

33 · الرواتب وملف حماية الأجور

العلاقة الحاسمة مع كشوف التشغيل

كشف التشغيل حمّل العقد 150,000 وجعل الطرف المقابل «أجور مستحقة» (التزام). فحين يأتي مسيّر الرواتب، مهمته الأولى أن يُصفّي ذلك الالتزام — وإلا حُسبت الأجور مرتين: مرة على العقد ومرة على الشركة.

صيغة «الاستحقاق القائم» لكل عامل (من الكود)
كل ما حمّلته الكشوف المُرحَّلة له − ما صفّته مسيّرات الرواتب المُرحَّلة السابقة
وهو وضع تراكمي لا مطابقة بالشهر — عمداً: المطابقة بالشهر كانت ستترك كشفاً أُدخل بعد تشغيل رواتب ذلك الشهر معلّقاً بلا تصفية. ويُعاد الحساب لحظة الترحيل لا لحظة الحفظ.

ماذا تُدخل في مثالنا — مسيّر شهر 06/2026

البندالمبلغ
إجمالي الأجور (4 عمال)160,000.00
المستحق من كشوف التشغيل150,000.00
عمالة غير موزعة (160,000 − 150,000)10,000.00
الاستقطاعات (سلف)5,000.00
صافي المستحق للعمال155,000.00
مساهمات صاحب العمل16,000.00
مسيّر رواتب PAY-00001 — 2026-06 · 2026-06-30
الحسابمديندائن
20107 أجور مستحقة (تصفية ما حمّلته الكشوف)150,000.00
50109 عمالة غير موزعة10,000.00
50110 مساهمات صاحب العمل16,000.00
20110 استقطاعات مستحقة5,000.00
20109 رواتب مستحقة الدفع155,000.00
20111 مساهمات صاحب العمل مستحقة16,000.00
الإجمالي176,000.00176,000.00
لماذا «عمالة غير موزعة» حساب مستقل؟ لأنه أجور لم يحمّلها أحد على مشروع: وقت انتظار، تعطّل، موظفو موقع لم يُقيّدهم أحد. شركة لا ترى هذا الرقم تدفع مقابل ساعات لا تستطيع نسبتها إلى شيء. ولو خرج الرقم سالباً (حمّلت العقود أكثر من كلفة الأجور) فإنه يُرحَّل دائناً ولا يُقصّ إلى صفر — قصّه كان سيُضخّم تكلفة العقود ويُخفي المشكلة.

ولاحظ أن مساهمات صاحب العمل فوق الأجر الإجمالي لا مقتطعة منه، ولذلك تتوازن بين طرفيها.

صرف الرواتب

صرف مسيّر PAY-00001
الحسابمديندائن
20109 رواتب مستحقة الدفع155,000.00
1010201 البنك الرئيسي155,000.00
الإجمالي155,000.00155,000.00

قواعد يفرضها النظام

ملف حماية الأجور (WPS)

يُصدَر من داخل شاشة مسيّر الرواتب. هو تصدير للرواتب بشكل WPS: سطر لكل عامل بهويته وآيبانه وأساسيه وسكنه وبدلاته واستقطاعاته وصافيه، تحت ترويسة تحمل رقم المنشأة ورمز بنكها وآيبانها (من الإعدادات).

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

34 · مكافأة نهاية الخدمة

المبدأ

مكافأة نهاية الخدمة ليست تكلفة تظهر يوم يغادر العامل؛ هي تُكتسَب كل شهر يبقى فيه. المقاول الذي يقيّدها عند المغادرة فقط يُعلن أرباحاً لا يملكها، ثم يتلقى ضربة مجمّعة في السنة التي يتغيّر فيها طاقمه.

القاعدة قابلة للضبط لا مكتوبة في الكود

أيام الاستحقاق = min(سنوات الخدمة, 5) × (أيام أول 5 سنوات) + max(سنوات الخدمة − 5, 0) × (أيام ما بعد 5)
المستحق = أيام الاستحقاق × (الأجر الشهري ÷ 30)
سنوات الخدمة = عدد الأيام ÷ 365.25 — وتتوقف عند تاريخ ترك العمل إن وُجد.
والأجر = الأساسي + (السكن و«أخرى» إن كان إعداد «احتساب البدلات» مفعّلاً).

القيم الافتراضية 15 و30 يوماً تطابق نظام العمل السعودي، وتُغيَّر من الإعدادات لمن يعمل في دولة أخرى.

جولة 2026-12 في مثالنا

العاملالتعيينسنواتالأجرأيام الاستحقاقالمستحقسبق تكوينه
فريق العمالة أ2025-01-011.99866,00029.985,996.000.00
الحركة المُرحَّلة5,996.00

التحقق: 1.9986 × 15 = 29.979 ← يُقرَّب إلى 29.98 يوم · 29.98 × (6,000 ÷ 30) = 29.98 × 200 = 5,996.00 ريال.

مخصص نهاية الخدمة EOS-00001 — 2026-12 · 2026-12-31
الحسابمديندائن
50111 مصروف نهاية الخدمة5,996.00
20112 مخصص نهاية الخدمة5,996.00
الإجمالي5,996.005,996.00

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

تسوية عامل مغادر

لا تُقبل التسوية إلا بعد إدخال تاريخ ترك العمل في ملف المورد، ولا تتكرر لنفس العامل. القيد عند الصرف:

تسوية نهاية خدمة EOSS-00001
الحسابمديندائن
20112 مخصص نهاية الخدمةالمبلغ المدفوع
1010201 البنك الرئيسيالمبلغ المدفوع

ولا يُرحَّل قيد إطلاقاً إذا كان المبلغ المدفوع صفراً. وتُسجَّل «الفروق» (المستحق عند التسوية − المدفوع) على المستند للاطلاع.

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

35 · المستخلص الختامي، الإفراج عن المحتجزات، وإقفال العقد

35.1 المستخلص رقم 3 — الختامي

#البندالسابقةهذه الفترةالتراكميةالسعرالقيمة
4التشطيبات2,0002,5004,50050.00125,000.00
5أعمال تكييف إضافية050050050.0025,000.00
إجمالي أعمال الفترة150,000.00
البندالصيغة والأرقامالنتيجة
المحتجزات150,000 × 5%7,500.00
استرداد الدفعةmin(150,000×10%=15,000 ; المتبقي 10,000)10,000.00
الضريبة150,000 × 15%22,500.00
الصافي المستحق150,000 + 22,500 − 7,500 − 10,000155,000.00
هنا يظهر سقف الاسترداد بوضوح النسبة تعطي 15,000، لكن المتبقي غير المسترد من الدفعة لم يعد إلا 10,000 (= 100,000 − 30,000 − 60,000). فالنظام يأخذ الأصغر = 10,000، وبذلك تُستهلك الدفعة المقدمة بالضبط ولا تتحول إلى رصيد مدين وهمي.
مستخلص PB-00003 (#3 — الختامي) · 2026-12-31
الحسابمديندائن
10103 العملاء155,000.00
10107 محتجزات لدى العملاء7,500.00
20104 دفعات مقدمة من الملاك10,000.00
40103 إيرادات العقود150,000.00
20103 ضريبة القيمة المضافة — مخرجات22,500.00
الإجمالي172,500.00172,500.00

مواقف العقد بعد المستخلص الختامي

الحقلالقيمةالتحقق
إجمالي المفوتر1,050,000.00= قيمة العقد ← 100% مفوتر
المحتجزات المحتجزة52,500.00= 1,050,000 × 5% ✓
الدفعة المستردة100,000.00= الدفعة المستلمة كاملة ← الرصيد صفر ✓
الإيراد المُثبَت (قبل تسوية الجولة 2)1,050,000.00مجموع إجماليات المستخلصات

وبعد هذا المستخلص شغِّل الاعتراف بالإيراد — الجولة 2 كما في الفصل 25 لإقفال حساب «فواتير زائدة عن الإنجاز».

35.2 الإفراج عن المحتجزات

بعد انقضاء فترة الضمان (365 يوماً من نهاية الأعمال) يُفرج المالك عن المحتجزات. النوع هنا «إفراج عن محتجزات» لا «دفعة مقدمة»، فيتغيّر الحساب المقابل تلقائياً إلى Contr.RetentionReceivableAccountCode.

سند CR-00002 — إفراج عن محتجزات · 2027-12-31
الحسابمديندائن
1010201 البنك الرئيسي52,500.00
10107 محتجزات لدى العملاء52,500.00
الإجمالي52,500.0052,500.00
حماية على المبلغ إذا كان المبلغ > (المحتجز − المُفرَج عنه) + 0.01 → رفض برسالة: «الإفراج عن المحتجزات (52,500) يتجاوز المحتجز (…)». فلا يمكن الإفراج عن مال لم يُحتجَز.

لاحظ أن حساب «محتجزات لدى العملاء» عاد إلى صفر: أُثبت مديناً على ثلاث دفعات (15,000 + 30,000 + 7,500) وأُقفل دائناً بدفعة واحدة.

35.3 إقفال العقد

وهنا تظهر الحماية الأخيرة في الدورة:

إذا (المحتجز − المُفرَج عنه) > 0.01 → رفض — «ما زالت هناك محتجزات محتجزة؛ أفرج عنها قبل إقفال العقد».
وعند الإقفال، إن كان تاريخ الانتهاء فارغاً يُملأ بتاريخ اليوم.

وبما أننا أفرجنا عن 52,500 كاملة، فالإقفال يمر. انتهت الدورة.

36 · لوحة المقاولات وربحية العقود

هذه شاشة قراءة فقط، لكنها المكان الذي تُختبر فيه صحة كل ما سبق. لكل عقد سطر يعرض:

العمودمصدره
قيمة العقدمن العقد (بعد أوامر التغيير).
إجمالي المفوترمجموع إجماليات المستخلصات المُرحَّلة.
نسبة الإنجازالمفوتر ÷ قيمة العقدبالفوترة، لا بالتكلفة.
تكلفة مقاولي الباطنمن مستخلصات الباطن.
التكلفة الدفتريةمن دفتر الأستاذ: مركز التكلفة × حسابات المصروف.
صافي الربحالإيراد − التكلفة الدفترية.
المحتجزات · الدفعة غير المستردةمن مواقف العقد.
انتبه: نسبتان مختلفتان للإنجاز في الوحدة نفسها اللوحة وقائمة العقود تعرضان نسبة إنجاز بالفوترة (المفوتر ÷ القيمة)، بينما شاشات الموازنة والاعتراف بالإيراد و CVR تستخدم نسبة إنجاز بالتكلفة (الفعلي ÷ EAC). في مثالنا عند 2026-08-31 كانت الأولى 85.7% والثانية 80.0%. الرقمان صحيحان كلٌّ بتعريفه، لكن لا تقارنهما ولا تستشهد بأحدهما مكان الآخر.

37 · ميزان المراجعة المصغّر وإثبات التطابق

الجدول التالي يجمع كل حركات القيود التي أنتجتها مستندات هذا العقد، من الدفعة المقدمة حتى الإفراج عن المحتجزات. إن كان مجموع المدين = مجموع الدائن، وكانت الحسابات المؤقتة قد أُقفلت، فالدورة سليمة.

الكودالحسابمجموع المدينمجموع الدائنالرصيد
1010201البنك الرئيسي152,500.0080,000.0072,500 مدين
10103العملاء1,055,000.001,055,000 مدين
10104ضريبة القيمة المضافة — مدخلات30,000.0030,000 مدين
10105دفعات مقدمة لمقاولي الباطن20,000.0020,000.00صفر
10106المخزون300,000.00300,000 دائن (خروج)
10107محتجزات لدى العملاء52,500.0052,500.00صفر
20101الموردون200,000.00200,000 دائن
20102فواتير زائدة عن الإنجاز60,000.0060,000.00صفر
20103ضريبة القيمة المضافة — مخرجات157,500.00157,500 دائن
20104دفعات مقدمة من الملاك100,000.00100,000.00صفر
20105ضريبة استقطاع مستحقة10,000.0010,000 دائن
20107أجور مستحقة250,000.00250,000 دائن
40103إيرادات العقود60,000.001,110,000.001,050,000 دائن
50102مواد المشاريع300,000.00300,000 مدين
50103مقاولو الباطن200,000.00200,000 مدين
50104إيجار وتكلفة المعدات100,000.00100,000 مدين
50106عمالة المشاريع250,000.00250,000 مدين
50107استرداد تكلفة المعدات40,000.0040,000 دائن
الإجمالي2,380,000.002,380,000.00متوازن ✓
ما لم يدخل هذا الميزان — وهو مقصود

37.1 إثبات التكلفة الفعلية للعقد

التكلفة الفعلية = الحسابات من نوع مصروف التي تحمل مركز تكلفة العقد:

الكودالحسابيحمل مركز التكلفة؟المبلغ
50102مواد المشاريعنعم300,000.00
50103مقاولو الباطننعم200,000.00
50104إيجار وتكلفة المعداتنعم100,000.00
50106عمالة المشاريعنعم250,000.00
50107استرداد تكلفة المعدات (دائن 40,000)لا — مستوى الشركةمستبعَد
التكلفة الفعلية للعقد850,000.00

وهي مطابقة تماماً لإجمالي الموازنة (850,000) ولـ EAC عند الإتمام — ولذلك خرجت نسبة الإنجاز 100% في الجولة الثانية.

37.2 ربحية العقد

البندالمصدرالمبلغ
الإيراد المعترف بهرصيد 401031,050,000.00
التكلفة الفعلية على مركز التكلفةالجدول أعلاه(850,000.00)
ربح العقد200,000.00
نسبة الربح200,000 ÷ 1,050,00019.05%

لماذا 200,000 وليس 150,000 كما كان متوقعاً عند التوقيع؟

البندالمبلغ
الربح المتوقع عند التوقيع (1,000,000 − 850,000)150,000.00
أثر أمر التغيير VO-00001 على القيمة+50,000.00
أثره على التكلفة (نُفِّذ ضمن الموازنة القائمة)0.00
الربح الفعلي200,000.00
درس عملي في مثالنا نُفِّذ عمل أمر التغيير ضمن الموازنة الأصلية، ولذلك ذهب أثره كله إلى الربح. في الواقع غالباً ما يحمل أمر التغيير تكلفة إضافية — وعندها يجب رفع موازنة التكلفة وتحديث «تكلفة الإكمال»، وإلا خرجت نسبة الإنجاز مضخَّمة واعترف النظام بإيراد أكثر مما أُنجز فعلاً. تحديث الموازنة بعد كل أمر تغيير جزء من الإجراء، لا خطوة اختيارية.

37.3 الأثر على مستوى الشركة

البندالمبلغ
ربح العقد بمقياس مركز التكلفة200,000.00
استرداد تكلفة المعدات (50107) — يخفّض تكلفة الأسطول المسجّلة خارج العقد+40,000.00
صافي أثر هذه القيود على قائمة الدخل240,000.00

الفرق ليس ربحاً إضافياً: الأربعون ألفاً تقابل إهلاكاً ووقوداً وصيانةً للحفّارة سبق تسجيلها كمصروف على مستوى الشركة في وحدة الأصول. فالعقد استوعب نصيبه منها، والحساب المقابل يمنع احتسابها مرتين.

37.4 المواقف المتبقية بعد الإقفال

الموقفالمبلغالإجراء المطلوب
ذمم العملاء غير المحصَّلة1,055,000.00سند قبض من وحدة الحسابات
ذمم الموردين (مقاول الباطن)200,000.00سند صرف — مع خصم محتجزاته 10,000 يدوياً
صافي ضريبة القيمة المضافة (157,500 − 30,000)127,500.00الإقرار الضريبي
ضريبة الاستقطاع المستحقة10,000.00التوريد للجهة
أجور مستحقة متبقية (250,000 − 150,000 صُفِّيت)100,000.00مسيّر رواتب شهر 11 يُصفّيها

38 · ملحق أ: مصفوفة المستندات والحسابات

ورقة مرجعية واحدة: كل مستند يُرحَّل في الوحدة، وما يجعله مديناً وما يجعله دائناً. المفاتيح بين قوسين هي التي يُحلّ منها الحساب.

المستندمديندائن
دفعة مقدمة من المالكالخزنة/البنك المختاردفعات مقدمة من الملاك (OwnerAdvance)
إفراج عن محتجزاتالخزنة/البنك المختارمحتجزات لدى العملاء (RetentionReceivable)
مستخلصالعملاء بالصافي (Comm.Receivable)
+ محتجزات لدى العملاء (إن > 0)
+ دفعات مقدمة من الملاك (الاسترداد، إن > 0)
إيرادات العقود بالإجمالي (ContractRevenue)
+ ضريبة مخرجات (إن > 0)
تكلفة عقد — موادمواد المشاريع (Materials) بمركز التكلفة وكود التكلفةالمخزون (Comm.Inventory)
تكلفة عقد — معداتإيجار معدات (EquipmentRental) بمركز التكلفةالخزنة/البنك المختار
تكلفة عقد — أخرىمواد المشاريع (Materials) — أو حساب مصروف تختارهالخزنة/البنك المختار
كشف تشغيلعمالة المشاريع (LabourCost) مقسَّماً بكود التكلفة
+ تكلفة المعدات (EquipmentRental) مقسَّماً بكود التكلفة
(كلاهما بمركز التكلفة)
أجور مستحقة (WagesAccrual)
+ استرداد تكلفة المعدات (EquipmentRecovery)
(كلاهما بلا مركز تكلفة)
دفعة باطن مقدمةدفعات مقدمة لمقاولي الباطن (SubcontractorAdvance)الخزنة/البنك المختار
مستخلص باطنمقاولو الباطن بالإجمالي (Subcontractor) بمركز التكلفة
+ ضريبة مدخلات (إن > 0)
دفعات مقدمة لمقاولي الباطن (الاسترداد)
+ ضريبة استقطاع مستحقة (WhtPayable)
+ الموردون بالصافي (Comm.Payable)
اعتراف بالإيراد — وضع أصلأعمال تحت التنفيذ (Wip)إيرادات العقود
اعتراف بالإيراد — وضع التزامإيرادات العقودفواتير زائدة عن الإنجاز (ExcessBillings)
مخصص عقد خاسر (زيادة)خسائر العقود الخاسرة (OnerousLoss)مخصص العقود الخاسرة (OnerousProvision)
مسيّر رواتبأجور مستحقة (بمقدار ما صفّاه)
+ عمالة غير موزعة (UnallocatedLabour)
+ مساهمات صاحب العمل (EmployerContribution)
استقطاعات مستحقة (PayrollDeductionsPayable)
+ رواتب مستحقة الدفع (NetPayrollPayable)
+ مساهمات صاحب العمل مستحقة
صرف الرواتبرواتب مستحقة الدفعالخزنة/البنك المختار
مخصص نهاية الخدمة (زيادة)مصروف نهاية الخدمة (EosExpense)مخصص نهاية الخدمة (EosProvision)
تسوية نهاية خدمةمخصص نهاية الخدمةالخزنة/البنك المختار
توزيع مشروع مشتركحصة الشركاء من الإيراد (JvPartnerRevenueShare)حصة الشركاء من التكلفة (JvPartnerCostShare)
+ جاري كل شريك
تسوية شريك (دفع له)جاري الشريكالخزنة/البنك المختار

المستندات التي لا تُرحَّل إطلاقاً

العطاء · العقد وجدول الكميات · موازنة التكلفة · هيكل تجزئة العمل · البرنامج الزمني · خطابات الضمان · أمر التغيير · CVR · منحنى S · التدفق النقدي · سجلات الموقع · ضبط المستندات · سجل المطالبات · عقد الباطن (التوقيع) · الموارد التشغيلية · لوحة المقاولات.

39 · ملحق ب: من يُغذّي مَن — سلسلة المستندات

هذه أهم صفحة في الدليل لمن يريد أن يفهم الوحدة لا أن يحفظها. كل سهم هنا حقيقي في الكود.

ب-1 · سلسلة الكميات

المصدرالحقلالمستهلك
جدول كميات العقدالكمية التعاقديةسقف الاعتماد في كل مستخلص (لا يمكن تجاوزه)
مستخلص مُرحَّليزيد «الكمية المفوترة» على البندعمود «الكمية السابقة» في المستخلص التالي · القيمة المكتسبة في WBS ومنحنى S
أمر تغيير معتمَديعدّل الكمية التعاقدية والسعر ويضيف بنوداًجدول الكميات ← قيمة العقد ← كل نسب الإنجاز

ب-2 · سلسلة الدفعة المقدمة

سند دفعة مقدمة (+100,000 على «المستلمة»)

كل مستخلص يحسب min(الإجمالي×10% ; المستلمة − المستردة)

مستخلص 1 يسترد 30,000 · مستخلص 2 يسترد 60,000 · المستخلص الختامي يسترد الباقي 10,000

رصيد «دفعات مقدمة من الملاك» = صفر

ب-3 · سلسلة المحتجزات

كل مستخلص يحتجز 5% ← «المحتجز» يتراكم (15,000 + 30,000 + 7,500 = 52,500)

سند «إفراج عن محتجزات» سقفه = المحتجز − المُفرَج عنه

إقفال العقد ممنوع ما لم يصل الفرق إلى صفر

ب-4 · سلسلة التكلفة

المستندالبُعد الذي يحملهمن يقرؤه
صرف مواد · إيجار معدات · كشف تشغيل · مستخلص باطنمركز تكلفة العقد على سطر المصروف«التكلفة الفعلية» في: الموازنة · الاعتراف بالإيراد · CVR · منحنى S · اللوحة
نفس المستنداتكود التكلفةالموازنة سطراً بسطر · سطور CVR · تكلفة حزم WBS
التكلفة الفعلية + الموازنة + تكلفة الإكمالEAC ← نسبة الإنجاز ← الإيراد المُنجز ← قيد التسوية

ب-5 · سلسلة الباطن

توقيع عقد الباطن ← التزام مفتوح 200,000 في شاشة الموازنة

دفعة مقدمة 20,000 ← أصل قابل للاسترداد

مستخلص باطن: يستهلك الأصل · يخفّض الالتزام المفتوح · يرفع تكلفة العقد

عند اعتماد كامل القيمة: الالتزام صفر والأصل صفر

ب-6 · سلسلة العمالة

ملف المورد (سعر الساعة) ← كشف التشغيل (ساعات × سعر)

مدين «عمالة المشاريع» على العقد · دائن «أجور مستحقة» على الشركة

مسيّر الرواتب يقرأ «الاستحقاق القائم» ويُصفّيه

ما زاد من الأجر الإجمالي = «عمالة غير موزعة»

ب-7 · سلسلة الأدلة والمطالبات

يومية موقع (حدث تأخير) · RFI متأخر · إصدار مخطط متأخر

مطالبة (بمهلة إخطار محسوبة) ← «المبلغ المرجَّح» يظهر في CVR فقط

تسوية ← تُنشئ أمر تغيير ← يُعتمد ← يتغيّر جدول الكميات وقيمة العقد

40 · ملحق ج: تنبيهات على السلوك الحالي

هذه ملاحظات على ما يفعله النظام اليوم، جمعناها أثناء تتبّع الكود. أدرجناها هنا حتى لا يتعلّم القارئ سلوكاً على أنه القاعدة الصحيحة، ولتكون قائمة مراجعة عملية.

الموضوعالسلوك الحاليما يجب أن تفعله
محتجزات مقاولي الباطنتُحسب وتُسجَّل على عقد الباطن، لكنها لا تُخصم من المستحق ولا تظهر في القيد؛ ذمة المورد تُقيَّد بالمبلغ الكامل. ولا توجد شاشة إفراج عنها.عند سداد مقاول الباطن، اخصم المحتجز يدوياً في سند الصرف، وتابع رصيده من حقل «المحتجز» على عقد الباطن.
تسوية نهاية الخدمةلا تُطرح من «ما سبق تكوينه»، فتُفرج الجولة التالية عن المخصص مرة ثانية؛ ينتهي المصروف إلى صفر ويبقى في حساب المخصص رصيد مدين بقيمة ما دُفع.راجع رصيد 20112 بعد كل تسوية وسوِّه بقيد يدوي، حتى تُعالَج الحالة.
تعارض الأكواد الافتراضية«أعمال تحت التنفيذ» و«المخزون» يشيران افتراضياً إلى الحساب 10106 نفسه؛ و«فواتير زائدة عن الإنجاز» إلى 20102 «مصروفات مستحقة»؛ و«دفعات مقدمة لمقاولي الباطن» إلى 10105 «مصروفات مدفوعة مقدماً».أنشئ حسابات مستقلة لكل منها واربط المفاتيح بها من «الإعدادات ← الحسابات» قبل أول ترحيل.
نسبتان للإنجازاللوحة وقائمة العقود: بالفوترة. الموازنة والاعتراف بالإيراد و CVR: بالتكلفة.حدّد أي تعريف تستخدمه في تقاريرك ولا تخلط بينهما في الجملة نفسها.
موازنة أمر التغييرأمر التغيير يرفع قيمة العقد ولا يمسّ موازنة التكلفة.بعد كل أمر تغيير: حدِّث موازنة التكلفة و«تكلفة الإكمال»، وإلا خرجت نسبة الإنجاز مضخَّمة.
إلغاء ترحيل الاعتراف بالإيراديعكس القيد ويحذف سجل الجولة نهائياً (لا يُعلَّم كملغى)، فيُعاد استخدام رقم الجولة.لا تعتمد على تسلسل أرقام الجولات كأثر تدقيقي؛ اعتمد على قيود اليومية.
ربط التحصيل بالمستخلصلا يوجد ربط بين سند القبض والمستخلص الذي سدّده، ولذلك لا تعرف شاشة التدفق النقدي المحصَّل من المفوتر (وهي تعلن ذلك).تابع أعمار الذمم من وحدة الحسابات، لا من شاشة التدفق النقدي.
تكلفة حزم WBSلا تُوزَّع التكلفة تحت مستوى العقد إلا عبر أكواد التكلفة؛ الحزمة بلا كود يظهر مؤشر CPI لها فارغاً.اربط كل حزمة عمل بفرع كود تكلفة إن أردت CPI لكل حزمة.
خلاصة الدليل في ثلاث جمل
  1. المستخلص يُثبت الإيراد بالإجمالي دائماً — والمحتجز والاسترداد والضريبة لا تغيّر الإيراد، بل تغيّر شكل ما يُقبض.
  2. التكلفة تُقاس بمركز التكلفة — أي سطر مصروف بلا مركز تكلفة ليس تكلفة هذا العقد، مهما بدا كذلك.
  3. الاعتراف بالإيراد يسوّي لا يُكرّر — يُرحّل الفرق بين المُنجز والمفوتر فقط، ويضعه في الميزانية أصلاً أو التزاماً.

انتهى الدليل · وحدة المقاولات (CONTR) — نظام KEMTOVA ERP
كل القيود المذكورة منقولة من معالِجات الأوامر في src/Core/EsisSoft.Application/Features/Contracting