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')]}"/>
-
-
-
-
-