# 📋 موديول الموارد البشرية (HR Module)

## نظرة عامة

تم إضافة موديول **إدارة الموارد البشرية** الكامل إلى نظام Adly POS & Inventory، والذي يوفر حلاً متكاملاً لإدارة الموظفين والرواتب والحضور والإجازات.

---

## ✨ المميزات الرئيسية

### 1️⃣ **إدارة الهيكل التنظيمي**
- ✅ الأقسام والأقسام الفرعية (Departments & Sub-departments)
- ✅ المسميات الوظيفية (Job Titles)
- ✅ الهيكل الإداري (التبعية والمديرين)

### 2️⃣ **إدارة الموظفين**
- ✅ البيانات الأساسية الكاملة للموظفين
- ✅ معلومات الاتصال والعنوان
- ✅ البيانات الوظيفية والعقدية
- ✅ ربط بحساب المستخدم (User Account)
- ✅ دعم فترة التجربة (Probation Period)
- ✅ حالات التوظيف المختلفة (نشط، تحت التجربة، موقوف، مستقيل، منتهي الخدمة)

### 3️⃣ **نظام الحضور والانصراف**
- ✅ تسجيل الحضور والانصراف اليومي
- ✅ حساب ساعات العمل تلقائيًا
- ✅ تتبع التأخير والانصراف المبكر
- ✅ تسجيل الوقت الإضافي (Overtime)
- ✅ حالات الحضور المختلفة (حاضر، غائب، متأخر، نصف يوم، إجازة)

### 4️⃣ **إدارة الإجازات**
- ✅ أنواع الإجازات المتعددة:
  - إجازة سنوية (Annual Leave)
  - إجازة مرضية (Sick Leave)
  - إجازة طارئة (Emergency Leave)
  - إجازة بدون مرتب (Unpaid Leave)
  - إجازة أمومة/أبوة (Maternity/Paternity)
- ✅ نظام الموافقات (Approval Workflow)
- ✅ حساب عدد الأيام تلقائيًا
- ✅ رفع المستندات الداعمة

### 5️⃣ **نظام الرواتب والمرتبات**
- ✅ الراتب الأساسي
- ✅ مكونات الراتب (Salary Components):
  - البدلات (Allowances)
  - الخصومات (Deductions)
  - الحوافز (Bonuses)
- ✅ دعم المبالغ الثابتة والنسب المئوية
- ✅ كشوف المرتبات الشهرية (Payroll)
- ✅ حساب الوقت الإضافي
- ✅ معلومات البنك والتأمينات
- ✅ تتبع حالة الدفع (معلق، مدفوع، ملغي)

### 6️⃣ **تقييم الأداء**
- ✅ تقييمات دورية (سنوية، ربع سنوية، فترة التجربة)
- ✅ معايير تقييم متعددة:
  - التقييم الإجمالي
  - الأداء الوظيفي
  - جودة العمل
  - الحضور والالتزام
  - العمل الجماعي
  - مهارات التواصل
- ✅ نقاط القوة والضعف
- ✅ التوصيات والأهداف

### 7️⃣ **مستندات الموظفين**
- ✅ تخزين المستندات المرتبطة بالموظف:
  - العقود
  - الشهادات
  - صور الهوية
  - أي مستندات أخرى
- ✅ تتبع تواريخ الإصدار والانتهاء
- ✅ تصنيف المستندات حسب النوع

---

## 🗂️ بنية المشروع

### Models (الموديلات)
```
app/Models/Hr/
├── Department.php                     # الأقسام
├── JobTitle.php                       # الوظائف
├── Employee.php                       # الموظفين
├── EmployeeDocument.php               # مستندات الموظفين
├── Attendance.php                     # الحضور والانصراف
├── Leave.php                          # الإجازات
├── Overtime.php                       # الوقت الإضافي
├── SalaryComponent.php                # مكونات الراتب
├── EmployeeSalaryComponent.php        # مكونات راتب الموظف
├── Payroll.php                        # كشوف المرتبات
└── EmployeeEvaluation.php             # تقييمات الأداء
```

### Filament Resources (واجهات الإدارة)
```
app/Filament/Resources/Hr/
├── Departments/
│   ├── DepartmentResource.php
│   ├── Schemas/DepartmentForm.php
│   ├── Tables/DepartmentsTable.php
│   └── Pages/
│       ├── CreateDepartment.php
│       ├── EditDepartment.php
│       └── ListDepartments.php
└── Employees/
    ├── EmployeeResource.php
    ├── Schemas/EmployeeForm.php
    ├── Tables/EmployeesTable.php
    └── Pages/
        ├── CreateEmployee.php
        ├── EditEmployee.php
        └── ListEmployees.php
```

### Migrations (قاعدة البيانات)
```
database/migrations/
├── 2026_03_25_100001_create_hr_departments_table.php
├── 2026_03_25_100002_create_hr_job_titles_table.php
├── 2026_03_25_100003_create_hr_employees_table.php
├── 2026_03_25_100004_add_manager_id_to_hr_departments_table.php
├── 2026_03_25_100005_create_hr_employee_documents_table.php
├── 2026_03_25_100006_create_hr_attendances_table.php
├── 2026_03_25_100007_create_hr_leaves_table.php
├── 2026_03_25_100008_create_hr_salary_components_table.php
├── 2026_03_25_100009_create_hr_employee_salary_components_table.php
├── 2026_03_25_100010_create_hr_payrolls_table.php
├── 2026_03_25_100011_create_hr_overtime_table.php
└── 2026_03_25_100012_create_hr_employee_evaluations_table.php
```

### Translations (الترجمات)
```
lang/
├── ar/filament/hr/
│   ├── department_resource.php
│   └── employee_resource.php
└── en/filament/hr/
    ├── department_resource.php
    └── employee_resource.php
```

---

## 🚀 التثبيت والإعداد

### 1. تشغيل Migrations
```bash
php artisan migrate
```

### 2. تنظيف الـ Cache
```bash
php artisan optimize:clear
```

### 3. إنشاء الصلاحيات (Shield Permissions)
```bash
php artisan shield:generate --all
```

---

## 📊 جداول قاعدة البيانات

### hr_departments (الأقسام)
- معلومات القسم والكود
- القسم الرئيسي (للهيكل الوظيفي)
- مدير القسم
- الحالة (نشط/غير نشط)

### hr_job_titles (الوظائف)
- اسم الوظيفة والكود
- نطاق الراتب (الحد الأدنى والأقصى)
- الحالة

### hr_employees (الموظفين)
- البيانات الشخصية (الاسم، الرقم القومي، تاريخ الميلاد، الجنس، الحالة الاجتماعية)
- معلومات الاتصال (البريد الإلكتروني، الهاتف، الجوال، العنوان)
- المعلومات الوظيفية (القسم، الوظيفة، المدير المباشر، تاريخ التعيين)
- حالة التوظيف ونوعه
- معلومات الراتب والبنك
- التأمينات الاجتماعية
- ساعات وأيام العمل
- أيام الإجازة السنوية

### hr_attendances (الحضور والانصراف)
- تاريخ ووقت الحضور والانصراف
- ساعات العمل المحسوبة
- دقائق التأخير والانصراف المبكر
- دقائق الوقت الإضافي
- حالة الحضور

### hr_leaves (الإجازات)
- نوع الإجازة
- تاريخ البداية والنهاية
- عدد الأيام
- السبب
- حالة الموافقة
- معلومات المُوافِق

### hr_overtime (الوقت الإضافي)
- التاريخ ووقت البداية والنهاية
- عدد الساعات
- معامل الضرب (1.5x, 2x, إلخ)
- المبلغ المحسوب
- حالة الموافقة

### hr_salary_components (مكونات الراتب)
- الاسم والكود
- النوع (بدل، خصم، حافز)
- هل متكرر شهريًا؟
- هل خاضع للضريبة؟
- هل يؤثر على التأمينات؟

### hr_employee_salary_components (مكونات راتب الموظف)
- ربط الموظف بمكون الراتب
- المبلغ (ثابت أو نسبة مئوية)
- فترة السريان

### hr_payrolls (كشوف المرتبات)
- السنة والشهر
- الراتب الأساسي
- إجمالي البدلات والحوافز
- إجمالي الخصومات
- مبلغ الوقت الإضافي
- أيام العمل والحضور والغياب
- الراتب الإجمالي والصافي
- حالة الدفع
- تفاصيل الدفع

### hr_employee_evaluations (تقييمات الأداء)
- فترة التقييم ونوعه
- التقييمات المختلفة (1-10)
- نقاط القوة والضعف
- التوصيات والأهداف

---

## 🔐 Multi-Tenancy Support

جميع جداول HR تدعم **Multi-Tenancy** بشكل كامل:
- كل مؤسسة (Tenant) لها بيانات منفصلة تمامًا
- تُطبق Tenant Scope تلقائيًا على جميع العمليات
- الكود الفريد يُنشأ داخل نطاق كل مؤسسة

---

## 🔒 الصلاحيات والأمان

- ✅ تكامل كامل مع **Filament Shield**
- ✅ صلاحيات منفصلة لكل Resource
- ✅ دعم **Soft Deletes** لجميع الجداول
- ✅ تسجيل **Activity Log** لجميع العمليات
- ✅ **Userstamps** لتتبع من قام بالإنشاء/التعديل/الحذف

---

## 📱 الواجهات المتاحة

### مجموعة التنقل: "الموارد البشرية"
- 🏢 **الأقسام** (Departments)
- 👥 **الموظفين** (Employees)
- 📋 **المسميات الوظيفية** (Job Titles) - قريبًا
- 🕐 **الحضور والانصراف** (Attendance) - قريبًا
- 🏖️ **الإجازات** (Leaves) - قريبًا
- ⏰ **الوقت الإضافي** (Overtime) - قريبًا
- 💰 **كشوف المرتبات** (Payroll) - قريبًا
- ⭐ **تقييمات الأداء** (Evaluations) - قريبًا

---

## 🌍 الترجمة

الموديول يدعم **اللغتين** بشكل كامل:
- ✅ العربية (ar)
- ✅ الإنجليزية (en)

---

## 🔄 التكامل مع الأنظمة الأخرى

### 1. النظام المحاسبي
- كشوف المرتبات يمكن ربطها بقيود اليومية
- الرواتب والمصروفات تنعكس في الحسابات

### 2. نظام المستخدمين
- كل موظف يمكن ربطه بحساب مستخدم
- الصلاحيات تُدار عبر Filament Shield

---

## 📈 التقارير المتاحة (قريبًا)

- 📊 تقرير الحضور والانصراف
- 📊 تقرير الإجازات
- 📊 تقرير الرواتب الشهرية
- 📊 تقرير الوقت الإضافي
- 📊 تقرير تقييمات الأداء

---

## 🛠️ الخطوات القادمة

1. ✅ إنشاء Filament Resources للموديلات المتبقية:
   - Job Titles
   - Attendance
   - Leaves
   - Overtime
   - Salary Components
   - Payrolls
   - Evaluations

2. ✅ إنشاء التقارير

3. ✅ ربط النظام المحاسبي

4. ✅ إضافة Dashboard Widgets لإحصائيات HR

5. ✅ إنشاء Notifications للإجازات والموافقات

---

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

1. **رموز الموظفين تُنشأ تلقائيًا** بصيغة: `EMP-YYYY-XXXX`
2. **رموز الأقسام تُنشأ تلقائيًا** بصيغة: `DEPT-XXXX`
3. **رموز الوظائف تُنشأ تلقائيًا** بصيغة: `JOB-XXXX`
4. **جميع التواريخ والأوقات** تُخزن حسب timezone المحدد في Laravel
5. **الرواتب والمبالغ** تُخزن بدقة عشرية (decimal:2)

---

## 📞 الدعم الفني

للمزيد من المعلومات أو المساعدة، يرجى الرجوع إلى:
- ملفات الوثائق في المشروع
- كود المصدر والتعليقات
- فريق التطوير

---

## 🎉 نهاية الوثائق

تم إنشاء موديول HR كامل ومتكامل يدعم جميع احتياجات إدارة الموارد البشرية الحديثة!
