Merge pull request #5274 from expsa/maltayyar2-patch-1

Delete STANDARD_MODULES/master/odex25_ensan/odex25_ensan directory
This commit is contained in:
Mohamed Eltayar 2025-11-08 14:43:40 +03:00 committed by GitHub
commit 8d1f50b525
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 0 additions and 991 deletions

View File

@ -1,637 +0,0 @@
# 📋 مراجعة شاملة لموديول Odex Benefit
## 🎯 نظرة عامة
**اسم الموديول:** `odex_benefit`
**الإصدار:** 1.0
**الفئة:** Grant Management
**الشركة المطورة:** Expert Ltd
**الموقع:** http://exp-sa.com
**الترخيص:** GPL-3
### الوصف
موديول شامل لإدارة المنح والمساعدات لمشروع التكافل، يوفر نظام متكامل لإدارة الأسر المستفيدة، أعضاء الأسرة، الخدمات المقدمة، الزيارات، والمصروفات.
---
## 📦 الاعتمادات (Dependencies)
الموديول يعتمد على:
- `base` - الأساسيات
- `survey` - الاستبيانات
- `takaful_core` - نواة التكافل
- `website` - الموقع الإلكتروني
- `account` - المحاسبة
- `report_xlsx` - التقارير
- `sale` - المبيعات
- `product` - المنتجات
- `stock` - المخزون
- `hr` - الموارد البشرية
- `purchase` - المشتريات
- `web_google_maps` - خرائط جوجل
- `odex25_account_payment_fix` - إصلاحات الدفع
- `otp_sms_auth_custom` - المصادقة عبر OTP
### المكتبات الخارجية
- `num2words` - تحويل الأرقام إلى كلمات
---
## 🏗️ البنية الهيكلية للموديول
### 1. النماذج الرئيسية (Models)
#### 1.1 `grant.benefit` - الملف الرئيسي للأسرة المستفيدة
**الوصف:** النموذج الأساسي الذي يمثل الأسرة المستفيدة من المنح
**الحقول الرئيسية:**
- **المعلومات الأساسية:**
- `code`: رقم الملف (تسلسلي)
- `name`: اسم الأسرة
- `partner_id`: ربط مع شريك (res.partner)
- `benefit_type`: نوع الاستفادة (benefit/orphan/widow)
- `benefit_category_id`: فئة الاستفادة
- `state`: حالة الملف (draft/new/complete_info/waiting_approve/first_approve/second_approve/refused/suspended_second_approve/exception_second_approve/black_list)
- **معلومات الأب:**
- `father_id_number`: رقم هوية الأب
- `father_birth_date`: تاريخ ميلاد الأب
- `father_age`: عمر الأب (محسوب)
- `father_marital`: الحالة الاجتماعية للأب
- `father_job_id`: الوظيفة
- `father_dead_date`: تاريخ الوفاة
- `father_dead_reason_id`: سبب الوفاة
- **معلومات الأم:**
- `mother_name`: اسم الأم
- `mother_id_number`: رقم هوية الأم
- `mother_birth_date`: تاريخ ميلاد الأم
- `mother_age`: عمر الأم (محسوب)
- `mother_marital_conf`: الحالة الاجتماعية للأم
- `mother_income`: دخل الأم
- `is_mother_work`: هل تعمل الأم؟
- `mother_has_disabilities`: هل لديها إعاقة؟
- `add_replacement_mother`: إضافة أم بديلة
- **معلومات السكن:**
- `housing_type`: نوع السكن (apartment/villa/popular_house/tent)
- `property_type`: نوع الملكية (ownership/rent/charitable/ownership_shared/rent_shared)
- `rent_amount`: مبلغ الإيجار
- `contract_num`: رقم عقد الإيجار
- `rent_start_date`: تاريخ بداية الإيجار
- `rent_end_date`: تاريخ نهاية الإيجار
- `payment_type`: نوع الدفع (Yearly/Half-yearly/Quarterly/Monthly)
- `lat`, `lon`: الإحداثيات الجغرافية
- **المعلومات المالية:**
- `total_income`: إجمالي الدخل
- `total_expenses`: إجمالي المصروفات
- `benefit_needs_percent`: نسبة الحاجة
- `family_monthly_income`: الدخل الشهري للأسرة
- `family_monthly_meals`: الوجبات الشهرية
- `family_monthly_clotting`: الملابس الشهرية
- **معلومات الأعضاء:**
- `member_ids`: قائمة أعضاء الأسرة (One2many)
- `benefit_member_count`: عدد الأعضاء المستفيدين (محسوب)
- `non_member_count`: عدد غير المستفيدين
- **معلومات الفرع:**
- `branch_custom_id`: الفرع
- `district_id`: الحي
- `meal_card`: بطاقة الوجبات
- `researcher_id`: الباحث المسؤول
- **الحالات الخاصة:**
- `is_excluded_suspension`: مستثنى من الإيقاف
- `suspend_reason`: سبب الإيقاف
- `exception_reason`: سبب الاستثناء
- `exception_type`: نوع الاستثناء (temporarily/permanent)
**الوظائف الرئيسية:**
- `check_mother_status()`: التحقق من حالة الأم
- `check_replacement_mother_status()`: التحقق من حالة الأم البديلة
- `get_members_count()`: حساب عدد الأعضاء
- `get_total_income()`: حساب إجمالي الدخل
- `get_total_expenses()`: حساب إجمالي المصروفات
- `create_scheduled_visit()`: إنشاء زيارات مجدولة تلقائياً
- `send_expiry_date_notification()`: إرسال إشعارات انتهاء المرفقات
- `update_data_automatically()`: تحديث البيانات تلقائياً
- `action_auto_exception()`: التحقق من الاستثناءات المؤقتة
#### 1.2 `family.member` - أعضاء الأسرة
**الوصف:** يمثل كل فرد من أفراد الأسرة
**الحقول الرئيسية:**
- **المعلومات الشخصية:**
- `member_first_name`: الاسم الأول
- `member_second_name`: الاسم الثاني (مرتبط بالأب)
- `member_third_name`: الاسم الثالث
- `member_family_name`: اسم العائلة
- `member_id_number`: رقم الهوية
- `gender`: الجنس (male/female)
- `birth_date`: تاريخ الميلاد
- `age`: العمر (محسوب)
- `age_status`: حالة العمر (minor/non_minor)
- `relationn`: صلة القرابة (son/daughter/mother/replacement_mother)
- **معلومات الأم (إذا كانت العضو):**
- `mother_first_name`: الاسم الأول للأم
- `mother_marital_conf`: الحالة الاجتماعية
- `mother_location`: موقع الأم
- `is_mother_work`: هل تعمل؟
- **معلومات العمل:**
- `is_work`: هل يعمل؟
- `member_income`: الدخل
- `salary_certificate`: شهادة الراتب
- **معلومات التعليم:**
- `education_status`: حالة التعليم (educated/illiterate/under_study_age)
- `case_study`: حالة الدراسة (continuous/intermittent/graduate)
- `education_levels`: المستوى التعليمي
- `specialization_ids`: التخصص
- `is_scientific_specialty`: تخصص علمي؟
- `is_medical_specialty`: تخصص طبي؟
- `member_education_status_ids`: سجل الحالة التعليمية
- **معلومات الصحة:**
- `diseases_ids`: الأمراض
- `disabilities_ids`: الإعاقات
- `hobbies_ids`: الهوايات
- **الحالة:**
- `state`: حالة العضو (draft/new/complete_info/waiting_approve/first_approve/second_approve/refused/suspended_second_approve/exception_second_approve/black_list)
- `member_status`: حالة الاستفادة (benefit/non_benefit)
- `non_benefit_reason`: سبب عدم الاستفادة
- `is_excluded_suspension`: مستثنى من الإيقاف
**الوظائف الرئيسية:**
- `check_member_status()`: التحقق من حالة الاستفادة للعضو
- `_compute_get_age_date()`: حساب العمر
- `_compute_get_age_status()`: حساب حالة العمر
- `_compute_minor_siblings()`: حساب وجود أشقاء قاصرين
#### 1.3 `service.request` - طلبات الخدمات
**الوصف:** يمثل طلب خدمة من الأسرة أو العضو
**الحقول الرئيسية:**
- **المعلومات الأساسية:**
- `name`: رقم الطلب (تسلسلي)
- `date`: تاريخ الطلب
- `benefit_type`: نوع الاستفادة (family/member)
- `family_id`: الأسرة
- `member_id`: العضو (إذا كان للعضو)
- `service_cat`: فئة الخدمة
- `service_type`: نوع الخدمة (rent/home_restoration/electrical_devices/marriage/etc.)
- **معلومات الخدمة:**
- `requested_service_amount`: المبلغ المطلوب
- `service_max_amount`: الحد الأقصى المسموح
- `description`: الوصف
- `need_status`: حالة الحاجة (urgent/not_urgent)
- **معلومات الإيجار (للخدمات المتعلقة بالإيجار):**
- `rent_contract_number`: رقم عقد الإيجار
- `rent_start_date`: تاريخ بداية الإيجار
- `rent_end_date`: تاريخ نهاية الإيجار
- `rent_amount`: مبلغ الإيجار
- `payment_type`: نوع الدفع
- `estimated_rent_amount`: المبلغ المقدر للإيجار
- `new_rent_contract`: عقد إيجار جديد؟
- **الحالة:**
- `state`: حالة الطلب (draft/researcher/waiting_approve/first_approve/family_services_manager/legal_department/projects_department/gm_assistant/accounting_approve/approval_of_beneficiary_services/send_request_to_supplier/family_received_device/refused)
- `payment_order_id`: أمر الدفع المرتبط
- `payment_order_state`: حالة أمر الدفع
- **المرفقات:**
- `attachment_lines`: قائمة المرفقات المطلوبة
- `service_attach`: مرفقات الخدمة
**الوظائف الرئيسية:**
- `_get_estimated_rent_amount()`: حساب المبلغ المقدر للإيجار
- `_get_aid_amount()`: حساب مبلغ المساعدة
- `_compute_attachment_lines()`: حساب المرفقات المطلوبة
- `action_create_payment_order()`: إنشاء أمر دفع
- `create_vendor_bill()`: إنشاء فاتورة مورد
#### 1.4 `visit.location` - الزيارات
**الوصف:** يمثل زيارة للأسرة
**الحقول الرئيسية:**
- **المعلومات الأساسية:**
- `name`: رقم الزيارة (تسلسلي)
- `benefit_id`: الأسرة المستفيدة
- `visit_date`: تاريخ الزيارة
- `visit_types`: نوع الزيارة
- `visit_objective`: هدف الزيارة (inform_visit/objective_visit)
- `researcher_ids`: الباحثون
- **الحالة:**
- `state`: حالة الزيارة (draft/contact/schedule_a_visit/pending/done/close/cancel)
- **المصادقة:**
- `otp_code`: رمز OTP
- `otp_generated_at`: وقت إنشاء OTP
- `response_id`: استجابة الاستبيان
**الوظائف الرئيسية:**
- `generateOTP()`: إنشاء رمز OTP
- `action_send_survey()`: إرسال استبيان التقييم
- `action_done()`: إتمام الزيارة
#### 1.5 `confirm.benefit.expense` - تأكيد مصروفات الأسرة
**الوصف:** تأكيد ودفع المصروفات الشهرية للأسرة
**الحقول الرئيسية:**
- **المعلومات الأساسية:**
- `family_expense_seq`: رقم المصروف (تسلسلي)
- `date`: التاريخ
- `start_date`: تاريخ البداية
- `end_date`: تاريخ النهاية
- `expense_type`: نوع المصروف (family_expense/family_invoice)
- `family_ids`: الأسر المختارة
- **المصروفات:**
- `cash_expense`: تضمين المصروف النقدي؟
- `meal_expense`: تضمين مصروف الوجبات؟
- `cloth_expense`: تضمين مصروف الملابس؟
- `family_monthly_income`: إجمالي الدخل الشهري
- `family_monthly_meals`: إجمالي الوجبات الشهرية
- `family_monthly_clotting`: إجمالي الملابس الشهرية
- **الحالة:**
- `state`: الحالة (draft/calculated/assistant_general_manager/depart_manager/account_manager/cancel/confirm)
**الوظائف الرئيسية:**
- `action_calculate()`: حساب المصروفات
- `action_confirm_selected()`: تأكيد المصروفات وإنشاء قيود محاسبية
- `_update_benefit_expense_lines()`: تحديث بنود المصروفات
#### 1.6 `payment.orders` - أوامر الدفع
**الوصف:** يمثل أمر دفع لخدمات متعددة
**الحقول الرئيسية:**
- **المعلومات الأساسية:**
- `name`: رقم أمر الدفع (تسلسلي)
- `payment_order_date`: تاريخ أمر الدفع
- `accountant_id`: المحاسب المسؤول
- `service_requests_ids`: طلبات الخدمات المرتبطة
- `journal_id`: دفتر اليومية
- **الحالة:**
- `state`: الحالة (draft/waiting_head/waiting_finance/waiting_gm/done/refused)
**الوظائف الرئيسية:**
- `get_lines()`: إنشاء بنود القيد المحاسبي
- `action_manager_approval()`: موافقة المدير
- `action_finance_approval()`: موافقة المالية وإنشاء القيد
#### 1.7 `services.settings` - إعدادات الخدمات
**الوصف:** إعدادات وتكوين الخدمات المتاحة
**الحقول الرئيسية:**
- **المعلومات الأساسية:**
- `service_name`: اسم الخدمة
- `service_type`: نوع الخدمة (rent/home_restoration/electrical_devices/etc.)
- `benefit_type`: نوع الاستفادة (family/member)
- `service_category`: فئة الخدمة (emergency/permanent/exceptional/seasonal)
- `is_seasonal_service`: خدمة موسمية؟
- **الحدود والقيود:**
- `max_amount`: الحد الأقصى للمبلغ
- `max_age`: الحد الأقصى للعمر
- `allowed_recurrence`: السماح بالتكرار (once/periodic/unlimited)
- `recurrence_period`: فترة التكرار (months/years)
- `recurrence_interval`: فترة التكرار
- `max_limit_type`: نوع الحد الأقصى (none/fixed/category/amount_person/etc.)
- `max_limit_period`: فترة الحد الأقصى (request/individual/month/year/recurrence_period)
- **الموافقات:**
- `needs_beneficiary_manager_approval`: يحتاج موافقة مدير المستفيدين؟
- `needs_services_head_approval`: يحتاج موافقة رئيس الخدمات؟
- `needs_legal_approval`: يحتاج موافقة قانونية؟
- `needs_project_management_approval`: يحتاج موافقة إدارة المشاريع؟
- **البيانات المرتبطة:**
- `rent_lines`: بنود الإيجار (حسب الفئة وعدد الأعضاء)
- `electrical_devices_lines`: بنود الأجهزة الكهربائية
- `home_furnishing_lines`: بنود تأثيث المنزل
- `category_amount_lines`: بنود المبالغ حسب الفئة
- `bill_lines`: بنود الفواتير
- `limit_person_line_ids`: حدود حسب عدد الأشخاص
#### 1.8 نماذج أخرى مهمة
**`benefit.category`** - فئات الاستفادة
- `name`: اسم الفئة
- `gender`: الجنس (male/female/both)
- `age_from`, `age_to`: نطاق العمر
- `mini_income_amount`, `max_income_amount`: نطاق الدخل
**`family.expense`** - مصروفات الأسرة
- `name`: اسم المصروف
- `expenses_type`: نوع المصروف (governmental/medical/transportation/etc.)
- `amount`: المبلغ
- `state`: الحالة (waiting/accepted/refused)
**`family.expense.line`** - بنود مصروفات الأسرة
- `expenses_type_custom`: نوع المصروف
- `amount`: المبلغ
- `state`: الحالة
- `deduct_from_family_income`: خصم من دخل الأسرة؟
**`visit.survey`** - استبيانات الزيارات
- ربط الزيارات مع استبيانات التقييم
**`seasonal.service`** - الخدمات الموسمية
- خدمات موسمية مثل رمضان، العيد، الشتاء
**`payment`** - المدفوعات
- إدارة المدفوعات للخدمات
---
## 🔐 الأمان والصلاحيات
### مجموعات المستخدمين:
1. **`group_benefit_researcher`** - الباحثون
2. **`group_benefit_woman_commitee`** - لجنة النساء
3. **`group_benefit_branch_manager`** - مديرو الفروع
4. **`group_benefit_manager`** - المديرون
5. **`group_benefit_edit`** - المحررون
6. **`group_benefit_info`** - المعلومات
7. **`group_benefit_payment_accountant_accept`** - المحاسبون
### ملفات الأمان:
- `security/security_view.xml`: تعريف مجموعات المستخدمين
- `security/ir.model.access.csv`: صلاحيات الوصول للنماذج
---
## ⚙️ الإعدادات والتكوين
### 1. `family.validation.setting` - إعدادات التحقق من الأسرة
- `female_benefit_age`: سن الاستفادة للإناث
- `male_benefit_age`: سن الاستفادة للذكور
- `exceptional_age_scientific_specialty`: سن استثنائي للتخصص العلمي
- `exceptional_age_medical_specialty`: سن استثنائي للتخصص الطبي
- `exceptional_age_has_disabilities`: سن استثنائي للإعاقة
- `minor_siblings_age`: سن الأشقاء القاصرين
- `max_income_for_benefit`: الحد الأقصى للدخل للاستفادة
### 2. `branch.settings` - إعدادات الفروع
- `branch`: الفرع (hr.department)
- `branch_type`: نوع الفرع (branches/governorates)
- `city_id`: المدينة
### 3. `relation.settings` - إعدادات صلة القرابة
- `relation_type`: نوع الصلة (son/daughter/mother/replacement_mother/other relation)
- `age_difference`: الفرق في العمر
### 4. `location.settings` - إعدادات الموقع
- `location_type`: نوع الموقع (member/mother_location)
- `is_benefit`: هل يستفيد؟
- `is_far_from_family`: بعيد عن الأسرة؟
### 5. `attachments.settings` - إعدادات المرفقات
- `attach_type`: نوع المرفق (family_attach/member_attach/income_attach/etc.)
- `is_required`: مطلوب؟
- `is_default`: افتراضي؟
- `show_in_portal`: عرض في البوابة؟
### 6. `education.settings` - إعدادات التعليم
- إعدادات المستويات التعليمية، الفصول، النتائج، التخصصات
### 7. `job.settings` - إعدادات الوظائف
- قائمة الوظائف المتاحة
### 8. `death.reason.settings` - إعدادات أسباب الوفاة
- قائمة أسباب الوفاة
---
## 🔄 العمليات المجدولة (Scheduled Actions)
### 1. **Recurrence Visit Workflow Scheduler**
- **التردد:** يومي
- **الوظيفة:** `create_scheduled_visit()`
- **الوصف:** إنشاء زيارات مجدولة تلقائياً حسب إعدادات أنواع الزيارات
### 2. **Notification: Expiry date Attachment**
- **التردد:** يومي
- **الوظيفة:** `send_expiry_date_notification()`
- **الوصف:** إرسال إشعارات للمرفقات المنتهية الصلاحية
### 3. **Update Data Auto (Daily)**
- **التردد:** يومي
- **الوظيفة:** `update_data_automatically()`
- **الوصف:** تحديث البيانات تلقائياً (مثل الأعمار، الحالات)
### 4. **Check Temporarily Exception**
- **التردد:** يومي
- **الوظيفة:** `action_auto_exception()`
- **الوصف:** التحقق من الاستثناءات المؤقتة المنتهية
### 5. **Check Member Temporarily Exception**
- **التردد:** يومي
- **الوظيفة:** `action_auto_exception()` (للأعضاء)
- **الوصف:** التحقق من استثناءات الأعضاء المؤقتة
### 6. **Send Expiring Salary Attachments Notifications**
- **التردد:** يومي
- **الوظيفة:** `action_send_attachment_expiry_email()`
- **الوصف:** إرسال إشعارات لشهادات الراتب المنتهية الصلاحية
---
## 📊 التقارير
### 1. **Benefit Report** (`benefit_report.py`)
- تقرير شامل عن الأسرة المستفيدة
### 2. **Family Bank Report** (`family_bank_report.py`)
- تقرير عن الحسابات البنكية للأسر
---
## 🎨 الواجهات (Views)
### النماذج الرئيسية:
- `benefit_view.xml`: واجهة ملف الأسرة
- `family_members.xml`: واجهة أعضاء الأسرة
- `service_request.xml`: واجهة طلبات الخدمات
- `visit.xml`: واجهة الزيارات
- `payment_order.xml`: واجهة أوامر الدفع
- `family_expense_view.xml`: واجهة مصروفات الأسرة
- `generate_reports.xml`: واجهة التقارير
### الإعدادات:
- `benefit_config_view.xml`: إعدادات الاستفادة
- `services_settings.xml`: إعدادات الخدمات
- `education_settings.xml`: إعدادات التعليم
- `family_validation_setting.xml`: إعدادات التحقق
---
## 🧙‍♂️ المعالجات (Wizards)
### 1. **Researcher Wizard** (`researcher_wizard.py`)
- تعيين باحث للأسرة أو العضو
### 2. **Suspend Reason Wizard** (`suspend_reason_wizard.py`)
- إدخال سبب الإيقاف
### 3. **Exception Wizard** (`exception_wizard.py`)
- إدخال معلومات الاستثناء
### 4. **Exchange Order Wizard** (`exchange_order_wizard.py`)
- إنشاء أمر صرف لطلبات متعددة
### 5. **Entity Refused Wizard** (`entity_refused_wizard.py`)
- إدخال سبب الرفض
### 6. **Entity Black List Wizard** (`entity_black_list_wizard.py`)
- إضافة للقائمة السوداء
### 7. **Visit Location OTP Wizard** (`visit_location_otp_wizard.py`)
- التحقق من OTP للزيارة
### 8. **Visit Location Refused Wizard** (`visit_location_refused_wizard.py`)
- إدخال سبب رفض الزيارة
### 9. **Family Bank Report Wizard** (`family_bank_report_wizard.py`)
- معالج تقرير الحسابات البنكية
### 10. **Service Refuse Reason Wizard** (`service_refuse_reason_wizard.py`)
- إدخال سبب رفض الخدمة
### 11. **Reason For Return Wizard** (`reason_for_return_wizard.py`)
- إدخال سبب الإرجاع
---
## 📧 القوالب البريدية
### 1. **Benefit Email Templates**
- قوالب إرسال الإشعارات للأسر
### 2. **Benefit Services Email Templates**
- قوالب إشعارات الخدمات
### 3. **Visit Email Templates**
- قوالب إشعارات الزيارات
---
## 🔗 التكاملات
### 1. **مع المحاسبة (Account)**
- إنشاء قيود محاسبية للمصروفات
- ربط أوامر الدفع بدفاتر اليومية
- تتبع المدفوعات
### 2. **مع المبيعات (Sale)**
- ربط الخدمات بطلبات المبيعات
### 3. **مع المشتريات (Purchase)**
- ربط الخدمات بطلبات الشراء
### 4. **مع الموارد البشرية (HR)**
- ربط الباحثين بالموظفين
- ربط الفروع بالأقسام
### 5. **مع الاستبيانات (Survey)**
- ربط الزيارات باستبيانات التقييم
### 6. **مع الموقع (Website)**
- بوابة المستفيدين
- عرض الخدمات المتاحة
---
## 📈 إحصائيات البيانات
بناءً على فحص البيانات في النظام:
- **عدد الأسر المستفيدة:** 18
- **عدد أعضاء الأسر:** 40
- **عدد طلبات الخدمات:** 23
- **عدد الزيارات:** 18
- **عدد تأكيدات المصروفات:** 8
---
## 🎯 الميزات الرئيسية
### 1. **إدارة شاملة للأسر المستفيدة**
- تسجيل كامل لمعلومات الأب والأم والأعضاء
- تتبع الحالات الاجتماعية والتعليمية والصحية
- حساب تلقائي للأعمار والحالات
### 2. **نظام ذكي لتحديد الاستفادة**
- حساب تلقائي لحالة الاستفادة لكل عضو
- قواعد معقدة تعتمد على العمر، الجنس، التعليم، العمل، الدخل
- دعم الاستثناءات المؤقتة والدائمة
### 3. **إدارة متقدمة للخدمات**
- أنواع خدمات متعددة (إيجار، أجهزة، زواج، إلخ)
- حدود وقيود مرنة حسب الفئة وعدد الأعضاء
- نظام موافقات متعدد المستويات
### 4. **نظام زيارات متطور**
- زيارات يدوية وتلقائية
- مصادقة OTP للزيارات
- استبيانات تقييم مرتبطة
### 5. **إدارة مالية متكاملة**
- حساب المصروفات الشهرية (نقدي، وجبات، ملابس)
- أوامر دفع متعددة الخدمات
- تكامل كامل مع المحاسبة
### 6. **تقارير وتحليلات**
- تقارير شاملة عن الأسر
- تقارير الحسابات البنكية
- إحصائيات متعددة
### 7. **بوابة المستفيدين**
- واجهة للمستفيدين لتقديم الطلبات
- متابعة حالة الطلبات
- رفع المرفقات
---
## 🔧 الصيانة والتطوير
### نقاط القوة:
✅ نظام شامل ومتكامل
✅ قواعد عمل معقدة ومرنة
✅ تكامل جيد مع موديولات Odoo الأخرى
✅ واجهات مستخدم منظمة
✅ نظام أمان قوي
### نقاط التحسين المحتملة:
⚠️ بعض الكود المعلق (commented code) يحتاج تنظيف
⚠️ بعض الحقول المكررة يمكن توحيدها
⚠️ يمكن تحسين الأداء في بعض الاستعلامات المعقدة
---
## 📝 الخلاصة
موديول `odex_benefit` هو نظام شامل ومتطور لإدارة المنح والمساعدات، يوفر:
- إدارة كاملة للأسر المستفيدة وأعضائها
- نظام ذكي لتحديد الاستفادة
- إدارة متقدمة للخدمات والطلبات
- نظام زيارات متطور
- إدارة مالية متكاملة
- تقارير وتحليلات شاملة
النظام مصمم بشكل احترافي ويوفر مرونة عالية في التكوين والإعدادات.
---
**تاريخ المراجعة:** 2025-01-08
**المراجع:** AI Assistant
**الإصدار:** 1.0

View File

@ -1,354 +0,0 @@
# مراجعة شاملة لموديول Odex Takaful System
## نظرة عامة
**اسم الموديول:** Odex Takaful System
**الإصدار:** 11.0
**الفئة:** Odex25-Takaful/Odex25-Takaful
**المؤلف:** Expert Co. Ltd.
**الموقع:** http://www.exp-sa.com
**الملخص:** موديول لإدارة نظام التكافل (الكفالة والمساهمات والتبرعات)
## الاعتماديات (Dependencies)
- `base`
- `takaful_core`
- `odex_takaful_base`
- `odex_benefit`
- `account`
- `phone_validation`
## الهيكل العام للموديول
### 1. النماذج (Models) - 26 ملف
#### النماذج الرئيسية:
1. **`takaful.sponsorship`** - نموذج الكفالة الرئيسي
- إدارة الكفالات (أيتام/أرامل)
- أنواع الكفالة: فردية/جماعية، مؤقتة/دائمة
- حالات الكفالة: draft, confirmed, wait_pay, paid, canceled, closed, etc.
- إدارة المدفوعات والاسترداد
- ربط مع الحسابات المالية
2. **`donations.details.lines`** - تفاصيل التبرعات والكفالات
- إدارة بنود التبرعات والكفالات
- دعم التبرعات المباشرة (Direct Debit)
- جدولة المدفوعات الشهرية
- إدارة الاستبدال والتمديد
3. **`payment.details.lines`** - تفاصيل المدفوعات
- تسجيل المدفوعات
- ربط مع الحسابات المالية
- دعم طرق الدفع المختلفة (نقد، تحويل بنكي، سحب مباشر)
4. **`sponsorship.scheduling.line`** - جدولة المدفوعات
- جدولة المدفوعات الشهرية
- معالجة المدفوعات التلقائية
- تتبع حالة كل دفعة
5. **`month.payment`** - المدفوعات الشهرية للمستفيدين
- تجميع المدفوعات الشهرية
- إنشاء قيود مالية للمستفيدين
6. **`takaful.sponsor.operation`** - عمليات الكافل
- تتبع عمليات الكافل (كفالة، مساهمة، هدية)
7. **`sponsorship.payment`** - مدفوعات الكفالة
- إدارة مدفوعات الكفالة
- ربط مع الفواتير
8. **`sponsorship.cancellation`** - إلغاء الكفالة
- إدارة عمليات الإلغاء
- حساب المتأخرات
9. **`replacement.process`** - عملية الاستبدال
- استبدال المستفيدين
- تتبع عمليات الاستبدال
10. **`takaful.contribution`** - المساهمات المالية
- إدارة المساهمات المالية
- ربط مع الحاجات
11. **`takaful.grant.benefit`** - تمديد نموذج المستفيدين
- حساب قيمة الكفالة
- تتبع الكفالات النشطة
12. **`takaful.push.notification`** - الإشعارات
- إرسال الإشعارات (SMS, Email, WhatsApp)
13. **`takaful.notification`** - إعدادات الإشعارات
- أنواع الإشعارات المختلفة
- ربط مع حالات الكفالة
14. **`takaful.payment.method`** - طرق الدفع
- إدارة طرق الدفع المختلفة
15. **`donation.extension.history`** - سجل التمديدات
- تتبع تمديدات التبرعات
16. **`donation.replacement.log`** - سجل الاستبدالات
- تتبع استبدالات المستفيدين
17. **`refund.details.lines`** - تفاصيل الاسترداد
- إدارة عمليات الاسترداد
18. **`sponsorship.benefit.arrears`** - المتأخرات
- حساب المتأخرات للمستفيدين
#### النماذج المساعدة:
- `replacement.reasons` - أسباب الاستبدال
- `sponsorship.reason.stop` - أسباب إيقاف الكفالة
- `refund.reasons` - أسباب الاسترداد
- `sponsorship.states` - حالات الكفالة
- `preferred.communication` - طرق التواصل المفضلة
- `takaful.conf` - إعدادات التكافل
- `donations.items` - عناصر التبرعات
- `points.of.sale.custom` - نقاط البيع
### 2. الويزاردات (Wizards) - 10 ملفات
1. **`account.payment.register`** - تسجيل المدفوعات
2. **`add.details.wiz`** - إضافة التفاصيل
3. **`benefit.month.payment.wiz`** - مدفوعات المستفيدين الشهرية
4. **`donation.extension.wizard`** - تمديد التبرعات
5. **`orphan.replacement.wizard`** - استبدال الأيتام
6. **`refund.wiz`** - استرداد المدفوعات
7. **`replace.sponsor.wizard`** - استبدال الكافل
8. **`takaful.reports.wizards`** - تقارير التكافل
9. **`transfer.deduction.wizard`** - تحويل الخصومات
### 3. التقارير (Reports) - 7 ملفات
1. **`month_payment_report.py`** - تقرير المدفوعات الشهرية
2. **`payment_details_lines_reports.xml`** - تقارير تفاصيل المدفوعات
3. **`takaful_reports.py`** - تقارير التكافل العامة
4. **`transfer_deduction_report.xml`** - تقرير تحويل الخصومات
### 4. البيانات (Data) - 7 ملفات
1. **`sequence_data.xml`** - التسلسلات
2. **`scheduled_actions.xml`** - الإجراءات المجدولة
3. **`takaful_notification_mail_template.xml`** - قوالب البريد الإلكتروني
4. **`sponsorship_states_data.xml`** - حالات الكفالة
5. **`sponsorship_notification_data.xml`** - إعدادات الإشعارات
6. **`message_template_data.xml`** - قوالب الرسائل
7. **`server_actions.xml`** - إجراءات الخادم
### 5. الأمان (Security)
- **`security_data.xml`** - مجموعات الأمان
- **`ir.model.access.csv`** - صلاحيات الوصول
### 6. الواجهات (Views) - 33 ملف
- واجهات الكفالات
- واجهات المدفوعات
- واجهات التبرعات
- واجهات التقارير
- واجهات الإشعارات
### 7. الإجراءات المجدولة (Scheduled Actions)
1. **فحص تاريخ انتهاء الكفالة وإرسال رسائل WhatsApp**
- التكرار: يومي
- الوقت: 04:00
2. **إدارة سير عمل الكفالة يومياً**
- التكرار: يومي
- الوقت: 04:00
3. **إنشاء فواتير الكفالات شهرياً**
- التكرار: شهري
- الوقت: 02:00 في اليوم الأول من الشهر
4. **معالجة المدفوعات المجدولة يومياً**
- التكرار: يومي
- الوقت: 03:00
5. **إرسال تذكيرات SMS لانتهاء السحب المباشر**
- التكرار: يومي
- الوقت: 05:00
## الوظائف الرئيسية
### 1. إدارة الكفالات
#### إنشاء كفالة جديدة:
- اختيار الكافل (مسجل، جديد، غير معروف)
- اختيار المستفيد (فردي/جماعي)
- اختيار نوع المستفيد (أيتام/أرامل)
- تحديد مدة الكفالة (مؤقتة/دائمة)
- إضافة بنود التبرعات/الكفالات
- تحديد طريقة الدفع
#### حالات الكفالة:
- **draft**: مسودة
- **confirmed**: مؤكدة
- **wait_pay**: انتظار الدفع
- **paid**: مدفوعة
- **partial_refund**: استرداد جزئي
- **fully_refund**: استرداد كامل
- **approve_refund**: موافقة على الاسترداد
- **under_refund**: تحت إجراءات الاسترداد
- **under_replacement**: تحت الاستبدال
- **replacement_done**: تم الاستبدال
- **canceled**: ملغاة
- **closed**: مغلقة
### 2. إدارة المدفوعات
#### أنواع المدفوعات:
- نقد (Cash)
- بطاقة (Card)
- شيك (Check)
- تحويل بنكي (Bank Transfer)
- سحب مباشر (Direct Debit)
#### تسجيل المدفوعات:
- ربط مع الفواتير
- إنشاء قيود مالية تلقائياً
- تتبع حالة الدفع
### 3. جدولة المدفوعات
- جدولة المدفوعات الشهرية للكفالات المؤقتة
- معالجة تلقائية للمدفوعات المجدولة
- تتبع حالة كل دفعة
### 4. الاستبدال
- استبدال المستفيدين
- تتبع عمليات الاستبدال
- إرسال إشعارات للكافل
### 5. التمديد
- تمديد التبرعات/الكفالات
- تتبع تاريخ التمديدات
- إرسال تذكيرات قبل الانتهاء
### 6. الاسترداد
- استرداد كامل أو جزئي
- إنشاء فواتير استرداد
- تتبع عمليات الاسترداد
### 7. الإشعارات
#### أنواع الإشعارات:
- إنشاء كفالة
- قبل انتهاء الكفالة
- بعد انتهاء الكفالة
- إلغاء الكفالة
- استرداد كامل/جزئي
- استبدال يتيم/أرملة
- دفع كامل/جزئي
- قبل الإلغاء
#### قنوات الإشعارات:
- SMS
- Email
- WhatsApp (عبر Twilio)
- Push Notifications
### 8. التقارير
- تقارير المدفوعات الشهرية
- تقارير تفاصيل المدفوعات
- تقارير التكافل العامة
- تقارير تحويل الخصومات
## التكامل مع الموديولات الأخرى
### 1. odex_benefit
- ربط مع المستفيدين (family.member)
- ربط مع العائلات (grant.benefit)
- استخدام حالات المستفيدين
### 2. account
- إنشاء الفواتير تلقائياً
- إنشاء قيود المدفوعات
- ربط مع الحسابات المالية
### 3. takaful_core
- استخدام الإعدادات الأساسية
- استخدام الحسابات المالية
### 4. odex_takaful_base
- استخدام الإعدادات الأساسية
- استخدام الإشعارات
## البيانات في النظام
بناءً على فحص البيانات في Odoo:
- **الكفالات (takaful.sponsorship):** 0 سجل
- **تفاصيل التبرعات (donations.details.lines):** 0 سجل
- **تفاصيل المدفوعات (payment.details.lines):** 197 سجل
- **المدفوعات الشهرية (month.payment):** 0 سجل
- **جدولة المدفوعات (sponsorship.scheduling.line):** 0 سجل
## الميزات المتقدمة
### 1. السحب المباشر (Direct Debit)
- جدولة المدفوعات الشهرية تلقائياً
- معالجة المدفوعات في التاريخ المحدد
- إرسال تذكيرات قبل الانتهاء
### 2. آلية التبرع
- **مع شروط (With Conditions):** ربط مع مستفيدين محددين
- **بدون شروط (Without Conditions):** تبرع عام
### 3. حساب المتأخرات
- حساب المتأخرات تلقائياً
- إرسال إشعارات للمتأخرات
- إلغاء تلقائي بعد فترة محددة
### 4. الاستبدال التلقائي
- استبدال تلقائي عند تغيير حالة المستفيد
- إرسال إشعارات للكافل
### 5. التكامل مع Twilio
- إرسال رسائل WhatsApp
- إرسال SMS
- استخدام قوالب الرسائل
## الأمان والصلاحيات
### مجموعات الأمان:
- `group_kufula_user` - مستخدم التكافل
- `group_donations_coordinator` - منسق التبرعات
- `group_sponsorship_coordinator` - منسق الكفالات
- `group_orphan_replacement` - استبدال الأيتام
- `group_replace_sponsor` - استبدال الكافل
- `donation_officer_group` - موظف التبرعات
- `sponsorship_officer_group` - موظف الكفالات
## نقاط القوة
1. **شمولية النظام:** يغطي جميع جوانب إدارة الكفالات والتبرعات
2. **التكامل الجيد:** تكامل ممتاز مع الموديولات الأخرى
3. **الإشعارات المتقدمة:** دعم قنوات إشعارات متعددة
4. **الأتمتة:** معالجة تلقائية للعديد من العمليات
5. **المرونة:** دعم أنواع مختلفة من الكفالات والتبرعات
6. **التقارير:** تقارير شاملة للعمليات
## نقاط التحسين المحتملة
1. **الأداء:** قد يحتاج تحسين للأداء مع كمية كبيرة من البيانات
2. **التوثيق:** يمكن تحسين التوثيق الداخلي للكود
3. **الاختبارات:** إضافة المزيد من الاختبارات الآلية
4. **التعليقات:** بعض الأكواد تحتاج تعليقات أوضح
5. **معالجة الأخطاء:** تحسين معالجة الأخطاء في بعض الأماكن
## الخلاصة
موديول **Odex Takaful System** هو نظام شامل ومتكامل لإدارة الكفالات والتبرعات. يوفر ميزات متقدمة مثل السحب المباشر، الاستبدال التلقائي، والإشعارات المتعددة القنوات. النظام متكامل جيداً مع الموديولات الأخرى ويوفر واجهات سهلة الاستخدام.
النظام جاهز للاستخدام في بيئة الإنتاج مع بعض التحسينات المحتملة للأداء والتوثيق.
---
**تاريخ المراجعة:** 2025-01-27
**المراجع:** AI Assistant