# هم‌راستاسازی ساختار لوایح با الگوهای رسمی کارفرما

**تاریخ:** ۱۴۰۵/۰۵/۰۳  
**منبع:** دو فایل رسمی دریافتی از کارفرما:

- `ساختار کلی لایحه تاخیرات.docx` (۱۳۰ پاراگراف، ۶ جدول)
- `ساختار کلی لایحه ضرر و زیان.docx` (۲۶۵ پاراگراف، ۲۰ جدول)

این دو فایل، مسدودکنندهٔ (blocker) «قالب رسمی گزارش» را که در دو گزارش قبلی اعلام شده بود، **می‌بندند**.

---

## ۱. مسئله

ساختار الزامی گزارش در موتور تولید لایحه یک ساختار عمومی ۸‌بخشی با شماره‌گذاری متعارف (۱، ۲، ۳…) بود که با الگوی رسمی کارفرما مطابقت نداشت. مهم‌ترین مغایرت‌ها:

| #   | مغایرت                                                                           | وضعیت          |
| --- | -------------------------------------------------------------------------------- | -------------- |
| 1   | شماره‌گذاری متعارف `۱.`، `۴.۲.` به جای قالب معکوس فارسی `1-1-`، `1-1-2-`         | ✅ رفع شد      |
| 2   | نبود سرفصل‌های «بخش اول / بخش دوم» در لایحه تأخیرات                              | ✅ رفع شد      |
| 3   | نبود بخش مبانی فقهی و حقوقی در لایحه ضرر و زیان                                  | ✅ رفع شد      |
| 4   | نبود الزام زیرنویس شماره‌دار برای جداول و اشکال                                  | ✅ رفع شد      |
| 5   | طبقه‌بندی خسارات بر مبنای «مستقیم/بالاسری» به جای «تلف منابع/تلف مالیت»          | ✅ رفع شد      |
| 6   | نبود جدول خلاصه در مقدمه و الزام تطابق آن با جمع‌بندی پایانی                     | ✅ رفع شد      |
| 7   | منطق معیوب `ensureDamageReportStructure` (شرط و regex متناقض — هرگز اجرا نمی‌شد) | ✅ بازنویسی شد |

---

## ۲. ساختار رسمی لایحه تأخیرات (پیاده‌سازی‌شده)

```
مقدمه
بخش اول : مروری بر وضعیت پروژه
  1-1-  مشخصات پروژه              → جدول دوستونی ۱۶ ردیفی
  2-1-  نمودار خط زمانی پروژه   → شکل 2- همپوشانی عوامل
  3-1- روش بررسی تأخیرات       → ۶ روش با رویکرد Retrospective/Prospective
  4-1- خط زمانی رویدادها       → جدول 1- (تاریخ | رویداد)
بخش دوم: عوامل بروز تأخیر و تجزیه و تحلیل اثر آن‌ها
  1-2- تحویل کارگاه/دستور کار/نقشه (بند 3 الف ماده 30)
     1-1-2- …  →  1-1-1-2- …   (تا سطح چهارم)
  2-2- تعهدات مالی کارفرما (بند 9 الف ماده 30) → 5090 / 1300 / بند 4 ماده 53
  3-2- سایر عوامل تأخیر (سایر بندهای الف ماده 30)
  4-2- جمع‌بندی مدت تأخیرات       → جدول 50- + تاریخ پایان جدید
پیوست‌ها
```

نکتهٔ کلیدی در جدول `4-2-`: تفکیک صریح دو عدد «جمع جبری روزهای تأخیر» و «اثر خالص بر پایان پروژه پس از کسر همپوشانی» — دقیقاً همان موردی که در الگوی رسمی با دو ستون مجزا نمایش داده شده است.

---

## ۳. ساختار رسمی لایحه ضرر و زیان (پیاده‌سازی‌شده)

```
مشخصات پروژه            (پیش از مقدمه)
مقدمه                   → شکل 1- عوامل اختلال + جدول 1- مجموع کل خسارات
بخش اول: مبانی فقهی و حقوقی خسارات ادعایی
  1-1- تلف مال به معنای عام
  2-1- تلف مال به معنای خاص (تلف مالیت)
     1-2-1- تأخیر تأدیه دیون
     2-2-1- سایر تعهدات کارفرما
  3-1- خسارت اقتصادی ناشی از نقض تعهدات قراردادی
     1-3-1- اصل لزوم وفای به عهد
     2-3-1- اصل لزوم جبران کامل خسارت
  4-1- استفاده بلاجهت و ناعادلانه
بخش دوم: کمی‌سازی خسارات ادعایی
  1-2- خسارات ناشی از تلف منابع به‌کارگرفته‌شده
     1-1-2- نیروی انسانی
     2-1-2- ماشین‌آلات          (ضریب ۰٫۴ نرخ اجاره)
     3-1-2- منابع غیرمستقیم (بالاسری)
  2-2- خسارات ناشی از تلف مالیت و تطویل مدت
     1-2-2- عدم استرداد تضمین حسن انجام کار
     2-2-2- تأخیر در پرداخت صورت وضعیت موقت
  4-2- جمع‌بندی خسارات        → جدول 28- مجموع کل خسارات
پیوست‌ها
```

کنترل تقاطعی جدید: مجموع جدول `4-2-` باید **دقیقاً** با «جدول 1- مجموع کل خسارات» در مقدمه یکسان باشد؛ مغایرت عددی خطای فاحش اعلام می‌شود.

خروجی دوستونهٔ «مبلغ خالص» / «با احتساب کسور قانونی» و زنجیرهٔ کمی‌سازی و تاکسونومی وضعیت (Applicable / NotApplicable / …) **دست‌نخورده حفظ شد**.

---

## ۴. نقاط پیاده‌سازی در کد

| الزام الگو                               | فایل                                     | محل                                           |
| ---------------------------------------- | ---------------------------------------- | --------------------------------------------- |
| ساختار الزامی لایحه تأخیرات (متن پرامپت) | `src/legacy/services/geminiService.ts`   | بلوک `DELAY`                                  |
| ساختار الزامی لایحه ضرر و زیان           | `src/legacy/services/geminiService.ts`   | بلوک `DAMAGE`                                 |
| تزریق اسکلت بخش‌ها در خروجی تأخیرات      | `src/legacy/services/reportFormatter.ts` | `ensureDelayReportStructure`                  |
| تزریق اسکلت بخش‌ها در خروجی ضرر و زیان   | `src/legacy/services/reportFormatter.ts` | `ensureDamageReportStructure` (بازنویسی کامل) |
| بخش پیوست‌ها                             | `src/legacy/services/reportFormatter.ts` | `generateCompleteReport`                      |

---

## ۵. تأییدها

- بررسی نحوی (TS1xxx) روی هر دو فایل تغییریافته: **بدون خطا**
- `ensureDamageReportStructure` پیش‌تر به دلیل تناقض منطقی عملاً هیچ کاری نمی‌کرد؛ اکنون سه شرط مستقل و کارا دارد.
- مورد باز از گزارش قبلی (ترتیب `setError` در `onRestoreProject`) بررسی شد: مشکل وجود ندارد — فراخوانی شرطی واحد است و پس از آن `setError(null)` دیگری نیست.

---

## ۶. مورد باقی‌مانده (نیازمند ورودی کاربر)

یک پروندهٔ واقعی کامل (قرارداد + صورت‌وضعیت‌ها + مکاتبات + برنامه زمان‌بندی) برای اعتبارسنجی عددی تطابق دو ماژول تأخیرات و ضرر و زیان (مورد ۸ گزارش ۲۶ تیر).
