[IMP] IMP benefit services
This commit is contained in:
parent
36b8eb29cb
commit
8b41a697bb
|
|
@ -16327,4 +16327,34 @@ msgstr "الحد الأقصى لعدد الأفراد"
|
|||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__amount_for_buy_home_for_member_count
|
||||
msgid "Amount For Buy Home for member count"
|
||||
msgstr "القيمة الإجمالية للمنزل"
|
||||
msgstr "القيمة الإجمالية للمنزل"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__max_health_care_amount
|
||||
msgid "Max Health Care Amount In Year"
|
||||
msgstr "حقل الحد الأقصى للخدمة في العام"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__member_max_payroll
|
||||
msgid "Member Max Payroll"
|
||||
msgstr "الحد الأقصى لراتب الفرد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__fatherless_member_amount
|
||||
msgid "Fatherless Member Amount"
|
||||
msgstr "مبلغ العضو الذي توفي والده"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__orphan_member_amount
|
||||
msgid "Orphan Member Amount"
|
||||
msgstr "مبلغ العضو فاقد الأبوين"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__member_age
|
||||
msgid "Member Age"
|
||||
msgstr "عمر العضو"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__is_orphan
|
||||
msgid "Orphaned (Both Parents Deceased)"
|
||||
msgstr "فاقد الأبوين"
|
||||
|
|
@ -168,8 +168,16 @@ class ServiceRequest(models.Model):
|
|||
currency_id = fields.Many2one('res.currency', string="Currency", related='company_id.currency_id')
|
||||
service_max_amount = fields.Float(string="Maximum Amount", copy=False)
|
||||
rent_period = fields.Integer('Rent Period')
|
||||
is_orphan = fields.Boolean(string='Orphaned (Both Parents Deceased)',compute='_compute_is_orphan',store=True)
|
||||
|
||||
|
||||
@api.depends('family_id.mother_marital_conf','family_id.replacement_mother_marital_conf')
|
||||
def _compute_is_orphan(self):
|
||||
for rec in self:
|
||||
if not rec.family_id.add_replacement_mother:
|
||||
mother_dead = bool(getattr(rec.family_id.mother_marital_conf, 'is_dead', False))
|
||||
else:
|
||||
mother_dead = bool(getattr(rec.family_id.replacement_mother_marital_conf, 'is_dead', False))
|
||||
rec.is_orphan = mother_dead
|
||||
|
||||
def _expand_states(self, states, domain, order):
|
||||
return [key for key, val in type(self).state.selection]
|
||||
|
|
@ -388,7 +396,7 @@ class ServiceRequest(models.Model):
|
|||
for rec in self:
|
||||
rec.eid_gift_benefit_count = 0
|
||||
if rec.family_id:
|
||||
rec.eid_gift_benefit_count = len(rec.family_id.member_ids.filtered(lambda x: x.age <= rec.service_cat.member_max_age))
|
||||
rec.eid_gift_benefit_count = len(rec.family_id.member_ids.filtered(lambda x: x.age <= rec.service_cat.max_age))
|
||||
|
||||
@api.onchange('requests_counts', 'service_type', 'service_reason_id')
|
||||
def _get_max_transportation_amounts(self):
|
||||
|
|
@ -483,12 +491,6 @@ class ServiceRequest(models.Model):
|
|||
@api.onchange('member_id','family_id','eid_gift_benefit_count','service_cat')
|
||||
def _onchange_member(self):
|
||||
for rec in self:
|
||||
if rec.benefit_type == 'member' and rec.service_type == 'marriage':
|
||||
rec.requested_service_amount = rec.service_cat.fatherless_member_amount
|
||||
if not rec.member_id.benefit_id.add_replacement_mother and rec.member_id.benefit_id.mother_marital_conf.is_dead:
|
||||
rec.requested_service_amount = rec.service_cat.orphan_member_amount
|
||||
if rec.member_id.benefit_id.add_replacement_mother and rec.member_id.benefit_id.replacement_mother_marital_conf.is_dead:
|
||||
rec.requested_service_amount = rec.service_cat.orphan_member_amount
|
||||
if rec.benefit_type == 'family' and rec.service_type == 'eid_gift':
|
||||
rec.requested_service_amount = rec.eid_gift_benefit_count * rec.service_cat.eid_gift_member_amount
|
||||
if rec.benefit_type == 'member' and rec.service_type == 'eid_gift':
|
||||
|
|
@ -711,10 +713,28 @@ class ServiceRequest(models.Model):
|
|||
existing_requests_within_year = self.search(domain)
|
||||
rec.service_max_amount = rec.service_cat.max_health_care_amount - sum(existing_requests_within_year.mapped('requested_service_amount'))
|
||||
|
||||
if rec.service_cat.service_type == 'marriage':
|
||||
rec.service_max_amount = rec.service_cat.fatherless_member_amount
|
||||
if rec.is_orphan:
|
||||
rec.service_max_amount = rec.service_cat.orphan_member_amount
|
||||
if rec.member_age > rec.service_cat.max_age:
|
||||
raise ValidationError(_( "Member Age should be less than %s ") % rec.service_cat.max_age)
|
||||
if rec.member_payroll > rec.service_cat.member_max_payroll:
|
||||
raise ValidationError(_("Member Payroll should be less than %s ") % rec.service_cat.member_max_payroll)
|
||||
if not rec.is_orphan and rec.requested_service_amount > rec.service_max_amount:
|
||||
raise ValidationError(_("You cannot request more than %s ") % rec.service_max_amount)
|
||||
if rec.is_orphan and rec.requested_service_amount > rec.service_max_amount:
|
||||
raise ValidationError(_("You cannot request more than %s ") % rec.service_max_amount)
|
||||
if rec.has_marriage_course == 'no':
|
||||
raise UserError(_("You Should take a course"))
|
||||
continue
|
||||
|
||||
if rec.requested_service_amount > rec.service_max_amount and service_type not in special_services:
|
||||
raise ValidationError(
|
||||
_("You cannot request more than %s") % rec.service_max_amount
|
||||
)
|
||||
|
||||
|
||||
# if rec.benefit_type == 'family' and rec.service_cat.service_type == 'electrical_devices':
|
||||
# Check for existing request of the same type in seven years and not exception or steal
|
||||
# existing_request = self.search([
|
||||
|
|
@ -753,34 +773,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 'member' benefit type with 'marriage' service type
|
||||
if rec.benefit_type == 'member' and rec.service_cat.service_type == 'marriage':
|
||||
if rec.member_age > rec.service_cat.member_max_age:
|
||||
self.benefit_type = False
|
||||
res['warning'] = {'title': _('ValidationError'),
|
||||
'message': _(
|
||||
"Member Age should be less than %s ") % rec.service_cat.member_max_age}
|
||||
return res
|
||||
if rec.member_payroll > rec.service_cat.member_max_payroll:
|
||||
self.benefit_type = False
|
||||
res['warning'] = {'title': _('ValidationError'),
|
||||
'message': _(
|
||||
"Member Payroll should be less than %s ") % rec.service_cat.member_max_payroll}
|
||||
return res
|
||||
if not rec.family_id.mother_marital_conf.is_dead and rec.requested_service_amount > rec.service_cat.fatherless_member_amount:
|
||||
self.benefit_type = False
|
||||
res['warning'] = {'title': _('ValidationError'),
|
||||
'message': _(
|
||||
"You cannot request more than %s ") % rec.service_cat.fatherless_member_amount}
|
||||
return res
|
||||
if rec.family_id.mother_marital_conf.is_dead and rec.requested_service_amount > rec.service_cat.orphan_member_amount:
|
||||
self.benefit_type = False
|
||||
res['warning'] = {'title': _('ValidationError'),
|
||||
'message': _(
|
||||
"You cannot request more than %s ") % rec.service_cat.orphan_member_amount}
|
||||
return res
|
||||
if rec.has_marriage_course == 'no':
|
||||
raise UserError(_("You Should take a course"))
|
||||
# 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:
|
||||
|
|
|
|||
|
|
@ -45,8 +45,6 @@ class ServicesSettings(models.Model):
|
|||
transportation_insurance_ids = fields.One2many('transportation.insurance', 'services_settings_id')
|
||||
#Health_care
|
||||
max_health_care_amount = fields.Float(string='Max Health Care Amount In Year')
|
||||
# Marriage
|
||||
member_max_age = fields.Integer(string='Member Max Age')
|
||||
member_max_payroll = fields.Float(string='Member Max Payroll')
|
||||
fatherless_member_amount = fields.Float(string='Fatherless Member Amount')
|
||||
orphan_member_amount = fields.Float(string='Orphan Member Amount')
|
||||
|
|
|
|||
|
|
@ -125,6 +125,7 @@
|
|||
<field name="member_id"
|
||||
attrs="{'invisible':[('benefit_type','!=','member')],'readonly':[('state','not in',['draft','researcher','send_request'])],'required':[('benefit_type','=','member')]}"/>
|
||||
<field name="member_age" attrs="{'invisible':[('benefit_type','!=','member')]}"/>
|
||||
<field name="member_payroll" attrs="{'invisible':[('service_type','!=','marriage')]}"/>
|
||||
<field name="account_id" invisible="1"/>
|
||||
<field name="device_account_id" invisible="1"/>
|
||||
<field name="accountant_id"
|
||||
|
|
@ -144,6 +145,7 @@
|
|||
<field name="service_cat"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"
|
||||
domain="[('id','in',available_service_cats)]" required="1"/>
|
||||
<field name="is_orphan" attrs="{'invisible':[('service_type', '!=', 'marriage')]}"/>
|
||||
<field name="service_approval_date"/>
|
||||
<field name="need_status"
|
||||
attrs="{'readonly':[('state','not in',['draft','researcher','send_request'])]}"/>
|
||||
|
|
@ -362,12 +364,6 @@
|
|||
<field name="requests_counts"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Marriage Service" attrs="{'invisible':[('service_type','!=','marriage')]}">
|
||||
<group>
|
||||
<field name="member_age"/>
|
||||
<field name="member_payroll"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Eligibility Criteria">
|
||||
<group>
|
||||
<field name="service_conditions"/>
|
||||
|
|
|
|||
|
|
@ -39,12 +39,20 @@
|
|||
attrs="{'invisible': ['|',('service_type','!=','health_care'),('max_limit_type', '!=', 'service')]}"/>
|
||||
<field name="min_count_member"
|
||||
attrs="{'invisible':[('service_type','!=','buy_car')]}"/>
|
||||
<field name="buy_home_max_total_amount" attrs="{'invisible':['|',('service_type','!=','buy_home'),('max_limit_type', '!=', 'amount_person')]}"/>
|
||||
<field name="home_age" attrs="{'invisible':['|',('service_type','!=','buy_home'),('max_limit_type', '!=', 'amount_person')]}"/>
|
||||
<field name="buy_home_max_total_amount"
|
||||
attrs="{'invisible':['|',('service_type','!=','buy_home'),('max_limit_type', '!=', 'amount_person')]}"/>
|
||||
<field name="home_age"
|
||||
attrs="{'invisible':['|',('service_type','!=','buy_home'),('max_limit_type', '!=', 'amount_person')]}"/>
|
||||
<field name="member_max_payroll"
|
||||
attrs="{'invisible':[('service_type','!=','marriage')]}"/>
|
||||
<field name="fatherless_member_amount"
|
||||
attrs="{'invisible':[('service_type','!=','marriage')]}"/>
|
||||
<field name="orphan_member_amount"
|
||||
attrs="{'invisible':[('service_type','!=','marriage')]}"/>
|
||||
<field name="currency_id" invisible="1"/>
|
||||
</group>
|
||||
<group>
|
||||
<field name="max_age"/>
|
||||
<field name="max_age" attrs="{'invisible': [('benefit_type', '=', 'family')]}"/>
|
||||
</group>
|
||||
</group>
|
||||
<group>
|
||||
|
|
@ -198,14 +206,6 @@
|
|||
</field>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Marriage Settings" attrs="{'invisible':[('service_type','!=','marriage')]}">
|
||||
<group>
|
||||
<field name="member_max_age"/>
|
||||
<field name="member_max_payroll"/>
|
||||
<field name="fatherless_member_amount"/>
|
||||
<field name="orphan_member_amount"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Eid Gift Settings" attrs="{'invisible':[('service_type','!=','eid_gift')]}">
|
||||
<group>
|
||||
<field name="eid_gift_max_age"/>
|
||||
|
|
|
|||
Loading…
Reference in New Issue