توثيق ERPOSالمرجع التنفيذي للمطورين
الرئيسية›فهرس الخوارزميات›خوارزمية حساب المهل النظامية

خوارزمية حساب المهل النظاميةStatutory deadline computation

خوارزميةمتطلب وارد في الملفات يحتاج اعتمادًا قانونيًا

من تاريخ حدث موثق وقاعدة معتمدة سارية وقائمة عطلات، تحسب آخر يوم للإجراء. العد بالأيام التقويمية، والعطلات داخل المدة تُحسب، ويمتد الموعد فقط إذا وقع آخر يوم في عطلة رسمية.

الميزات التي تستخدمها: B12 محرك المهل النظامية وحاسبة الاعتراض، B11 الأحكام وطرق الاعتراض، B04 مراحل التقاضي ودورة حياة القضية

1الغرض والمصطلحات القانونية المرتبطة

الاعتراض على الحكم له مدة تبدأ من حدث (غالبًا استلام صك الحكم). فوات المدة يجعل الحكم نهائيًا. تقييم القرارات يؤكد: العد بالأيام التقويمية المتصلة، واستبعاد كل جمعة وسبت «يدمر مهل المكتب» (التقييم الهندسي).

2المدخلات وأنواعها ومصادرها

المدخلالنوعالمصدر
trigger_dateDate (ميلادي)الحكم أو المرحلة B11 الأحكام وطرق الاعتراض
ruleDeadline Rule (length, unit, start_offset, extend_on_holiday, calendar)معتمد وسارٍ في trigger_date
holidaysمجموعة تواريخ مع وسم «مبدئي»Holiday List للسنة
weekendأيام الأسبوع (الجمعة والسبت افتراضيًا)الإعداد

3المخرجات والحالات

4خطوات المعالجة بالتسلسل

  1. اختيار القاعدة: الجهة، نوع المحكمة، المرحلة، الحدث، الاستعجال، والسريان في تاريخ الحدث، ومعتمدة.
  2. start = trigger_date + start_offset يومًا.
  3. end = start + length − 1 (للأيام). للأشهر والسنين: بحسب calendar (هجري بأم القرى أو ميلادي) يحتاج اعتمادًا قانونيًا.
  4. إذا extend_on_holiday وكان end عطلة أسبوعية أو رسمية: end += 1 حتى يوم عمل.
  5. حفظ النتيجة والأثر.

5الشروط والفروع والاستثناءات

6Pseudocode كامل

Pseudocode
function compute_due_date(trigger_date, rule, holidays, weekend={FRI, SAT}):
    if not rule.verified_by or not rule.is_valid_on(trigger_date):
        return Result(status="NO_APPROVED_RULE")
    start = trigger_date + days(rule.start_offset)          # 1 = day after event (DG p38)
    if rule.unit == "day":
        end = start + days(rule.length - 1)
    else:
        require rule.calendar in {"hijri", "gregorian"}      # [legal]
        end = add_calendar_units(start, rule.length, rule.unit, rule.calendar) - days(1)
    if rule.extend_on_holiday:
        while end.weekday in weekend or end in holidays.dates:
            end = end + days(1)
    safe = previous_working_day(end, weekend, holidays)      # [eng] internal target
    warn = any(h.tentative and abs(h.date - end) <= days(3) for h in holidays)
    return Result(status="OK", due=end, internal_safe_due=safe,
                  tentative_warning=warn,
                  trace={trigger_date, rule.code, rule.version, holidays.version})

الكود المرجعي في دليل المطور بالمنطق نفسه (start_next_day، حلقة العطلات) (دليل المطور ص40-41).

7مثال اصطناعي خطوة بخطوة

الحالةالحدثالمدةأول يومآخر يوم محسوبالاستحقاق
عاديالأحد 2026-11-0130الاثنين 2026-11-02الثلاثاء 2026-12-01الثلاثاء 2026-12-01
مستعجلالثلاثاء 2026-11-0310الأربعاء 2026-11-04الجمعة 2026-11-13 (عطلة)الأحد 2026-11-15
طلب السير بعد الشطبالخميس 2026-11-0560الجمعة 2026-11-06الاثنين 2027-01-04الاثنين 2027-01-04

الأمثلة من (دليل المطور ص41) والمدد فيها لتوضيح الحساب فقط وتبقى يحتاج اعتمادًا قانونيًا حتى الاعتماد. تحقّقنا من أيام الأسبوع لهذه التواريخ. ملاحظة: مثال الوثيقة المعمارية (2 رمضان 1446 «الثلاثاء») أيامه خاطئة؛ 2 رمضان 1446 يوافق الأحد 2025-03-02 (التعارض C-08).

8حالات الفشل والتعامل معها

9منع التكرار والتزامن

إعادة الحساب (تغيير الحدث أو العطلات) في مهمة خلفية بقفل على Legal Deadline (SELECT … FOR UPDATE) ونسخة سجل؛ المهلة المغلقة لا تُعاد.

10الصلاحيات والتدقيق والأمن

تعديل القواعد لمختص؛ كل حساب يحفظ الأثر؛ كل تعديل يدوي بسبب ومن عدّل.

11اختبارات الوحدات والتكامل والقبول

المعرّفالنوعالسيناريوالنتيجة المتوقعة
ALG-DL-01وحدةالمثال العادي2026-12-01
ALG-DL-02وحدةالمثال المستعجل2026-11-15
ALG-DL-03وحدةالشطب2027-01-04
ALG-DL-04وحدةعطلة في منتصف المدةلا تأثير
ALG-DL-05وحدةآخر يوم عيد مبدئيامتداد + تحذير
ALG-DL-06وحدةstart_offset = 0يبدأ يوم الحدث
ALG-DL-07تكاملعطلة تضاف لاحقًاإعادة حساب المفتوح فقط
ALG-DL-08قبولقاعدة غير معتمدةلا نتيجة

12ما هو قاعدة تقنية وما هو قرار قانوني

قاعدة تقنية (ينفذها المطور)قرار قانوني (يعتمده مختص)
حلقة الحساب، التخزين، التذكير، إعادة الحسابالمدد وأحداث البدء والمواد
قائمة العطلات وحالتهاالعطلات الرسمية والأعياد المؤكدة
الموعد الداخلي الآمنساعة انتهاء التقديم الإلكتروني