# تحديث أوامر الشراء السريعة - دعم الخصم والضريبة

## 📋 ملخص التغييرات

تم تحديث نظام أوامر الشراء السريعة لدعم حساب الخصم والضريبة بالإضافة إلى الحسابات المحاسبية.

## 🔧 التغييرات في الواجهة الخلفية

### 1. تحديث Schema (`quickPurchaseOrderSchema.js`)
- ✅ إضافة حقل `tax` (DECIMAL 5,2) - نسبة الضريبة %
- ✅ إضافة حقل `discount` (DECIMAL 5,2) - نسبة الخصم %
- ✅ إضافة حقل `debitAccount` (INTEGER) - الحساب المدين
- ✅ إضافة حقل `creditAccount` (INTEGER) - الحساب الدائن
- ✅ إضافة حقل `currency` (VARCHAR 10) - العملة
- ✅ إضافة حقل `exchangeRate` (DECIMAL 10,4) - سعر الصرف
- ✅ إضافة حقل `orderType` (ENUM) - نوع الطلب (quick/accounting)
- ✅ تحديث hooks لحساب المبلغ الإجمالي تلقائياً

### 2. Migration File
- ✅ `20240304-add-tax-discount-to-quick-purchase-orders.js`
- ✅ ملف SQL للتنفيذ اليدوي: `add-tax-discount-columns.sql`

### 3. تحديث Controller (`quickPurchaseOrderController.js`)
- ✅ تحديث دالة `create()` لحساب المبلغ الإجمالي مع الخصم والضريبة
- ✅ تحديث دالة `update()` لإعادة الحساب عند التحديث

### 4. تحديث Repository (`quickPurchaseOrderRepository.js`)
- ✅ تحديث دالة `create()` للتعامل مع الحقول الجديدة
- ✅ تحديث دالة `update()` لإعادة حساب المبلغ الإجمالي

## 🧮 منطق الحساب

```
المجموع الفرعي = الكمية × السعر
قيمة الخصم = المجموع الفرعي × (نسبة الخصم / 100)
المبلغ الخاضع للضريبة = المجموع الفرعي - قيمة الخصم
قيمة الضريبة = المبلغ الخاضع للضريبة × (نسبة الضريبة / 100)
الإجمالي النهائي = المجموع الفرعي - قيمة الخصم + قيمة الضريبة
```

## 🚀 خطوات التشغيل

### 1. تشغيل Migration (تلقائي)
```bash
npx sequelize-cli db:migrate
```

### 2. تشغيل SQL يدوياً (إذا فشل Migration)
```bash
mysql -u username -p database_name < backend/sql/add-tax-discount-columns.sql
```

### 3. إعادة تشغيل الخادم
```bash
npm run dev
```

## 📊 الحقول الجديدة المضافة

| الحقل | النوع | الوصف | القيمة الافتراضية |
|-------|-------|-------|------------------|
| `tax` | DECIMAL(5,2) | نسبة الضريبة (%) | 0.00 |
| `discount` | DECIMAL(5,2) | نسبة الخصم (%) | 0.00 |
| `debitAccount` | INTEGER | الحساب المدين | NULL |
| `creditAccount` | INTEGER | الحساب الدائن | NULL |
| `currency` | VARCHAR(10) | العملة | 'EGP' |
| `exchangeRate` | DECIMAL(10,4) | سعر الصرف | 1.0000 |
| `orderType` | ENUM | نوع الطلب | 'quick' |

## 🔄 التوافق مع الواجهة الأمامية

الواجهة الأمامية الآن تدعم:
- ✅ إدخال الخصم والضريبة لكل طلب
- ✅ حساب تلقائي للإجمالي النهائي
- ✅ اختيار الحسابات المحاسبية (مدين/دائن)
- ✅ دعم العملات المختلفة
- ✅ عرض تفصيلي للتكاليف

## 🐛 ملاحظات هامة

1. **الحساب التلقائي**: يتم حساب المبلغ الإجمالي تلقائياً في الـ hooks و الـ controller
2. **التحديثات**: أي تغيير في الكمية أو السعر أو الخصم أو الضريبة يعيد حساب المبلغ الإجمالي
3. **القيم الافتراضية**: السجلات الحالية ستحصل على قيم افتراضية عند تشغيل الـ migration
4. **التوافق**: التغييرات متوافقة مع الإصدارات الحالية من الواجهة الأمامية

## ✅ الاختبارات المقترحة

1. إنشاء طلب جديد مع خصم وضريبة
2. تحديث طلب موجود وتغيير الخصم/الضريبة
3. التحقق من حساب المبلغ الإجمالي تلقائياً
4. التحقق من عمل الحسابات المحاسبية
