[IMP] odex_benefit: IMP benefit
This commit is contained in:
parent
4923e2f20c
commit
6621c4fd13
|
|
@ -5043,7 +5043,6 @@ msgstr "الالتزامات"
|
|||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__account_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__device_account_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__account_id
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_transportation_insurance__account_id
|
||||
msgid "Expenses Account"
|
||||
msgstr "حساب المصروف"
|
||||
|
||||
|
|
@ -14195,17 +14194,6 @@ msgid "Exception or steal Attachment"
|
|||
msgstr "مرفق إثبات حالات الاستثناء"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__service_reason_id
|
||||
msgid "Service Reason"
|
||||
msgstr "سبب الخدمة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__max_amount
|
||||
msgid "Max Transportation Amount"
|
||||
msgstr "الحد الأعلى للنقل"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__transportation_insurance_ids
|
||||
#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__service_type__transportation_insurance
|
||||
msgid "Transportation Insurance"
|
||||
msgstr "تأمين مواصلات"
|
||||
|
|
@ -14215,26 +14203,11 @@ msgstr "تأمين مواصلات"
|
|||
msgid "Price Unit"
|
||||
msgstr "سعر الوحدة"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_transportation_insurance__name
|
||||
msgid "Insurance Name"
|
||||
msgstr "اسم التأمين"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_transportation_insurance__limit_amount
|
||||
msgid "Limit Amount"
|
||||
msgstr "الحد الأعلى للمبلغ"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_tree
|
||||
msgid "Request Creator"
|
||||
msgstr "منشئ الطلب"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_service_request__requests_counts
|
||||
msgid "Requests Counts"
|
||||
msgstr "عدد الطلبات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__is_family_member
|
||||
msgid "Is Family member?"
|
||||
|
|
@ -16084,16 +16057,6 @@ msgstr "من 5"
|
|||
msgid "Mini Count Member"
|
||||
msgstr "الحد الأقصى لعدد الأفراد"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form
|
||||
msgid "Transportation Insurance Settings"
|
||||
msgstr "إعدادات تأمين المواصلات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.service_request_form
|
||||
msgid "Transportation Insurance Service"
|
||||
msgstr "تأمين مواصلات"
|
||||
|
||||
#. module: odex_benefit
|
||||
#: model_terms:ir.ui.view,arch_db:odex_benefit.services_settings_form
|
||||
msgid "Home furnishing Settings"
|
||||
|
|
@ -16261,7 +16224,6 @@ msgstr "لا يمكنك طلب هذه الخدمة أكثر من مرة."
|
|||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
#: code:addons/odex_benefit/models/service_request.py:0
|
||||
#, python-format
|
||||
msgid "You cannot request more than %s"
|
||||
msgstr "لا يمكنك طلب أكثر من %s"
|
||||
|
|
|
|||
|
|
@ -23,7 +23,9 @@ class ServiceRequest(models.Model):
|
|||
benefit_member_count = fields.Integer(string="Benefit Member count", related='family_id.benefit_member_count')
|
||||
branch_custom_id = fields.Many2one('branch.settings', string="Branch", related='family_id.branch_custom_id',
|
||||
store=True)
|
||||
member_id = fields.Many2one('family.member', domain="[('benefit_id','=',family_id)]", string='Member')
|
||||
member_id = fields.Many2one('family.member', string='Member')
|
||||
member_domain_ids = fields.Many2many(comodel_name='family.member', compute='_compute_member_domain_and_count',
|
||||
string="Eligible Members",store=True)
|
||||
description = fields.Char(string='Description')
|
||||
need_status = fields.Selection(string='Need Status', selection=[('urgent', 'urgent'), ('not_urgent', 'Not urgent')])
|
||||
main_service_category = fields.Many2one('services.settings', domain="[('service_type','=','main_service')]",
|
||||
|
|
@ -143,16 +145,6 @@ class ServiceRequest(models.Model):
|
|||
# Home furnishing Exception
|
||||
home_furnishing_exception = fields.Boolean(string='Exception(Fire Or Steal or Natural disaster)')
|
||||
furnishing_items_ids = fields.One2many('home.furnishing.items', 'service_request_id', string="Furnishing Items")
|
||||
# Transportation insurance
|
||||
# service_reason = fields.Selection(selection=[
|
||||
# ('government_transportation', 'Government Transportation'),
|
||||
# ('universities_training_institutes_transportation', 'Universities Training Institutes Transportation'),
|
||||
# ('hospitals_transportation', 'Hospitals Transportation'),
|
||||
# ('programs_transportation', 'Programs Transportation'),
|
||||
# ], string='Service Reason')
|
||||
service_reason_id = fields.Many2one('transportation.insurance')
|
||||
max_amount = fields.Float(string='Max Transportation Amount')
|
||||
requests_counts = fields.Integer(string='Requests Counts', default=1)
|
||||
# Marriage
|
||||
member_age = fields.Integer(string="Member Age", related="member_id.age")
|
||||
member_payroll = fields.Float(string="Member Payroll", related="member_id.member_income")
|
||||
|
|
@ -160,7 +152,7 @@ class ServiceRequest(models.Model):
|
|||
('yes', 'Yes'),
|
||||
('no', 'No'),
|
||||
], string='Has Marriage Course')
|
||||
service_benefit_count = fields.Integer(string='Service Benefit Count', compute="_compute_service_benefit_count")
|
||||
service_benefit_count = fields.Integer(string='Service Benefit Count', compute="_compute_member_domain_and_count")
|
||||
# Buy home
|
||||
amount_for_buy_home_for_member_count = fields.Float(string="Amount For Buy Home for member count")
|
||||
home_age = fields.Integer(string='Home Age')
|
||||
|
|
@ -302,13 +294,11 @@ class ServiceRequest(models.Model):
|
|||
def _expand_states(self, states, domain, order):
|
||||
return [key for key, val in type(self).state.selection]
|
||||
|
||||
@api.depends('service_cat', 'service_reason_id')
|
||||
# TODO: remove this method
|
||||
@api.depends('service_cat')
|
||||
def _compute_account_id(self):
|
||||
for rec in self:
|
||||
if rec.service_type == 'transportation_insurance':
|
||||
rec.account_id = rec.service_reason_id.account_id
|
||||
else:
|
||||
rec.account_id = rec.service_cat.account_id
|
||||
rec.account_id = rec.service_cat.account_id
|
||||
|
||||
@api.depends('service_cat')
|
||||
def _compute_attachment_lines(self):
|
||||
|
|
@ -505,20 +495,44 @@ class ServiceRequest(models.Model):
|
|||
rec.rent_for_alternative_housing = False
|
||||
|
||||
@api.depends('family_id', 'service_cat')
|
||||
def _compute_service_benefit_count(self):
|
||||
def _compute_member_domain_and_count(self):
|
||||
for rec in self:
|
||||
if not rec.family_id:
|
||||
rec.member_domain_ids = False
|
||||
rec.service_benefit_count = 1
|
||||
continue
|
||||
|
||||
family_members = rec.family_id.member_ids
|
||||
benefit_members = family_members.filtered(lambda m: m.member_status == 'benefit')
|
||||
count = 1
|
||||
|
||||
if rec.benefit_type == "family":
|
||||
count = len(rec.family_id.member_ids.filtered(lambda m: m.member_status == 'benefit'))
|
||||
count_members = benefit_members
|
||||
if rec.service_cat.max_age > 0:
|
||||
count = len(
|
||||
rec.family_id.member_ids.filtered(lambda x: x.age <= rec.service_cat.max_age))
|
||||
count_members = family_members.filtered(
|
||||
lambda m: m.age <= rec.service_cat.max_age
|
||||
)
|
||||
|
||||
count = len(count_members)
|
||||
|
||||
rec.service_benefit_count = count
|
||||
|
||||
@api.onchange('requests_counts', 'service_type', 'service_reason_id')
|
||||
def _get_max_transportation_amounts(self):
|
||||
for rec in self:
|
||||
rec.max_amount = rec.requests_counts * rec.service_reason_id.limit_amount
|
||||
domain_members = family_members
|
||||
|
||||
if rec.service_cat:
|
||||
sc = rec.service_cat
|
||||
if not sc.allow_non_beneficiary:
|
||||
domain_members = benefit_members
|
||||
if sc.is_this_service_for_student:
|
||||
domain_members = domain_members.filtered(
|
||||
lambda m: (
|
||||
m.education_status == 'educated'
|
||||
and any(edu.case_study == 'continuous'
|
||||
for edu in m.member_education_status_ids)
|
||||
)
|
||||
)
|
||||
|
||||
rec.member_domain_ids = domain_members
|
||||
|
||||
def action_send_to_researcher(self):
|
||||
for rec in self:
|
||||
|
|
@ -681,7 +695,6 @@ class ServiceRequest(models.Model):
|
|||
'home_furnishing_exception',
|
||||
'has_marriage_course',
|
||||
'home_age',
|
||||
'service_reason_id',
|
||||
'device_id',
|
||||
'requested_quantity',
|
||||
'amount_for_buy_home_for_member_count',
|
||||
|
|
@ -904,11 +917,6 @@ class ServiceRequest(models.Model):
|
|||
elif rec.max_limit_period == "recurrence_period":
|
||||
pass
|
||||
|
||||
if service_type == 'transportation_insurance':
|
||||
if rec.service_reason_id and rec.requested_service_amount > rec.max_amount:
|
||||
raise ValidationError(_("You cannot request more than %s"))
|
||||
continue
|
||||
|
||||
if rec.service_cat.service_type == 'marriage':
|
||||
if rec.member_id.relationn.relation_type == 'son' and not rec.member_id.is_work:
|
||||
raise ValidationError(_("This service is not eligible because the son is not working."))
|
||||
|
|
@ -1014,8 +1022,6 @@ class ServiceRequest(models.Model):
|
|||
else:
|
||||
domain.append(('service_type', '!=', 'buy_home'))
|
||||
rec.available_service_cats = rec.available_service_cats.sudo().search(domain)
|
||||
# if rec.member_id.member_status != 'benefit':
|
||||
# domain.append(('allow_non_beneficiary','=',True))
|
||||
|
||||
def action_set_to_draft(self):
|
||||
for rec in self:
|
||||
|
|
|
|||
|
|
@ -41,8 +41,6 @@ class ServicesSettings(models.Model):
|
|||
max_furnishing_amount_if_exception = fields.Float(string='Max Furnishing Amount (Exception)')
|
||||
bill_lines = fields.One2many('bill.lines', 'services_settings_id')
|
||||
min_count_member = fields.Integer(string='Mini Count Member')
|
||||
#Transportation insurance
|
||||
transportation_insurance_ids = fields.One2many('transportation.insurance', 'services_settings_id')
|
||||
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')
|
||||
|
|
@ -186,17 +184,4 @@ class ServiceLimitByPersonLine(models.Model):
|
|||
min_count_member = fields.Integer(string='Minimum Number of Persons')
|
||||
max_count_member = fields.Integer(string='Maximum Number of Persons')
|
||||
amount = fields.Float(string='Amount')
|
||||
services_settings_id = fields.Many2one('services.settings', string='Services Settings')
|
||||
|
||||
class TransportationInsurance(models.Model):
|
||||
_name = 'transportation.insurance'
|
||||
|
||||
services_settings_id = fields.Many2one('services.settings')
|
||||
name = fields.Char(string="Insurance Name", required=True)
|
||||
limit_amount = fields.Float(required=True)
|
||||
account_id = fields.Many2one(
|
||||
'account.account',
|
||||
string='Expenses Account',
|
||||
domain="[('user_type_id.id', '=', 15)]",
|
||||
required=True
|
||||
)
|
||||
services_settings_id = fields.Many2one('services.settings', string='Services Settings')
|
||||
|
|
@ -152,7 +152,6 @@ access_location_settings,access_location_settings,model_location_settings,base.g
|
|||
access_service_refuse_reason,access_service_refuse_reason,model_service_refuse_reason,base.group_user,1,1,1,1
|
||||
access_service_refuse_reason_wizard,access_service_refuse_reason_wizard,model_service_refuse_reason_wizard,base.group_user,1,1,1,1
|
||||
access_reason_for_return_wizard,access_reason_for_return_wizard,model_reason_for_return_wizard,base.group_user,1,1,1,1
|
||||
access_transportation_insurance,access_transportation_insurance,model_transportation_insurance,base.group_user,1,1,1,1
|
||||
access_job_settings,access_job_settings,model_job_settings,base.group_user,1,0,0,0
|
||||
access_job_settings_manager,access_job_settings.manager,model_job_settings,odex_benefit.group_benefit_manager,1,1,1,1
|
||||
access_death_reason_settings,access_death_reason_settings,model_death_reason_settings,base.group_user,1,0,0,0
|
||||
|
|
|
|||
|
|
|
@ -209,7 +209,8 @@
|
|||
<field name="service_benefit_count"
|
||||
attrs="{'invisible':['|',('service_type','!=','eid_gift'),('benefit_type','!=','family')]}"/>
|
||||
<field name="branch_custom_id" force_save="1"/>
|
||||
<field name="member_id"
|
||||
<field name="member_domain_ids" invisible="1" widget="many2many_tags"/>
|
||||
<field name="member_id" domain="[('id', 'in', member_domain_ids)]"
|
||||
attrs="{'invisible':[('benefit_type','!=','member')],'readonly':[('state','not in',['draft','researcher','waiting_approve'])],'required':[('benefit_type','=','member')]}"/>
|
||||
<field name="is_orphan" attrs="{'invisible':[('service_type', '!=', 'marriage')]}"/>
|
||||
<field name="member_age" attrs="{'invisible':[('benefit_type','!=','member')]}"/>
|
||||
|
|
@ -458,15 +459,6 @@
|
|||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Transportation Insurance Service"
|
||||
attrs="{'invisible':[('service_type', '!=', 'transportation_insurance')]}">
|
||||
<group>
|
||||
<field name="service_reason_id"
|
||||
options="{'no_create': True, 'no_open': True, 'no_create_edit': True}"/>
|
||||
<field name="max_amount" readonly="1" force_save="1"/>
|
||||
<field name="requests_counts"/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Eligibility Criteria">
|
||||
<group>
|
||||
<field name="service_conditions"/>
|
||||
|
|
|
|||
|
|
@ -105,8 +105,11 @@
|
|||
</page>
|
||||
<page string="Eligibility Criteria"
|
||||
attrs="{'invisible':[('service_type','=','main_service')]}">
|
||||
<group>
|
||||
<field name="service_conditions"/>
|
||||
<group col="1" colspan="2">
|
||||
<field name="service_conditions"
|
||||
nolabel="1"
|
||||
placeholder="Enter eligibility conditions..."
|
||||
/>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Services Attachments"
|
||||
|
|
@ -199,18 +202,6 @@
|
|||
</tree>
|
||||
</field>
|
||||
</page>
|
||||
<page string="Transportation Insurance Settings"
|
||||
attrs="{'invisible':[('service_type','!=','transportation_insurance')]}">
|
||||
<group>
|
||||
<field name="transportation_insurance_ids" options="{'no_open': True}">
|
||||
<tree editable="bottom">
|
||||
<field name="name"/>
|
||||
<field name="limit_amount"/>
|
||||
<field name="account_id"/>
|
||||
</tree>
|
||||
</field>
|
||||
</group>
|
||||
</page>
|
||||
<page string="Amounts by Number of Persons"
|
||||
attrs="{'invisible':[('max_limit_type', '!=', 'amount_person')]}">
|
||||
<field name="limit_person_line_ids" widget="one2many_list">
|
||||
|
|
|
|||
Loading…
Reference in New Issue