diff --git a/odex25_benefit/odex_benefit/i18n/ar_001.po b/odex25_benefit/odex_benefit/i18n/ar_001.po index 3bcd9ced2..df9ee30cf 100644 --- a/odex25_benefit/odex_benefit/i18n/ar_001.po +++ b/odex25_benefit/odex_benefit/i18n/ar_001.po @@ -18530,3 +18530,14 @@ msgstr "يمكن طلب استثناء مؤقت" msgid "Exception Family Services Manager Approve" msgstr "اعتماد مديرة خدمات المستفيدين للاستثناء" +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_services_settings__allowed_country_ids +msgid "Allowed Countries" +msgstr "الجنسيات المسموح بها" + +#. module: odex_benefit +#: model:ir.model.fields,help:odex_benefit.field_services_settings__allowed_country_ids +msgid "" +"Countries where this service is available. Leave empty to allow all " +"countries." +msgstr "الجنسيات التي تتوفر فيها هذه الخدمة. اتركها فارغة للسماح بجميع الجنسيات." \ No newline at end of file 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 @@ +