IMP benefit service

This commit is contained in:
younes 2025-10-12 14:34:04 +01:00
parent 5710dfcb9e
commit efe6a1518f
3 changed files with 31 additions and 22 deletions

View File

@ -18,8 +18,8 @@ class ServiceRequest(models.Model):
member_id = fields.Many2one('family.member',domain="[('benefit_id','=',family_id)]",string='Member')
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="[('is_main_service','=',True)]",string="Main Service Category")
sub_service_category = fields.Many2one('services.settings',domain="[('is_main_service','=',False),('service_type','=',False),('parent_service','=',main_service_category)]",string='Sub Service Category')
main_service_category = fields.Many2one('services.settings',domain="[('service_type','=','main_service')]",string="Main Service Category")
sub_service_category = fields.Many2one('services.settings',domain="[('service_type','=','main_service'),('service_type','=',False),('parent_service','=',main_service_category)]",string='Sub Service Category')
service_cat = fields.Many2one('services.settings',string='Service Cat.')
available_service_cats = fields.Many2many('services.settings', compute='_compute_available_service_cats', store=True)
service_attach = fields.Many2many('ir.attachment', 'rel_service_attachment_service_request', 'service_request_id','attachment_id', string='Service Attachment')
@ -169,6 +169,11 @@ class ServiceRequest(models.Model):
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)
has_money_for_payment_is_appearance = fields.Boolean(string='Has money Field is appearance?')
has_money_for_payment = fields.Selection([('yes', 'Yes'), ('no', 'No')], string='Has money for payment?')
has_money_to_pay_first_payment = fields.Selection([('yes', 'Yes'), ('no', 'No')],
string='Has money to pay first payment?')
has_money_field_is_appearance = fields.Boolean(string='Has money Field is appearance?')
@api.depends('family_id.mother_marital_conf','family_id.replacement_mother_marital_conf')
def _compute_is_orphan(self):
@ -491,16 +496,21 @@ 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 == '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':
rec.requested_service_amount = rec.service_cat.eid_gift_member_amount
if rec.benefit_type == 'family' and rec.service_type == 'winter_clothing':
rec.requested_service_amount = rec.benefit_member_count * rec.service_cat.winter_clothing_member_amount
if rec.benefit_type == 'member' and rec.service_type == 'winter_clothing':
rec.requested_service_amount = rec.service_cat.winter_clothing_member_amount
if rec.benefit_type == 'family' and rec.service_type == 'ramadan_basket':
rec.requested_service_amount = rec.service_cat.ramadan_basket_member_amount
if rec.family_id:
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':
rec.requested_service_amount = rec.service_cat.eid_gift_member_amount
if rec.benefit_type == 'family' and rec.service_type == 'winter_clothing':
rec.requested_service_amount = rec.benefit_member_count * rec.service_cat.winter_clothing_member_amount
if rec.benefit_type == 'member' and rec.service_type == 'winter_clothing':
rec.requested_service_amount = rec.service_cat.winter_clothing_member_amount
if rec.benefit_type == 'family' and rec.service_type == 'ramadan_basket':
rec.requested_service_amount = rec.service_cat.ramadan_basket_member_amount
else:
rec.member_id = False
rec.service_cat = False
rec.available_service_cats = False
@api.onchange('service_cat','family_id')

View File

@ -18,11 +18,11 @@
<field name="benefit_type" required="1"/>
<field name="allow_non_beneficiary" widget="boolean_toggle"/>
<field name="service_producer_id"
attrs="{'invisible':['|',('is_main_service','=',True),('is_service_producer','=',False)]}"/>
attrs="{'invisible':['|',('service_type','=','main_service'),('is_service_producer','=',False)]}"/>
</group>
<group>
<field name="service_category"/>
<field name="parent_service" attrs="{'invisible':[('is_main_service','=',True)]}"/>
<field name="parent_service" attrs="{'invisible':[('service_type','=','main_service')]}"/>
<field name="benefit_category_ids" widget="many2many_tags" required="1"/>
<field name="currency_id" groups="base.group_multi_currency"/>
<field name="company_id" groups="base.group_multi_company"/>
@ -72,23 +72,22 @@
</group>
<group>
<group>
<field name="is_main_service" widget="boolean_toggle"/>
<field name="is_main_service" invisible="1" widget="boolean_toggle"/>
<field name="is_service_producer" widget="boolean_toggle"
attrs="{'invisible':[('is_main_service','=',True)]}"/>
<field name="is_this_service_for_student" widget="boolean_toggle"
attrs="{'invisible':[('is_main_service','=',True)]}"/>
attrs="{'invisible':[('service_type','=','main_service')]}"/>
<field name="is_this_service_for_student" invisible="1" widget="boolean_toggle"/>
<field name="needs_beneficiary_manager_approval" widget="boolean_toggle"
attrs="{'invisible':[('is_main_service','=',True)]}"/>
attrs="{'invisible':[('service_type','=','main_service')]}"/>
</group>
<group>
<field name="required_attach" widget="boolean_toggle"
attrs="{'invisible':[('is_main_service','=',True)]}"/>
attrs="{'invisible':[('service_type','=','main_service')]}"/>
<field name="is_seasonal_service" widget="boolean_toggle"/>
<field name="show_in_portal" widget="boolean_toggle"/>
</group>
</group>
</page>
<page string="Accounts" attrs="{'invisible':[('is_main_service','=',True)]}">
<page string="Accounts" attrs="{'invisible':[('service_type','=','main_service')]}">
<group>
<group>
<field name="account_id"

View File

@ -6,7 +6,7 @@
<field name="model">services.settings</field>
<field name="inherit_id" ref="odex_benefit.services_settings_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='is_this_service_for_student']" position="after">
<xpath expr="//field[@name='is_service_producer']" position="after">
<field name="project_create" attrs="{'invisible':[('service_type','=','main_service')]}" widget="boolean_toggle"/>
<field name="category_id" attrs="{'invisible': ['|',('service_type','=','main_service'),('project_create', '=', False)]}"/>
</xpath>