# وحدة المالية (Finance Module)

## نظرة عامة
وحدة إدارة مالية مبسطة تدعم:
- دفتر الإيرادات (وصولات القبض)
- دفتر المدفوعات (سندات الصرف)
- دفاتر الوصولات (Receipt Books)
- التقارير المالية مع فلتر التاريخ
- لوحة تحكم ملخصة

## الإعداد

### 1. تشغيل ملف ترحيل قاعدة البيانات
افتح phpMyAdmin أو أي أداة MySQL وشغّل:
```
database/finance_migration.sql
```
هذا الملف يُنشئ الجداول التالية:
- `income_categories` — تصنيفات الإيرادات
- `expense_categories` — تصنيفات المدفوعات
- `receipt_books` — دفاتر الوصولات
- `finance_income` — قيود الإيرادات
- `finance_expenses` — قيود المدفوعات

> ملاحظة: الملف آمن للتشغيل المتعدد (يستخدم `CREATE TABLE IF NOT EXISTS`).

### 2. الدخول إلى الوحدة
من لوحة الإدارة، انقر **المالية** في القائمة الجانبية، أو افتح:
```
/zaka/finance/index.php
```

## الصفحات والمسارات

| الصفحة | المسار |
|--------|--------|
| لوحة التحكم | `/zaka/finance/index.php` |
| الإيرادات | `/zaka/finance/income.php` |
| المدفوعات | `/zaka/finance/expenses.php` |
| دفاتر الوصولات | `/zaka/finance/receipt_books.php` |
| عرض دفتر | `/zaka/finance/receipt_book_view.php?id=X` |
| تعديل دفتر | `/zaka/finance/receipt_book_edit.php?id=X` |
| طباعة دفتر | `/zaka/finance/receipt_book_print.php?id=X` |
| طباعة وصل | `/zaka/finance/income_print.php?id=X` |
| طباعة سند | `/zaka/finance/expense_print.php?id=X` |
| التقرير المالي | `/zaka/finance/report.php` |

## قواعد رقم الوصول
- يجب أن يكون **فريداً** في كل قيود الإيرادات.
- عند ربط وصل بدفتر، يجب أن يكون الرقم **ضمن نطاق الدفتر**.
- إنشاء الدفتر لا ينشئ قيود إيرادات تلقائياً.

## الأمان
- جميع صفحات الوحدة تتطلب **تسجيل دخول** (يعيد التوجيه لصفحة تسجيل الدخول إذا لم يكن المستخدم مسجلاً).
- جميع نماذج POST محمية بـ **CSRF token**.
- جميع استعلامات قاعدة البيانات تستخدم **PDO prepared statements**.
- حذف السجلات يتم عبر POST فقط (لا يُقبل GET).

## العناصر المؤجلة
- إدارة التصنيفات من الواجهة (حالياً يتم تعديلها مباشرة في قاعدة البيانات).
- نظام صلاحيات متعدد المستويات.
- تصدير التقارير إلى Excel/PDF.
- ربط الإيرادات بالمستفيدين.
- إشعارات عند اقتراب نهاية دفتر الوصولات.
