[IMP] odex_benefit: IMP odex_benefit

This commit is contained in:
younes 2025-12-03 18:08:45 +01:00
parent 123a83b727
commit 308c128498
6 changed files with 30 additions and 232 deletions

View File

@ -198,7 +198,6 @@
- `rent_amount`: مبلغ الإيجار
- `payment_type`: نوع الدفع
- `estimated_rent_amount`: المبلغ المقدر للإيجار
- `new_rent_contract`: عقد إيجار جديد؟
- **الحالة:**
- `state`: حالة الطلب (draft/researcher/waiting_approve/first_approve/family_services_manager/legal_department/projects_department/gm_assistant/accounting_approve/approval_of_beneficiary_services/send_request_to_supplier/family_received_device/refused)

View File

@ -2309,11 +2309,6 @@ msgstr "مؤهلات المستفيد"
msgid "Benefit Reject List"
msgstr "ملفات مرفوضة"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form
msgid "Benefit Rent Service Settings"
msgstr "إعدادات خدمة الإيجار للفرد"
#. module: odex_benefit
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
msgid "Benefit Replacement Mother"
@ -5796,7 +5791,6 @@ msgstr ""
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__2
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__new_payment_type__2
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__2
msgid "Half-yearly"
msgstr "نصف سنوي"
@ -7819,11 +7813,6 @@ msgstr "الحالة الاجتماعية"
msgid "Material"
msgstr "مواد"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__max_amount_for_student
msgid "Max Amount for Student"
msgstr "الحد الاقصى لإيجار الطالب"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_education_result__max_degree
msgid "Max Degree"
@ -8172,7 +8161,6 @@ msgstr "رقم الجوال"
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__benefit_club__programs_type__monthly
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__5
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__new_payment_type__5
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__5
#: model:ir.model.fields.selection,name:odex_benefit.selection__sport_line__Subtype__monthly
msgid "Monthly"
@ -9148,7 +9136,6 @@ msgstr "رموز السداد السرية"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_loans__payment_method_id
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__payment_type
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_payment_type
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__payment_type
msgid "Payment Type"
msgstr "نوع السداد"
@ -9502,7 +9489,6 @@ msgstr "الكمية في اليد"
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__4
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__new_payment_type__4
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__4
msgid "Quarterly"
msgstr "ربع سنوي"
@ -9847,7 +9833,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__new_rent_attachment
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_attachment
msgid "Rent Attachment"
msgstr "مرفق عقد الإيجار"
@ -9859,7 +9844,6 @@ 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 "رقم العقد"
@ -9867,7 +9851,6 @@ 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 "تاريخ نهاية العقد"
@ -9901,7 +9884,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__new_rent_start_date
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__rent_start_date
msgid "Rent Start Date"
msgstr "تاريخ بداية العقد"
@ -12301,7 +12283,6 @@ msgstr "سنة"
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__payment_type__1
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__new_payment_type__1
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__payment_type__1
msgid "Yearly"
msgstr "سنوي"
@ -15665,7 +15646,7 @@ msgstr "مبلغ حسب الفئة وعدد الأفراد"
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__max_limit_type__region
msgid "Amount by Region"
msgstr "مبلغ حسب المنطقة"
msgstr "مبلغ حسب الفئة + عدد الأفراد + المنطقة"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__max_limit_type
@ -15896,7 +15877,6 @@ msgstr "بإنتظار مساعد المدير العام"
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_expense_line__start_date
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__start_date
#: model:ir.model.fields,field_description:odex_benefit.field_family_bank_report_wizard__start_date
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_start
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__start
msgid "Start Date"
msgstr "تاريخ البداية"
@ -15906,7 +15886,6 @@ msgstr "تاريخ البداية"
#: model:ir.model.fields,field_description:odex_benefit.field_confirm_benefit_expense__end_date
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__end
#: model:ir.model.fields,field_description:odex_benefit.field_family_bank_report_wizard__end_date
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__new_end
msgid "End Date"
msgstr "تاريخ النهاية"
@ -16331,7 +16310,6 @@ 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 "استثناء في تاريخ دفع الإيجار؟"
@ -16341,26 +16319,11 @@ msgstr "استثناء في تاريخ دفع الإيجار؟"
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 "مبلغ دفع الإيجار الجديد"
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__state__gm_assistant
#: model:ir.model.fields.selection,name:odex_benefit.selection__seasonal_service__state__gm_assistant

View File

@ -71,27 +71,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')
# New Rent Contract
new_rent_contract = fields.Boolean(string='New Rent Contract?')
new_start = fields.Date(string="Start Date")
new_end = fields.Date(string='End Date')
new_rent_contract_number = fields.Char(string="Rent Contract Number")
new_rent_start_date = fields.Date(string='Rent Start Date')
new_rent_end_date = fields.Date(string='Rent End Date')
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'),
('4', 'Quarterly'),
('5', 'Monthly')
],
string='Payment Type'
)
new_rent_attachment = fields.Many2many('ir.attachment', 'rel_rent_attachment_service_request', 'service_request_id',
'attachment_id', string='Rent Attachment')
new_rent_payment_date = fields.Date(string='Rent Payment Date')
new_rent_payment_date_exception = fields.Boolean(string='Rent Payment Date Exception?')
# Rent details for member
member_rent_contract_number = fields.Char(string="Rent Contract Number")
member_rent_start_date = fields.Date(string='Rent Start Date')
@ -320,71 +299,11 @@ class ServiceRequest(models.Model):
@api.model
def create(self, vals):
# Define the list of fields to check
new_rent_fields = [
'new_rent_contract_number',
'new_rent_start_date',
'new_rent_end_date',
'new_rent_amount',
'new_payment_type',
'new_rent_attachment'
]
res = super(ServiceRequest, self).create(vals)
if not res.name or res.name == _('New'):
res.name = self.env['ir.sequence'].sudo().next_by_code('service.request.sequence') or _('New')
# Check if any of the specified fields are present in vals
if any(field in vals for field in new_rent_fields) and vals['new_rent_contract']:
if res.family_id:
# Prepare values for family_id write
update_values = {}
if 'new_rent_contract_number' in vals:
update_values['contract_num'] = vals['new_rent_contract_number']
if 'new_rent_start_date' in vals:
update_values['rent_start_date'] = vals['new_rent_start_date']
if 'new_rent_end_date' in vals:
update_values['rent_end_date'] = vals['new_rent_end_date']
if 'new_rent_amount' in vals:
update_values['rent_amount'] = vals['new_rent_amount']
if 'new_payment_type' in vals:
update_values['payment_type'] = vals['new_payment_type']
if 'new_rent_attachment' in vals:
update_values['rent_attachment'] = vals['new_rent_attachment']
# 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',
'new_payment_type', 'new_rent_attachment']
result = super(ServiceRequest, self).write(vals)
update_values = {}
if any(field in vals for field in new_rent_fields) and self.new_rent_contract:
for record in self:
# Ensure family_id exists before proceeding
if record.family_id:
# Prepare values for family_id write
update_values = {}
# Add fields to update_values only if they exist in vals
if 'new_rent_contract_number' in vals:
update_values['contract_num'] = vals['new_rent_contract_number']
if 'new_rent_start_date' in vals:
update_values['rent_start_date'] = vals['new_rent_start_date']
if 'new_rent_end_date' in vals:
update_values['rent_end_date'] = vals['new_rent_end_date']
if 'new_rent_amount' in vals:
update_values['rent_amount'] = vals['new_rent_amount']
if 'new_payment_type' in vals:
update_values['payment_type'] = vals['new_payment_type']
if 'new_rent_attachment' in vals:
update_values['rent_attachment'] = vals['new_rent_attachment']
# Write the prepared update values to `family_id`
record.family_id.write(update_values)
return result
def unlink(self):
for request in self:
if request.state not in ['draft']:
@ -394,7 +313,6 @@ class ServiceRequest(models.Model):
@api.depends('family_id')
def _compute_rent_details(self):
for rec in self:
# Compute values only if they are not already set
if rec.family_id:
if not rec.rent_contract_number:
rec.rent_contract_number = rec.family_id.contract_num
@ -453,8 +371,8 @@ class ServiceRequest(models.Model):
rec.estimated_rent_amount_payment = 0.0
if rec.estimated_rent_amount and rec.payment_type:
rec.estimated_rent_amount_payment = rec.estimated_rent_amount / int(rec.payment_type)
if rec.estimated_rent_amount and rec.new_payment_type:
rec.estimated_rent_amount_payment = rec.estimated_rent_amount / int(rec.new_payment_type)
if rec.estimated_rent_amount:
rec.estimated_rent_amount_payment = rec.estimated_rent_amount
def _get_rent_amount_payment(self):
for rec in self:
@ -463,13 +381,6 @@ class ServiceRequest(models.Model):
else:
rec.rent_amount_payment = 0.0
def _get_new_rent_amount_payment(self):
for rec in self:
if rec.new_rent_amount and rec.new_payment_type:
rec.new_rent_amount_payment = rec.new_rent_amount / int(rec.new_payment_type)
else:
rec.new_rent_amount_payment = 0.0
def _get_paid_rent_amount(self):
for rec in self:
rec.paid_rent_amount = min(rec.estimated_rent_amount_payment, rec.requested_service_amount)
@ -651,18 +562,14 @@ class ServiceRequest(models.Model):
'target': 'new',
}
@api.onchange('rent_payment_date', 'new_rent_payment_date')
@api.onchange('rent_payment_date')
def onchange_rent_payment_date(self):
today_date = fields.Date.today()
for rec in self:
if rec.rent_payment_date and not rec.rent_payment_date_exception and not rec.new_rent_payment_date:
if rec.rent_payment_date and not rec.rent_payment_date_exception:
month_before_rent_payment_date = rec.rent_payment_date - timedelta(days=30)
if today_date > month_before_rent_payment_date:
raise UserError(_("You Should request At least a month ago rent payment date"))
if rec.new_rent_payment_date and not rec.new_rent_payment_date_exception:
new_month_before_rent_payment_date = rec.new_rent_payment_date - timedelta(days=30)
if today_date > new_month_before_rent_payment_date:
raise UserError(_("You Should request At least a month ago rent payment date"))
@api.onchange('furnishing_items_ids')
def _onchange_home_furnishing_cost(self):
@ -682,7 +589,8 @@ class ServiceRequest(models.Model):
@api.onchange('service_cat', 'family_id')
def _onchange_service_cat(self):
if self.service_cat.service_type == 'rent' and self.family_id.property_type != 'rent' and self.family_id.property_type != 'rent_shared' and self.benefit_type == 'family':
if self.service_cat.service_type == 'rent' and self.family_id.property_type not in ['rent',
'rent_shared'] and self.benefit_type == 'family':
raise UserError(_("You cannot benefit from this service (property type not rent)"))
@api.onchange(
@ -895,6 +803,19 @@ class ServiceRequest(models.Model):
rec.service_cat.limit_person_line_ids.filtered(
lambda
x: x.min_count_member <= rec.benefit_member_count <= x.max_count_member)).amount or 0
elif max_limit_type == 'region':
if rec.branch_custom_id.branch_type == 'branches':
field_name = 'estimated_rent_branches'
else:
field_name = 'estimated_rent_governorate'
rent_lines = rec.service_cat.rent_lines.filtered(
lambda x: x.benefit_category_id.id == rec.family_category.id
and x.benefit_count == rec.benefit_member_count
)
if rent_lines:
rec.service_max_amount = min(rent_lines.mapped(field_name))
else:
rec.service_max_amount = 0.0
if rec.max_limit_period:
if rec.max_limit_period == "month":
@ -951,26 +872,6 @@ class ServiceRequest(models.Model):
_("You cannot request more than %s") % rec.service_max_amount
)
# Validation for 'member' benefit type
if rec.benefit_type == 'member' and rec.service_cat.service_type == 'rent':
max_requested_amount = rec.service_cat.max_amount_for_student
if rec.requested_service_amount > max_requested_amount:
self.benefit_type = False
res['warning'] = {'title': _('ValidationError'),
'message': _("You cannot request more than %s") % max_requested_amount}
return res
# Validation for 'family' benefit type
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'rent':
rent_line_id = rec.service_cat.rent_lines.filtered(
lambda r: r.benefit_category_id.id == rec.family_category.id \
and r.benefit_count == rec.benefit_member_count
)
max_requested_amount = rent_line_id.estimated_rent_branches if rec.branch_custom_id.branch_type == 'branches' else rent_line_id.estimated_rent_governorate
if rec.requested_service_amount > max_requested_amount:
self.benefit_type = False
res['warning'] = {'title': _('ValidationError'),
'message': _("You cannot request more than %s") % max_requested_amount}
return res
if rec.benefit_type == 'family' and rec.service_cat.service_type == 'alternative_housing' and not rec.providing_alternative_housing_based_rent:
if rec.requested_service_amount > rec.service_cat.rent_amount_for_alternative_housing:
raise UserError(
@ -978,16 +879,6 @@ class ServiceRequest(models.Model):
elif rec.rent_period > rec.service_cat.rent_period:
raise UserError(
_("You Cannot request this service for period more than %s") % rec.service_cat.rent_period)
# Validation for 'family' benefit type with 'eid_gift' service type
# if rec.benefit_type == 'family' and rec.service_cat.service_type == 'eid_gift':
# if rec.eid_gift_benefit_count == 0:
# raise UserError(
# _("You cannot request this service because family should have members his age less than %s") % rec.service_cat.max_age)
# Validation for 'member' benefit type with 'eid_gift' service type
# if rec.benefit_type == 'member' and rec.service_cat.service_type == 'eid_gift':
# if rec.member_id.age > rec.service_cat.max_age:
# raise UserError(
# _("You cannot request this service because your age should be less than %s") % rec.service_cat.max_age)
@api.onchange('member_id')
def onchange_member_id(self):
@ -995,23 +886,15 @@ class ServiceRequest(models.Model):
if rec.member_id and rec.service_type == 'rent' and not rec.member_id.member_location_conf.is_far_from_family:
raise UserError(_("You Cannot request Service if you not study inside Saudi Arabia"))
@api.onchange('start', 'end', 'rent_start_date', 'rent_end_date', 'new_start', 'new_end', 'new_rent_start_date',
'new_rent_end_date', 'new_rent_contract')
@api.onchange('start', 'end', 'rent_start_date', 'rent_end_date')
def _check_date_range(self):
for rec in self:
# Ensure both start and end dates are set
if rec.start and rec.end and rec.rent_start_date and rec.rent_end_date and not rec.new_rent_contract:
# Check if `start` and `end` are within `rent_start_date` and `rent_end_date`
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.new_start and rec.new_end and rec.new_rent_start_date and rec.new_rent_end_date and rec.new_rent_contract:
# Check if `start` and `end` are within `rent_start_date` and `rent_end_date`
if not (rec.new_rent_start_date <= rec.new_start <= rec.new_rent_end_date and
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.depends('family_category')
def _compute_available_service_cats(self):

View File

@ -22,7 +22,6 @@ class ServicesSettings(models.Model):
('winter_clothing','Winter clothing'),('ramadan_basket','Ramadan basket'),('natural_disasters','Natural disasters'),
('legal_arguments','Legal arguments'),('buy_home','Buy Home'),('main_service','Main Service'),('normal_service', 'Normal Service')]
,string='Service Type')
max_amount_for_student = fields.Float(string='Max Amount for Student')
raise_amount_for_orphan = fields.Float(string='Raise Amount For Orphan')
rent_lines = fields.One2many('rent.lines','services_settings_id')
attachment_lines = fields.One2many('service.attachments.settings','service_id')

View File

@ -325,7 +325,8 @@
<br/>
<field name="rent_payment_date_exception" widget="boolean_toggle"/>
<field name="rent_payment_date"
attrs="{'required':[('service_type','=','rent'),('new_rent_contract','=',False)]}"/>
attrs="{'required':[('service_type','=','rent')]}"/>
<!--Family Rent-->
<field name="rent_contract_number"
attrs="{'invisible':[('benefit_type','!=','family')]}"
force_save="1"/>
@ -348,6 +349,7 @@
<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"/>
@ -361,9 +363,6 @@
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"/>
@ -375,45 +374,6 @@
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)]}">
<group>
<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','waiting_approve'])]}"/>
<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','waiting_approve'])]}"/>
</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')]}"/>
</group>
<group>
</group>
</group>
</sheet>
</form>
</page>

View File

@ -36,6 +36,8 @@
<field name="max_limit_type"/>
<field name="max_amount"
attrs="{'invisible': [('max_limit_type', '!=', 'fixed')]}"/>
<field name="raise_amount_for_orphan"
attrs="{'invisible':['|',('service_type','!=','rent'),('benefit_type','!=','member')]}"/>
<field name="min_count_member"
attrs="{'invisible':[('service_type','!=','buy_car')]}"/>
<field name="buy_home_max_total_amount"
@ -123,25 +125,17 @@
</field>
</page>
<page string="Family Rent Service Settings"
attrs="{'invisible':[('service_type','!=','rent')]}">
attrs="{'invisible':['|',('service_type','!=','rent'),('benefit_type','!=','family')]}">
<field name="rent_lines" widget="one2many_list">
<tree editable="bottom">
<field name="benefit_category_id"/>
<field name="benefit_count"/>
<field name="estimated_rent_branches"/>
<field name="estimated_rent_governorate"/>
<!-- <field name="is_shared_housing"/>-->
<field name="discount_rate_shared_housing"/>
</tree>
</field>
</page>
<page string="Benefit Rent Service Settings"
attrs="{'invisible':[('service_type','!=','rent')]}">
<group>
<field name="max_amount_for_student"/>
<field name="raise_amount_for_orphan"/>
</group>
</page>
<page string="Amounts by Categories"
attrs="{'invisible':[('max_limit_type', '!=', 'category')]}">
<field name="category_amount_lines" widget="one2many_list">