diff --git a/odex25_benefit/odex25_empowermentmanagement/__init__.py b/odex25_benefit/odex25_empowermentmanagement/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/odex25_benefit/odex25_empowermentmanagement/__manifest__.py b/odex25_benefit/odex25_empowermentmanagement/__manifest__.py new file mode 100644 index 000000000..ffaba883e --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/__manifest__.py @@ -0,0 +1,21 @@ +{ + 'name': 'Odex25 empowerment management', + 'description': 'This module empowerment management ', + 'author': 'Expert Co. Ltd.', + 'website': 'http://exp-sa.com', + 'category': 'Odex25-Ensan activity', + 'depends': ['mail','odex_benefit'], + 'data': [ + 'security/security.xml', + 'security/ir.model.access.csv', + 'data/ir_sequence_data.xml', + + 'views/service_settings.xml', + 'views/empowerment_management.xml', + 'views/education_entity.xml', + + + ], + 'installable': True, + 'auto_install': False +} diff --git a/odex25_benefit/odex25_empowermentmanagement/data/ir_sequence_data.xml b/odex25_benefit/odex25_empowermentmanagement/data/ir_sequence_data.xml new file mode 100644 index 000000000..67350769e --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/data/ir_sequence_data.xml @@ -0,0 +1,13 @@ + + + Level Code + empowerment.request + Empw/ + 1 + 1 + 4 + + + + + diff --git a/odex25_benefit/odex25_empowermentmanagement/i18n/ar_001.po b/odex25_benefit/odex25_empowermentmanagement/i18n/ar_001.po new file mode 100644 index 000000000..2052cafd0 --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/i18n/ar_001.po @@ -0,0 +1,630 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * odex25_empowermentmanagement +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-11-03 00:50+0000\n" +"PO-Revision-Date: 2024-11-03 00:50+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + + + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_hr_qualification_req +msgid "HR Qualification" +msgstr "المؤهلات العلمية" + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_qualification_specification_req +msgid "Qualification Specification" +msgstr "تخصص المؤهل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_qualification_specification_req__name +msgid "Name" +msgstr "الاسم" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_qualification_specification_req__type +msgid "Type" +msgstr "النوع" + + + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_qualification_specification_req__type__qualification +msgid "Qualification" +msgstr "مؤهل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__qualification_specification_req__type__certificate +msgid "Certificate" +msgstr "شهادة" + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_hr_qualification_name_req +msgid "HR Qualification Name" +msgstr "اسم المؤهل العلمي" + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_hr_employee_history_req +msgid "HR Employee History" +msgstr "تاريخ الموظف" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_req__uni_name +msgid "University Name" +msgstr "اسم الجامعة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_req__prg_status +msgid "Program Status" +msgstr "حالة البرنامج" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_req__comp_date +msgid "Completion Date" +msgstr "تاريخ الانتهاء" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_req__contact_name +msgid "Contact Name" +msgstr "اسم جهة الاتصال" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_req__contact_phn +msgid "Contact Phone No" +msgstr "رقم هاتف جهة الاتصال" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_req__contact_email +msgid "Contact Email" +msgstr "البريد الإلكتروني لجهة الاتصال" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_req__country_name +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_employee_history_req__country +msgid "Country" +msgstr "الدولة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_name_req__name +msgid "Qualification" +msgstr "المؤهل العلمي" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_name_req__sequence +msgid "Sequence" +msgstr "التسلسل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_name_req__parent_id +msgid "Upper Qualification" +msgstr "المؤهل الأعلى" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_req__qualification_id +msgid "Qualification Name" +msgstr "اسم المؤهل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_req__qualification_degree +msgid "Qualification Degree" +msgstr "درجة المؤهل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_req__qualification_specification_id +msgid "Qualification Specification" +msgstr "تخصص المؤهل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_qualification_req__attachment +msgid "Attachment" +msgstr "المرفق" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_employee_history_req__employement_history +msgid "Employment History" +msgstr "تاريخ التوظيف" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_employee_history_req__position +msgid "Position" +msgstr "الوظيفة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_employee_history_req__employeer +msgid "Employeer" +msgstr "صاحب العمل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_employee_history_req__salary +msgid "Salary" +msgstr "الراتب" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_employee_history_req__address +msgid "Address" +msgstr "العنوان" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_employee_history_req__date_from +msgid "Date From" +msgstr "من تاريخ" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_hr_employee_history_req__date_to +msgid "Date To" +msgstr "إلى تاريخ" + + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_empowerment_study_specialization +msgid "Study Specialization" +msgstr "تخصص الدراسة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_study_specialization__type +msgid "Study Type" +msgstr "تخصص الدراسة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:empowerment.study.specialization.type_bachelor +msgid "Bachelor" +msgstr "بكالريوس" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:empowerment.study.specialization.type_diploma +msgid "Diploma" +msgstr "دبلوم" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_study_specialization__universities_colleges +msgid "Universities / Colleges" +msgstr "الجامعات / الكليات" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_study_specialization__institutes_schools +msgid "Institute / School Name" +msgstr "اسم المعهد / المدرسة" + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_empowerment_education_entity +msgid "Education Entity" +msgstr "vvالجهات التعليمية" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_education_entity__name +msgid "Entity Name" +msgstr "اسم الجهة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_education_entity__entity_type +msgid "Entity Type" +msgstr "نوع الجهة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_education_entity__entity_type__university +msgid "University" +msgstr "جامعة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_education_entity__entity_type__college +msgid "College" +msgstr "كلية" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_education_entity__entity_type__institute +msgid "Institute" +msgstr "معهد" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_education_entity__entity_type__school +msgid "School" +msgstr "مدرسة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_education_entity__study_specialization +msgid "Study Specialization" +msgstr "تخصص الدراسة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_education_entity__study_specialization__bachelor +msgid "Bachelor" +msgstr "بكالريوس" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_education_entity__study_specialization__diploma +msgid "Diploma" +msgstr "دبلوم" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_education_entity__specialization_id +msgid "Study Specialization" +msgstr "تخصص الدراسة" + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_empowerment_qualification_course +msgid "Qualification Course" +msgstr "دورات التأهيل" + + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_qualification_course__name +msgid "Entity Name" +msgstr "اسم الجهة" + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_empowerment_training_entity +msgid "Training Entities" +msgstr "جهات التدريب" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_training_entity__name +msgid "Entity Name" +msgstr "اسم الجهة" + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_empowerment_project_funding_type +msgid "Project Funding Type" +msgstr "نوع تمويل المشاريع" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_project_funding_type__name +msgid "Entity Name" +msgstr " اسم الجهة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_services_settings__linked_to_department +msgid "Linked to Department" +msgstr "مرتبط بقسم" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,help:odex25_empowermentmanagement.field_services_settings__linked_to_department +msgid "Link the service to an HR department" +msgstr "ربط الخدمة بقسم في الموارد البشرية" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_services_settings__hr_department_id +msgid "Linked Department" +msgstr "القسم المرتبط" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_services_settings__manager_id +msgid "Manager" +msgstr "المدير" + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_res_partner +msgid "Empowerment Beneficiary" +msgstr "شريك تمكين" + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_empowerment_return_reason_wizard +msgid "Return Reason" +msgstr "سبب الإرجاع" + + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_return_reason_wizard__reason +msgid "Reason" +msgstr "السبب" + + + + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__name +msgid "Request Number" +msgstr "رقم الطلب" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__request_date +msgid "Request Date" +msgstr "تاريخ الطلب" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__creator_id +msgid "Creator" +msgstr "المُنشئ" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__date_from +msgid "Date From" +msgstr "التاريخ من" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__date_to +msgid "Date To" +msgstr "التاريخ الى" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__branch_id +msgid "Branch" +msgstr "الفرع" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__familye_id +msgid "Family" +msgstr "الأسرة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__member_ids +msgid "Family Member" +msgstr "أفراد الأسرة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__benefit_category_id +msgid "Family Category" +msgstr "فئة الاسرة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__relationship +msgid "Beneficiary Relationship" +msgstr "صفة المستفيد" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__identity_number +msgid "ID Number" +msgstr "رقم الهوية" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__sms_phone +msgid "Mobile Number" +msgstr "رقم الجوال" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__email +msgid "Email" +msgstr "البريد الالكترونى" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__nationality +msgid "Nationality" +msgstr "الجنسية" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__education_status +msgid "Education Status" +msgstr "الحالة التعليمية" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__has_car +msgid "Family Owns a Car?" +msgstr "الأسرة لديها سيارة؟" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__health_status +msgid "Health Status" +msgstr "الحالة الصحية" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__service_id +msgid "Service Item" +msgstr "بند الخدمة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__service_type +msgid "Service Type" +msgstr "نوع الخدمة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__service_item +msgid "Service Element" +msgstr "عنصر الخدمة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__study_specialization +msgid "Study Specialization" +msgstr "تخصص الدراسة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__university_id +msgid "University / College Name" +msgstr "اسم الجامعة / الكلية" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__institute_id +msgid "Institute / School Name" +msgstr "اسم المعهد / المدرسة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__intercession_type +msgid "Intercession Type" +msgstr "نوع الشفاعة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__request_entity_id +msgid "Requesting Entity" +msgstr "اسم جهة الطلب" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__training_type +msgid "Training Type" +msgstr "نوع التدريب" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__training_course_id +msgid "Qualification Course" +msgstr "دورة التأهيل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__training_entity_id +msgid "Training Entity" +msgstr "جهة التدريب" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__training_intercession_type +msgid "Training Intercession Type" +msgstr "نوع شفاعة التدريب" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__project_funding_type_id +msgid "Project Funding Type" +msgstr "نوع تمويل المشروع" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__sponsor_id +msgid "Sponsor Name" +msgstr "اسم الكافل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__sponsor_mobile +msgid "Sponsor Mobile" +msgstr "جوال الكافل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__sponsor_identity +msgid "Sponsor Identity" +msgstr "هوية الكافل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__sponsor_email +msgid "Sponsor Email" +msgstr "بريد الكافل" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__finance_request_entity_id +msgid "Finance Request Entity" +msgstr "جهة الطلب المالية" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__request_receiver_id +msgid "Request Receiver" +msgstr "الشخص المرسل اليه الطلب" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__description +msgid "Description" +msgstr "الشرح" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__state +msgid "Status" +msgstr "الحالة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_request__state__draft +msgid "Draft" +msgstr "مسودة" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_request__state__social_worker +msgid "Social Worker (Awaiting Execution)" +msgstr "اخصائى اجتماعى (بإنتظار تنفيذ الطلب)" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_request__state__head_of_department +msgid "Head of Department" +msgstr "رئيس القسم" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_request__state__branch_manager +msgid "Branch Manager" +msgstr "مدير الفرع" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_request__state__finance +msgid "Finance Department" +msgstr "ادارة المالية" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_request__state__approved +msgid "Approved" +msgstr "معتمد" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields.selection,name:odex25_empowermentmanagement.selection__empowerment_request__state__rejected +msgid "Rejected" +msgstr "مرفوض" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__reject_reason +msgid "Rejection/Return Reason" +msgstr "ccسبب الرفض/الارجاع" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__return_reason +msgid "Return Reason" +msgstr "سبب الارجاع" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__employment_history_ids +msgid "Employment History" +msgstr "الخبرة العملية" + +#. module: odex25_empowermentmanagement +#: model:ir.model.fields,field_description:odex25_empowermentmanagement.field_empowerment_request__qualifiction_id +msgid "Qualifications" +msgstr "المؤهلات" + + +#. module: odex25_empowermentmanagement +#: model:ir.ui.menu,name:odex25_empowermentmanagement.menu_empowerment_root +msgid "Empowerment Management" +msgstr "إدارة التمكين" + +#. module: odex25_empowermentmanagement +#: model:ir.ui.menu,name:odex25_empowermentmanagement.menu_services_settings +msgid "Services Settings" +msgstr "اعدادات الخدمات" + + + +#. module: odex25_empowermentmanagement +#: model:ir.ui.menu,name:odex25_empowermentmanagement.menu_education_sp_action +msgid "Study Specialization" +msgstr "تخصص الدراسة" + +#. module: odex25_empowermentmanagement +#: model:ir.ui.menu,name:odex25_empowermentmanagement.menu_action_qualification_course +msgid "Qualification Courses" +msgstr "دورات التأهيل" + +#. module: odex25_empowermentmanagement +#: model:ir.ui.menu,name:odex25_empowermentmanagement.menu_action_empowerment_training_entity +msgid "Training Entities" +msgstr "جهات التدريب" + +#. module: odex25_empowermentmanagement +#: model:ir.ui.menu,name:odex25_empowermentmanagement.menu_action_empowerment_project_funding_type +msgid "Project Funding Types" +msgstr "أنواع تمويل المشاريع" + +#. module: odex25_empowermentmanagement +#: model:ir.ui.menu,name:odex25_empowermentmanagement.menu_action_qualification_specification +msgid "Qualification Specification" +msgstr "تخصص المؤهل" + + +#. module: odex25_empowermentmanagement +#: model:ir.model,name:odex25_empowermentmanagement.model_empowerment_request +msgid "Empowerment Request" +msgstr "طلبات التمكين" + +#. module: odex25_empowermentmanagement +#: model:ir.ui.menu,name:odex25_empowermentmanagement.menu_empowerment_requests +msgid "Empowerment Requests" +msgstr "طلبات التمكين" + + +#. module: odex25_empowermentmanagement +#: model:ir.ui.menu,name:odex25_empowermentmanagement.menu_education_entities +#: model:ir.ui.menu,name:odex25_empowermentmanagement.menu_education_entities_action +msgid "Educational Entities" +msgstr "الجهات التعليمية" + + + + + + + diff --git a/odex25_benefit/odex25_empowermentmanagement/models/__init__.py b/odex25_benefit/odex25_empowermentmanagement/models/__init__.py new file mode 100644 index 000000000..17684d256 --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/models/__init__.py @@ -0,0 +1,4 @@ +from . import empowerment_management +from . import service_settings +from . import education_entity + diff --git a/odex25_benefit/odex25_empowermentmanagement/models/education_entity.py b/odex25_benefit/odex25_empowermentmanagement/models/education_entity.py new file mode 100644 index 000000000..c5328f168 --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/models/education_entity.py @@ -0,0 +1,74 @@ +from datetime import datetime, timedelta, date +from dateutil import relativedelta +from hijri_converter import convert +from num2words import num2words +from odoo import api, exceptions, fields, models, _ +from odoo.exceptions import ValidationError, Warning +from odoo.tools.translate import _ + +class Qualification(models.Model): + _name = "hr.qualification.req" + _description = "HR Qualification" + _rec_name = "uni_name" + + uni_name = fields.Many2one( + comodel_name="empowerment.education.entity", string="University Name", required=True + ) + # col_name = fields.Many2one(comodel_name="hr.college", string="College Name") + prg_status = fields.Char(string="Program Status") + comp_date = fields.Date(string="Completion Date") + contact_name = fields.Char(string="Contact Name") + contact_phn = fields.Char(string="Contact Phone No") + contact_email = fields.Char(string="Contact Email") + country_name = fields.Many2one(comodel_name="res.country",string="Country") + qualification_degree = fields.Selection( + [ + ("weak", _("Weak")), + ("good", _("Good")), + ("very_good", _("Very Good")), + ("excellent", _("Excellent")), + ] + ) + qualification_specification_id = fields.Many2one( + comodel_name="qualification.specification.req", + domain=[("type", "=", "qualification")], + ) + + # relation field + qualification_relation_name = fields.Many2one(comodel_name="hr.employee") + qualification_id = fields.Many2one(comodel_name="hr.qualification.name.req", string="Qualification Name") + attachment = fields.Binary(string="Attachment") + +class QualificationSpecification(models.Model): + _name = "qualification.specification.req" + _description = "Qualification Specification" + + name = fields.Char(string="Name") + type = fields.Selection( + selection=[("qualification", "Qualification"), ("certificate", "Certificate")], + string="Type") + + +class HrQualificationName(models.Model): + _name = "hr.qualification.name.req" + _description = "HR Qualification Name" + + name = fields.Char(string="Qualification") + sequence = fields.Integer(string="Sequence") + parent_id = fields.Many2one(comodel_name="hr.qualification.name.req", string="Upper Qualification") + + + +class HrEmployeeHistory(models.Model): + _name = "hr.employee.history.req" + _description = "HR Employee History" + + employement_history = fields.Many2one(comodel_name="hr.employee") + name = fields.Char(string="Name",required=True) + position = fields.Char(string="Position",required=True) + employeer = fields.Char(string="Employeer",required=True) + salary = fields.Float(string="Salary",required=True) + address = fields.Char(string="Address",required=True) + date_from = fields.Date(string="Date From",) + date_to = fields.Date(string="Date To",) + country = fields.Many2one(string="Country",comodel_name="res.country") \ No newline at end of file diff --git a/odex25_benefit/odex25_empowermentmanagement/models/empowerment_management.py b/odex25_benefit/odex25_empowermentmanagement/models/empowerment_management.py new file mode 100644 index 000000000..2fe1c0507 --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/models/empowerment_management.py @@ -0,0 +1,204 @@ +# -*- coding: utf-8 -*- +from odoo import models, fields, api, _ +from odoo.exceptions import ValidationError +from datetime import datetime +from odoo.exceptions import UserError, ValidationError + + + +class EmpowermentRequest(models.Model): + _name = 'empowerment.request' + _description = 'Empowerment Request' + _inherit = ['mail.thread', 'mail.activity.mixin'] + + name = fields.Char(string='Request Number', readonly=True, default='New') + request_date = fields.Datetime(string='Request Date', readonly=True, default=fields.Datetime.now) + creator_id = fields.Many2one('res.users', string='Creator', default=lambda self: self.env.user, readonly=True) + date_from = fields.Datetime(string='Date From') + date_to = fields.Datetime(string='Date To') + branch_id = fields.Many2one("branch.settings", string='Branch', domain="[('branch_type','=','branches')]") + + # Beneficiary Family + familye_id = fields.Many2one('grant.benefit', string='Family') + + member_ids = fields.One2many( + 'family.member', + compute='_compute_family_members', + string='Family Member' + ) + benefit_category_id = fields.Many2one(related='familye_id.benefit_category_id', string='Family Category', readonly=True) + relationship = fields.Char(string='Beneficiary Relationship', readonly=True) + + identity_number = fields.Char(related='familye_id.id_number', string='ID Number', readonly=True) + sms_phone = fields.Char(related='familye_id.sms_phone', string='Mobile Number', readonly=True) + email = fields.Char(related='familye_id.email', string='Email', readonly=True) + nationality = fields.Many2one(relates='familye_id.nationality_id', string='Nationality', readonly=True) + education_status = fields.Selection(related='familye_id.education_status', string='Education Status', readonly=True) + has_car = fields.Boolean(related='familye_id.has_car', string='Family Owns a Car?', readonly=True) + health_status = fields.Selection(related='familye_id.health_status', string='Health Status') + + # Service Info + service_id = fields.Many2one('services.settings', string='Service Item') + service_type = fields.Selection(related='service_id.service_type', store=True) + service_item = fields.Char(string="Service Element") + + # Education Info + study_specialization = fields.Selection([ + ('bachelor', 'Bachelor'), + ('diploma', 'Diploma') + ], string='Study Specialization') + + university_id = fields.Many2one('empowerment.education.entity', string='University / College Name', domain="[('study_specialization','=','bachelor')]") + institute_id = fields.Many2one('empowerment.education.entity', string='Institute / School Name', domain="[('study_specialization','=','diploma')]") + + intercession_type = fields.Selection([ + ('transfer', 'Transfer'), + ('move', 'Move'), + ('discount', 'Discount'), + ('exemption', 'Exemption'), + ], string='Intercession Type') + + request_entity_id = fields.Many2one('empowerment.education.entity', string='Requesting Entity') + + # Training Info + training_type = fields.Selection([ + ('skill', 'Skill-based'), + ('entrepreneurship', 'Entrepreneurship'), + ('professional', 'Professional') + ], string='Training Type') + + training_course_id = fields.Many2one('empowerment.qualification.course', string='Qualification Course') + training_entity_id = fields.Many2one('empowerment.training.entity', string='Training Entity') + + training_intercession_type = fields.Selection([ + ('new_acceptance', 'New Acceptance'), + ('transfer', 'Transfer'), + ('relocation', 'Relocation'), + ('discount', 'Discount'), + ('exemption', 'Exemption') + ], string="Training Intercession Type") + + # Funding Info + project_funding_type_id = fields.Many2one('project.funding.type', string='Project Funding Type') + sponsor_id = fields.Many2one('res.partner', string='Sponsor Name') + sponsor_mobile = fields.Char(related='sponsor_id.mobile', readonly=True) + sponsor_identity = fields.Char(related='sponsor_id.id_number', readonly=True) + sponsor_email = fields.Char(related='sponsor_id.email', readonly=True) + + finance_request_entity_id = fields.Many2one('education.entity', string="Finance Request Entity") + + # Receiver + request_receiver_id = fields.Many2one( + 'res.partner', + string='Request Receiver', + domain="[('is_empowerment_receiver', '=', True)]" + ) + + description = fields.Text(string='Description') + + # Request State + state = fields.Selection([ + ('draft', 'Draft'), + ('social_worker', 'Social Worker (Awaiting Execution)'), + ('head_of_department', 'Head of Department'), + ('branch_manager', 'Branch Manager'), + ('finance', 'Finance Department'), + ('approved', 'Approved'), + ('rejected', 'Rejected'), + ], default='draft', string='Status', tracking=True) + + reject_reason = fields.Text(string='Rejection/Return Reason') + return_reason = fields.Text(string='Return Reason') + + employment_history_ids = fields.One2many( + comodel_name="hr.employee.history.req", + inverse_name="employement_history" + ) + qualifiction_id = fields.One2many( + "hr.qualification.req", + "qualification_relation_name", + string="Qualifications" + ) + + def unlink(self): + for order in self: + if order.state not in ['draft']: + raise UserError(_('You cannot delete this record State not Draft')) + return super(EmpowermentRequest, self).unlink() + + + @api.model + def create(self, vals): + if vals.get('name', 'New') == 'New': + vals['name'] = self.env['ir.sequence'].next_by_code('empowerment.request') or 'New' + return super(EmpowermentRequest, self).create(vals) + + def action_approve_social_worker(self): + for rec in self: + rec.state = 'social_worker' + + def action_approve_head(self): + for rec in self: + rec.state = 'head_of_department' + + def action_return_to_social_worker(self): + for rec in self: + rec.state = 'social_worker' + + def action_approve_branch(self): + for rec in self: + rec.state = 'branch_manager' + + def action_approve_finance(self): + for rec in self: + rec.state = 'finance' + + def action_approve_final(self): + for rec in self: + rec.state = 'approved' + + def action_reject(self): + for rec in self: + rec.state = 'rejected' + + def action_return_to_draft(self): + # Open wizard to collect return reason - opens form view on 'empowerment.return.reason.wizard' + return { + 'type': 'ir.actions.act_window', + 'name': _('سبب الإرجاع'), + 'view_mode': 'form', + 'res_model': 'empowerment.return.reason.wizard', + 'target': 'new', + 'context': {'default_request_id': self.id} + } + + @api.depends('familye_id') + def _compute_family_members(self): + for rec in self: + rec.member_ids = rec.familye_id.member_ids.ids if rec.familye_id else False + + + + +class ResPartner(models.Model): + _inherit = 'res.partner' + + is_empowerment_receiver = fields.Boolean(string='Empowerment Beneficiary') + + +class EmpowermentReturnReasonWizard(models.TransientModel): + _name = 'empowerment.return.reason.wizard' + _description = 'Return Reason' + + request_id = fields.Many2one('empowerment.request', string='Request') + reason = fields.Text(string='Reason', required=True) + + def action_return(self): + self.ensure_one() + if self.request_id: + self.request_id.write({ + 'state': 'draft', + 'return_reason': self.reason + }) + # Close wizard window after saving + return {'type': 'ir.actions.act_window_close'} diff --git a/odex25_benefit/odex25_empowermentmanagement/models/service_settings.py b/odex25_benefit/odex25_empowermentmanagement/models/service_settings.py new file mode 100644 index 000000000..732c3c09c --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/models/service_settings.py @@ -0,0 +1,111 @@ +from odoo import models, fields, api, _ +from odoo.exceptions import ValidationError + +class ServicesSettings(models.Model): + _inherit = 'services.settings' # Inherit existing model + + linked_to_department = fields.Boolean( + string='Linked to Department', + help='Link the service to an HR department' + ) + hr_department_id = fields.Many2one( + 'hr.department', string='Linked Department' + ) + manager_id = fields.Many2one( + 'hr.employee', string='Manager', + ) + + service_type = fields.Selection(selection_add=[ + ('educational_care', 'خدمة الرعاية التعليمية'), + ('bachelor_service', 'خدمة البكالريوس'), + ('diploma_service', 'خدمة الدبلوم'), + ('bachelor_intercession', 'خدمة شفاعة البكالريوس'), + ('diploma_intercession', 'خدمة شفاعة الدبلوم'), + ('training_service', 'خدمة التدريب'), + ('training_intercession', 'خدمة شفاعة التدريب'), + ('funding_service', 'خدمة التمويل'), + ('project_funding_intercession', 'خدمة شفاعة تمويل المشاريع'), + ('employment_service', 'خدمة التوظيف') + ]) + + +class HrDepartment(models.Model): + _inherit = 'hr.department' + + service_link_id = fields.Many2one( + 'services.settings', string='خدمة مرتبطة', readonly=True + ) + + + + +class EmpowermentEducationEntity(models.Model): + _name = 'empowerment.education.entity' + _description = 'Education Entity' + + name = fields.Char(string='Entity Name', required=True) + entity_type = fields.Selection( + [('university', 'University'), ('college', 'College'), + ('institute', 'Institute'), ('school', 'School')], + string='Entity Type', required=True + ) + study_specialization = fields.Selection( + [('bachelor', 'Bachelor'), ('diploma', 'Diploma')], + string='Study Specialization', required=True + ) + specialization_id = fields.Many2one( + 'empowerment.study.specialization', string='Study Specialization', + domain="[('type', '=', study_specialization)]", + ) + + _sql_constraints = [ + ('name_unique', 'unique(name)', 'اسم الجهة يجب أن يكون فريداً!'), + ] + + @api.onchange('entity_type') + def _onchange_entity_type(self): + if self.entity_type in ['university', 'college']: + self.study_specialization = 'bachelor' + elif self.entity_type in ['institute', 'school']: + self.study_specialization = 'diploma' + else: + self.study_specialization = False + + # Reset specialization_id when entity_type changes + # self.specialization_id = False + + + +class StudySpecialization(models.Model): + _name = 'empowerment.study.specialization' + _description = 'Study Specialization' + + type = fields.Selection([ + ('bachelor', 'Bachelor'), + ('diploma', 'Diploma') + ], string='Study Type', required=True) + + universities_colleges = fields.Char(string='Universities / Colleges') + institutes_schools = fields.Char(string='Institute / School Name') + +class EmpowermentQualificationCourse(models.Model): + _name = 'empowerment.qualification.course' + _description = 'Qualification Course' + + name = fields.Char(string='Entity Name', required=True) + + +class EmpowermentTrainingEntity(models.Model): + _name = 'empowerment.training.entity' + _description = 'Training Entities' + + name = fields.Char(string='Entity Name', required=True) + + +class EmpowermentProjectFundingType(models.Model): + _name = 'empowerment.project.funding.type' + _description = 'Project Funding Type' + + name = fields.Char(string='Entity Name', required=True) + + diff --git a/odex25_benefit/odex25_empowermentmanagement/security/ir.model.access.csv b/odex25_benefit/odex25_empowermentmanagement/security/ir.model.access.csv new file mode 100644 index 000000000..21de33de5 --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/security/ir.model.access.csv @@ -0,0 +1,13 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_empowerment_education_entity,access_empowerment_education_entity,model_empowerment_education_entity,,1,1,1,1 +access_empowerment_study_specialization,access_empowerment_study_specialization,model_empowerment_study_specialization,,1,1,1,1 +access_empowerment_request,access_empowerment_request,model_empowerment_request,,1,1,1,1 +access_empowerment_return_reason_wizard,access_empowerment_return_reason_wizard,model_empowerment_return_reason_wizard,,1,1,1,1 + +access_hr_qualification_name_req,access_hr_qualification_name_req,model_hr_qualification_name_req,,1,1,1,1 +access_hr_employee_history_req,access_hr_employee_history_req,model_hr_employee_history_req,,1,1,1,1 +access_qualification_specification_req,access_qualification_specification_req,model_qualification_specification_req,,1,1,1,1 +access_hr_qualification_req,access_hr_qualification_req,model_hr_qualification_req,,1,1,1,1 +access_empowerment_qualification_cours,access_empowerment_qualification_cours,model_empowerment_qualification_course,,1,1,1,1 +access_empowerment_training_entity,access_empowerment_training_entity,model_empowerment_training_entity,,1,1,1,1 +access_empowerment_project_funding_type,access_empowerment_project_funding_type,model_empowerment_project_funding_type,,1,1,1,1 diff --git a/odex25_benefit/odex25_empowermentmanagement/security/security.xml b/odex25_benefit/odex25_empowermentmanagement/security/security.xml new file mode 100644 index 000000000..c745a56af --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/security/security.xml @@ -0,0 +1,8 @@ + + + + مدير ادارة التمكين + + + + diff --git a/odex25_benefit/odex25_empowermentmanagement/static/description/icon.png b/odex25_benefit/odex25_empowermentmanagement/static/description/icon.png new file mode 100644 index 000000000..6801504f0 Binary files /dev/null and b/odex25_benefit/odex25_empowermentmanagement/static/description/icon.png differ diff --git a/odex25_benefit/odex25_empowermentmanagement/views/education_entity.xml b/odex25_benefit/odex25_empowermentmanagement/views/education_entity.xml new file mode 100644 index 000000000..b711b8653 --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/views/education_entity.xml @@ -0,0 +1,38 @@ + + + qualification.specification.req.form + qualification.specification.req + +
+ + + + + + +
+
+
+ + + qualification.specification.req.tree + qualification.specification.req + + + + + + + + + + Qualification Specifications + qualification.specification.req + tree,form + + + + + + +
\ No newline at end of file diff --git a/odex25_benefit/odex25_empowermentmanagement/views/empowerment_management.xml b/odex25_benefit/odex25_empowermentmanagement/views/empowerment_management.xml new file mode 100644 index 000000000..140201d48 --- /dev/null +++ b/odex25_benefit/odex25_empowermentmanagement/views/empowerment_management.xml @@ -0,0 +1,383 @@ + + + + empowerment.request.form + empowerment.request + +
+ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +