# WP3 — الواجهة: اختيار أمر الإنتاج + الأمر المؤقت

## Goal
في شاشة **أذون الصرف**: يظهر «أمر إنتاج» في نوع المرجع (لما الإعداد مفتوح)، ومعاه منتقي أوامر بحث، وزر يعمل **أمر مؤقت** بأقل بيانات ويختاره فورًا؛ ورقم الأمر يبان في القائمة والتفاصيل.

## Depends on
WP2 (الـendpoints + مفتاح الإعداد).

## الملفات
- `/home/moonui2/public_html/moon-erp/src/app/features/stock-issues/stock-issues.component.ts` و`.html`
  - `referenceTypeOptions` (~سطر 163) — القائمة حاليًا `sale/consumption/damage/adjustment/other` و**مفيهاش `production_order`** رغم إن الـenum في الباك إند فيه `ProductionOrder` والـrequest بيقبله. ضيفه **بشرط الإعداد**.
  - `reference_type` منتقي في `.html` (~سطر 103). `reference_id` **مفيش له منتقي أصلًا** — ده اللي هتضيفه.
  - القائمة (~سطر 20) والتفاصيل (~سطر 389) بيعرضوا `reference_number` بالفعل — **اتأكد إنه بيتملّى لأوامر الإنتاج** (لو الباك إند مش بيرجّعه لأوامر الإنتاج، بلّغ في التقرير بدل ما تخترع).
- خدمة/موديل مناسبين في `src/app/core/services` و`src/app/core/models/inventory.model.ts`.
- i18n: `src/assets/i18n/ar.json` + `en.json` (مفاتيح جديدة زي `INVENTORY.REF_PRODUCTION_ORDER`, `INVENTORY.QUICK_ORDER`).

## ⚠️ عقد الـAPI مثبّت — اكتب عليه مباشرة (الباك إند WP2 هينفّذه بنفس الشكل)
- **منتقي الأوامر:** `GET /api/production/orders?issuable=1&search=<q>` (مصفّح) — كل عنصر: `{id, order_number, product_name, planned_quantity, unit_name, status}`.
- **الأمر المؤقت:** `POST /api/production/orders/quick` بـ`{product_id, planned_quantity, unit_id}` → 201 بنفس شكل العنصر. 403 لو مالوش صلاحية.
- **الإعداد:** `production.allow_issue_against_order` (boolean) من `GET /api/production/settings`.

## المطلوب
1. **خيار «أمر إنتاج»** يظهر في نوع المرجع **فقط لما الإعداد مفتوح** (اقرأ الإعداد من إعدادات الإنتاج). مقفول ⇒ الشاشة **زي ما هي بالظبط**.
2. **منتقي أمر الإنتاج** يظهر لما تختار النوع ده: بحث **server-side** (debounced، برقم الأمر/المنتج) على endpoint الأوامر القابلة للصرف — اتبع نمط منتقي المورد في `purchases/bills` (بحث ≥2 حروف + `[loading]`). يملأ `reference_id`.
3. **زر «أمر مؤقت»** جنب المنتقي: يفتح فورم صغير (منتج + كمية + وحدة) → يستدعي endpoint الإنشاء → **يختار الأمر الجديد فورًا** في المنتقي. لو المستخدم مالوش الصلاحية، الزر **مايظهرش** (الـ403 مايبانش كـerror غامض).
4. **عرض رقم الأمر** في القائمة والتفاصيل (غالبًا شغّال عبر `reference_number` — تحقّق).
5. الحفظ يبعت `reference_type='production_order'` + `reference_id` = الأمر المختار.

## HARD constraint (regression)
أنواع المرجع التانية (بيع/استهلاك/تالف/تسوية/أخرى) ونظام الصرف العادي **زي ما هو بالظبط** — مفيش حقل جديد بيتبعت ولا سلوك بيتغيّر لما النوع مش «أمر إنتاج» أو لما الإعداد مقفول.

## Acceptance
- [ ] الإعداد مقفول → مفيش «أمر إنتاج» في القائمة، والشاشة بلا أي تغيير.
- [ ] مفتوح → الخيار موجود؛ اختياره بيظهر منتقي الأوامر؛ البحث بيرجّع أوامر قابلة للصرف بس.
- [ ] زر الأمر المؤقت بيعمل أمر بـ3 حقول ويختاره فورًا؛ ومايظهرش لمن لا يملك الصلاحية.
- [ ] الحفظ بيبعت النوع والـid صح، ورقم الأمر بيظهر في القائمة والتفاصيل.
- [ ] الأنواع التانية بلا تغيير · `npx ng build --base-href /app/` أخضر.

## Tests
مفيش test runner في الـFE → البوابة = `ng build` أخضر + مراجعة opus + قبول يدوي على /app.

## Flags
NOT [FIN] · migration: لا.

## Out of scope
أي منطق ترحيل/اعتماد (WP1) · شاشة أوامر الإنتاج نفسها · استكمال بيانات الأمر المؤقت.
