From 7944857ef003f316ce329e3f6add4ed019aa3023 Mon Sep 17 00:00:00 2001 From: younes Date: Mon, 20 Oct 2025 12:33:58 +0100 Subject: [PATCH] [IMP] odex_benefit: Service Request Beneficiary Type --- odex25_ensan/odex_benefit/i18n/ar_001.po | 5 --- .../odex_benefit/models/service_request.py | 32 +++++++------------ .../odex_benefit/models/services_settings.py | 2 +- .../odex_benefit/views/service_request.xml | 4 +-- 4 files changed, 13 insertions(+), 30 deletions(-) diff --git a/odex25_ensan/odex_benefit/i18n/ar_001.po b/odex25_ensan/odex_benefit/i18n/ar_001.po index 660766127..1c34c65cd 100644 --- a/odex25_ensan/odex_benefit/i18n/ar_001.po +++ b/odex25_ensan/odex_benefit/i18n/ar_001.po @@ -15880,11 +15880,6 @@ msgstr "شروط الاستحقاق" msgid "Family Service Receipt" msgstr "الاستلام الاسرة للخدمة" -#. module: odex_benefit -#: model:ir.model.fields.selection,name:odex_benefit.selection__services_settings__benefit_type__both -msgid "Both" -msgstr "مشترك" - #. module: odex_benefit #: model:ir.model.fields,field_description:odex_benefit.field_services_settings__allow_non_beneficiary msgid "Allow Non Beneficiary" diff --git a/odex25_ensan/odex_benefit/models/service_request.py b/odex25_ensan/odex_benefit/models/service_request.py index 392df0d07..35d2310c9 100644 --- a/odex25_ensan/odex_benefit/models/service_request.py +++ b/odex25_ensan/odex_benefit/models/service_request.py @@ -10,7 +10,7 @@ class ServiceRequest(models.Model): name = fields.Char(string='Reference', required=True, copy=False, readonly=True, index=True,default=lambda self: _('New')) benefit_type = fields.Selection(string='Benefit Type',selection=[('family', 'Family'),('member', 'Member')]) date = fields.Datetime(string='Request Date',default=fields.Datetime.now) - family_id = fields.Many2one('grant.benefit',string='Family',domain="['|',('state','=','gm_assistant'),'&',('state','in',['waiting_approve','first_approve']),('action_type','=','suspended')]") + family_id = fields.Many2one('grant.benefit',string='Family',domain="['|',('state','=','second_approve'),'&',('state','in',['waiting_approve','first_approve']),('action_type','=','suspended')]") researcher_id = fields.Many2one("committees.line", string="Researcher", related="family_id.researcher_id",store=True) family_category = fields.Many2one('benefit.category',string='Family Category',related='family_id.benefit_category_id') benefit_member_count = fields.Integer(string="Benefit Member count", related='family_id.benefit_member_count') @@ -533,6 +533,7 @@ class ServiceRequest(models.Model): def _onchange_member(self): for rec in self: if rec.family_id: + rec.benefit_type = rec.service_cat.benefit_type 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': @@ -853,28 +854,17 @@ class ServiceRequest(models.Model): raise UserError( "The Start Date and End Date must be within the Rent Start Date and Rent End Date range.") - @api.depends('family_category','member_id') + @api.depends('family_category') def _compute_available_service_cats(self): for rec in self: - if rec.benefit_type: - if rec.benefit_type == 'family': - domain = [('service_type', '!=', 'main_service'),('benefit_type','!=','member'),('benefit_category_ids', 'in', [rec.family_category.id])] - if rec.family_id.property_type not in ['ownership','ownership_shared','charitable']: - domain.append(('service_type','!=','home_restoration')) - else: - domain.append(('service_type', '!=', 'buy_home')) - rec.available_service_cats = rec.available_service_cats.sudo().search(domain) - elif rec.benefit_type == 'member' and rec.member_id: - domain = [ - ('service_type', '!=', 'main_service'), - ('benefit_type', '!=', 'family'), - ('benefit_category_ids', 'in', [rec.family_category.id]) - ] - if rec.member_id.member_status != 'benefit': - domain.append(('allow_non_beneficiary','=',True)) - rec.available_service_cats = rec.available_service_cats.sudo().search(domain) - else: - rec.available_service_cats = False + domain = [('service_type', '!=', 'main_service'),('benefit_category_ids', 'in', [rec.family_category.id])] + if rec.family_id.property_type not in ['ownership','ownership_shared','charitable']: + domain.append(('service_type','!=','home_restoration')) + 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: diff --git a/odex25_ensan/odex_benefit/models/services_settings.py b/odex25_ensan/odex_benefit/models/services_settings.py index 178936366..321187b83 100644 --- a/odex25_ensan/odex_benefit/models/services_settings.py +++ b/odex25_ensan/odex_benefit/models/services_settings.py @@ -7,7 +7,7 @@ class ServicesSettings(models.Model): _order = 'service_number' service_name = fields.Char(string='Service Name') - benefit_type = fields.Selection(string='Benefit Type', selection=[('family', 'Family'), ('member', 'Member'), ('both', 'Both')],default='both') + benefit_type = fields.Selection(string='Benefit Type', selection=[('family', 'Family'), ('member', 'Member')]) parent_service = fields.Many2one('services.settings',string='Parent Service') is_main_service = fields.Boolean(string='Is Main Service?') is_service_producer = fields.Boolean(string='Is Service Producer?') diff --git a/odex25_ensan/odex_benefit/views/service_request.xml b/odex25_ensan/odex_benefit/views/service_request.xml index cceb1aad8..e553f2e49 100644 --- a/odex25_ensan/odex_benefit/views/service_request.xml +++ b/odex25_ensan/odex_benefit/views/service_request.xml @@ -170,9 +170,7 @@ - +