diff --git a/odex25_benefit/odex_benefit/i18n/ar_001.po b/odex25_benefit/odex_benefit/i18n/ar_001.po index 846b6aa2d..68e19a4dc 100644 --- a/odex25_benefit/odex_benefit/i18n/ar_001.po +++ b/odex25_benefit/odex_benefit/i18n/ar_001.po @@ -9841,7 +9841,6 @@ 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__rent_attachment msgid "Rent Attachment" msgstr "مرفق عقد الإيجار" @@ -9852,14 +9851,12 @@ msgid "Rent Contract Information" 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__rent_contract_number msgid "Rent Contract Number" 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__rent_end_date msgid "Rent End Date" msgstr "تاريخ نهاية العقد" @@ -9891,7 +9888,6 @@ 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__rent_start_date msgid "Rent Start Date" msgstr "تاريخ بداية العقد" @@ -17356,14 +17352,6 @@ msgstr "" "\n" " الإجمالي" -#. module: odex_benefit -#: code:addons/odex_benefit/models/service_request.py:0 -#, python-format -msgid "" -"The Start Date and End Date must be within the Rent Start Date and Rent End " -"Date range." -msgstr "يجب أن يكون تاريخ البدء وتاريخ الانتهاء ضمن نطاق تاريخ بدء الإيجار وتاريخ انتهاء الإيجار." - #. module: odex_benefit #: code:addons/odex_benefit/models/service_request.py:0 #, python-format @@ -18135,3 +18123,16 @@ msgstr "رئيس العمليات" msgid "Exit Benefit Date" msgstr "تاريخ الخروج من الاستفادة" +#. module: odex_benefit +#: code:addons/odex_benefit/models/service_request.py:0 +#, python-format +msgid "" +"Requested rent period must be fully within the contract period because the " +"contract is fixed-term." +msgstr "يجب أن تكون فترة الإيجار المطلوبة بالكامل ضمن فترة العقد لأن العقد محدد المدة." + +#. module: odex_benefit +#: code:addons/odex_benefit/models/service_request.py:0 +#, python-format +msgid "Requested start date cannot be before the contract start date." +msgstr "لا يمكن أن يكون تاريخ البدء المطلوب قبل تاريخ بدء العقد." \ No newline at end of file diff --git a/odex25_benefit/odex_benefit/models/benefit_config.py b/odex25_benefit/odex_benefit/models/benefit_config.py index b8d022b9f..ce5a7d067 100644 --- a/odex25_benefit/odex_benefit/models/benefit_config.py +++ b/odex25_benefit/odex_benefit/models/benefit_config.py @@ -1040,9 +1040,4 @@ class RentContract(models.Model): def _onchange_landlord_type(self): for rec in self: if rec.landlord_type == 'family': - rec.member_id = False - - @api.onchange('contract_type') - def _onchange_contract_type(self): - if self.contract_type == 'unlimited': - self.end_date = False \ No newline at end of file + rec.member_id = False \ No newline at end of file diff --git a/odex25_benefit/odex_benefit/models/service_request.py b/odex25_benefit/odex_benefit/models/service_request.py index c35ac3e56..a91fc0269 100644 --- a/odex25_benefit/odex_benefit/models/service_request.py +++ b/odex25_benefit/odex_benefit/models/service_request.py @@ -76,13 +76,6 @@ class ServiceRequest(models.Model): rent_payment_date_exception = fields.Boolean(string='Rent Payment Date Exception?') start = fields.Date(string="Start Date") end = fields.Date(string='End Date') - # Rent details for member - member_rent_contract_number = fields.Char(string="Rent Contract Number") - member_rent_start_date = fields.Date(string='Rent Start Date') - member_rent_end_date = fields.Date(string='Rent End Date') - member_rent_attachment = fields.Many2many('ir.attachment', 'rel_member_rent_attachment_service_request', - 'service_request_id', - '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( @@ -488,7 +481,7 @@ class ServiceRequest(models.Model): raise UserError(_('You cannot delete this record')) return super(ServiceRequest, self).unlink() - @api.depends('family_id','member_id','benefit_type') + @api.depends('family_id', 'member_id', 'benefit_type') def _compute_rent_details(self): for rec in self: contract = False @@ -774,12 +767,35 @@ class ServiceRequest(models.Model): for rec in self: if rec.service_type != 'rent': continue - if rec.start and rec.end and rec.rent_start_date and rec.rent_end_date: - if not (rec.rent_start_date <= rec.start <= rec.rent_end_date and - rec.rent_start_date <= rec.end <= rec.rent_end_date): - raise UserError(_( - "The Start Date and End Date must be within the Rent Start Date and Rent End Date range." - )) + # if rec.start and rec.end and rec.rent_start_date and rec.rent_end_date: + # if not (rec.rent_start_date <= rec.start <= rec.rent_end_date and + # rec.rent_start_date <= rec.end <= rec.rent_end_date): + # raise UserError(_( + # "The Start Date and End Date must be within the Rent Start Date and Rent End Date range." + # )) + + contract = rec.family_id.current_rent_contract_id if rec.benefit_type == 'family' else False + if rec.benefit_type == 'member' and rec.member_id: + member_contracts = rec.family_id.rent_contract_ids.filtered( + lambda c: c.state == 'active' and c.member_id == rec.member_id and c.landlord_type == 'member' + ).sorted('start_date', reverse=True) + contract = member_contracts[:1] or False + + if contract: + if contract.contract_type == 'fixed': + if rec.start and rec.end and rec.rent_start_date and rec.rent_end_date: + if not (rec.rent_start_date <= rec.start <= rec.rent_end_date and + rec.rent_start_date <= rec.end <= rec.rent_end_date): + raise UserError( + _("Requested rent period must be fully within the contract period " + "because the contract is fixed-term.") + ) + else: + if rec.start and rec.rent_start_date: + if rec.start <= rec.rent_start_date: + raise UserError( + _("Requested start date cannot be before the contract start date.") + ) if rec.payment_type and rec.start and rec.end: months_map = { '1': 12, # yearly diff --git a/odex25_benefit/odex_benefit/views/benefit_config_view.xml b/odex25_benefit/odex_benefit/views/benefit_config_view.xml index 5b80deab7..0cb974216 100644 --- a/odex25_benefit/odex_benefit/views/benefit_config_view.xml +++ b/odex25_benefit/odex_benefit/views/benefit_config_view.xml @@ -43,7 +43,7 @@ - + @@ -1011,6 +1011,9 @@ + + + diff --git a/odex25_benefit/odex_benefit/views/service_request.xml b/odex25_benefit/odex_benefit/views/service_request.xml index 02b2af180..0f3c925e3 100644 --- a/odex25_benefit/odex_benefit/views/service_request.xml +++ b/odex25_benefit/odex_benefit/views/service_request.xml @@ -336,40 +336,19 @@ attrs="{'required':[('service_type','=','rent')]}"/> - - - - -