diff --git a/odex25_benefit/odex_benefit/models/service_request.py b/odex25_benefit/odex_benefit/models/service_request.py index 2c6c607b5..4831b7a8a 100644 --- a/odex25_benefit/odex_benefit/models/service_request.py +++ b/odex25_benefit/odex_benefit/models/service_request.py @@ -1148,6 +1148,22 @@ class ServiceRequest(models.Model): domain = [('is_seasonal_service', '=', False), ('service_type', '!=', 'main_service'), ('benefit_category_ids', 'in', [rec.family_category.id])] + if rec.family_id: + mother_country = rec.family_id.mother_country_id + father_country = rec.family_id.father_country_id + + country_domain = [ + '|', + ('allowed_country_ids', '=', False), + '|', + ('allowed_country_ids', 'in', [mother_country.id] if mother_country else []), + ('allowed_country_ids', 'in', [father_country.id] if father_country else []) + ] + + allowed_services = self.env['services.settings'].search(country_domain) + + domain.append(('id', 'in', allowed_services.ids if allowed_services else [])) + if rec.family_id.property_type_id: if rec.family_id.property_type_code != 'ownership': domain.append(('service_type', '!=', 'home_restoration')) diff --git a/odex25_benefit/odex_benefit/models/services_settings.py b/odex25_benefit/odex_benefit/models/services_settings.py index bcf29558e..42ccee3cf 100644 --- a/odex25_benefit/odex_benefit/models/services_settings.py +++ b/odex25_benefit/odex_benefit/models/services_settings.py @@ -145,6 +145,14 @@ class ServicesSettings(models.Model): domain="[('model_id.model', '=', 'family.member')]", help="Select fields from the Member profile to display only when the service is for a member." ) + allowed_country_ids = fields.Many2many( + comodel_name='res.country', + relation='services_settings_country_rel', + column1='service_id', + column2='country_id', + string='Allowed Countries', + help='Countries where this service is available. Leave empty to allow all countries.' + ) @api.onchange('benefit_type') def _onchange_benefit_type(self): diff --git a/odex25_benefit/odex_benefit/views/services_settings.xml b/odex25_benefit/odex_benefit/views/services_settings.xml index 39a1dbc1d..745bc7fa6 100644 --- a/odex25_benefit/odex_benefit/views/services_settings.xml +++ b/odex25_benefit/odex_benefit/views/services_settings.xml @@ -25,6 +25,7 @@ +