# 📊 جدول تفصيلي لأنواع الإجازات - جميع السيناريوهات

## 🎯 ملاحظات مهمة قبل الجدول:
- **الرصيد السنوي**: يُحسب من تاريخ التعيين (الأشهر × الحصة الشهرية)
- **الرصيد الشهري**: يُحسب شهريًا (الرصيد المتبقي + الحصة الشهرية الجديدة)
- **الأجر اليومي**: (الراتب الإجمالي + المكونات) ÷ 30
- **الأيام المخصومة**: تُحسب بعد استبعاد عطلات نهاية الأسبوع والعطلات المدفوعة

---

## 📋 الجدول التفصيلي

| نوع الإجازة | الرصيد المتاح | الأيام المطلوبة | ماذا يحدث عند الإنشاء | ماذا يحدث عند الموافقة | تأثير على الرصيد | تأثير على الراتب | النتيجة النهائية |
|------------|--------------|-----------------|---------------------|----------------------|-----------------|-----------------|-----------------|
| **1. إجازة شهرية (Monthly)** |
| شهرية | ✅ 10 أيام | 5 أيام | ✅ يُنشأ طلب واحد | ✅ تُخصم 5 أيام من الرصيد الشهري | ⬇️ -5 أيام | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| شهرية | ✅ 10 أيام | 10 أيام | ✅ يُنشأ طلب واحد | ✅ تُخصم 10 أيام من الرصيد الشهري | ⬇️ -10 أيام (يصبح 0) | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| شهرية | ✅ 5 أيام | 10 أيام | ✅ يُنشأ طلب واحد | ⚠️ تُخصم 5 أيام فقط من الرصيد | ⬇️ -5 أيام (يصبح 0) | ⚠️ **يُخصم 5 أيام من الراتب** | ⚠️ 5 أيام مدفوعة + 5 أيام بدون راتب |
| شهرية | ❌ 0 أيام | 5 أيام | ✅ يُنشأ طلب واحد | ⚠️ لا يُخصم من الرصيد (رصيد = 0) | ➡️ 0 (لا يتغير) | ⚠️ **يُخصم 5 أيام من الراتب** | ⚠️ إجازة بدون راتب بالكامل |
| **2. إجازة سنوية (Annual)** |
| سنوية | ✅ 15 أيام | 10 أيام | ✅ يُنشأ طلب واحد | ✅ تُخصم 10 أيام من الرصيد السنوي | ⬇️ -10 أيام | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| سنوية | ✅ 10 أيام | 10 أيام | ✅ يُنشأ طلب واحد | ✅ تُخصم 10 أيام من الرصيد السنوي | ⬇️ -10 أيام (يصبح 0) | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| سنوية | ✅ 5 أيام | 10 أيام | ⚠️ **يُنشأ طلبين تلقائيًا** | ⚠️ تُخصم 5 أيام من الرصيد السنوي | ⬇️ -5 أيام (يصبح 0) | ⚠️ **يُخصم 5 أيام من الراتب** | ⚠️ 5 أيام سنوية مدفوعة + 5 أيام بدون راتب |
| سنوية | ❌ 0 أيام | 10 أيام | ⚠️ **يُنشأ طلب واحد بدون راتب** | ⚠️ لا يُخصم من الرصيد | ➡️ 0 (لا يتغير) | ⚠️ **يُخصم 10 أيام من الراتب** | ⚠️ إجازة بدون راتب بالكامل |
| **3. إجازة طارئة (Emergency)** |
| طارئة | ✅ أي رصيد | 5 أيام | ✅ يُنشأ طلب واحد | ✅ لا تُخصم من أي رصيد | ➡️ لا يتغير | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| طارئة | ❌ 0 أيام | 10 أيام | ✅ يُنشأ طلب واحد | ✅ لا تُخصم من أي رصيد | ➡️ لا يتغير | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| **4. إجازة مرضية (Sick)** |
| مرضية | ✅ أي رصيد | 5 أيام | ✅ يُنشأ طلب واحد | ✅ لا تُخصم من أي رصيد | ➡️ لا يتغير | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| مرضية | ❌ 0 أيام | 10 أيام | ✅ يُنشأ طلب واحد | ✅ لا تُخصم من أي رصيد | ➡️ لا يتغير | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| **5. إجازة أمومة (Maternity)** |
| أمومة | ✅ أي رصيد | 30 أيام | ✅ يُنشأ طلب واحد | ✅ لا تُخصم من أي رصيد | ➡️ لا يتغير | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| أمومة | ❌ 0 أيام | 90 أيام | ✅ يُنشأ طلب واحد | ✅ لا تُخصم من أي رصيد | ➡️ لا يتغير | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| **6. إجازة أبوة (Paternity)** |
| أبوة | ✅ أي رصيد | 3 أيام | ✅ يُنشأ طلب واحد | ✅ لا تُخصم من أي رصيد | ➡️ لا يتغير | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| أبوة | ❌ 0 أيام | 5 أيام | ✅ يُنشأ طلب واحد | ✅ لا تُخصم من أي رصيد | ➡️ لا يتغير | ✅ لا تأثير (مدفوعة) | ✅ إجازة مدفوعة بالكامل |
| **7. إجازة بدون راتب (Unpaid)** |
| بدون راتب | ✅ أي رصيد | 5 أيام | ✅ يُنشأ طلب واحد | ✅ لا تُخصم من أي رصيد | ➡️ لا يتغير | ⚠️ **يُخصم 5 أيام من الراتب** | ⚠️ إجازة بدون راتب بالكامل |
| بدون راتب | ❌ 0 أيام | 10 أيام | ✅ يُنشأ طلب واحد | ✅ لا تُخصم من أي رصيد | ➡️ لا يتغير | ⚠️ **يُخصم 10 أيام من الراتب** | ⚠️ إجازة بدون راتب بالكامل |

---

## 🔍 شرح تفصيلي لكل سيناريو

### 📌 **إجازة شهرية (Monthly)**

#### ✅ **السيناريو 1: الرصيد كافي**
- **الرصيد**: 10 أيام
- **المطلوب**: 5 أيام
- **النتيجة**: 
  - يُنشأ طلب واحد
  - عند الموافقة: تُخصم 5 أيام من الرصيد الشهري
  - الرصيد يصبح: 5 أيام
  - الراتب: لا يتأثر (مدفوعة بالكامل)

#### ⚠️ **السيناريو 2: الرصيد غير كافي**
- **الرصيد**: 5 أيام
- **المطلوب**: 10 أيام
- **النتيجة**:
  - يُنشأ طلب واحد
  - عند الموافقة: تُخصم 5 أيام من الرصيد (يصبح 0)
  - الأيام الزائدة (5 أيام): تُخصم من الراتب تلقائيًا عند توليد كشف الراتب
  - **الخصم من الراتب**: 5 أيام × الأجر اليومي

---

### 📌 **إجازة سنوية (Annual)**

#### ✅ **السيناريو 1: الرصيد كافي**
- **الرصيد**: 15 أيام
- **المطلوب**: 10 أيام
- **النتيجة**:
  - يُنشأ طلب واحد
  - عند الموافقة: تُخصم 10 أيام من الرصيد السنوي
  - الرصيد يصبح: 5 أيام
  - الراتب: لا يتأثر (مدفوعة بالكامل)

#### ⚠️ **السيناريو 2: الرصيد غير كافي (مميز)**
- **الرصيد**: 5 أيام
- **المطلوب**: 10 أيام
- **النتيجة**:
  - **يُنشأ طلبين تلقائيًا عند الإنشاء**:
    1. إجازة سنوية: 5 أيام (الجزء المدفوع)
    2. إجازة بدون راتب: 5 أيام (الجزء الزائد)
  - عند الموافقة:
    - الإجازة السنوية: تُخصم 5 أيام من الرصيد (يصبح 0)
    - الإجازة بدون راتب: لا تُخصم من الرصيد، لكن تُخصم من الراتب
  - **الخصم من الراتب**: 5 أيام × الأجر اليومي

#### ❌ **السيناريو 3: لا يوجد رصيد**
- **الرصيد**: 0 أيام
- **المطلوب**: 10 أيام
- **النتيجة**:
  - يُنشأ طلب واحد (إجازة بدون راتب)
  - عند الموافقة: لا يُخصم من الرصيد
  - **الخصم من الراتب**: 10 أيام × الأجر اليومي

---

### 📌 **إجازة طارئة (Emergency)**
- **لا تحتاج رصيد أبدًا**
- **النتيجة دائماً**: إجازة مدفوعة بالكامل
- **الرصيد**: لا يتأثر
- **الراتب**: لا يتأثر

---

### 📌 **إجازة مرضية (Sick)**
- **لا تحتاج رصيد أبدًا**
- **النتيجة دائماً**: إجازة مدفوعة بالكامل
- **الرصيد**: لا يتأثر
- **الراتب**: لا يتأثر

---

### 📌 **إجازة أمومة (Maternity)**
- **لا تحتاج رصيد أبدًا**
- **النتيجة دائماً**: إجازة مدفوعة بالكامل
- **الرصيد**: لا يتأثر
- **الراتب**: لا يتأثر

---

### 📌 **إجازة أبوة (Paternity)**
- **لا تحتاج رصيد أبدًا**
- **النتيجة دائماً**: إجازة مدفوعة بالكامل
- **الرصيد**: لا يتأثر
- **الراتب**: لا يتأثر

---

### 📌 **إجازة بدون راتب (Unpaid)**
- **لا تحتاج رصيد أبدًا**
- **النتيجة دائماً**: إجازة بدون راتب
- **الرصيد**: لا يتأثر
- **الراتب**: يُخصم عدد الأيام × الأجر اليومي

---

## 💰 **حساب الخصم من الراتب**

### **متى يُخصم من الراتب؟**
1. ✅ **إجازة بدون راتب**: دائماً تُخصم
2. ⚠️ **إجازة سنوية تجاوزت الرصيد**: الجزء الزائد فقط
3. ⚠️ **إجازة شهرية تجاوزت الرصيد**: الأيام الزائدة فقط

### **طريقة الحساب:**
```
الأجر اليومي = (الراتب الأساسي + الحوافز + المكونات) ÷ 30
مبلغ الخصم = عدد الأيام × الأجر اليومي
```

### **مثال عملي:**
- **الراتب الإجمالي**: 3000 جنيه
- **الأجر اليومي**: 3000 ÷ 30 = 100 جنيه
- **إجازة بدون راتب**: 5 أيام
- **الخصم**: 5 × 100 = 500 جنيه

---

## 🎯 **ملخص سريع**

| نوع الإجازة | يحتاج رصيد؟ | عند تجاوز الرصيد | تأثير على الراتب |
|------------|------------|-----------------|-----------------|
| شهرية | ✅ نعم (شهري) | ⚠️ يُخصم الجزء الزائد من الراتب | ⚠️ نعم (للجزء الزائد) |
| سنوية | ✅ نعم (سنوي) | ⚠️ يُنشأ طلبين: مدفوع + بدون راتب | ⚠️ نعم (للجزء الزائد) |
| طارئة | ❌ لا | ✅ لا يحدث شيء (لا تحتاج رصيد) | ✅ لا |
| مرضية | ❌ لا | ✅ لا يحدث شيء (لا تحتاج رصيد) | ✅ لا |
| أمومة | ❌ لا | ✅ لا يحدث شيء (لا تحتاج رصيد) | ✅ لا |
| أبوة | ❌ لا | ✅ لا يحدث شيء (لا تحتاج رصيد) | ✅ لا |
| بدون راتب | ❌ لا | ✅ لا يحدث شيء (لا تحتاج رصيد) | ⚠️ نعم (دائماً) |

---

## ⚠️ **حالات خاصة**

### **1. إجازة سنوية تتجاوز الرصيد:**
- النظام **يُنشأ طلبين تلقائيًا** عند الإنشاء
- لا تحتاج تدخل يدوي
- الرسالة: "تم إنشاء طلبين: جزء مدفوع وجزء بدون راتب بسبب تجاوز الرصيد"

### **2. إجازة شهرية تتجاوز الرصيد:**
- يُنشأ طلب واحد فقط
- عند الموافقة: تُخصم الأيام المتاحة من الرصيد
- الأيام الزائدة: تُخصم تلقائيًا من الراتب عند توليد كشف الراتب

### **3. حساب الأيام المخصومة:**
- يتم استبعاد عطلات نهاية الأسبوع (من `weekly_off_days`)
- يتم استبعاد العطلات المدفوعة (`is_paid = true`)
- فقط أيام العمل الفعلية تُحسب

---

## 📝 **ملاحظات نهائية**

1. ✅ **الإجازات المدفوعة**: (طارئة، مرضية، أمومة، أبوة) لا تحتاج رصيد أبدًا
2. ⚠️ **الإجازات التي تحتاج رصيد**: (شهرية، سنوية) قد تُخصم من الراتب إذا تجاوزت الرصيد
3. ❌ **الإجازة بدون راتب**: دائماً تُخصم من الراتب بغض النظر عن الرصيد
4. 🔄 **الرصيد السنوي**: يُحسب من تاريخ التعيين حتى الآن
5. 🔄 **الرصيد الشهري**: يُحسب شهريًا (الرصيد المتبقي + الحصة الجديدة)

