# 📘 دليل ربط الحسابات المحاسبية (Journal Mappings)

## 🎯 نظرة عامة
تم تحديث نظام القيود المحاسبية التلقائية ليأخذ في الاعتبار **الخصومات والضرائب** في الفواتير.

---

## 📊 الحسابات المطلوبة في شاشة Journal Mappings

### 1️⃣ المبيعات (Sale)

| Field Name | الاسم بالعربية | رقم الحساب | الحساب |
|------------|----------------|-------------|---------|
| `receivable` | الذمم المدينة | 1121 | Trade Receivables |
| `sales` | المبيعات | 4110 | Product Sales |
| `cost_of_goods_sold` | تكلفة البضاعة المباعة | 5110 | Cost of Products Sold |
| `inventory` | المخزون | 1131 | Merchandise Inventory |
| **`sales_discount`** ⭐ | خصومات مسموح بها | 5210 | Sales Discounts |
| **`tax_payable`** ⭐ | ضريبة مستحقة | 2410 | VAT Payable |

### 2️⃣ مرتجع المبيعات (Sale Return)

| Field Name | الاسم بالعربية | رقم الحساب | الحساب |
|------------|----------------|-------------|---------|
| `receivable` | الذمم المدينة | 1121 | Trade Receivables |
| `sales_returns` | مردودات المبيعات | 4210 | Sales Returns |
| `inventory` | المخزون | 1131 | Merchandise Inventory |
| `cost_of_goods_sold` | تكلفة البضاعة المباعة | 5110 | Cost of Products Sold |
| **`sales_discount`** ⭐ | خصومات مسموح بها | 5210 | Sales Discounts |
| **`tax_payable`** ⭐ | ضريبة مستحقة | 2410 | VAT Payable |

### 3️⃣ المشتريات (Purchase)

| Field Name | الاسم بالعربية | رقم الحساب | الحساب |
|------------|----------------|-------------|---------|
| `inventory` | المخزون | 1131 | Merchandise Inventory |
| `payable` | الذمم الدائنة | 2111 | Trade Payables |
| **`purchase_discount`** ⭐ | خصومات مكتسبة | 4910 | Other Income |
| **`tax_payable`** ⭐ | ضريبة مستحقة | 2410 | VAT Payable |

### 4️⃣ مرتجع المشتريات (Purchase Return)

| Field Name | الاسم بالعربية | رقم الحساب | الحساب |
|------------|----------------|-------------|---------|
| `inventory` | المخزون | 1131 | Merchandise Inventory |
| `payable` | الذمم الدائنة | 2111 | Trade Payables |
| **`purchase_discount`** ⭐ | خصومات مكتسبة | 4910 | Other Income |
| **`tax_payable`** ⭐ | ضريبة مستحقة | 2410 | VAT Payable |

---

## 🔄 كيفية تطبيق التحديثات

### الطريقة 1: تشغيل الـ Seeder (موصى بها)
```bash
php artisan db:seed --class=JournalMappingSeeder
```

### الطريقة 2: الإضافة اليدوية من الشاشة
1. اذهب إلى: **Accounting → Journal Mappings**
2. اضغط **Create Journal Mapping**
3. أضف الحسابات الجديدة المميزة بـ ⭐

---

## 📝 مثال عملي: فاتورة بيع

### البيانات:
- إجمالي الأصناف (قبل الخصم): **1000 جنيه**
- خصم على الأصناف: **50 جنيه**
- خصم على الفاتورة: **30 جنيه**
- **مجموع الخصومات**: **80 جنيه**
- الضريبة (14%): **128.80 جنيه** (على 920)
- **المبلغ النهائي**: **1048.80 جنيه**

### القيد المحاسبي:
```
من ح/ الذمم المدينة (1121)                1048.80
من ح/ خصومات مسموح بها (5210)                 80.00
    إلى ح/ المبيعات (4110)                  1000.00
    إلى ح/ الضريبة المستحقة (2410)           128.80
                                          ─────────
الإجمالي                                   1128.80  = 1128.80 ✓
```

---

## ⚠️ ملاحظات هامة

1. **الحسابات الاختيارية**: إذا لم يتم تعريف `sales_discount` أو `tax_payable`، سيتم تخطيها بدون خطأ
2. **خصومات المشتريات**: تُسجل كـ إيراد في حساب Other Income (يمكن تغييره لحساب منفصل)
3. **الضريبة المستحقة**: يستخدم نفس الحساب للمبيعات والمشتريات (VAT Payable)
4. **التكلفة**: قيد التكلفة والمخزون يبقى بدون تغيير

---

## 🔍 التحقق من الربط

للتأكد من أن جميع الحسابات مربوطة بشكل صحيح:

1. اذهب إلى **Journal Mappings**
2. تأكد من وجود السجلات التالية:

**للمبيعات:**
- sale → receivable
- sale → sales
- sale → cost_of_goods_sold
- sale → inventory
- sale → sales_discount ⭐
- sale → tax_payable ⭐

**للمشتريات:**
- purchase → inventory
- purchase → payable
- purchase → purchase_discount ⭐
- purchase → tax_payable ⭐

---

## 🎨 أكواد الحسابات المستخدمة

| الكود | الحساب | النوع |
|-------|---------|-------|
| 1121 | Trade Receivables | أصل |
| 1131 | Merchandise Inventory | أصل |
| 2111 | Trade Payables | التزام |
| 2410 | VAT Payable | التزام |
| 4110 | Product Sales | إيراد |
| 4210 | Sales Returns | إيراد سالب |
| 4910 | Other Income | إيراد |
| 5110 | Cost of Products Sold | مصروف |
| 5210 | Sales Discounts | مصروف |

---

## 🚀 الخطوات التالية

1. ✅ تشغيل الـ Seeder لإضافة الربط الجديد
2. ✅ اختبار إنشاء فاتورة بيع مع خصم وضريبة
3. ✅ اختبار إنشاء فاتورة شراء مع خصم وضريبة
4. ✅ التحقق من القيود المحاسبية الناتجة
5. ✅ مراجعة الأرصدة في التقارير المحاسبية

---

**آخر تحديث:** 23 يناير 2026
