From 6f86a53af0d47d3e978c4a696bddd5affb303011 Mon Sep 17 00:00:00 2001 From: eman Date: Sun, 24 Nov 2024 22:07:39 +0200 Subject: [PATCH] Marriage Service --- .../odex_benefit/models/service_request.py | 14 +++++++++++++- .../odex_benefit/models/services_settings.py | 7 ++++++- .../odex_benefit/views/service_request.xml | 6 ++++++ .../odex_benefit/views/services_settings.xml | 10 +++++++++- .../models/service_request.py | 16 +++++++++++++++- 5 files changed, 49 insertions(+), 4 deletions(-) diff --git a/odex25_ensan/odex_benefit/models/service_request.py b/odex25_ensan/odex_benefit/models/service_request.py index 3d5673ef3..3a380102c 100644 --- a/odex25_ensan/odex_benefit/models/service_request.py +++ b/odex25_ensan/odex_benefit/models/service_request.py @@ -112,6 +112,9 @@ class ServiceRequest(models.Model): max_hospitals_transportation_amount = fields.Float(string='Max Hospitals Transportation Amount') max_programs_transportation_amount = fields.Float(string='Max Programs 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") state = fields.Selection( selection = [ ('draft', 'Draft'), ('researcher', 'Researcher'), @@ -406,6 +409,15 @@ class ServiceRequest(models.Model): furnishing_cost_sum += rec.furnishing_cost self.requested_service_amount = furnishing_cost_sum + @api.onchange('member_id') + def _onchange_member(self): + for rec in self: + if rec.member_id: + 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 @api.onchange('service_cat','family_id') def _onchange_service_cat(self): electricity_bill_amount = self.service_cat.electricity_bill_lines.filtered(lambda x : x.benefit_category_id.id == self.family_category.id and x.max_count_member > self.benefit_member_count > x.min_count_member ) @@ -758,7 +770,7 @@ class ServiceRequest(models.Model): # '|', '|', # ('rent_lines.benefit_category_id', 'in', [self.family_category.id]), # ('home_restoration_lines.benefit_category_id', 'in', [self.family_category.id]), - # ('benefit_category_ids', 'in', [self.family_category.id]), + ('benefit_category_ids', 'in', [self.family_category.id]), ('is_main_service', '=', False), ('service_type', '!=', False), ('parent_service', '=', self.sub_service_category.id), diff --git a/odex25_ensan/odex_benefit/models/services_settings.py b/odex25_ensan/odex_benefit/models/services_settings.py index 887a6e5f6..61d3fe976 100644 --- a/odex25_ensan/odex_benefit/models/services_settings.py +++ b/odex25_ensan/odex_benefit/models/services_settings.py @@ -16,7 +16,7 @@ class ServicesSettings(models.Model): ,('electricity_bill','Electricity bill'),('water_bill','Water bill'),('buy_car','Buy Car'),('recruiting_driver','Recruiting Driver') ,('transportation_insurance','Transportation Insurance'),('debits','Debits'),('health_care','Health Care'), ('providing_medicines_medical_devices_and_needs_the_disabled','Providing Medicines Medical Devices And Needs The Disabled'), - ('recruiting_domestic_worker_or_nurse','Recruiting a domestic worker or nurse')] + ('recruiting_domestic_worker_or_nurse','Recruiting a domestic worker or nurse') ,('marriage','Marriage')] ,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') @@ -59,6 +59,11 @@ class ServicesSettings(models.Model): max_health_care_amount = fields.Float(string='Max Health Care Amount In Year') #recruiting_domestic_worker_or_nurse max_recruiting_domestic_worker_or_nurse_amount = fields.Float(string='Max Recruiting Domestic Worker Or Nurse Care Amount') + # 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') class RentLines(models.Model): _name = 'rent.lines' diff --git a/odex25_ensan/odex_benefit/views/service_request.xml b/odex25_ensan/odex_benefit/views/service_request.xml index 23e76610e..ac3f0495e 100644 --- a/odex25_ensan/odex_benefit/views/service_request.xml +++ b/odex25_ensan/odex_benefit/views/service_request.xml @@ -227,6 +227,12 @@ + + + + + +
diff --git a/odex25_ensan/odex_benefit/views/services_settings.xml b/odex25_ensan/odex_benefit/views/services_settings.xml index 40b39d38b..8d0d13769 100644 --- a/odex25_ensan/odex_benefit/views/services_settings.xml +++ b/odex25_ensan/odex_benefit/views/services_settings.xml @@ -172,7 +172,15 @@ - + + + + + + + + + diff --git a/odex25_ensan/odex_benefit_project/models/service_request.py b/odex25_ensan/odex_benefit_project/models/service_request.py index 989ef85ab..86d4b8d6b 100644 --- a/odex25_ensan/odex_benefit_project/models/service_request.py +++ b/odex25_ensan/odex_benefit_project/models/service_request.py @@ -44,7 +44,7 @@ class ServiceRequestInherit(models.Model): date_before_month = today - timedelta(days=30) for rec in self: # Validation for 'member' benefit type - if rec.benefit_type == 'member' and rec.requested_service_amount: + 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 @@ -322,3 +322,17 @@ class ServiceRequestInherit(models.Model): 'message': _( "You cannot request more than %s within year") % rec.service_cat.max_recruiting_domestic_worker_or_nurse_amount} return res + 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 +