# RESUME — ISS-2026-9296 · وسم الشغلانة على إذن الصرف

**الحالة:** ✅ **التنفيذ اكتمل على `hazemdev2`** (BE + FE) · منشور على `/app` · **غير ملتزم في git** · **مفيش دمج على main ولا شحن** — دي خطوة المالك (`/fullpush`).
**آخر تحديث:** 2026-07-27 · **الحزمة المنشورة:** `main-LGIJ3CEN.js` · **`I18N_VERSION`:** `20260725e` · **الأم:** ISS-2026-9260

---

## اللي اتعمل وليه

العميل هيشغّل **المخازن من غير موديول الإنتاج**. أمين المخزن محتاج **يراقب**: صرف إيه على شغلانة معيّنة وكام مرة — «صرف 5 مرات في اليوم على نفس الشغلانة يعرف يراقب هو بيعمل إيه». **مش تحميل تكلفة.**

| WP | الوصف | الحالة |
|---|---|---|
| WP1 | جدول الوسوم + CRUD + صلاحيات + **بحث الأسماء المتقاربة** | ✅ |
| WP2 | نوع مرجع `job_tag` على إذن الصرف + **إثبات صفر أثر محاسبي** | ✅ |
| WP3 | تقرير «المنصرف حسب الوسم» (ملخّص + تفصيل + فترة) | ✅ |
| WP4 | **إزالة** «أمر الإنتاج المؤقت» بتاع 9260 | ✅ |
| WP5 | شاشة أذون الصرف: النوع + المنتقي + حوار الإضافة + تحذير التقارب | ✅ |
| WP6 | شاشة إدارة الوسوم + **تبويب** التقرير في مركز تقارير المخزون | ✅ |
| إصلاحات المراجعة الشاملة | 5 نتائج (واحدة عالية) | ✅ |

## الأرقام النهائية

| | خط الأساس | النهاية |
|---|---|---|
| Inventory | 541 / 1 | **بوابة نهائية — نتيجتها في LEDGER** |
| اختبارات الوسوم الثلاثة | — | **85 نجاح / 347 تأكيد** |
| اختبارات أذون الصرف (10 ملفات) | — | **166 نجاح / 802 تأكيد** |
| Production (بعد الإزالة) | 625 / 10 | **616 / 10** (حذف 9 اختبارات) |
| FE build | أخضر | **أخضر — صفر تحذير جديد** |

## أهم اكتشاف في المراجعة الشاملة (اتصلّح)
`reference_id` عمود **متعدّد المعاني بالعُرف**. الواجهة كانت بتمسح الكنترول عند تبديل نوع المرجع لكن **مابتبعتش `reference_id: null`**، والباك إند مابيكتبش مفتاحًا غايبًا ⇒ **id الوسم بيفضل على الصف تحت نوعه الجديد**. إذن موسوم اتحوّل لـ«مبيعات» كان بيخلّي ليسنر المبيعات يحلّ **فاتورة بنفس الرقم — بلا تقييد بالشركة**.
**اتصلّح في الباك إند عند الحدود** (`prepareForValidation`): لما `reference_type` يتغيّر فعلًا عن المحفوظ، `reference_id` بيتصفّر لكل نوع مالوش قاعدة تحقّق خاصة بيه. **الشرط تغيّر النوع مش مجرد وجوده** — عشان إذن صرف مبيعات مولّد من فاتورة مايفقدش ربطه.

## يتقال للعميل
- الفيتشر **مالوش أي أثر محاسبي** — مُثبَت بجرد كل المشتركين في حدث الاعتماد (اتنين بس، وكل واحد بيرجع عند نوع مرجع مختلف).
- **زرار «أمر إنتاج مؤقت» اتشال خالص** زي ما قرّر. **الصرف على أمر إنتاج حقيقي فاضل شغّال** — طريق الترقية لما الإنتاج يشتغل.
- أعمدة **القيمة** خلف صلاحية جديدة، وبتتدّي تلقائيًا لمن كان بيشوف تكاليف التقارير أصلًا.

## مؤجّلات ⇒ تذاكر لاحقة
- **`\x{200B}` (ZERO WIDTH SPACE)** مش ضمن التطبيع (استُخدم النطاق المحدَّد حرفيًا) — إضافته تحسين خالص.
- **⚠️ لغم موجود مش من شغلنا:** `Modules/Sales/tests/Feature/CogsAtDeliveryCancelTest.php` بيفشل **6/6** بـ`no_open_period` — **تركيبة منتهية الصلاحية**: بتثبّت فترة مالية `2026-06-01 → 2026-06-30` بتعليق «الفترة اللي بتغطّي النهارده» والنهارده **2026-07-27**. الملف مالوش أي علاقة بشغلنا (مفيش `putJson` ولا وسوم). **هيفضل يفشل كل يوم لحد ما يتصلّح.**
- `total_quantity` بيجمع وحدات مدخلة مختلطة (عُرف البيت، و`base_quantity` متاح لو حبينا الدقة).
- `status` list validation · حلقات `pgrep` — اتصلّحوا/اتسجّلوا.

## نقطة الاستئناف
التنفيذ خلص. الباقي: نشر التحديث على التذكرة، اختبار العميل، ثم `/fullpush` من المالك.
كل قرار ومراجعة بالتفصيل في `LEDGER.md` جنب الملف ده.
