╔════════════════════════════════════════════════════════════════════════════════╗
║               🚀 نظام أذون الصرف المنفصلة - مرجع سريع                          ║
║                 SEPARATE ISSUE SYSTEM - QUICK REFERENCE                         ║
╚════════════════════════════════════════════════════════════════════════════════╝

📊 ملخص النظام الجديد
═══════════════════════════════════════════════════════════════════════════════════

النظام يوفر:
  ✅ نوعين منفصلين من أذون الصرف
  ✅ مخازن مستقلة لكل نوع
  ✅ أطراف مستقبلة مختلفة
  ✅ حسابات محاسبية منفصلة
  ✅ منع الخلط بين الأنواع

═══════════════════════════════════════════════════════════════════════════════════

1️⃣ أذن صرف الخامات (Raw Materials Issue)
───────────────────────────────────────────

📦 المخزن:          raw_materials_warehouses
📍 الوجهة:          production_sites_or_lines (مواقع إنتاج)
🔤 الكود:           ISSUE_MATERIAL
📊 الجدول:          inventory_documents (issue_type = 'raw_materials')
📈 النموذج:         RawMaterialsWarehouse
🎯 الحساب:          10203-XX (مخزن الخامات)

الدوال المطلوبة:
├─ RawMaterialsIssueController@index      → /raw-materials-issues
├─ RawMaterialsIssueController@create     → /raw-materials-issues/create
├─ RawMaterialsIssueController@store      → POST /raw-materials-issues
├─ RawMaterialsIssueController@show       → /raw-materials-issues/{id}
├─ RawMaterialsIssueController@edit       → /raw-materials-issues/{id}/edit
├─ RawMaterialsIssueController@update     → PUT /raw-materials-issues/{id}
├─ RawMaterialsIssueController@destroy    → DELETE /raw-materials-issues/{id}
└─ RawMaterialsIssueController@approve    → POST /raw-materials-issues/{id}/approve

═══════════════════════════════════════════════════════════════════════════════════

2️⃣ أذن صرف المنتجات التامة (Finished Goods Issue)
───────────────────────────────────────────

📦 المخزن:          finished_goods_warehouses
📍 الوجهة:          finished_goods_recipients (عملاء/فروع)
🔤 الكود:           ISSUE_FINISHED
📊 الجدول:          inventory_documents (issue_type = 'finished_goods')
📈 النموذج:         FinishedGoodsWarehouse
🎯 الحساب:          10204-XX (مخزن المنتجات)

الدوال المطلوبة:
├─ FinishedGoodsIssueController@index     → /finished-goods-issues
├─ FinishedGoodsIssueController@create    → /finished-goods-issues/create
├─ FinishedGoodsIssueController@store     → POST /finished-goods-issues
├─ FinishedGoodsIssueController@show      → /finished-goods-issues/{id}
├─ FinishedGoodsIssueController@edit      → /finished-goods-issues/{id}/edit
├─ FinishedGoodsIssueController@update    → PUT /finished-goods-issues/{id}
├─ FinishedGoodsIssueController@destroy   → DELETE /finished-goods-issues/{id}
└─ FinishedGoodsIssueController@approve   → POST /finished-goods-issues/{id}/approve

═══════════════════════════════════════════════════════════════════════════════════

📊 جداول البيانات الجديدة
───────────────────────────────────────────

1. finished_goods_warehouses
   ├─ id, company_id, name, location
   ├─ chart_of_account_id, description, is_active
   └─ timestamps, soft_deletes

2. raw_materials_warehouses
   ├─ id, company_id, name, location
   ├─ chart_of_account_id, description, is_active
   └─ timestamps, soft_deletes

3. finished_goods_recipients
   ├─ id, company_id, name, type (customer/branch/distribution_center)
   ├─ contact_person, phone, email, address
   ├─ customer_id, description, is_active
   └─ timestamps, soft_deletes

4. production_sites_or_lines
   ├─ id, company_id, name, type (production_line/production_site/project)
   ├─ location, project_id, manager_name, manager_phone
   ├─ description, is_active
   └─ timestamps, soft_deletes

═══════════════════════════════════════════════════════════════════════════════════

📝 تحديثات الجداول الموجودة
───────────────────────────────────────────

inventory_documents
├─ + issue_type (enum: raw_materials, finished_goods)
├─ + recipient_id (bigint)
└─ + recipient_type (varchar)

═══════════════════════════════════════════════════════════════════════════════════

🏗️ النماذج الجديدة
───────────────────────────────────────────

✅ FinishedGoodsWarehouse       app/Models/FinishedGoodsWarehouse.php
✅ RawMaterialsWarehouse        app/Models/RawMaterialsWarehouse.php
✅ FinishedGoodsRecipient       app/Models/FinishedGoodsRecipient.php
✅ ProductionSiteOrLine         app/Models/ProductionSiteOrLine.php

═══════════════════════════════════════════════════════════════════════════════════

🔐 الصلاحيات المطلوبة (Permissions)
───────────────────────────────────────────────────────────────────────────────

صرف الخامات:
├─ inventory.raw_materials.issue.view      (عرض)
├─ inventory.raw_materials.issue.create    (إنشاء)
├─ inventory.raw_materials.issue.edit      (تعديل)
├─ inventory.raw_materials.issue.delete    (حذف)
└─ inventory.raw_materials.issue.approve   (اعتماد)

صرف المنتجات:
├─ inventory.finished_goods.issue.view     (عرض)
├─ inventory.finished_goods.issue.create   (إنشاء)
├─ inventory.finished_goods.issue.edit     (تعديل)
├─ inventory.finished_goods.issue.delete   (حذف)
└─ inventory.finished_goods.issue.approve  (اعتماد)

إدارة المخازن والأطراف:
├─ inventory.raw_materials.warehouse.manage       (إدارة مخازن الخامات)
├─ inventory.finished_goods.warehouse.manage      (إدارة مخازن المنتجات)
├─ inventory.finished_goods.recipients.manage     (إدارة الأطراف المستقبلة)
└─ inventory.production_sites.manage              (إدارة مواقع الإنتاج)

═══════════════════════════════════════════════════════════════════════════════════

✨ قواعد منع الخلط (Validation Rules)
───────────────────────────────────────────

❌ لا يمكن:
  • صرف خامات إلى عميل
  • صرف منتجات من مخزن خامات
  • اختيار موقع إنتاج كطرف مستقبل لمنتجات تامة
  • اختيار عميل كوجهة لصرف خامات

═══════════════════════════════════════════════════════════════════════════════════

📊 حسابات الشجرة المطلوبة
───────────────────────────────────────────

10203 (أب)           مخزن الخامات
├─ 10203-01          مخزن خامات (فرعي)
├─ 10203-02          مخزن خامات (فرعي)
└─ ...

10204 (أب)           مخزن المنتجات التامة
├─ 10204-01          مخزن منتجات (فرعي)
├─ 10204-02          مخزن منتجات (فرعي)
└─ ...

═══════════════════════════════════════════════════════════════════════════════════

🎯 الخطوات الفورية
───────────────────────────────────────────

المرحلة الثانية (القادمة):

[ ] إنشاء المتحكمات
    ├─ RawMaterialsIssueController
    ├─ FinishedGoodsIssueController
    ├─ RawMaterialsWarehouseController
    ├─ FinishedGoodsWarehouseController
    ├─ FinishedGoodsRecipientController
    └─ ProductionSiteOrLineController

[ ] إضافة المسارات (Routes)
    └─ routes/inventory.php

[ ] إنشاء Validation Requests
    ├─ StoreRawMaterialsIssueRequest
    ├─ UpdateRawMaterialsIssueRequest
    ├─ StoreFinishedGoodsIssueRequest
    └─ UpdateFinishedGoodsIssueRequest

[ ] إنشاء Policies (اختياري)
    ├─ RawMaterialsIssuePolicy
    ├─ FinishedGoodsIssuePolicy
    └─ ...

═══════════════════════════════════════════════════════════════════════════════════

📂 الملفات المهمة
───────────────────────────────────────────

📄 SEPARATE_ISSUE_SYSTEM_DESIGN.md      ← شرح النظام الكامل
📄 SEPARATE_ISSUE_PROGRESS.md            ← تقدم التطوير
📄 SEPARATE_ISSUE_SUMMARY.txt            ← ملخص
📄 NEXT_STEPS_DETAILED.md                ← الخطوات التالية بالتفصيل
📄 QUICK_REFERENCE_SEPARATE_ISSUES.txt   ← هذا الملف

═══════════════════════════════════════════════════════════════════════════════════

🚀 الأوامر السريعة
───────────────────────────────────────────

إنشاء المتحكمات:
$ php artisan make:controller Inventory/RawMaterialsIssueController --resource
$ php artisan make:controller Inventory/FinishedGoodsIssueController --resource
$ php artisan make:controller Inventory/RawMaterialsWarehouseController --resource
$ php artisan make:controller Inventory/FinishedGoodsWarehouseController --resource
$ php artisan make:controller Inventory/FinishedGoodsRecipientController --resource
$ php artisan make:controller Inventory/ProductionSiteOrLineController --resource

إنشاء Validation Requests:
$ php artisan make:request Inventory/StoreRawMaterialsIssueRequest
$ php artisan make:request Inventory/UpdateRawMaterialsIssueRequest
$ php artisan make:request Inventory/StoreFinishedGoodsIssueRequest
$ php artisan make:request Inventory/UpdateFinishedGoodsIssueRequest

إنشاء Policies:
$ php artisan make:policy RawMaterialsIssuePolicy
$ php artisan make:policy FinishedGoodsIssuePolicy

═══════════════════════════════════════════════════════════════════════════════════

📈 التقدم الحالي
───────────────────────────────────────────

✅ 100% - المرحلة الأولى (قاعدة البيانات والنماذج)
⏳ 0%   - المرحلة الثانية (المتحكمات والمسارات)
⏳ 0%   - المرحلة الثالثة (الـ Views)
⏳ 0%   - المرحلة الرابعة (القيود والتقارير)
⏳ 0%   - المرحلة الخامسة (الصلاحيات والاختبار)

═══════════════════════════════════════════════════════════════════════════════════

📞 قائمة مراجعة سريعة
───────────────────────────────────────────

قبل البدء بالمرحلة الثانية تأكد من:

[ ] قراءة SEPARATE_ISSUE_SYSTEM_DESIGN.md
[ ] فهم الفرق بين نوعي الصرف
[ ] معرفة الحسابات المستخدمة
[ ] فهم قواعد منع الخلط
[ ] معرفة الجداول والعلاقات

═══════════════════════════════════════════════════════════════════════════════════

⏱️ الوقت المتوقع

المتحكمات:       2-3 ساعات
Validation:      1-2 ساعات
المسارات:        30 دقيقة
Policies:        1 ساعة
Views:           4-5 ساعات
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
الإجمالي:        10-12 ساعة عمل

═══════════════════════════════════════════════════════════════════════════════════

💡 نصائح مهمة
───────────────────────────────────────────

1. استخدم middleware('company') في جميع المسارات
2. طبق validation requests بصرامة
3. تذكر منع الخلط في كل استعلام
4. اجعل الرسائل واضحة وعربية
5. استخدم relationships بدلاً من eager loading البسيط
6. اختبر كل شيء قبل الانتقال للخطوة التالية

═══════════════════════════════════════════════════════════════════════════════════

🔗 الروابط المهمة
───────────────────────────────────────────

Models Location:       app/Models/
Controllers Location:  app/Http/Controllers/Inventory/
Routes Location:       routes/inventory.php
Requests Location:     app/Http/Requests/Inventory/
Views Location:        resources/views/inventory/

═══════════════════════════════════════════════════════════════════════════════════

✅ تم: 2025-11-20 08:30 UTC+3
الحالة: جاهز للمرحلة الثانية ✅
تم إنجاز: قاعدة البيانات والنماذج والتوثيق

═══════════════════════════════════════════════════════════════════════════════════
