From aabe1646a44fc69f80d70994d56498f8b31b50a7 Mon Sep 17 00:00:00 2001 From: younes Date: Sun, 12 Oct 2025 20:38:03 +0100 Subject: [PATCH] IMP benefit --- .../models/service_settings.py | 55 +------------------ .../views/service_settings.xml | 2 +- odex25_ensan/odex_benefit/i18n/ar_001.po | 41 ++++++++++++++ .../odex_benefit/models/service_request.py | 6 +- .../odex_benefit/views/services_settings.xml | 13 +++-- 5 files changed, 54 insertions(+), 63 deletions(-) diff --git a/odex25_ensan/odex25_empowermentmanagement/models/service_settings.py b/odex25_ensan/odex25_empowermentmanagement/models/service_settings.py index 3e7242c58..732c3c09c 100644 --- a/odex25_ensan/odex25_empowermentmanagement/models/service_settings.py +++ b/odex25_ensan/odex25_empowermentmanagement/models/service_settings.py @@ -9,7 +9,7 @@ class ServicesSettings(models.Model): help='Link the service to an HR department' ) hr_department_id = fields.Many2one( - 'hr.department', string='Linked Department', readonly=True + 'hr.department', string='Linked Department' ) manager_id = fields.Many2one( 'hr.employee', string='Manager', @@ -29,59 +29,6 @@ class ServicesSettings(models.Model): ]) - @api.model - def create(self, vals): - service = super().create(vals) - if service.linked_to_department: - dept = self.env['hr.department'].search([('name', '=', service.service_name)], limit=1) - if not dept: - dept = self.env['hr.department'].create({ - 'name': service.service_name, - 'department_type': 'unit', - 'manager_id': service.manager_id.id, - - 'service_link_id': service.id - }) - service.hr_department_id = dept.id - return service - - def write(self, vals): - res = super().write(vals) - for service in self: - # If linked_to_department field updated - if 'linked_to_department' in vals: - if service.linked_to_department and not service.hr_department_id: - # Create department if missing - dept = self.env['hr.department'].search([('name', '=', service.service_name)], limit=1) - if not dept: - dept = self.env['hr.department'].create({ - 'name': service.service_name, - 'department_type': 'unit', - 'manager_id': service.manager_id.id, - 'service_link_id': service.id - }) - service.hr_department_id = dept.id - elif not service.linked_to_department and service.hr_department_id: - # Remove linked department if no dependencies (employees or requests) - hr_dept = service.hr_department_id - empowerment_request = self.env['empowerment.request'].search([('department_id', '=', hr_dept.id)], limit=1) - if hr_dept.employee_ids or empowerment_request: - raise ValidationError(_('لا يمكن فك الربط، قسم الموارد البشرية مرتبط بموظفين أو طلبات.')) - hr_dept.unlink() - service.hr_department_id = False - return res - - def unlink(self): - for service in self: - if service.linked_to_department and service.hr_department_id: - hr_dept = service.hr_department_id - empowerment_request = self.env['empowerment.request'].search([('department_id', '=', hr_dept.id)], limit=1) - if hr_dept.employee_ids or empowerment_request: - raise ValidationError(_('لا يمكن حذف الخدمة، القسم مرتبط بموظفين أو طلبات.')) - hr_dept.unlink() - return super().unlink() - - class HrDepartment(models.Model): _inherit = 'hr.department' diff --git a/odex25_ensan/odex25_empowermentmanagement/views/service_settings.xml b/odex25_ensan/odex25_empowermentmanagement/views/service_settings.xml index 2b03c7bce..ba486678f 100644 --- a/odex25_ensan/odex25_empowermentmanagement/views/service_settings.xml +++ b/odex25_ensan/odex25_empowermentmanagement/views/service_settings.xml @@ -9,7 +9,7 @@ - + diff --git a/odex25_ensan/odex_benefit/i18n/ar_001.po b/odex25_ensan/odex_benefit/i18n/ar_001.po index 1126be14c..b88182677 100644 --- a/odex25_ensan/odex_benefit/i18n/ar_001.po +++ b/odex25_ensan/odex_benefit/i18n/ar_001.po @@ -9854,6 +9854,7 @@ msgstr "احتساب قيمة الإيجار" #. module: odex_benefit #: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__rent_attachment #: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_attachment +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_attachment #: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_attachment msgid "Rent Attachment" msgstr "مرفق عقد الإيجار" @@ -9865,6 +9866,7 @@ msgstr "معلومات عقد الإيجار" #. module: odex_benefit #: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_contract_number +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_contract_number #: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_contract_number msgid "Rent Contract Number" msgstr "رقم العقد" @@ -9872,6 +9874,7 @@ msgstr "رقم العقد" #. module: odex_benefit #: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__rent_end_date #: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_end_date +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_end_date #: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_end_date msgid "Rent End Date" msgstr "تاريخ نهاية العقد" @@ -9905,6 +9908,7 @@ msgstr "سكن مشترك إيجار" #. module: odex_benefit #: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__rent_start_date #: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_rent_start_date +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_start_date #: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_start_date msgid "Rent Start Date" msgstr "تاريخ بداية العقد" @@ -10077,6 +10081,7 @@ msgstr "" #. module: odex_benefit #: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__required_attach +#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__required_attach msgid "Required Attach" msgstr "ملفات مطلوبة" @@ -16382,3 +16387,39 @@ msgstr "عمر العضو" #: model:ir.model.fields,field_description:odex_benefit.field_service_request__is_orphan msgid "Orphaned (Both Parents Deceased)" msgstr "فاقد الأبوين" + +#. module: odex_benefit +#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form +msgid "Services Attachments" +msgstr "المستندات المطلوبة" + +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_payment_date_exception +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_payment_date_exception +msgid "Rent Payment Date Exception?" +msgstr "استثناء في تاريخ دفع الإيجار؟" + +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_amount_payment +msgid "Rent Amount Payment" +msgstr "مبلغ دفع الإيجار" + +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_contract +msgid "New Rent Contract?" +msgstr "عقد إيجار جديد؟" + +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__estimated_rent_amount_payment +msgid "Estimated Rent Amount Payment" +msgstr "المبلغ التقديري لدفع الإيجار" + +#. module: odex_benefit +#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form +msgid "New Rent Contract Information" +msgstr "معلومات عقد الإيجار الجديد" + +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_rent_amount_payment +msgid "New Rent Amount Payment" +msgstr "مبلغ دفع الإيجار الجديد" \ No newline at end of file diff --git a/odex25_ensan/odex_benefit/models/service_request.py b/odex25_ensan/odex_benefit/models/service_request.py index 39c9cf119..8bf664528 100644 --- a/odex25_ensan/odex_benefit/models/service_request.py +++ b/odex25_ensan/odex_benefit/models/service_request.py @@ -564,7 +564,7 @@ class ServiceRequest(models.Model): interval = rec.service_cat.recurrence_interval or 1 period = rec.service_cat.recurrence_period or 'months' max_limit_type = rec.service_cat.max_limit_type - special_services = ['home_furnishing', 'electrical_devices'] + special_services = ['home_furnishing', 'electrical_devices','rent','alternative_housing'] if rec.service_cat.service_type == 'buy_car': if rec.family_id.has_car: raise ValidationError(_("You cannot request this service because you have a car.")) @@ -867,7 +867,7 @@ class ServiceRequest(models.Model): ids.append(rec.id) default_service_ids = ids service_requests = self.env['service.request'].browse(ids) - if any(request.state not in 'accounting_approve' for request in service_requests): + if any(request.state not in 'send_request_to_supplier' for request in service_requests): raise UserError(_("All selected requests should be in Accounting Approve state")) if any(request.payment_order_id for request in service_requests): raise UserError(_("All selected requests should be not has payment order")) @@ -887,7 +887,7 @@ class ServiceRequest(models.Model): ids.append(rec.id) service_requests = self.env['service.request'].browse(ids) service_producer_id = self.env['service.request'].search([('id','=',ids[0])],limit=1) - if any(request.state not in 'family_received_device' for request in service_requests): + if any(request.state not in 'approval_of_beneficiary_services' for request in service_requests): raise UserError(_("All selected requests should be in Family Received Device state")) if any(request.vendor_bill for request in service_requests): raise UserError(_("All selected requests should be not has Vendor Bill")) diff --git a/odex25_ensan/odex_benefit/views/services_settings.xml b/odex25_ensan/odex_benefit/views/services_settings.xml index b67bf0278..7cce4b9c8 100644 --- a/odex25_ensan/odex_benefit/views/services_settings.xml +++ b/odex25_ensan/odex_benefit/views/services_settings.xml @@ -22,14 +22,15 @@ - + - + @@ -75,7 +76,8 @@ - + @@ -98,7 +100,7 @@ - + @@ -242,8 +244,9 @@ services.settings.tree services.settings - + +