[IMP] odex_benefit: IMP benefit

This commit is contained in:
younes 2025-12-25 13:38:37 +01:00
parent f0612b8803
commit 089a96aa19
5 changed files with 35 additions and 46 deletions

View File

@ -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 "تاريخ بداية العقد"

View File

@ -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
rec.member_id = False

View File

@ -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

View File

@ -43,7 +43,7 @@
<group>
<field name="is_benefit" string="Is Benefit" widget="boolean_toggle"/>
</group>
<group>
<group invisible="1">
<field name="expenses_ids">
<tree editable="bottom">
<field name="category_id" invisible="1"/>
@ -1011,6 +1011,9 @@
<tree>
<field name="branch" context="{'hierarchical_naming': False}"/>
<field name="branch_type"/>
<field name="manager_id"/>
<field name="operation_manager_id"/>
<field name="has_employees"/>
</tree>
</field>
</record>

View File

@ -336,40 +336,19 @@
attrs="{'required':[('service_type','=','rent')]}"/>
<!--Family Rent-->
<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"/>
<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"/>
<!--Member Rent-->
<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"/>
</group>
<group attrs="{'invisible':[('benefit_type','!=','family')]}">