# Contract Form - Auto Calculate Installment Value Enhancement

## تحسين حساب قيمة القسط التلقائي في نموذج العقود

### المشكلة الأصلية:
كانت قيمة القسط (`installment_value`) تتحدث فقط عند تغيير عدد الأقساط (`installment_count`)، لكنها لا تتحدث عند تغيير:
- السعر الأصلي (`original_price`)
- نسبة الربح (`profit_percentage`)

### التحسين المطبق:

#### 1. تحديث حقل نسبة الربح (`profit_percentage`)
```php
->afterStateUpdated(function ($state, callable $set, callable $get) {
    $original = $get('original_price') ?? 0;
    $profit = $state ?? 0;
    $final = $original + ($original * $profit / 100);
    $set('installment_price', $final);
    $set('price_difference', $final - $original);
    
    // ✅ إضافة جديدة: تحديث قيمة القسط
    $count = $get('installment_count');
    if ($final && $count) {
        $set('installment_value', round($final / $count, 2));
    }
})
```

#### 2. تحديث حقل السعر الأصلي (`original_price`)
```php
->afterStateUpdated(function ($state, callable $set, callable $get) {
    // ✅ إضافة جديدة: حساب السعر النهائي بناءً على نسبة الربح
    $profit = $get('profit_percentage') ?? 0;
    if ($profit > 0) {
        $final = $state + ($state * $profit / 100);
        $set('installment_price', $final);
        $set('price_difference', $final - $state);
        
        // ✅ إضافة جديدة: تحديث قيمة القسط
        $count = $get('installment_count');
        if ($final && $count) {
            $set('installment_value', round($final / $count, 2));
        }
    } else {
        $set('price_difference', ($get('installment_price') ?? 0) - ($state ?? 0));
    }
})
```

### السيناريوهات المحسنة:

#### ✅ السيناريو 1: تغيير نسبة الربح
1. المستخدم يدخل السعر الأصلي: **1000 جنيه**
2. المستخدم يدخل عدد الأقساط: **10 أقساط**
3. المستخدم يدخل نسبة الربح: **20%**
4. **النتيجة التلقائية:**
   - السعر النهائي: **1200 جنيه** (1000 + 20%)
   - قيمة القسط: **120 جنيه** (1200 ÷ 10)

#### ✅ السيناريو 2: تغيير السعر الأصلي مع وجود نسبة ربح
1. المستخدم يدخل السعر الأصلي: **1000 جنيه**
2. المستخدم يدخل نسبة الربح: **15%**
3. المستخدم يدخل عدد الأقساط: **12 قسط**
4. المستخدم يغير السعر الأصلي إلى: **1500 جنيه**
5. **النتيجة التلقائية:**
   - السعر النهائي: **1725 جنيه** (1500 + 15%)
   - قيمة القسط: **143.75 جنيه** (1725 ÷ 12)

#### ✅ السيناريو 3: تعديل نسبة الربح
1. المستخدم لديه عقد بسعر أصلي: **2000 جنيه**
2. عدد الأقساط: **8 أقساط**
3. نسبة الربح الحالية: **10%** (السعر النهائي: 2200 جنيه، القسط: 275 جنيه)
4. المستخدم يغير نسبة الربح إلى: **25%**
5. **النتيجة التلقائية:**
   - السعر النهائي الجديد: **2500 جنيه** (2000 + 25%)
   - قيمة القسط الجديدة: **312.5 جنيه** (2500 ÷ 8)

### الفوائد:

✅ **حساب تلقائي كامل**: جميع الحقول تتحدث تلقائياً  
✅ **تجربة مستخدم محسنة**: لا حاجة لإعادة كتابة القيم يدوياً  
✅ **دقة في الحسابات**: تجنب الأخطاء اليدوية  
✅ **سير عمل سلس**: يمكن تعديل أي قيمة وستتحدث البقية تلقائياً  

### طريقة الاختبار:

1. **افتح صفحة إنشاء عقد جديد**
2. **أدخل السعر الأصلي** (مثل: 1000)
3. **أدخل عدد الأقساط** (مثل: 10)
4. **أدخل نسبة الربح** (مثل: 20%)
5. **تحقق من التحديث التلقائي:**
   - السعر النهائي = 1200
   - قيمة القسط = 120
6. **غير نسبة الربح** (مثل: 30%)
7. **تحقق من التحديث التلقائي:**
   - السعر النهائي = 1300
   - قيمة القسط = 130

### ملاحظات فنية:

- استخدام `round($final / $count, 2)` لضمان دقة قيمة القسط لرقمين عشريين
- التحقق من وجود القيم (`$final && $count`) لتجنب القسمة على صفر
- الحفاظ على السلوك الأصلي للحقول الأخرى

🎉 **الآن نموذج العقود يعمل بذكاء أكبر وتلقائية كاملة!**
