diff --git a/odex25_benefit/odex_benefit/i18n/ar_001.po b/odex25_benefit/odex_benefit/i18n/ar_001.po
index 2f7483c5a..8305d40d2 100644
--- a/odex25_benefit/odex_benefit/i18n/ar_001.po
+++ b/odex25_benefit/odex_benefit/i18n/ar_001.po
@@ -18368,14 +18368,6 @@ msgid ""
"specialization."
msgstr "أكبر من %s سنة وغير منتظم بتخصص علمي أو مهني."
-#. module: odex_benefit
-#: code:addons/odex_benefit/models/family_members.py:0
-#, python-format
-msgid ""
-"The member is over %s years old and not enrolled in a scientific or "
-"vocational specialization."
-msgstr "أكبر من %s سنة وغير منتظم بتخصص علمي أو مهني."
-
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit.py:0
#, python-format
@@ -18498,19 +18490,6 @@ msgstr "الإجراء غير مسموح: الأسرة لديها %s فرد مس
msgid "Governmental/Paid"
msgstr "حكومي /مقابل مادي"
-#. module: odex_benefit
-#: code:addons/odex_benefit/models/family_members.py:0
-#: code:addons/odex_benefit/models/family_members.py:0
-#, python-format
-msgid "She is over %s years of age and has no underage brothers."
-msgstr "تجاوزت عمر %s وليس لديها اخوة قصر"
-
-#. module: odex_benefit
-#: code:addons/odex_benefit/models/family_members.py:0
-#, python-format
-msgid "She is over %s years of age."
-msgstr "تجاوزت عمر %s"
-
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_location_settings__replacement_mother_is_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_marital_status__replacement_mother_is_benefit
diff --git a/odex25_benefit/odex_benefit/models/family_members.py b/odex25_benefit/odex_benefit/models/family_members.py
index f3bb20b68..344f64eec 100644
--- a/odex25_benefit/odex_benefit/models/family_members.py
+++ b/odex25_benefit/odex_benefit/models/family_members.py
@@ -617,6 +617,17 @@ class FamilyMemberProfile(models.Model):
benefiting_children = rec.benefit_id.member_ids.filtered(
lambda m: m.relationn.relation_type in ['son', 'daughter'] and m.member_status == 'benefit'
)
+ has_benefiting_son = any(
+ m.relationn.relation_type == 'son' and m.member_status == 'benefit'
+ for m in rec.benefit_id.member_ids
+ )
+ has_younger_benefiting_daughter = any(
+ m.relationn.relation_type == 'daughter'
+ and m.member_status == 'benefit'
+ and m.age < female_benefit_age
+ for m in rec.benefit_id.member_ids
+ if m.id != rec.id
+ )
if rec.relationn.relation_type == 'mother':
if not benefiting_children:
@@ -638,7 +649,8 @@ class FamilyMemberProfile(models.Model):
# Gender-specific checks
elif rec.relationn.relation_type == 'son':
if age_exceeded:
- if rec.age <= exceptional_age_has_disabilities and rec.disabilities_attachment_ids and rec.minor_siblings:
+ if rec.age <= exceptional_age_has_disabilities and rec.disabilities_attachment_ids and (
+ has_benefiting_son or has_younger_benefiting_daughter):
rec.member_status = 'benefit'
else:
if rec.age > exceptional_age_has_disabilities and rec.disabilities_attachment_ids:
@@ -651,18 +663,12 @@ class FamilyMemberProfile(models.Model):
_("Over %s years old and not enrolled in any educational institution.") % male_benefit_age
)
elif current_education_status_id.case_study == 'continuous':
- if current_education_status_id.specialization_ids.is_scientific_specialty and rec.age >= exceptional_age_scientific_specialty:
+ if rec.age >= exceptional_age_scientific_specialty:
rec.member_status = 'non_benefit'
reasons.append(
_("Over %s years old and not enrolled in a scientific or vocational specialization.")
% exceptional_age_scientific_specialty
)
- if not current_education_status_id.specialization_ids.is_scientific_specialty:
- rec.member_status = 'non_benefit'
- reasons.append(
- _("The member is over %s years old and not enrolled in a scientific or vocational specialization.")
- % male_benefit_age
- )
if rec.is_work:
if rec.member_income > max_income_for_benefit:
rec.member_status = 'non_benefit'
@@ -694,17 +700,15 @@ class FamilyMemberProfile(models.Model):
rec.member_status = 'non_benefit'
reasons.append(_("She is employed and not enrolled in an educational institution."))
if age_exceeded:
- if rec.age > minor_siblings_age and not rec.minor_siblings:
+ if has_benefiting_son or has_younger_benefiting_daughter:
+ rec.member_status = 'benefit'
+ else:
rec.member_status = 'non_benefit'
reasons.append(
- _("She is over %s years of age and has no underage brothers.") % female_benefit_age)
- elif not rec.minor_siblings:
- rec.member_status = 'non_benefit'
- reasons.append(
- _("She is over %s years of age and has no underage brothers.") % female_benefit_age)
- elif rec.minor_siblings and rec.age > minor_siblings_age:
- rec.member_status = 'non_benefit'
- reasons.append(_("She is over %s years of age.") % minor_siblings_age)
+ _("She exceeded the age limit (%s) and has no benefiting son "
+ "nor any younger benefiting daughter.")
+ % female_benefit_age
+ )
if rec.is_work and rec.member_income > max_income_for_benefit:
rec.member_status = 'non_benefit'
reasons.append(_("She works with a salary greater than %s.") % max_income_for_benefit)
diff --git a/odex25_benefit/odex_benefit/views/benefit_view.xml b/odex25_benefit/odex_benefit/views/benefit_view.xml
index 4cc7bb68c..be02fb3bf 100644
--- a/odex25_benefit/odex_benefit/views/benefit_view.xml
+++ b/odex25_benefit/odex_benefit/views/benefit_view.xml
@@ -528,7 +528,8 @@