From 383fc09b3637aa773495cabb12cdbcf1264a0589 Mon Sep 17 00:00:00 2001 From: Mohamed Eltayar <152964073+maltayyar2@users.noreply.github.com> Date: Sat, 8 Nov 2025 14:40:16 +0300 Subject: [PATCH 1/6] Add MODULE_REVIEW.md files for odex_benefit and odex_takaful modules --- .../odex_benefit/MODULE_REVIEW.md | 637 ++++++++++++++++++ .../odex_takaful/MODULE_REVIEW.md | 354 ++++++++++ 2 files changed, 991 insertions(+) create mode 100644 STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md create mode 100644 STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md diff --git a/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md b/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md new file mode 100644 index 000000000..213d7d660 --- /dev/null +++ b/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md @@ -0,0 +1,637 @@ +# 📋 مراجعة شاملة لموديول 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 diff --git a/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md b/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md new file mode 100644 index 000000000..2be8ff5cb --- /dev/null +++ b/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md @@ -0,0 +1,354 @@ +# مراجعة شاملة لموديول 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 From 7dfc25c426064346a46e20aa6f332248348578b9 Mon Sep 17 00:00:00 2001 From: Mohamed Eltayar <152964073+maltayyar2@users.noreply.github.com> Date: Sat, 8 Nov 2025 14:43:20 +0300 Subject: [PATCH 2/6] Delete STANDARD_MODULES/master/odex25_ensan/odex25_ensan directory --- .../odex_benefit/MODULE_REVIEW.md | 637 ------------------ .../odex_takaful/MODULE_REVIEW.md | 354 ---------- 2 files changed, 991 deletions(-) delete mode 100644 STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md delete mode 100644 STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md diff --git a/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md b/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md deleted file mode 100644 index 213d7d660..000000000 --- a/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md +++ /dev/null @@ -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 diff --git a/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md b/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md deleted file mode 100644 index 2be8ff5cb..000000000 --- a/STANDARD_MODULES/master/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md +++ /dev/null @@ -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 From f05039bdee35e55e317aa4382228f2131dac63b2 Mon Sep 17 00:00:00 2001 From: Mohamed Eltayar <152964073+maltayyar2@users.noreply.github.com> Date: Sat, 8 Nov 2025 14:48:33 +0300 Subject: [PATCH 3/6] Add MODULE_REVIEW.md files for odex_benefit and odex_takaful modules --- .../odex_benefit/MODULE_REVIEW.md | 637 ++++++++++++++++++ .../odex_takaful/MODULE_REVIEW.md | 354 ++++++++++ 2 files changed, 991 insertions(+) create mode 100644 odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md create mode 100644 odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md diff --git a/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md b/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md new file mode 100644 index 000000000..213d7d660 --- /dev/null +++ b/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md @@ -0,0 +1,637 @@ +# 📋 مراجعة شاملة لموديول 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 diff --git a/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md b/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md new file mode 100644 index 000000000..2be8ff5cb --- /dev/null +++ b/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md @@ -0,0 +1,354 @@ +# مراجعة شاملة لموديول 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 From c5664064b03b5af09fb1359b9d77bf3a1536e7bd Mon Sep 17 00:00:00 2001 From: Mohamed Eltayar <152964073+maltayyar2@users.noreply.github.com> Date: Sat, 8 Nov 2025 14:51:44 +0300 Subject: [PATCH 4/6] Revert "Add MODULE_REVIEW.md files for odex_benefit and odex_takaful modules" --- .../odex_benefit/MODULE_REVIEW.md | 637 ------------------ .../odex_takaful/MODULE_REVIEW.md | 354 ---------- 2 files changed, 991 deletions(-) delete mode 100644 odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md delete mode 100644 odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md diff --git a/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md b/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md deleted file mode 100644 index 213d7d660..000000000 --- a/odex25_ensan/odex25_ensan/odex_benefit/MODULE_REVIEW.md +++ /dev/null @@ -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 diff --git a/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md b/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md deleted file mode 100644 index 2be8ff5cb..000000000 --- a/odex25_ensan/odex25_ensan/odex_takaful/MODULE_REVIEW.md +++ /dev/null @@ -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 From c1ebd4d02f3cc174394146dacfc4eb2e90a29902 Mon Sep 17 00:00:00 2001 From: Mohamed Eltayar <152964073+maltayyar2@users.noreply.github.com> Date: Sat, 8 Nov 2025 15:00:40 +0300 Subject: [PATCH 5/6] Add MODULE_REVIEW.md files for odex_benefit and odex_takaful modules --- odex25_ensan/odex_benefit/MODULE_REVIEW.md | 637 +++++++++++++++++++++ odex25_ensan/odex_takaful/MODULE_REVIEW.md | 354 ++++++++++++ 2 files changed, 991 insertions(+) create mode 100644 odex25_ensan/odex_benefit/MODULE_REVIEW.md create mode 100644 odex25_ensan/odex_takaful/MODULE_REVIEW.md diff --git a/odex25_ensan/odex_benefit/MODULE_REVIEW.md b/odex25_ensan/odex_benefit/MODULE_REVIEW.md new file mode 100644 index 000000000..213d7d660 --- /dev/null +++ b/odex25_ensan/odex_benefit/MODULE_REVIEW.md @@ -0,0 +1,637 @@ +# 📋 مراجعة شاملة لموديول 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 diff --git a/odex25_ensan/odex_takaful/MODULE_REVIEW.md b/odex25_ensan/odex_takaful/MODULE_REVIEW.md new file mode 100644 index 000000000..2be8ff5cb --- /dev/null +++ b/odex25_ensan/odex_takaful/MODULE_REVIEW.md @@ -0,0 +1,354 @@ +# مراجعة شاملة لموديول 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 From cb6d996282079d8bb5e2f7e96030a99984e8cd65 Mon Sep 17 00:00:00 2001 From: younes Date: Sun, 9 Nov 2025 07:53:14 +0100 Subject: [PATCH 6/6] [I18N] odex_beneit: add translation --- odex25_ensan/odex_benefit/i18n/ar_001.po | 165 ++++++++++++++++++++++- 1 file changed, 164 insertions(+), 1 deletion(-) diff --git a/odex25_ensan/odex_benefit/i18n/ar_001.po b/odex25_ensan/odex_benefit/i18n/ar_001.po index 9169c20fb..32da4817f 100644 --- a/odex25_ensan/odex_benefit/i18n/ar_001.po +++ b/odex25_ensan/odex_benefit/i18n/ar_001.po @@ -1470,6 +1470,8 @@ msgstr "موافقة رئيس العمليات" #: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_food_basket_form #: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_food_surplus_form #: model_terms:ir.ui.view,arch_db:odex_benefit.changes_requests_form +#: model_terms:ir.ui.view,arch_db:odex_benefit.payment_orders_form +#: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_form_view #: model_terms:ir.ui.view,arch_db:odex_benefit.view_benefit_category_form msgid "Approve" msgstr "موافقة" @@ -3109,6 +3111,7 @@ msgstr "مؤسسات تشير إلي شركاء" #: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__company_id #: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__company_id #: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__company_id +#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__company_id #: model:ir.model.fields,field_description:odex_benefit.field_service_request__company_id #: model:ir.model.fields,field_description:odex_benefit.field_services_settings__company_id msgid "Company" @@ -3821,6 +3824,7 @@ msgstr "حد الائتمان" #: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__currency_id #: model:ir.model.fields,field_description:odex_benefit.field_food_basket_line__currency_id #: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__currency_id +#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__currency_id #: model:ir.model.fields,field_description:odex_benefit.field_needs_payment_line__currency_id #: model:ir.model.fields,field_description:odex_benefit.field_payment_collection_line__currency_id #: model:ir.model.fields,field_description:odex_benefit.field_receive_benefit_loans__currency_id @@ -4519,6 +4523,8 @@ msgstr "" #: model:ir.model.fields.selection,name:odex_benefit.selection__receive_benefit_zkat__state__done #: model:ir.model.fields.selection,name:odex_benefit.selection__receive_food_basket__state__done #: model:ir.model.fields.selection,name:odex_benefit.selection__visit_location__state__done +#: model:ir.model.fields.selection,name:odex_benefit.selection__payment_orders__state__done +#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__state__done #: model_terms:ir.ui.view,arch_db:odex_benefit.appliances_furniture_form #: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_club_form #: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_food_basket_form @@ -4950,6 +4956,7 @@ msgstr "رفض الاستثناء" #: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__state__exception_second_approve #: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__state_a__exception_second_approve #: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__state__exception_second_approve +#: model:ir.model.fields.selection,name:odex_benefit.selection__payment_orders__state__waiting_gm #: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form #: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form msgid "Waiting for General Manager" @@ -5221,6 +5228,7 @@ msgstr "الفرد" #. module: odex_benefit #: model:ir.actions.act_window,name:odex_benefit.family_member_action #: model:ir.model.fields,field_description:odex_benefit.field_benefit_housing_rooms__family_members +#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__member_ids #: model:ir.ui.menu,name:odex_benefit.family_member_main_menu #: model:ir.ui.menu,name:odex_benefit.family_member_menu #: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_tree @@ -7017,6 +7025,7 @@ msgstr "إعدادات الوظائف" #: model:ir.model.fields,field_description:odex_benefit.field_benefit_loans__journal_id #: model:ir.model.fields,field_description:odex_benefit.field_benefit_zkat__journal_id #: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__journal_id +#: model:ir.model.fields,field_description:odex_benefit.field_payment_orders__journal_id #: model:ir.model.fields,field_description:odex_benefit.field_receive_benefit_zkat__journal_id #: model:ir.model.fields,field_description:odex_benefit.field_receive_food_basket__journal_id msgid "Journal" @@ -7993,6 +8002,11 @@ msgstr "الاسم الثالث" msgid "Members" msgstr "أفراد/مستفيدين الأسرة" +#. module: odex_benefit +#: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_form_view +msgid "Members" +msgstr "أفراد" + #. module: odex_benefit #: model:ir.model.fields,field_description:odex_benefit.field_benefit_expense_line__benefit_member_count #: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__benefit_member_count @@ -9482,6 +9496,7 @@ msgstr "" #: model:ir.model.fields,field_description:odex_benefit.field_receive_benefit_zkat__quantity #: model:ir.model.fields,field_description:odex_benefit.field_receive_food_basket__quantity #: model:ir.model.fields,field_description:odex_benefit.field_receive_food_surplus__quantity +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__service_qty #: model:ir.model.fields,field_description:odex_benefit.field_zkat_line__quantity #: model_terms:ir.ui.view,arch_db:odex_benefit.benefit_food_surplus_form msgid "Quantity" @@ -10099,6 +10114,7 @@ msgid "Researcher Team" msgstr "الاخصائي الاجتماعي" #. module: odex_benefit +#: model_terms:ir.ui.view,arch_db:odex_benefit.payment_orders_form #: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form msgid "Reset" msgstr "إرجاع" @@ -10553,6 +10569,7 @@ msgstr "المستندات المطلوبة للخدمة" #. module: odex_benefit #: model:ir.actions.act_window,name:odex_benefit.service_request_action #: model:ir.ui.menu,name:odex_benefit.services_requests_menu +#: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_form_view msgid "Services Requests" msgstr "طلبات الخدمات" @@ -14135,6 +14152,7 @@ msgstr "أسباب رفض الخدمات" #: code:addons/odex_benefit/models/benefit.py:0 #: code:addons/odex_benefit/models/family_members.py:0 #: model:ir.model.fields,field_description:odex_benefit.field_payment_orders__service_requests_ids +#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__service_requests_ids #: model_terms:ir.ui.view,arch_db:odex_benefit.family_member_form #: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form #, python-format @@ -14406,6 +14424,7 @@ msgstr "أمر الصرف" #. module: odex_benefit #: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_form_view +#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__benefit_ids msgid "Families" msgstr "الأسر" @@ -14421,6 +14440,7 @@ msgstr "أمر الصرف تم" #. module: odex_benefit #: model:ir.model.fields,field_description:odex_benefit.field_payment_orders__is_seasonal +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__is_seasonal #: model:ir.model.fields,field_description:odex_benefit.field_services_settings__is_seasonal_service msgid "Is Seasonal Service?" msgstr "هل هي خدمة موسمية" @@ -14428,6 +14448,7 @@ msgstr "هل هي خدمة موسمية" #. module: odex_benefit #: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__seasonal_service_id #: model:ir.model.fields,field_description:odex_benefit.field_seasonal_grant_benefit__seasonal_service_id +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__seasonal_service_id #: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_form_view msgid "Seasonal Service" msgstr "الخدمة الموسمية" @@ -14447,7 +14468,6 @@ msgstr "طلبات الخدمات الموسمية" msgid "Seasonal Services" msgstr "الخدمات الموسمية" - #. module: odex_benefit #: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__state__draft msgid "Draft" @@ -16389,6 +16409,7 @@ msgstr "مبلغ دفع الإيجار الجديد" #. module: odex_benefit #: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__state__gm_assistant +#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__state__gm_assistant #: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_search msgid "Waiting Assistant General Manager" msgstr "بانتظار مساعد المدير العام" @@ -16449,16 +16470,19 @@ msgid "Researcher Supervisor" msgstr "مشرف الأخصائي" #. module: odex_benefit +#: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_form_view #: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form msgid "Calculate" msgstr "حساب" #. module: odex_benefit +#: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_form_view #: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form msgid "Withdraw" msgstr "تراجع" #. module: odex_benefit +#: model_terms:ir.ui.view,arch_db:odex_benefit.seasonal_service_form_view #: model_terms:ir.ui.view,arch_db:odex_benefit.view_confirm_benefit_expense_form msgid "Recalculate" msgstr "إعادة حساب" @@ -16502,6 +16526,7 @@ msgstr "يمكنك إعادة الحساب فقط عندما تكون الحال #. module: odex_benefit #: model:ir.model.fields.selection,name:odex_benefit.selection__confirm_benefit_expense__state__calculated +#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__state__calculated msgid "Calculated" msgstr "تم الحساب" @@ -16785,6 +16810,144 @@ msgstr "لا يوجد" msgid "Please enter a valid service amount." msgstr "يرجى إدخال مبلغ الخدمة." +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__family_domain_ids +msgid "Eligible Families" +msgstr "الأُسر المستحقة" + +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__service_delivery_method +msgid "Service Delivery Method" +msgstr "طريقة تقديم الخدمة" + +#. module: odex_benefit +#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__service_delivery_method__cash +msgid "Cash" +msgstr "نقدًا" + +#. module: odex_benefit +#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__service_delivery_method__in_kind +msgid "In kind" +msgstr "عينًا" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/seasonal_service.py:0 +#, python-format +msgid "You must add at least one family." +msgstr "يجب إضافة أسرة واحدة على الأقل." + +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__service_benefit_count +msgid "Service Benefit Count" +msgstr "عدد المستفيدين من الخدمة" + +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__is_in_kind +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__is_in_kind +#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__in_kind +msgid "In Kind" +msgstr "عيني" + +#. module: odex_benefit +#: model:ir.model.fields.selection,name:odex_benefit.selection__payment_orders__state__waiting_head +msgid "Waiting for Head of Expenses Department" +msgstr "بانتظار رئيس قسم المصروفات" + +#. module: odex_benefit +#: model:ir.model.fields.selection,name:odex_benefit.selection__payment_orders__state__waiting_finance +msgid "Waiting for Financial Manager" +msgstr "بانتظار المدير المالي" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/payment_order.py:0 +#, python-format +msgid "Only the assigned accountant can approve this payment order." +msgstr "لا يمكن الموافقة على أمر الدفع إلا من قبل المحاسب المكلف." + +#. module: odex_benefit +#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__state__waiting_receive +msgid "Waiting for Receive" +msgstr "في انتظار الاستلام" + +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_seasonal_service__payment_order_state +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__payment_order_state +msgid "Payment Order State" +msgstr "حالة أمر الدفع" + +#. module: odex_benefit +#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__payment_order_state__none +#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_order_state__none +msgid "None" +msgstr "لا يوجد" + +#. module: odex_benefit +#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__payment_order_state__waiting +#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_order_state__waiting +msgid "Waiting Payment" +msgstr "في انتظار الدفع" + +#. module: odex_benefit +#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__payment_order_state__done +#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_order_state__done +msgid "Done Payment" +msgstr "تم الدفع" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/seasonal_service.py:0 +#, python-format +msgid "You must add at least one member." +msgstr "يجب إضافة فرد واحد على الأقل." + +#. module: odex_benefit +#: code:addons/odex_benefit/models/seasonal_service.py:0 +#, python-format +msgid "Member %s has no related family (benefit)." +msgstr "الفرد %s ليس له عائلة مرتبطة." + +#. module: odex_benefit +#: code:addons/odex_benefit/models/seasonal_service.py:0 +#, python-format +msgid "You must add at least one service request." +msgstr "يجب إضافة طلب خدمة واحد على الأقل." + +#. module: odex_benefit +#: code:addons/odex_benefit/models/service_request.py:0 +#: code:addons/odex_benefit/models/service_request.py:0 +#, python-format +msgid "" +"All selected service requests must belong to the same Service Cat.\n" +"\n" +"Selected Services Cat:\n" +"%s" +msgstr "يجب أن تنتمي جميع طلبات الخدمة المحددة إلى نفس فئة الخدمة.\n\nفئة الخدمات المحددة:\n%s" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/service_request.py:0 +#: code:addons/odex_benefit/models/service_request.py:0 +#, python-format +msgid "" +"The following service requests do not meet the conditions:\n" +"%s\n" +"Each request must:\n" +"• Be in 'Accounting Approve' state\n" +"• Have payment order state = 'None'\n" +"• Not be linked to any payment order" +msgstr "طلبات الخدمة التالية لا تستوفي الشروط:\n%s\nيجب أن يكون كل طلب:\n• في حالة 'موافقة المحاسبة'\n• حالة أمر الدفع = 'لا يوجد'\n• غير مرتبط بأي أمر دفع" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/service_request.py:0 +#, python-format +msgid "Only 'Electrical Devices' service cat requests can create a invoice." +msgstr "يمكن فقط لطلبات فئة خدمة 'الأجهزة الكهربائية' إنشاء فاتورة." + +#. module: odex_benefit +#: model_terms:ir.ui.view,arch_db:odex_benefit.payment_orders_form +msgid "Manager approval" +msgstr "موافقة المسؤول" + + + #. module: odex_benefit #: code:addons/odex_benefit/models/service_request.py:0 #, python-format