Merge branch 'dev_odex25_ensan' into ensan_education_modified
This commit is contained in:
commit
ce97805303
|
|
@ -1818,11 +1818,6 @@ msgstr "مدة الانتهاء بالايام"
|
|||
msgid "Allowed Categories"
|
||||
msgstr "الفئات المستفيدة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_devices__allowed_quantity
|
||||
msgid "Allowed Quantity"
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__allowed_recurrence
|
||||
msgid "Allowed Recurrence"
|
||||
|
|
@ -2027,6 +2022,11 @@ msgstr "موافقة"
|
|||
msgid "Are you sure you want to Approve?"
|
||||
msgstr "هل أنت متأكد أنك تريد الموافقة؟"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
|
||||
msgid "Are you sure you want to approve ?"
|
||||
msgstr "هل أنت متأكد أنك تريد الموافقة؟"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
|
||||
msgid "Are you sure you want to Finish Complete data ?"
|
||||
|
|
@ -3197,6 +3197,26 @@ msgstr ""
|
|||
msgid "Both"
|
||||
msgstr "مشترك"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__benefit_type__both
|
||||
msgid "Both"
|
||||
msgstr "مشترك"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.actions.act_window,name:odex_benefit.action_social_search_committees
|
||||
msgid "Social Research Committees"
|
||||
msgstr "فرق البحث الاجتماعي"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.ui.menu,name:odex_benefit.social_search_committees_menu
|
||||
msgid "Social Research Teams"
|
||||
msgstr "فرق البحث الاجتماعي"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.ui.menu,name:odex_benefit.social_search_settings_menu
|
||||
msgid "Social Search Settings"
|
||||
msgstr "إعدادات البحث الاجتماعي"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__message_bounce
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__message_bounce
|
||||
|
|
@ -11905,8 +11925,10 @@ msgid "Refuse Date"
|
|||
msgstr "تاريخ الرفض"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_entity_refuse_reason__name
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__refuse_reason_id
|
||||
#, python-format
|
||||
msgid "Refuse Reason"
|
||||
msgstr "سبب الرفض"
|
||||
|
||||
|
|
@ -12895,6 +12917,9 @@ msgstr "نفس"
|
|||
#: model:ir.cron,name:odex_benefit.cron_send_attachment_expiry_emails
|
||||
msgid "Send Expiring Salary Attachments Notifications"
|
||||
msgstr ""
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_search
|
||||
msgid "Send Request"
|
||||
msgstr "إرسال الطلب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__state__send_request
|
||||
|
|
@ -17635,6 +17660,145 @@ msgstr ""
|
|||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__replacement_mother_id_number_type__resident
|
||||
msgid "مقيم"
|
||||
msgstr ""
|
||||
#: model:ir.ui.menu,name:odex_benefit.menu_refuse_reason
|
||||
msgid "Service Refuse Reasons"
|
||||
msgstr "أسباب رفض الخدمات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.actions.act_window,name:odex_benefit.action_refuse_reason
|
||||
#: model:ir.model,name:odex_benefit.model_service_refuse_reason
|
||||
msgid "Reasons for Service Rejection"
|
||||
msgstr "أسباب رفض الخدمات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_service_refuse_reason_form
|
||||
msgid "Service Refuse Reason"
|
||||
msgstr "أسباب رفض الخدمات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: 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_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
|
||||
msgid "Service Requests"
|
||||
msgstr "طلبات الخدمات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.view_refuse_reason_wizard
|
||||
msgid "Select Reason"
|
||||
msgstr "اختر سبب الرفض"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
|
||||
msgid "Return the request to the specialist"
|
||||
msgstr "إعادة الطلب إلي الاخصائي"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__return_reason
|
||||
#, python-format
|
||||
msgid "Reason for Returning the Request"
|
||||
msgstr "سبب إعادة الطلب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__specialist_note
|
||||
msgid "Specialist's Note After Return"
|
||||
msgstr "ملاحظة اﻹخصائي بعد اﻹعادة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_reason_for_return_wizard__reason
|
||||
msgid "reason for return"
|
||||
msgstr "سبب إعادة الطلب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model,name:odex_benefit.model_reason_for_return_wizard
|
||||
msgid "Reason For Return Wizard"
|
||||
msgstr "سبب إعادة الطلب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:res.groups,name:odex_benefit.group_approval_of_beneficiary_services
|
||||
msgid "Approval Of Beneficiary Services"
|
||||
msgstr "اعتماد خدمات المستفيدين"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__exception_or_steal_attach
|
||||
msgid "Exception or steal Attachment"
|
||||
msgstr "مرفق إثبات حالات الاستثناء"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__service_reason_id
|
||||
msgid "Service Reason"
|
||||
msgstr "سبب الخدمة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__max_amount
|
||||
msgid "Max Transportation Amount"
|
||||
msgstr "الحد الأعلى للنقل"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__transportation_insurance_ids
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__service_type__transportation_insurance
|
||||
msgid "Transportation Insurance"
|
||||
msgstr "تأمين مواصلات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_electrical_devices__price_unit
|
||||
msgid "Price Unit"
|
||||
msgstr "سعر الوحدة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_transportation_insurance__name
|
||||
msgid "Insurance Name"
|
||||
msgstr "اسم التأمين"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_transportation_insurance__limit_amount
|
||||
msgid "Limit Amount"
|
||||
msgstr "الحد الأعلى للمبلغ"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_tree
|
||||
msgid "Request Creator"
|
||||
msgstr "منشئ الطلب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__requests_counts
|
||||
msgid "Requests Counts"
|
||||
msgstr "عدد الطلبات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__is_family_member
|
||||
msgid "Is Family member?"
|
||||
msgstr "هل صاحب الحساب من أفراد الأسرة؟"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_location_settings__is_far_from_family
|
||||
msgid "Is Far From Family?"
|
||||
msgstr "هل هو بعيد عن سكن العائلة؟"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__owner_identity_attachment_ids
|
||||
msgid "Account holder identity"
|
||||
msgstr "هوية صاحب الحساب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__family_approval_attachment_ids
|
||||
msgid "Family approval of transfer"
|
||||
msgstr "إقرار أفراد الأسرة بالتحويل"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#, python-format
|
||||
msgid "Account Holder Identity Attachment is required."
|
||||
msgstr ".مرفق هوية صاحب الحساب مطلوب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#, python-format
|
||||
msgid "Family approval of transfer Attachment is required."
|
||||
msgstr ".مرفق إقرار أفراد الأسرة بالتحويل مطلوب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__father_id_number_type__citizen
|
||||
|
|
@ -17657,3 +17821,304 @@ msgstr ""
|
|||
#: model:ir.model.constraint,message:odex_benefit.constraint_benefit_vehicle_model_name_unique
|
||||
msgid "يجب أن يكون اسم الموديل فريداً."
|
||||
msgstr ""
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__show_in_portal
|
||||
msgid "Show in Portal"
|
||||
msgstr "عرض في البوابة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__service_category__emergency
|
||||
msgid "Emergency"
|
||||
msgstr "طارئة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__service_category__permanent
|
||||
msgid "Permanent"
|
||||
msgstr "دائمة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__service_category__exceptional
|
||||
msgid "Exceptional"
|
||||
msgstr "استثنائية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__service_category__seasonal
|
||||
msgid "Seasonal"
|
||||
msgstr "موسمية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__max_amount
|
||||
msgid "Maximum Amount"
|
||||
msgstr "الحد الأقصى للمبلغ"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__max_age
|
||||
msgid "Maximum Age"
|
||||
msgstr "الأقصى للعمر"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__service_conditions
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__service_conditions
|
||||
msgid "Service Conditions"
|
||||
msgstr "شروط الخدمة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form
|
||||
msgid "Settings"
|
||||
msgstr "الإعدادات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form
|
||||
msgid "Accounts"
|
||||
msgstr "الحسابات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__allowed_recurrence
|
||||
msgid "Allowed Recurrence"
|
||||
msgstr "التكرار المسموح"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__allowed_recurrence__once
|
||||
msgid "Once"
|
||||
msgstr "مرة واحدة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__allowed_recurrence__periodic
|
||||
msgid "Every Period"
|
||||
msgstr "مرة كل فترة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__allowed_recurrence__unlimited
|
||||
msgid "Unlimited"
|
||||
msgstr "غير محدد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__recurrence_period
|
||||
msgid "Recurrence Period (Months)"
|
||||
msgstr "فترة التكرار(عدد الشهور)"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__requires_visit
|
||||
msgid "Requires Visit?"
|
||||
msgstr "هل الخدمة تحتاج زيارة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__max_limit_type__fixed
|
||||
msgid "Fixed Amount"
|
||||
msgstr "مبلغ ثابت"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__max_limit_type__category
|
||||
msgid "Amount by Category"
|
||||
msgstr "مبلغ حسب الفئة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__max_limit_type__category_person
|
||||
msgid "Amount by Category and Individuals"
|
||||
msgstr "مبلغ حسب الفئة وعدد الأفراد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__max_limit_type__region
|
||||
msgid "Amount by Region"
|
||||
msgstr "مبلغ حسب المنطقة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__max_limit_type
|
||||
msgid "Max Limit Type"
|
||||
msgstr "طريقة الحد الأقصى"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__needs_beneficiary_manager_approval
|
||||
msgid "Needs Beneficiary Manager Approval"
|
||||
msgstr "هل تحتاج موافقة مدير المستفيدين؟"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "Mother has no benefiting children"
|
||||
msgstr "ليس لديها ايتام قصر"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"The application has been rejected due to missing required documents, lack of"
|
||||
" official proofs, or the family's ineligibility for the association's "
|
||||
"services."
|
||||
msgstr "تم رفض الطلب بسبب عدم استكمال المستندات المطلوبة أو الإثباتات الرسمية أو لعدم استحقاق الأسرة لخدمات الجمعية."
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "He has a physical or intellectual disability but is over %s years of age."
|
||||
msgstr "لديه إعاقة جسدية أو فكرية ولكنه تجاوز عمر %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "He is enrolled in a scientific or vocational specialization but is over %s years of age."
|
||||
msgstr "منتظم في أحد التخصصات العلمية أو المهنية ولكنه تجاوز عمر %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "He is enrolled in a medical specialization but is over %s years of age."
|
||||
msgstr "منتظم في أحد التخصصات الطبية ولكنه تجاوز عمر %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "He is over %s years of age and not enrolled in a scientific or medical specialization."
|
||||
msgstr "تجاوز عمر %s وليس منتظم في تخصص علمي أو طبي"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "He is over %s years of age and not enrolled in an educational institution."
|
||||
msgstr "تجاوز عمر %s وغير منتظم بجهة تعلمية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "He is employed with a salary exceeding %s."
|
||||
msgstr "يعمل براتب اكبر من %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"He/She is over 18 years of age and not enrolled in an educational "
|
||||
"institution."
|
||||
msgstr "تجاوز عمر 18 وغير منتظم بجهة تعلمية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "He is over %s years of age and has completed his education."
|
||||
msgstr "تجاوز عمر %s واكمل تعليمه"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "He does not reside with his family."
|
||||
msgstr "لايقيم مع اسرته"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Failure to complete the required documents or official proofs, or the "
|
||||
"family’s ineligibility for the association’s services, and the application "
|
||||
"has been rejected."
|
||||
msgstr "عدم استكمال المستندات المطاوبة او الاثباتات الرسمية او عدم استحقاق الاسرة لخدمات الجمعية وتم رفض الطلب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/benefit.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "Married"
|
||||
msgstr "متزوجة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "She is employed and not enrolled in an educational institution."
|
||||
msgstr "تعمل وغير منتظمة بجهة تعلمية"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "She is over %s years of age and has no underage brothers."
|
||||
msgstr "تجاوزت عمر %s وليس لديها اخوة قصر"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "She is over %s years of age."
|
||||
msgstr "تجاوزت عمر %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "She works with a salary greater than %s."
|
||||
msgstr "تعمل براتب اكبر من %s "
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "She is employed and has completed her education."
|
||||
msgstr "تعمل واكملت تعليمها"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid "She does not reside with the family."
|
||||
msgstr "لاتقييم مع الاسرة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/models/family_members.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Application rejected due to missing documents, missing official proofs, or "
|
||||
"the family's ineligibility for the association's services."
|
||||
msgstr "عدم استكمال المستندات المطاوبة او الاثباتات الرسمية او عدم استحقاق الاسرة لخدمات الجمعية وتم رفض الطلب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form
|
||||
msgid "Eligibility Criteria"
|
||||
msgstr "شروط الاستحقاق"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__allow_non_beneficiary
|
||||
msgid "Allow Non Beneficiary"
|
||||
msgstr "منح الخدمة لغير المستفيد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
|
||||
msgid "Send"
|
||||
msgstr "إرسال الطلب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
|
||||
msgid "Researcher Approval"
|
||||
msgstr "موافقة الأخصائي"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
|
||||
msgid "Family Received"
|
||||
msgstr "تم الاستلام"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_refuse_reason_wizard__notes
|
||||
msgid "Additional Notes"
|
||||
msgstr "ملاحظات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: code:addons/odex_benefit/wizards/service_refuse_reason_wizard.py:0
|
||||
#, python-format
|
||||
msgid ""
|
||||
"Request was refused.\n"
|
||||
"Reason: %s\n"
|
||||
"Notes: %s"
|
||||
msgstr ""
|
||||
"تم رفض طلب الخدمة.\n"
|
||||
"السبب: %s\n"
|
||||
"الملاحظات: %s"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__refuse_reason
|
||||
msgid "Reason for Refusal"
|
||||
msgstr "ملاحظة الرفض"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:res.groups,name:odex_benefit.group_family_service_receipt
|
||||
msgid "Family Service Receipt"
|
||||
msgstr "الاستلام الاسرة للخدمة"
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ class ServiceRequest(models.Model):
|
|||
family_category = fields.Many2one('benefit.category',string='Family Category',related='family_id.benefit_category_id')
|
||||
benefit_member_count = fields.Integer(string="Benefit Member count", related='family_id.benefit_member_count')
|
||||
branch_custom_id = fields.Many2one('branch.settings', string="Branch",related='family_id.branch_custom_id',store=True)
|
||||
member_id = fields.Many2one('family.member',domain="[('benefit_id','=',family_id), ('member_status', '=', 'benefit')]",string='Member')
|
||||
member_id = fields.Many2one('family.member',domain="[('benefit_id','=',family_id)]",string='Member')
|
||||
description = fields.Char(string='Description')
|
||||
need_status = fields.Selection(string='Need Status',selection=[('urgent', 'urgent'),('not_urgent', 'Not urgent')])
|
||||
main_service_category = fields.Many2one('services.settings',domain="[('is_main_service','=',True)]",string="Main Service Category")
|
||||
|
|
@ -67,11 +67,11 @@ class ServiceRequest(models.Model):
|
|||
new_rent_amount = fields.Float(string='Rent Amount')
|
||||
new_rent_amount_payment = fields.Float(string='New Rent Amount Payment',compute='_get_new_rent_amount_payment')
|
||||
new_payment_type = fields.Selection([
|
||||
('1', 'Yearly'),
|
||||
('2', 'Half-yearly'),
|
||||
('1', 'Yearly'),
|
||||
('2', 'Half-yearly'),
|
||||
('4', 'Quarterly'),
|
||||
('5', 'Monthly')
|
||||
],
|
||||
],
|
||||
string='Payment Type'
|
||||
)
|
||||
new_rent_attachment = fields.Many2many('ir.attachment', 'rel_rent_attachment_service_request', 'service_request_id',
|
||||
|
|
@ -86,15 +86,15 @@ class ServiceRequest(models.Model):
|
|||
'attachment_id', string='Rent Attachment')
|
||||
added_amount_if_mother_dead = fields.Float(string="Added Amount (If mother dead)",compute="_get_added_amount_if_mother_dead")
|
||||
attachment_lines = fields.One2many(
|
||||
'service.attachments.settings',
|
||||
'service_request_id',
|
||||
compute='_compute_attachment_lines',
|
||||
readonly=False,
|
||||
'service.attachments.settings',
|
||||
'service_request_id',
|
||||
compute='_compute_attachment_lines',
|
||||
readonly=False,
|
||||
copy=False,
|
||||
store=True
|
||||
)
|
||||
account_id = fields.Many2one(
|
||||
'account.account',
|
||||
'account.account',
|
||||
string='Expenses Account',
|
||||
compute="_compute_account_id"
|
||||
)
|
||||
|
|
@ -174,6 +174,7 @@ class ServiceRequest(models.Model):
|
|||
state_b = fields.Selection(related='state', tracking=False)
|
||||
refuse_reason_id = fields.Many2one('service.refuse.reason', string="Refuse Reason")
|
||||
return_reason = fields.Text(string="Reason for Returning the Request")
|
||||
refuse_reason = fields.Text(string="Reason for Refusal")
|
||||
specialist_note = fields.Text(string="Specialist's Note After Return")
|
||||
exception = fields.Boolean(string='Exception',default=False)
|
||||
exception_attach = fields.Many2many('ir.attachment', 'rel_exception_attachment_service_request', 'service_request_id',
|
||||
|
|
@ -181,7 +182,7 @@ class ServiceRequest(models.Model):
|
|||
service_conditions = fields.Html(related='service_cat.service_conditions', string="Service Conditions")
|
||||
|
||||
|
||||
|
||||
|
||||
def _expand_states(self, states, domain, order):
|
||||
return [key for key, val in type(self).state.selection]
|
||||
|
||||
|
|
@ -192,23 +193,27 @@ class ServiceRequest(models.Model):
|
|||
rec.account_id = rec.service_reason_id.account_id
|
||||
else:
|
||||
rec.account_id = rec.service_cat.account_id
|
||||
|
||||
|
||||
@api.onchange('service_cat', 'device_id')
|
||||
def _calculate_electrical_type_values(self):
|
||||
for rec in self:
|
||||
if rec.service_type == 'electrical_devices':
|
||||
rec.requested_service_amount = rec.device_id.price_unit if rec.device_id else 0.0
|
||||
|
||||
|
||||
@api.depends('service_cat')
|
||||
def _compute_attachment_lines(self):
|
||||
for rec in self:
|
||||
rec.attachment_lines.unlink()
|
||||
for attachment_line in rec.service_cat.attachment_lines:
|
||||
attachment_line.copy({
|
||||
'service_id': False,
|
||||
'service_request_id': rec.id,
|
||||
'previous_service_attachment_settings_id': attachment_line.id
|
||||
})
|
||||
commands = [(5, 0, 0)]
|
||||
|
||||
if rec.service_cat:
|
||||
for attachment_line in rec.service_cat.attachment_lines:
|
||||
commands.append((0, 0, {
|
||||
'service_id': False,
|
||||
'service_request_id': rec.id,
|
||||
'previous_service_attachment_settings_id': attachment_line.id,
|
||||
}))
|
||||
|
||||
rec.attachment_lines = commands
|
||||
|
||||
@api.model
|
||||
def search(self, args, offset=0, limit=None, order=None, count=False):
|
||||
|
|
@ -255,7 +260,7 @@ class ServiceRequest(models.Model):
|
|||
# Write updates to the related family_id
|
||||
res.family_id.write(update_values)
|
||||
return res
|
||||
|
||||
|
||||
def write(self, vals):
|
||||
# Define the list of fields you want to check
|
||||
new_rent_fields = ['new_rent_contract_number', 'new_rent_start_date', 'new_rent_end_date', 'new_rent_amount',
|
||||
|
|
@ -438,7 +443,7 @@ class ServiceRequest(models.Model):
|
|||
rec.amount_for_buy_home_for_member_count = 0
|
||||
if rec.service_type == 'buy_home':
|
||||
rec.amount_for_buy_home_for_member_count = (rec.service_cat.buy_home_lines.filtered(lambda x : x.min_count_member <= rec.benefit_member_count <= rec.benefit_member_count)).amount_for_buy_home
|
||||
|
||||
|
||||
def action_send_to_researcher(self):
|
||||
for rec in self:
|
||||
rec.state = 'researcher'
|
||||
|
|
@ -485,7 +490,7 @@ class ServiceRequest(models.Model):
|
|||
|
||||
def action_first_refuse(self):
|
||||
return {
|
||||
'name': 'Reason for Returning the Request',
|
||||
'name': _('Reason for Returning the Request'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'reason.for.return.wizard',
|
||||
'view_mode': 'form',
|
||||
|
|
@ -493,10 +498,8 @@ class ServiceRequest(models.Model):
|
|||
}
|
||||
|
||||
def action_refuse(self):
|
||||
# for rec in self:
|
||||
# rec.state = 'refused'
|
||||
return {
|
||||
'name': 'Select Reason',
|
||||
'name': _('Refuse Reason'),
|
||||
'type': 'ir.actions.act_window',
|
||||
'res_model': 'service.refuse.reason.wizard',
|
||||
'view_mode': 'form',
|
||||
|
|
@ -563,15 +566,15 @@ class ServiceRequest(models.Model):
|
|||
self.max_water_bill_amount = water_bill_amount
|
||||
|
||||
@api.onchange(
|
||||
'requested_service_amount',
|
||||
'benefit_type',
|
||||
'requested_service_amount',
|
||||
'benefit_type',
|
||||
'date',
|
||||
'service_cat',
|
||||
'family_id',
|
||||
'exception_or_steal',
|
||||
'home_furnishing_exception',
|
||||
'has_marriage_course',
|
||||
'home_age',
|
||||
'home_age',
|
||||
'service_reason_id'
|
||||
)
|
||||
def onchange_requested_service_amount(self):
|
||||
|
|
@ -954,33 +957,28 @@ class ServiceRequest(models.Model):
|
|||
rec.new_rent_start_date <= rec.new_end <= rec.new_rent_end_date):
|
||||
raise UserError(
|
||||
"The Start Date and End Date must be within the Rent Start Date and Rent End Date range.")
|
||||
|
||||
|
||||
# @api.onchange('main_service_category', 'sub_service_category', 'benefit_type', 'family_id', 'member_id')
|
||||
# def _reset_service_cat(self):
|
||||
# if self.service_cat:
|
||||
# self.service_cat = False
|
||||
|
||||
@api.depends('family_category')
|
||||
@api.depends('family_category','member_id')
|
||||
def _compute_available_service_cats(self):
|
||||
for rec in self:
|
||||
if rec.benefit_type:
|
||||
if rec.benefit_type == 'family':
|
||||
domain = [('service_type', '!=', 'main_service')]
|
||||
rec.available_service_cats = rec.available_service_cats.sudo().search(domain).filtered(
|
||||
lambda r: rec.family_category.id in r.benefit_category_ids.ids or\
|
||||
(rec.family_category.id, rec.benefit_member_count) in r.rent_lines.mapped(lambda r: (r.benefit_category_id.id, r.benefit_count)) or\
|
||||
rec.family_category.id in r.home_restoration_lines.benefit_category_id.ids or\
|
||||
len(r.electricity_bill_lines.filtered(lambda r: r.benefit_category_id.id == rec.family_category.id and rec.benefit_member_count >= r.min_count_member and rec.benefit_member_count <= r.max_count_member)) or\
|
||||
len(r.water_bill_lines.filtered(lambda r: r.benefit_category_id.id == rec.family_category.id and rec.benefit_member_count >= r.min_count_member and rec.benefit_member_count <= r.max_count_member))
|
||||
)
|
||||
elif rec.benefit_type == 'member':
|
||||
domain = [('service_type', '!=', 'main_service'),('benefit_type','!=','member'),('benefit_category_ids', 'in', [rec.family_category.id])]
|
||||
rec.available_service_cats = rec.available_service_cats.sudo().search(domain)
|
||||
elif rec.benefit_type == 'member' and rec.member_id:
|
||||
domain = [
|
||||
('service_type', '!=', 'main_service'),
|
||||
('is_this_service_for_student','=',True)
|
||||
('benefit_type', '!=', 'family'),
|
||||
('benefit_category_ids', 'in', [rec.family_category.id])
|
||||
]
|
||||
rec.available_service_cats = rec.available_service_cats.sudo().search(domain).filtered(
|
||||
lambda r: rec.family_category.id in r.benefit_category_ids.ids
|
||||
)
|
||||
if rec.member_id.member_status != 'benefit':
|
||||
domain.append(('allow_non_beneficiary','=',True))
|
||||
rec.available_service_cats = rec.available_service_cats.sudo().search(domain)
|
||||
else:
|
||||
rec.available_service_cats = False
|
||||
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ class ServicesSettings(models.Model):
|
|||
_order = 'service_number'
|
||||
|
||||
service_name = fields.Char(string='Service Name')
|
||||
benefit_type = fields.Selection(string='Benefit Type', selection=[('family', 'Family'), ('member', 'Member')])
|
||||
benefit_type = fields.Selection(string='Benefit Type', selection=[('family', 'Family'), ('member', 'Member'), ('both', 'Both')],default='both')
|
||||
parent_service = fields.Many2one('services.settings',string='Parent Service')
|
||||
is_main_service = fields.Boolean(string='Is Main Service?')
|
||||
is_service_producer = fields.Boolean(string='Is Service Producer?')
|
||||
|
|
@ -116,6 +116,7 @@ class ServicesSettings(models.Model):
|
|||
], string="Max Limit Type"
|
||||
)
|
||||
needs_beneficiary_manager_approval = fields.Boolean()
|
||||
allow_non_beneficiary = fields.Boolean(string="Allow Non Beneficiary")
|
||||
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -113,6 +113,12 @@
|
|||
<field name="users" eval="[(4, ref('base.user_root'))]"/>
|
||||
</record>
|
||||
|
||||
<record id="group_family_service_receipt" model="res.groups">
|
||||
<field name="name">Family Service Receipt</field>
|
||||
<field name="category_id" ref="module_category_benefit"/>
|
||||
<field name="users" eval="[(4, ref('base.user_root'))]"/>
|
||||
</record>
|
||||
|
||||
<!-- Add rules for grant.benefit -->
|
||||
<record id="grant_benefit_show_all_rule" model="ir.rule">
|
||||
<field name="name">Show All Benefits Profiles</field>
|
||||
|
|
@ -244,8 +250,8 @@
|
|||
<field name="name">Show Service Requests That Own</field>
|
||||
<field name="model_id" ref="model_service_request"/>
|
||||
<field name="domain_force">[
|
||||
'|',
|
||||
('create_uid','=',user.id),
|
||||
'|',
|
||||
('create_uid','=',user.id),
|
||||
('researcher_id.employee_id', 'in', user.employee_id.ids)
|
||||
]</field>
|
||||
<field name="groups" eval="[(4, ref('group_benefit_researcher'))]"/>
|
||||
|
|
|
|||
|
|
@ -8,140 +8,245 @@
|
|||
<form string="Service Request">
|
||||
<header>
|
||||
<button name="action_send_to_researcher" type="object" states="draft"
|
||||
string="Researcher Accept" class="oe_highlight"/>
|
||||
string="Send" class="oe_highlight" />
|
||||
<button name="action_researcher_send_request" type="object" states="researcher"
|
||||
string="Send Request" class="oe_highlight"/>
|
||||
string="Researcher Approval" class="oe_highlight"
|
||||
groups="odex_benefit.group_benefit_researcher"
|
||||
/>
|
||||
<button name="action_refuse" type="object"
|
||||
string="Refuse" class="btn btn-danger"
|
||||
states="researcher" groups="odex_benefit.group_benefit_researcher"/>
|
||||
<button name="action_operations_chief_approve" type="object"
|
||||
string="Request First Approve" class="oe_highlight"
|
||||
confirm="Are you sure you want to first approve ?"
|
||||
states="send_request" groups="odex_benefit.group_benefit_woman_commitee,odex_benefit.group_benefit_manager"/>
|
||||
states="send_request"
|
||||
groups="odex_benefit.group_benefit_woman_commitee"
|
||||
/>
|
||||
<button name="action_first_refuse" type="object"
|
||||
string="Return the request to the specialist" class="btn btn-warning"
|
||||
states="send_request"
|
||||
groups="odex_benefit.group_benefit_woman_commitee"/>
|
||||
<button name="action_refuse" type="object"
|
||||
string="Refuse" class="btn btn-danger"
|
||||
states="send_request"
|
||||
groups="odex_benefit.group_benefit_woman_commitee"
|
||||
/>
|
||||
<button name="action_branch_manager_approve" type="object"
|
||||
string="Request Second Approve" class="oe_highlight"
|
||||
confirm="Are you sure you want to second approve ?"
|
||||
states="first_approve" groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"/>
|
||||
<button name="action_beneficiary_manager_approve" type="object"
|
||||
string="Beneficiary Approve" class="oe_highlight"
|
||||
confirm="Are you sure you want to approve ?"
|
||||
states="second_approve" groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"/>
|
||||
states="first_approve"
|
||||
groups="odex_benefit.group_benefit_branch_manager"/>
|
||||
<button name="action_first_refuse" type="object"
|
||||
string="Return the request to the specialist" class="btn btn-warning"
|
||||
states="first_approve"
|
||||
groups="odex_benefit.group_benefit_branch_manager"/>
|
||||
<button name="action_refuse" type="object"
|
||||
string="Refuse" class="btn btn-danger"
|
||||
states="first_approve"
|
||||
groups="odex_benefit.group_benefit_branch_manager"
|
||||
/>
|
||||
<button name="action_accounting_approve" type="object"
|
||||
string="Accounting Approve" class="oe_highlight"
|
||||
confirm="Are you sure you want to approve ?"
|
||||
states="accounting_approve" groups="odex_benefit.group_benefit_accounting_accept"/>
|
||||
<button name="action_first_refuse" type="object"
|
||||
string="Return the request to the specialist" class="btn btn-warning"
|
||||
states="accounting_approve"
|
||||
groups="odex_benefit.group_benefit_accounting_accept"/>
|
||||
<button name="action_refuse" type="object"
|
||||
string="Refuse" class="btn btn-danger"
|
||||
states="accounting_approve"
|
||||
groups="odex_benefit.group_benefit_accounting_accept"
|
||||
/>
|
||||
<button name="action_request_done" type="object"
|
||||
string="Family Received" class="oe_highlight"
|
||||
states="send_request_to_supplier"
|
||||
groups="odex_benefit.group_family_service_receipt"
|
||||
/>
|
||||
<button name="action_refuse" type="object"
|
||||
string="Refuse" class="btn btn-danger"
|
||||
states="send_request_to_supplier"
|
||||
groups="odex_benefit.group_family_service_receipt"
|
||||
/>
|
||||
<button name="action_first_refuse" type="object"
|
||||
string="Return the request to the specialist" class="btn btn-warning"
|
||||
states="refused"
|
||||
/>
|
||||
|
||||
<button name="action_beneficiary_manager_approve" type="object"
|
||||
string="Beneficiary Approve" class="oe_highlight"
|
||||
confirm="Are you sure you want to approve ?"
|
||||
states="second_approve"
|
||||
groups="odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"/>
|
||||
<button name="action_supplier_approve" type="object"
|
||||
string="Supplier Approve" class="oe_highlight"
|
||||
confirm="Are you sure you want to approve ?"
|
||||
states="approval_of_beneficiary_services" groups="odex_benefit.group_benefit_accounting_accept"/>
|
||||
<button name="action_request_done" type="object"
|
||||
string="Family Received Device" class="oe_highlight"
|
||||
groups="odex_benefit.group_benefit_accounting_accept" states="send_request_to_supplier" />
|
||||
<button name="action_first_refuse" type="object"
|
||||
string="Return the request to the specialist" class="oe_highlight"
|
||||
attrs="{'invisible': ['|',('return_reason','!=', False), ('state', 'not in', ['accounting_approve', 'second_approve' ,'send_request' ,'first_approve'])]}"
|
||||
groups="odex_benefit.group_benefit_accounting_accept,odex_benefit.group_benefit_woman_commitee,odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_manager"/>
|
||||
<button name="action_refuse" type="object"
|
||||
string="Refuse" class="oe_highlight"
|
||||
states="first_approve,second_approve,draft,send_request"/>
|
||||
<field name="state" widget="statusbar" statusbar_visible="draft,researcher,send_request,first_approve,accounting_approve,send_request_to_supplier,family_received_device,refused"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<field name="is_payment_order_done" invisible="1"/>
|
||||
<widget name="web_ribbon" title="Payment Order Done" bg_color="bg-success"
|
||||
attrs="{'invisible': [('is_payment_order_done', '=', False)]}"/>
|
||||
states="approval_of_beneficiary_services"
|
||||
groups="odex_benefit.group_benefit_accounting_accept"/>
|
||||
<field name="state" widget="statusbar"
|
||||
statusbar_visible="draft,researcher,send_request,first_approve,accounting_approve,send_request_to_supplier,family_received_device,refused"/>
|
||||
</header>
|
||||
<sheet>
|
||||
<field name="is_payment_order_done" invisible="1"/>
|
||||
<widget name="web_ribbon" title="Payment Order Done" bg_color="bg-success"
|
||||
attrs="{'invisible': [('is_payment_order_done', '=', False)]}"/>
|
||||
<group>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="name" readonly="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<div class="oe_title">
|
||||
<h1>
|
||||
<field name="name" readonly="1"/>
|
||||
</h1>
|
||||
</div>
|
||||
<group>
|
||||
<field name="date" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}" required="1"/>
|
||||
<field name="benefit_type" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}" required="1"/>
|
||||
<field name="family_id" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}" required="1"/>
|
||||
<field name="family_category" force_save="1"/>
|
||||
<field name="researcher_id" force_save="1"/>
|
||||
<field name="benefit_member_count" force_save="1"/>
|
||||
<field name="eid_gift_benefit_count" attrs="{'invisible':['|',('service_type','!=','eid_gift'),('benefit_type','!=','family')]}"/>
|
||||
<field name="branch_custom_id" force_save="1"/>
|
||||
<field name="member_id" attrs="{'invisible':[('benefit_type','!=','member')],'readonly':[('state','not in',['draft','researcher','send_request'])],'required':[('benefit_type','=','member')]}"/>
|
||||
<field name="member_age" attrs="{'invisible':[('benefit_type','!=','member')]}"/>
|
||||
<field name="account_id" invisible="1"/>
|
||||
<field name="device_account_id" invisible="1"/>
|
||||
<field name="accountant_id" attrs="{'invisible':[('state','in',['draft','researcher','send_request','first_approve','second_approve'])]}"/>
|
||||
<field name="payment_order_id" readonly="1" groups="odex_benefit.group_benefit_accounting_accept" invisible="1"/>
|
||||
<field name="vendor_bill" readonly="1" attrs="{'invisible':[('service_type','!=','electrical_devices')]}"/>
|
||||
<field name="is_service_producer" invisible="1"/>
|
||||
<field name="service_producer_id" attrs="{'invisible':[('is_service_producer','=',False)],'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="available_service_cats" invisible="1"/>
|
||||
<field name="service_cat" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}" domain="[('id','in',available_service_cats)]" required="1"/>
|
||||
<field name="need_status" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<field name="main_service_category" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}" invisible="1"/>
|
||||
<field name="sub_service_category" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}" invisible="1"/>
|
||||
<field name="requested_service_amount" attrs="{'readonly': [
|
||||
<field name="date"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"
|
||||
required="1"/>
|
||||
<field name="benefit_type"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"
|
||||
required="1"/>
|
||||
<field name="family_id"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"
|
||||
required="1"/>
|
||||
<field name="family_category" force_save="1"/>
|
||||
<field name="researcher_id" force_save="1"/>
|
||||
<field name="benefit_member_count" force_save="1"/>
|
||||
<field name="eid_gift_benefit_count"
|
||||
attrs="{'invisible':['|',('service_type','!=','eid_gift'),('benefit_type','!=','family')]}"/>
|
||||
<field name="branch_custom_id" force_save="1"/>
|
||||
<field name="member_id"
|
||||
attrs="{'invisible':[('benefit_type','!=','member')],'readonly':[('state','not in',['draft','researcher','send_request'])],'required':[('benefit_type','=','member')]}"/>
|
||||
<field name="member_age" attrs="{'invisible':[('benefit_type','!=','member')]}"/>
|
||||
<field name="account_id" invisible="1"/>
|
||||
<field name="device_account_id" invisible="1"/>
|
||||
<field name="accountant_id"
|
||||
attrs="{'invisible':[('state','in',['draft','researcher','send_request','first_approve','second_approve'])]}"/>
|
||||
<field name="payment_order_id" readonly="1"
|
||||
groups="odex_benefit.group_benefit_accounting_accept" invisible="1"/>
|
||||
<field name="vendor_bill" readonly="1"
|
||||
attrs="{'invisible':[('service_type','!=','electrical_devices')]}"/>
|
||||
<field name="is_service_producer" invisible="1"/>
|
||||
<field name="service_producer_id"
|
||||
attrs="{'invisible':[('is_service_producer','=',False)],'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="available_service_cats" invisible="1"/>
|
||||
<field name="service_cat"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"
|
||||
domain="[('id','in',available_service_cats)]" required="1"/>
|
||||
<field name="need_status"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<field name="main_service_category"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"
|
||||
invisible="1"/>
|
||||
<field name="sub_service_category"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"
|
||||
invisible="1"/>
|
||||
<field name="requested_service_amount" attrs="{'readonly': [
|
||||
'|',
|
||||
'&',
|
||||
('state', 'not in', ['draft', 'researcher', 'send_request', 'first_approve', 'second_approve', 'accounting_approve']),
|
||||
('service_type', 'in', ['marriage', 'eid_gift', 'winter_clothing', 'ramadan_basket']),
|
||||
('service_type', 'in', ['electrical_devices', 'home_furnishing'])
|
||||
]}" force_save="1" required="1" />
|
||||
<field name="exception" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<field name="exception_attach" attrs="{'invisible': [('exception', '=', False)]}" widget="many2many_attachment_preview"/>
|
||||
<field name="amount_for_buy_home_for_member_count" attrs="{'invisible':[('service_type','!=','buy_home')]}"/>
|
||||
<field name="home_age" attrs="{'invisible':[('service_type','!=','buy_home')]}"/>
|
||||
<field name="max_electricity_bill_amount" readonly="1" force_save="1" attrs="{'invisible':[('service_type','!=','electricity_bill')]}"/>
|
||||
<field name="max_water_bill_amount" readonly="1" force_save="1" attrs="{'invisible':[('service_type','!=','water_bill')]}"/>
|
||||
<field name="aid_amount" invisible="1"/>
|
||||
<field name="description" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<field name="service_attach" invisible="1" widget="many2many_attachment_preview"/>
|
||||
<field name="has_marriage_course" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])],'invisible':[('service_type','!=','marriage')],'required':[('service_type','=','marriage')]}"/>
|
||||
<field name="service_type" invisible="1"/>
|
||||
<field name="refuse_reason_id" attrs="{'invisible': [('refuse_reason_id', '=', False)]}" readonly="1"/>
|
||||
<field name="return_reason" attrs="{'invisible': [('return_reason', '=', False)]}" readonly="1"/>
|
||||
<field name="specialist_note" attrs="{'invisible': [('return_reason', '=', False)]}"/>
|
||||
<field name="required_attach" invisible="1"/>
|
||||
</group>
|
||||
]}" force_save="1" required="1"/>
|
||||
<field name="exception"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<field name="exception_attach" attrs="{'invisible': [('exception', '=', False)]}"
|
||||
widget="many2many_attachment_preview"/>
|
||||
<field name="amount_for_buy_home_for_member_count"
|
||||
attrs="{'invisible':[('service_type','!=','buy_home')]}"/>
|
||||
<field name="home_age" attrs="{'invisible':[('service_type','!=','buy_home')]}"/>
|
||||
<field name="max_electricity_bill_amount" readonly="1" force_save="1"
|
||||
attrs="{'invisible':[('service_type','!=','electricity_bill')]}"/>
|
||||
<field name="max_water_bill_amount" readonly="1" force_save="1"
|
||||
attrs="{'invisible':[('service_type','!=','water_bill')]}"/>
|
||||
<field name="aid_amount" invisible="1"/>
|
||||
<field name="description"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<field name="service_attach" invisible="1" widget="many2many_attachment_preview"/>
|
||||
<field name="has_marriage_course"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])],'invisible':[('service_type','!=','marriage')],'required':[('service_type','=','marriage')]}"/>
|
||||
<field name="service_type" invisible="1"/>
|
||||
<field name="refuse_reason_id" attrs="{'invisible': [('refuse_reason_id', '=', False)]}"
|
||||
readonly="1"/>
|
||||
<field name="refuse_reason" attrs="{'invisible': [('refuse_reason', '=', False)]}"
|
||||
readonly="1"/>
|
||||
<field name="return_reason" attrs="{'invisible': [('return_reason', '=', False)]}"
|
||||
readonly="1"/>
|
||||
<field name="specialist_note" attrs="{'invisible': [('return_reason', '=', False)]}"/>
|
||||
<field name="required_attach" invisible="1"/>
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Services Attachments Settings" attrs="{'invisible':[('required_attach','=',False)]}">
|
||||
<field name="attachment_lines" widget="one2many_list">
|
||||
<tree editable="bottom" delete="0">
|
||||
<field name="name"/>
|
||||
<field name="service_attach" widget="many2many_attachment_preview"/>
|
||||
<field name="notes"/>
|
||||
<field name="service_type" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Rent Information" attrs="{'invisible':[('service_type', '!=', 'rent'),'|',('service_type', '!=', 'alternative_housing'),('providing_alternative_housing_based_rent','=',False)]}">
|
||||
</group>
|
||||
<notebook>
|
||||
<page string="Services Attachments Settings"
|
||||
attrs="{'invisible':[('required_attach','=',False)]}">
|
||||
<field name="attachment_lines" widget="one2many_list">
|
||||
<tree editable="bottom" delete="0">
|
||||
<field name="name"/>
|
||||
<field name="service_attach" widget="many2many_attachment_preview"/>
|
||||
<field name="notes"/>
|
||||
<field name="service_type" invisible="1"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Rent Information"
|
||||
attrs="{'invisible':[('service_type', '!=', 'rent'),'|',('service_type', '!=', 'alternative_housing'),('providing_alternative_housing_based_rent','=',False)]}">
|
||||
<form>
|
||||
<sheet>
|
||||
<group>
|
||||
<group attrs="{'invisible':[('service_type', '=', 'alternative_housing')]}">
|
||||
<group attrs="{'invisible':[('service_type', '=', 'alternative_housing')]}">
|
||||
<separator string="Rent Contract Information" colspan="2"/>
|
||||
<br/>
|
||||
<field name="rent_payment_date_exception" widget="boolean_toggle"/>
|
||||
<field name="rent_payment_date" attrs="{'required':[('service_type','=','rent'),('new_rent_contract','=',False)]}"/>
|
||||
<field name="rent_contract_number" attrs="{'invisible':[('benefit_type','!=','family')]}" force_save="1"/>
|
||||
<field name="rent_start_date" attrs="{'invisible':[('benefit_type','!=','family')]}" force_save="1"/>
|
||||
<field name="rent_end_date" attrs="{'invisible':[('benefit_type','!=','family')]}" force_save="1"/>
|
||||
<label for="start" string="Period" />
|
||||
<field name="rent_payment_date"
|
||||
attrs="{'required':[('service_type','=','rent'),('new_rent_contract','=',False)]}"/>
|
||||
<field name="rent_contract_number"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"
|
||||
force_save="1"/>
|
||||
<field name="rent_start_date"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"
|
||||
force_save="1"/>
|
||||
<field name="rent_end_date"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"
|
||||
force_save="1"/>
|
||||
<label for="start" string="Period"/>
|
||||
<div name="dates" class="o_row">
|
||||
<field name="start" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<i class="fa fa-long-arrow-right mx-2 oe_edit_only" aria-label="Arrow icon" title="Arrow" />
|
||||
<i class="fa fa-long-arrow-right mx-2 oe_read_only" aria-label="Arrow icon" title="Arrow" attrs="{'invisible': [('start', '=', False), ('end', '=', False)]}" />
|
||||
<field name="end" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}" />
|
||||
<field name="start"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<i class="fa fa-long-arrow-right mx-2 oe_edit_only"
|
||||
aria-label="Arrow icon" title="Arrow"/>
|
||||
<i class="fa fa-long-arrow-right mx-2 oe_read_only"
|
||||
aria-label="Arrow icon" title="Arrow"
|
||||
attrs="{'invisible': [('start', '=', False), ('end', '=', False)]}"/>
|
||||
<field name="end"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
</div>
|
||||
<field name="rent_amount" attrs="{'invisible':[('benefit_type','!=','family')]}" force_save="1"/>
|
||||
<field name="rent_amount_payment" attrs="{'invisible':[('benefit_type','!=','family')]}" force_save="1"/>
|
||||
<field name="payment_type" attrs="{'invisible':[('benefit_type','!=','family')]}" force_save="1"/>
|
||||
<field name="rent_attachment" widget="many2many_attachment_preview" attrs="{'invisible':[('benefit_type','!=','family')]}" force_save="1"/>
|
||||
<field name="member_rent_contract_number" attrs="{'invisible':[('benefit_type','!=','member')]}" force_save="1"/>
|
||||
<field name="member_rent_start_date" attrs="{'invisible':[('benefit_type','!=','member')]}" force_save="1"/>
|
||||
<field name="member_rent_end_date" attrs="{'invisible':[('benefit_type','!=','member')]}" force_save="1"/>
|
||||
<field name="member_rent_attachment" widget="many2many_attachment_preview" attrs="{'invisible':[('benefit_type','!=','member')]}" force_save="1"/>
|
||||
<field name="new_rent_contract" widget="boolean_toggle" attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<!-- <field name="is_alternative_housing" widget="boolean_toggle"/>-->
|
||||
<field name="rent_amount"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"
|
||||
force_save="1"/>
|
||||
<field name="rent_amount_payment"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"
|
||||
force_save="1"/>
|
||||
<field name="payment_type"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"
|
||||
force_save="1"/>
|
||||
<field name="rent_attachment" widget="many2many_attachment_preview"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"
|
||||
force_save="1"/>
|
||||
<field name="member_rent_contract_number"
|
||||
attrs="{'invisible':[('benefit_type','!=','member')]}"
|
||||
force_save="1"/>
|
||||
<field name="member_rent_start_date"
|
||||
attrs="{'invisible':[('benefit_type','!=','member')]}"
|
||||
force_save="1"/>
|
||||
<field name="member_rent_end_date"
|
||||
attrs="{'invisible':[('benefit_type','!=','member')]}"
|
||||
force_save="1"/>
|
||||
<field name="member_rent_attachment"
|
||||
widget="many2many_attachment_preview"
|
||||
attrs="{'invisible':[('benefit_type','!=','member')]}"
|
||||
force_save="1"/>
|
||||
<field name="new_rent_contract" widget="boolean_toggle"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<!-- <field name="is_alternative_housing" widget="boolean_toggle"/>-->
|
||||
</group>
|
||||
<group attrs="{'invisible':[('benefit_type','!=','family')]}">
|
||||
<separator string="Rent Amounts" colspan="2"/>
|
||||
|
|
@ -149,7 +254,8 @@
|
|||
<field name="estimated_rent_amount"/>
|
||||
<field name="estimated_rent_amount_payment"/>
|
||||
<field name="paid_rent_amount"/>
|
||||
<field name="added_amount_if_mother_dead" attrs="{'invisible':[('service_type','=','alternative_housing')]}"/>
|
||||
<field name="added_amount_if_mother_dead"
|
||||
attrs="{'invisible':[('service_type','=','alternative_housing')]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<group attrs="{'invisible':[('new_rent_contract','=',False),'|',('service_type', '!=', 'alternative_housing'),('providing_alternative_housing_based_rent','=',False)]}">
|
||||
|
|
@ -157,21 +263,36 @@
|
|||
<separator string="New Rent Contract Information" colspan="2"/>
|
||||
<br/>
|
||||
<field name="new_rent_payment_date_exception" widget="boolean_toggle"/>
|
||||
<field name="new_rent_payment_date" attrs="{'required':[('service_type','=','rent'),('new_rent_contract','=',True)]}"/>
|
||||
<field name="new_rent_contract_number" attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<field name="new_rent_start_date" attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<field name="new_rent_end_date" attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<label for="new_start" string="Period" attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<div name="dates" class="o_row" attrs="{'invisible':[('benefit_type','!=','family')]}">
|
||||
<field name="new_start" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<i class="fa fa-long-arrow-right mx-2 oe_edit_only" aria-label="Arrow icon" title="Arrow" />
|
||||
<i class="fa fa-long-arrow-right mx-2 oe_read_only" aria-label="Arrow icon" title="Arrow" attrs="{'invisible': [('new_start', '=', False), ('new_end', '=', False)]}" />
|
||||
<field name="new_end" attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}" />
|
||||
<field name="new_rent_payment_date"
|
||||
attrs="{'required':[('service_type','=','rent'),('new_rent_contract','=',True)]}"/>
|
||||
<field name="new_rent_contract_number"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<field name="new_rent_start_date"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<field name="new_rent_end_date"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<label for="new_start" string="Period"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<div name="dates" class="o_row"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}">
|
||||
<field name="new_start"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
<i class="fa fa-long-arrow-right mx-2 oe_edit_only"
|
||||
aria-label="Arrow icon" title="Arrow"/>
|
||||
<i class="fa fa-long-arrow-right mx-2 oe_read_only"
|
||||
aria-label="Arrow icon" title="Arrow"
|
||||
attrs="{'invisible': [('new_start', '=', False), ('new_end', '=', False)]}"/>
|
||||
<field name="new_end"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
</div>
|
||||
<field name="new_rent_amount" attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<field name="new_rent_amount_payment" attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<field name="new_payment_type" attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<field name="new_rent_attachment" widget="many2many_attachment_preview" attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<field name="new_rent_amount"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<field name="new_rent_amount_payment"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<field name="new_payment_type"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
<field name="new_rent_attachment" widget="many2many_attachment_preview"
|
||||
attrs="{'invisible':[('benefit_type','!=','family')]}"/>
|
||||
</group>
|
||||
<group>
|
||||
</group>
|
||||
|
|
@ -179,80 +300,93 @@
|
|||
</sheet>
|
||||
</form>
|
||||
</page>
|
||||
<page string="Maintenance Service" attrs="{'invisible':[('service_type', '!=', 'home_maintenance')]}">
|
||||
<field name="maintenance_items_ids" widget="one2many_list">
|
||||
<tree editable="bottom">
|
||||
<field name="maintenance_items_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Home Restoration Service" attrs="{'invisible':[('service_type', '!=', 'home_restoration')]}">
|
||||
<group>
|
||||
<page string="Maintenance Service"
|
||||
attrs="{'invisible':[('service_type', '!=', 'home_maintenance')]}">
|
||||
<field name="maintenance_items_ids" widget="one2many_list">
|
||||
<tree editable="bottom">
|
||||
<field name="maintenance_items_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Home Restoration Service"
|
||||
attrs="{'invisible':[('service_type', '!=', 'home_restoration')]}">
|
||||
<group>
|
||||
<field name="restoration_max_amount"/>
|
||||
<field name="has_money_field_is_appearance" invisible="1"/>
|
||||
<field name="has_money_to_pay_first_payment" attrs="{'invisible':[('has_money_field_is_appearance', '=', False)],'required':[('has_money_field_is_appearance', '=', True)]}"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Complete Building House" attrs="{'invisible':[('service_type', '!=', 'complete_building_house')]}">
|
||||
<group>
|
||||
<field name="max_complete_building_house_amount"/>
|
||||
<field name="has_money_for_payment" attrs="{'invisible':[('has_money_for_payment_is_appearance', '=', False)],'required':[('has_money_for_payment_is_appearance', '=', True)]}"/>
|
||||
<field name="has_money_for_payment_is_appearance" invisible="1"/>
|
||||
</group>
|
||||
<field name="has_money_to_pay_first_payment"
|
||||
attrs="{'invisible':[('has_money_field_is_appearance', '=', False)],'required':[('has_money_field_is_appearance', '=', True)]}"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Alternative Housing Service" attrs="{'invisible':[('service_type', '!=', 'alternative_housing')]}">
|
||||
<group>
|
||||
<page string="Complete Building House"
|
||||
attrs="{'invisible':[('service_type', '!=', 'complete_building_house')]}">
|
||||
<group>
|
||||
<field name="max_complete_building_house_amount"/>
|
||||
<field name="has_money_for_payment"
|
||||
attrs="{'invisible':[('has_money_for_payment_is_appearance', '=', False)],'required':[('has_money_for_payment_is_appearance', '=', True)]}"/>
|
||||
<field name="has_money_for_payment_is_appearance" invisible="1"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Alternative Housing Service"
|
||||
attrs="{'invisible':[('service_type', '!=', 'alternative_housing')]}">
|
||||
<group>
|
||||
<field name="providing_alternative_housing_based_rent"/>
|
||||
<field name="rent_for_alternative_housing"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Electrical Devices Service" attrs="{'invisible':[('service_type', '!=', 'electrical_devices')]}">
|
||||
<group>
|
||||
<field name="device_id" attrs="{'required':[('service_type', '=', 'electrical_devices')]}"/>
|
||||
<field name="requested_quantity" attrs="{'required':[('service_type', '=', 'electrical_devices')]}"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Electrical Devices Service"
|
||||
attrs="{'invisible':[('service_type', '!=', 'electrical_devices')]}">
|
||||
<group>
|
||||
<field name="device_id"
|
||||
attrs="{'required':[('service_type', '=', 'electrical_devices')]}"/>
|
||||
<field name="requested_quantity"
|
||||
attrs="{'required':[('service_type', '=', 'electrical_devices')]}"/>
|
||||
<field name="exception_or_steal" widget="boolean_toggle"/>
|
||||
<field name="exception_or_steal_attach" widget="many2many_attachment_preview" attrs="{'invisible':[('exception_or_steal', '=', False)]}"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Home Furnishing Service" attrs="{'invisible':[('service_type', '!=', 'home_furnishing')]}">
|
||||
<field name="exception_or_steal_attach" widget="many2many_attachment_preview"
|
||||
attrs="{'invisible':[('exception_or_steal', '=', False)]}"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Home Furnishing Service"
|
||||
attrs="{'invisible':[('service_type', '!=', 'home_furnishing')]}">
|
||||
<group>
|
||||
<field name="home_furnishing_exception"/>
|
||||
</group>
|
||||
</group>
|
||||
<field name="furnishing_items_ids" widget="one2many_list">
|
||||
<tree editable="bottom">
|
||||
<field name="home_furnishing_items"/>
|
||||
<field name="furnishing_cost"/>
|
||||
<!-- <field name="max_furnishing_cost"/>-->
|
||||
<field name="price_first"/>
|
||||
<field name="price_first_attach" widget="many2many_attachment_preview"/>
|
||||
<field name="price_second"/>
|
||||
<field name="price_second_attach" widget="many2many_attachment_preview"/>
|
||||
</tree>
|
||||
<tree editable="bottom">
|
||||
<field name="home_furnishing_items"/>
|
||||
<field name="furnishing_cost"/>
|
||||
<!-- <field name="max_furnishing_cost"/>-->
|
||||
<field name="price_first"/>
|
||||
<field name="price_first_attach" widget="many2many_attachment_preview"/>
|
||||
<field name="price_second"/>
|
||||
<field name="price_second_attach" widget="many2many_attachment_preview"/>
|
||||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Transportation Insurance Service" attrs="{'invisible':[('service_type', '!=', 'transportation_insurance')]}">
|
||||
</page>
|
||||
<page string="Transportation Insurance Service"
|
||||
attrs="{'invisible':[('service_type', '!=', 'transportation_insurance')]}">
|
||||
<group>
|
||||
<field name="service_reason_id" options="{'no_create': True, 'no_open': True, 'no_create_edit': True}"/>
|
||||
<field name="service_reason_id"
|
||||
options="{'no_create': True, 'no_open': True, 'no_create_edit': True}"/>
|
||||
<field name="max_amount" readonly="1" force_save="1"/>
|
||||
<field name="requests_counts"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Marriage Service" attrs="{'invisible':[('service_type','!=','marriage')]}">
|
||||
<group>
|
||||
<field name="member_age"/>
|
||||
<field name="member_payroll"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Eligibility Criteria">
|
||||
<group>
|
||||
<field name="service_conditions"/>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Marriage Service" attrs="{'invisible':[('service_type','!=','marriage')]}">
|
||||
<group>
|
||||
<field name="member_age"/>
|
||||
<field name="member_payroll"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Eligibility Criteria">
|
||||
<group>
|
||||
<field name="service_conditions"/>
|
||||
</group>
|
||||
</page>
|
||||
</notebook>
|
||||
</sheet>
|
||||
<div class="oe_chatter">
|
||||
<field name="message_follower_ids" widget="mail_followers" groups="base.group_user"/>
|
||||
<field name="activity_ids" />
|
||||
<field name="activity_ids"/>
|
||||
<field name="message_ids" widget="mail_thread"/>
|
||||
</div>
|
||||
</form>
|
||||
|
|
@ -272,11 +406,14 @@
|
|||
<field name="main_service_category" invisible="1"/>
|
||||
<field name="sub_service_category" invisible="1"/>
|
||||
<field name="service_cat"/>
|
||||
<field name="requested_service_amount" />
|
||||
<field name="requested_service_amount"/>
|
||||
<field name="payment_order_id" invisible="1" groups="odex_benefit.group_benefit_accounting_accept"/>
|
||||
<field name="vendor_bill" invisible="1" groups="odex_benefit.group_benefit_accounting_accept"/>
|
||||
<field name="state" widget="badge" decoration-success="state in ['second_approve']" decoration-muted="state == 'draft'"
|
||||
decoration-danger="state in ['refused']" decoration-info="state in ['first_approve','send_request']" decoration-warning="state in ['researcher']"/>
|
||||
<field name="state" widget="badge" decoration-success="state in ['second_approve']"
|
||||
decoration-muted="state == 'draft'"
|
||||
decoration-danger="state in ['refused']"
|
||||
decoration-info="state in ['first_approve','send_request']"
|
||||
decoration-warning="state in ['researcher']"/>
|
||||
</tree>
|
||||
</field>
|
||||
</record>
|
||||
|
|
@ -286,51 +423,62 @@
|
|||
<field name="arch" type="xml">
|
||||
<search>
|
||||
<group string="Group By">
|
||||
<filter string="Branch" name="branch_custom_id" context="{'group_by': 'branch_custom_id'}"/>
|
||||
<filter string="Main Service" name="main_service_category" context="{'group_by': 'main_service_category'}"/>
|
||||
<filter string="Sub Service Category" name="sub_service_category" context="{'group_by': 'sub_service_category'}"/>
|
||||
<filter string="Service Cat" name="service_cat" context="{'group_by': 'service_cat'}"/>
|
||||
<filter string="Branch" name="branch_custom_id" context="{'group_by': 'branch_custom_id'}"/>
|
||||
<filter string="Main Service" name="main_service_category"
|
||||
context="{'group_by': 'main_service_category'}"/>
|
||||
<filter string="Sub Service Category" name="sub_service_category"
|
||||
context="{'group_by': 'sub_service_category'}"/>
|
||||
<filter string="Service Cat" name="service_cat" context="{'group_by': 'service_cat'}"/>
|
||||
</group>
|
||||
<separator/>
|
||||
<filter string="Draft" name="draft" domain="[('state','=','draft')]"/>
|
||||
<filter string="Draft" name="draft" domain="[('state','=','draft')]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Send Request" name="send_request" domain="[('state', '=', 'send_request')]"/>
|
||||
<filter string="Send Request" name="send_request" domain="[('state', '=', 'send_request')]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Request First Approve" name="first_approve" domain="[('state', '=', 'first_approve')]"/>
|
||||
<filter string="Request First Approve" name="first_approve"
|
||||
domain="[('state', '=', 'first_approve')]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Request Second Approve" name="second_approve" domain="[('state', '=', 'second_approve')]"/>
|
||||
<filter string="Request Second Approve" name="second_approve"
|
||||
domain="[('state', '=', 'second_approve')]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Accounting Approve" name="accounting_approve" domain="[('state', '=', 'accounting_approve')]"/>
|
||||
<filter string="Accounting Approve" name="accounting_approve"
|
||||
domain="[('state', '=', 'accounting_approve')]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Refused" name="refused" domain="[('state', '=', 'refused')]"/>
|
||||
<filter string="Refused" name="refused" domain="[('state', '=', 'refused')]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Payment Order Done" name="payment_order_done" domain="[('payment_order_id', '!=', False)]"/>
|
||||
<filter string="Payment Order Done" name="payment_order_done"
|
||||
domain="[('payment_order_id', '!=', False)]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Need Payment Order" name="payment_order_done" domain="[('payment_order_id', '=', False),('state','=','accounting_approve')]"/>
|
||||
<filter string="Need Payment Order" name="payment_order_done"
|
||||
domain="[('payment_order_id', '=', False),('state','=','accounting_approve')]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Need Vendor Bill" name="need_vendor_bill" domain="[('vendor_bill', '=', False),('state','=','family_received_device')]"/>
|
||||
<filter string="Need Vendor Bill" name="need_vendor_bill"
|
||||
domain="[('vendor_bill', '=', False),('state','=','family_received_device')]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Vendor Bill Done" name="need_vendor_bill" domain="[('vendor_bill', '!=', False),('state','=','family_received_device')]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Send Request To Supplier" name="send_request_to_supplier" domain="[('state','=','send_request_to_supplier')]"/>
|
||||
<filter string="Vendor Bill Done" name="need_vendor_bill"
|
||||
domain="[('vendor_bill', '!=', False),('state','=','family_received_device')]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Family Received Device" name="family_received_device" domain="[('state','=','family_received_device')]"/>
|
||||
<filter string="Send Request To Supplier" name="send_request_to_supplier"
|
||||
domain="[('state','=','send_request_to_supplier')]"/>
|
||||
<separator/>
|
||||
<separator/>
|
||||
<filter string="Family Received Device" name="family_received_device"
|
||||
domain="[('state','=','family_received_device')]"/>
|
||||
<separator/>
|
||||
<searchpanel>
|
||||
<field name="state" string="State" enable_counters="1"/>
|
||||
<field name="service_cat" string="Categories" enable_counters="1"/>
|
||||
</searchpanel>
|
||||
<field name="service_cat" string="Categories" enable_counters="1"/>
|
||||
</searchpanel>
|
||||
</search>
|
||||
</field>
|
||||
</record>
|
||||
|
|
|
|||
|
|
@ -15,13 +15,15 @@
|
|||
<group>
|
||||
<field name="service_number"/>
|
||||
<field name="service_type"/>
|
||||
<field name="benefit_type"/>
|
||||
<field name="benefit_type" required="1"/>
|
||||
<field name="allow_non_beneficiary" widget="boolean_toggle"/>
|
||||
<field name="service_producer_id"
|
||||
attrs="{'invisible':['|',('is_main_service','=',True),('is_service_producer','=',False)]}"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="service_category"/>
|
||||
<field name="parent_service" attrs="{'invisible':[('is_main_service','=',True)]}"/>
|
||||
<field name="benefit_category_ids" widget="many2many_tags" required="1"/>
|
||||
<field name="currency_id" groups="base.group_multi_currency"/>
|
||||
<field name="company_id" groups="base.group_multi_company"/>
|
||||
</group>
|
||||
|
|
@ -136,22 +138,17 @@
|
|||
</tree>
|
||||
</field>
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="max_maintenance_amount"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Complete Building House Settings"
|
||||
attrs="{'invisible':[('service_type','!=','complete_building_house')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="max_complete_building_house_amount"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Electrical Devices Settings"
|
||||
attrs="{'invisible':[('service_type','!=','electrical_devices')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
<field name="electrical_devices_lines" widget="one2many_list">
|
||||
<tree editable="bottom">
|
||||
<field name="min_count_member"/>
|
||||
|
|
@ -166,7 +163,6 @@
|
|||
<page string="Home furnishing Settings"
|
||||
attrs="{'invisible':[('service_type','!=','home_furnishing')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="max_furnishing_amount"/>
|
||||
<field name="max_furnishing_amount_if_exception"/>
|
||||
</group>
|
||||
|
|
@ -201,7 +197,6 @@
|
|||
</page>
|
||||
<page string="Buy Car Settings" attrs="{'invisible':[('service_type','!=','buy_car')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="max_buy_car_amount"/>
|
||||
<field name="min_count_member"/>
|
||||
</group>
|
||||
|
|
@ -209,14 +204,12 @@
|
|||
<page string="Recruiting Driver Settings"
|
||||
attrs="{'invisible':[('service_type','!=','recruiting_driver')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="max_recruiting_driver_amount"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Transportation Insurance Settings"
|
||||
attrs="{'invisible':[('service_type','!=','transportation_insurance')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="transportation_insurance_ids" options="{'no_open': True}">
|
||||
<tree editable="bottom">
|
||||
<field name="name"/>
|
||||
|
|
@ -228,33 +221,23 @@
|
|||
</page>
|
||||
<page string="Debits Settings" attrs="{'invisible':[('service_type','!=','debits')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="max_debits_amount"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Health Care Settings"
|
||||
attrs="{'invisible':[('service_type','!=','health_care')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="max_health_care_amount"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Providing Medicines Medical Devices And Needs The Disabled Settings"
|
||||
attrs="{'invisible':[('service_type','!=','providing_medicines_medical_devices_and_needs_the_disabled')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Recruiting Domestic Worker Or Nurse Settings"
|
||||
attrs="{'invisible':[('service_type','!=','recruiting_domestic_worker_or_nurse')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="max_recruiting_domestic_worker_or_nurse_amount"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Marriage Settings" attrs="{'invisible':[('service_type','!=','marriage')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="member_max_age"/>
|
||||
<field name="member_max_payroll"/>
|
||||
<field name="fatherless_member_amount"/>
|
||||
|
|
@ -263,7 +246,6 @@
|
|||
</page>
|
||||
<page string="Eid Gift Settings" attrs="{'invisible':[('service_type','!=','eid_gift')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="eid_gift_max_age"/>
|
||||
<field name="eid_gift_member_amount"/>
|
||||
</group>
|
||||
|
|
@ -271,34 +253,29 @@
|
|||
<page string="Winter Clothing Settings"
|
||||
attrs="{'invisible':[('service_type','!=','winter_clothing')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="winter_clothing_member_amount"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Ramadan Basket Settings"
|
||||
attrs="{'invisible':[('service_type','!=','ramadan_basket')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="ramadan_basket_member_amount"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Natural disasters Settings"
|
||||
attrs="{'invisible':[('service_type','!=','natural_disasters')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="natural_disasters_max_amount"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Legal arguments Settings"
|
||||
attrs="{'invisible':[('service_type','!=','legal_arguments')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="legal_arguments_max_amount"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Buy Home Settings" attrs="{'invisible':[('service_type','!=','buy_home')]}">
|
||||
<group>
|
||||
<field name="benefit_category_ids" widget="many2many_tags"/>
|
||||
<field name="buy_home_max_total_amount"/>
|
||||
<field name="home_age"/>
|
||||
</group>
|
||||
|
|
|
|||
|
|
@ -12,5 +12,5 @@ class ReasonForReturnWizard(models.TransientModel):
|
|||
for record in self:
|
||||
record.env['service.request'].browse(self._context.get('active_id')).write({
|
||||
'return_reason': record.reason,
|
||||
'state': 'draft',
|
||||
'state': 'researcher',
|
||||
})
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from odoo import models, fields
|
||||
from odoo import models, fields, _
|
||||
|
||||
|
||||
class RefuseReasonWizard(models.TransientModel):
|
||||
|
|
@ -7,10 +7,16 @@ class RefuseReasonWizard(models.TransientModel):
|
|||
_description = 'Wizard to select a reason for service rejection'
|
||||
|
||||
reason_id = fields.Many2one('service.refuse.reason', string="Reason", required=True)
|
||||
notes = fields.Text(string="Additional Notes", required=True)
|
||||
|
||||
def action_confirm(self):
|
||||
for record in self:
|
||||
record.env['service.request'].browse(self._context.get('active_id')).write({
|
||||
'refuse_reason_id': record.reason_id.id,
|
||||
service_request = self.env['service.request'].browse(self._context.get('active_id'))
|
||||
if service_request:
|
||||
service_request.write({
|
||||
'refuse_reason_id': self.reason_id.id,
|
||||
'refuse_reason': self.notes,
|
||||
'state': 'refused',
|
||||
})
|
||||
message = _("Request was refused.\nReason: %s\nNotes: %s") % (self.reason_id.name, self.notes)
|
||||
service_request.message_post(body=message, message_type='notification')
|
||||
return {'type': 'ir.actions.act_window_close'}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
<form string="Select Reason">
|
||||
<group>
|
||||
<field name="reason_id"/>
|
||||
<field name="notes"/>
|
||||
</group>
|
||||
<footer>
|
||||
<button string="Confirm" type="object" name="action_confirm" class="btn-primary"/>
|
||||
|
|
|
|||
|
|
@ -1,7 +1,20 @@
|
|||
from odoo import models, fields
|
||||
from odoo import models, fields, api
|
||||
from odoo.exceptions import ValidationError
|
||||
from odoo import _
|
||||
|
||||
|
||||
class ResPartner(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
bank_journal_id = fields.Many2one('account.journal', domain="[('type', '=', 'bank')]")
|
||||
bank_journal_id = fields.Many2one('account.journal', domain="[('type', '=', 'bank')]")
|
||||
|
||||
|
||||
@api.constrains('is_family', 'is_benefit', 'is_donor', 'is_sponsor_portal')
|
||||
def _check_family_beneficiary_exclusivity(self):
|
||||
for rec in self:
|
||||
is_family_or_beneficiary = rec.is_family or rec.is_benefit
|
||||
|
||||
is_donor_vendor_sponsor = rec.is_donor or rec.is_sponsor_portal or rec.is_vendor
|
||||
|
||||
if is_family_or_beneficiary and is_donor_vendor_sponsor:
|
||||
raise ValidationError(_("A contact cannot be both Family/Beneficiary and Donor/Member/Sponsor at the same time"))
|
||||
|
|
@ -239,7 +239,7 @@ class TakafulSponsor(models.Model):
|
|||
second_name = values.get('second_name')
|
||||
middle_name = values.get('middle_name')
|
||||
family_name = values.get('family_name')
|
||||
name = self.sponsor_title.browse(sponsor_title).name + " " + first_name + " " + second_name + " " + middle_name + " " + family_name
|
||||
name = f'{self.sponsor_title.browse(sponsor_title).name} {first_name} {second_name} {middle_name} {family_name}'
|
||||
values.update({'name': name})
|
||||
|
||||
values.update({'lang': 'ar_001'})
|
||||
|
|
@ -259,6 +259,10 @@ class TakafulSponsor(models.Model):
|
|||
res = res.sudo().create_user(res)
|
||||
|
||||
res.partner_id = res.user_id.partner_id.id
|
||||
res.partner_id.write({
|
||||
'is_sponsor_portal': True,
|
||||
'is_donor': True,
|
||||
})
|
||||
|
||||
return res
|
||||
|
||||
|
|
|
|||
|
|
@ -20,13 +20,13 @@
|
|||
<page string="Account Type">
|
||||
<group>
|
||||
<group>
|
||||
<field name="is_family" />
|
||||
<field name="is_sponsor_portal" />
|
||||
<field name="is_benefit" />
|
||||
<field name="is_family" readonly="1"/>
|
||||
<field name="is_sponsor_portal" readonly="1"/>
|
||||
<field name="is_benefit" readonly="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="is_vendor" />
|
||||
<field name="is_donor" />
|
||||
<field name="is_vendor" readonly="1"/>
|
||||
<field name="is_donor" readonly="1"/>
|
||||
</group>
|
||||
</group>
|
||||
</page>
|
||||
|
|
|
|||
Loading…
Reference in New Issue