IMP benefit

This commit is contained in:
younes 2025-09-02 08:36:09 +01:00
parent be746a56b5
commit 7c4caeefe5
9 changed files with 11 additions and 144 deletions

View File

@ -180,8 +180,6 @@
<field name="is_work" attrs="{'invisible':[('age','&lt;',18)]}"/>
<field name="member_income"
attrs="{'invisible':[('age','&lt;',18)], 'required':[('is_work','=',True), ('age','>=',18)]}"/>
<field name="need_transportation"/>
<field name="has_disabilities"/>
<field name="minor_siblings"/>
<field name="sponsor_id"/>
<field name="is_excluded_suspension" readonly="1" force_save="1"/>
@ -206,8 +204,6 @@
<field name="age_status"/>
<field name="is_married"
attrs="{'invisible':[('is_mother','=',True)]}"/>
<field name="is_alhaju" widget="radio"/>
<field name="is_amra" widget="radio"/>
<field name="mother_marital_conf"
attrs="{'invisible':[('is_mother','=',False)]}"
options="{'no_create': True, 'no_create_edit': True}"

View File

@ -419,8 +419,6 @@
<field name="is_work" attrs="{'invisible':[('age','&lt;',18)]}"/>
<field name="member_income"
attrs="{'invisible':[('age','&lt;',18)], 'required':[('is_work','=',True), ('age','>=',18)]}"/>
<field name="need_transportation"/>
<field name="has_disabilities"/>
<field name="minor_siblings"/>
<field name="sponsor_id"/>
<field name="is_excluded_suspension" readonly="1" force_save="1"/>
@ -445,8 +443,6 @@
<field name="age_status"/>
<field name="is_married"
attrs="{'invisible':[('is_mother','=',True)]}"/>
<field name="is_alhaju" widget="radio"/>
<field name="is_amra" widget="radio"/>
<field name="mother_marital_conf"
attrs="{'invisible':[('is_mother','=',False)]}"
options="{'no_create': True, 'no_create_edit': True}"

View File

@ -1885,11 +1885,6 @@ msgstr "اعدادات المرفقات"
msgid "Attendees"
msgstr "الحضور"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__is_food_basket
msgid "Audhea"
msgstr "أضحية"
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__suspend_method__auto
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__suspend_method__auto
@ -4058,16 +4053,6 @@ msgstr "نوع هوية الأم البديلة "
msgid "National Address Attachment"
msgstr "مرفق العنوان الوطني"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__has_othaim_family_number
msgid "Has Othaim family number?"
msgstr "هل يوجد رقم عائلة العثيم؟ "
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__othaim_family_number
msgid "Othaim family number"
msgstr "رقم عائلة العثيم"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__request_producer_relation
msgid "Request Producer Relation"
@ -5791,11 +5776,6 @@ msgstr "معلقة"
msgid "Has Car?"
msgstr "الأسرة لديها سيارة؟"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__has_disabilities
msgid "Has Disabilities?"
msgstr "هل لديه إعاقة؟"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__has_needs
msgid "Has Needs"
@ -6177,18 +6157,6 @@ msgstr "لا يمكن تكرار رقم الهوية مع الأم او الأم
msgid "IM Status"
msgstr "حالة المحادثات الفورية"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__is_alhaju
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__replacement_is_alhaju
msgid "IS Hajj"
msgstr "هل قامت الأم بأداء الحج؟"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__is_amra
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__replacement_is_amra
msgid "IS Umra"
msgstr "هل قامت الأم بأداء العمرة؟"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__iban_attach
msgid "Iban Attach"
@ -7989,11 +7957,6 @@ msgstr "اسم العائلة"
msgid "Member First Name"
msgstr "الاسم الأول"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__is_alhaju
msgid "Member Hajj"
msgstr "هل قام بأداء الحج؟"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__member_id_number
msgid "Member Id Number"
@ -8039,11 +8002,6 @@ msgstr "الاسم الثاني"
msgid "Member Third Name"
msgstr "الاسم الثالث"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__is_amra
msgid "Member Umra"
msgstr "هل قام بأداء العمرة؟"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_benefit_housing_rooms__members_ids
#: model_terms:ir.ui.view,arch_db:odex_benefit.grant_benefit_form
@ -8525,11 +8483,6 @@ msgstr ""
msgid "Need Status"
msgstr "حالة الاحتياج"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__need_transportation
msgid "Need Transportation?"
msgstr "هل يحتاج إلى مواصلات؟"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_needs__need_type_ids
msgid "Need Type"
@ -8677,12 +8630,6 @@ msgid "Next Activity Type"
msgstr "نوع النشاط التالي"
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__is_alhaju__no
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__is_amra__no
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__is_alhaju__no
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__is_amra__no
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__replacement_is_alhaju__no
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__replacement_is_amra__no
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_marriage_course__no
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_money_for_payment__no
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_money_to_pay_first_payment__no
@ -12319,12 +12266,6 @@ msgid "Yearly Visit Workflow Scheduler"
msgstr ""
#. module: odex_benefit
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__is_alhaju__yes
#: model:ir.model.fields.selection,name:odex_benefit.selection__family_member__is_amra__yes
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__is_alhaju__yes
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__is_amra__yes
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__replacement_is_alhaju__yes
#: model:ir.model.fields.selection,name:odex_benefit.selection__grant_benefit__replacement_is_amra__yes
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_marriage_course__yes
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_money_for_payment__yes
#: model:ir.model.fields.selection,name:odex_benefit.selection__service_request__has_money_to_pay_first_payment__yes
@ -12396,11 +12337,6 @@ msgstr "لا يمكنك حذف هذا السجل"
msgid "You have address"
msgstr ""
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__is_zakat_fitr
msgid "Zakat Al-Fitr"
msgstr "هل الأسرة بحاجة إلى الزكاة؟"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_benefits_representative__zip
#: model:ir.model.fields,field_description:odex_benefit.field_external_benefits__zip

View File

@ -367,13 +367,8 @@ class GrantBenefitProfile(models.Model):
is_want_education = fields.Boolean(string='is Want Education', required=False)
is_quran_memorize = fields.Boolean('memorize the quran ?')
is_craft = fields.Boolean(string='')
is_alhaju = fields.Selection(string='IS Hajj', selection=[('yes', 'Yes'), ('no', 'No')])
is_amra = fields.Selection(string='IS Umra', selection=[('yes', 'Yes'), ('no', 'No')])
is_zakat_fitr = fields.Boolean(string='Zakat Al-Fitr')
is_food_basket = fields.Boolean(string='Audhea')
has_car= fields.Boolean('Has Car?')
has_othaim_family_number = fields.Boolean('Has Othaim family number?')
othaim_family_number = fields.Char(string="Othaim family number")
is_producer = fields.Boolean(string='Producer')
is_food_surplus = fields.Boolean(string='food surplus')
is_loans = fields.Boolean('loans')
@ -533,8 +528,6 @@ class GrantBenefitProfile(models.Model):
('benefit', 'Benefit'),
('non_benefit', 'Non Benefit'),
], string='Replacement Mother Status', compute="check_replacement_mother_status", store=True, default=False)
replacement_is_alhaju = fields.Selection(string='IS Hajj', selection=[('yes', 'Yes'), ('no', 'No')])
replacement_is_amra = fields.Selection(string='IS Umra', selection=[('yes', 'Yes'), ('no', 'No')])
# Education_data for replacement mother
replacement_education_status_ids = fields.One2many('education.status', 'replacement_grant_benefit_id')
replacement_education_status = fields.Selection(string='Education Status',selection=[('educated', 'educated'), ('illiterate', 'illiterate'),('under_study_age','Under Study Age')])
@ -1794,10 +1787,7 @@ class GrantBenefitProfile(models.Model):
'mother_location_conf': rec.mother_location_conf.id,
'age': rec.mother_age,
'is_work': rec.is_mother_work,
'has_disabilities':rec.mother_has_disabilities,
'member_income': rec.mother_income,
'is_alhaju': rec.is_alhaju,
'is_amra': rec.is_amra,
'education_status': rec.education_status,
'case_study': rec.case_study,
'education_entity': rec.education_entity,
@ -1844,10 +1834,7 @@ class GrantBenefitProfile(models.Model):
'mother_location_conf': rec.replacement_mother_location_conf.id,
'age': rec.replacement_mother_age,
'is_work': rec.replacement_is_mother_work,
'has_disabilities': rec.replacement_mother_has_disabilities,
'member_income': rec.replacement_mother_income,
'is_alhaju': rec.replacement_is_alhaju,
'is_amra': rec.replacement_is_amra,
'education_status': rec.replacement_education_status,
'case_study': rec.replacement_case_study,
'education_entity': rec.replacement_education_entity,
@ -1894,10 +1881,7 @@ class GrantBenefitProfile(models.Model):
'mother_location_conf': rec.mother_location_conf.id,
'age': rec.mother_age,
'is_work': rec.is_mother_work,
'has_disabilities': rec.mother_has_disabilities,
'member_income': rec.mother_income,
'is_alhaju': rec.is_alhaju,
'is_amra': rec.is_amra,
'education_status': rec.education_status,
'case_study': rec.case_study,
'education_entity': rec.education_entity,
@ -1944,10 +1928,7 @@ class GrantBenefitProfile(models.Model):
'mother_location_conf': rec.replacement_mother_location_conf.id,
'age': rec.replacement_mother_age,
'is_work': rec.replacement_is_mother_work,
'has_disabilities': rec.replacement_mother_has_disabilities,
'member_income': rec.replacement_mother_income,
'is_alhaju': rec.replacement_is_alhaju,
'is_amra': rec.replacement_is_amra,
'education_status': rec.replacement_education_status,
'case_study': rec.replacement_case_study,
'education_entity': rec.replacement_education_entity,

View File

@ -67,7 +67,6 @@ class FamilyMemberProfile(models.Model):
[('with_husband_and_children', _('With Husband And Children')), ('with_children', _('With Children')),
('not_live_with_children', _('Not live with children'))], string='Mother Location')
mother_location_conf = fields.Many2one('location.settings',string='Mother Location',domain="[('location_type','=','mother_location')]")
need_transportation = fields.Boolean('Need Transportation?')
attachment_ids = fields.One2many("ir.attachment",'member_id',domain=[('hobbies_id', '=', False),('diseases_id', '=', False),('disabilities_id', '=', False)])
hobbies_attachment_ids = fields.One2many('ir.attachment', 'member_id', string='Hobbies Attachments',domain=[('hobbies_id', '!=', False)])
diseases_attachment_ids = fields.One2many('ir.attachment', 'member_id', string='Diseases Attachments',domain=[('diseases_id', '!=', False)])
@ -77,10 +76,7 @@ class FamilyMemberProfile(models.Model):
disabilities_ids = fields.One2many("member.disabilities",'member_id')
is_scientific_specialty = fields.Boolean('Is Scientific Specialty?',related="specialization_ids.is_scientific_specialty")
is_medical_specialty = fields.Boolean('Is Medical Specialty?',related="specialization_ids.is_medical_specialty")
has_disabilities = fields.Boolean('Has Disabilities?')
minor_siblings = fields.Boolean('minor siblings?')
is_alhaju = fields.Selection(string='Member Hajj', selection=[('yes', 'Yes'), ('no', 'No')])
is_amra = fields.Selection(string='Member Umra', selection=[('yes', 'Yes'), ('no', 'No')])
# Education_data
member_education_status_ids = fields.One2many('education.status', 'family_member_id')
education_status = fields.Selection(string='Education Status',selection=[('educated', 'educated'), ('illiterate', 'illiterate'),('under_study_age', 'Under Study Age')])
@ -144,8 +140,6 @@ class FamilyMemberProfile(models.Model):
# ('benefit', 'Benefit'),
# ('non_benefit', 'Non Benefit'),
# ], string='Replacement Mother Status', compute="check_replacement_mother_status", store=True, default=False)
# replacement_is_alhaju = fields.Boolean(string='IS Hajj')
# replacement_is_amra = fields.Boolean(string='IS Umra')
# # Education_data for replacement mother
# replacement_education_status = fields.Selection(string='Education Status',
# selection=[('educated', 'educated'), ('illiterate', 'illiterate')])
@ -401,8 +395,7 @@ class FamilyMemberProfile(models.Model):
'member_education_status_ids.education_status',
'member_education_status_ids.case_study',
'relationn',
'birth_date',
'has_disabilities',
'birth_date',
'is_married',
'minor_siblings',
'member_income',
@ -423,7 +416,6 @@ class FamilyMemberProfile(models.Model):
male_benefit_age = validation_setting.male_benefit_age
exceptional_age_scientific_specialty = validation_setting.exceptional_age_scientific_specialty
exceptional_age_medical_specialty = validation_setting.exceptional_age_medical_specialty
exceptional_age_has_disabilities = validation_setting.exceptional_age_has_disabilities
minor_siblings_age = validation_setting.minor_siblings_age
max_income_for_benefit = validation_setting.max_income_for_benefit
rec.member_status = 'benefit' # Default to benefit
@ -437,13 +429,11 @@ class FamilyMemberProfile(models.Model):
# Gender-specific checks
if rec.relationn.relation_type == 'son':
if rec.age > male_benefit_age:
if rec.has_disabilities and rec.age > exceptional_age_has_disabilities:
if current_education_status_id.specialization_ids.is_scientific_specialty and rec.age > exceptional_age_scientific_specialty and not rec.minor_siblings :
rec.member_status = 'non_benefit'
elif current_education_status_id.specialization_ids.is_scientific_specialty and rec.age > exceptional_age_scientific_specialty and not rec.has_disabilities and not rec.minor_siblings :
elif current_education_status_id.specialization_ids.is_medical_specialty and rec.age > exceptional_age_medical_specialty and not rec.minor_siblings:
rec.member_status = 'non_benefit'
elif current_education_status_id.specialization_ids.is_medical_specialty and rec.age > exceptional_age_medical_specialty and not rec.has_disabilities and not rec.minor_siblings:
rec.member_status = 'non_benefit'
elif not any([current_education_status_id.specialization_ids.is_scientific_specialty, current_education_status_id.specialization_ids.is_medical_specialty, rec.has_disabilities]):
elif not any([current_education_status_id.specialization_ids.is_scientific_specialty, current_education_status_id.specialization_ids.is_medical_specialty]):
rec.member_status = 'non_benefit'
if not rec.minor_siblings:
rec.member_status = 'non_benefit'
@ -643,7 +633,7 @@ class FamilyMemberProfile(models.Model):
# raise ValidationError(
# _('The ID Number Already Exist!'))
@api.onchange('relationn','member_status','gender','birth_date', 'is_scientific_specialty', 'is_medical_specialty', 'has_disabilities', 'is_married',
@api.onchange('relationn','member_status','gender','birth_date', 'is_scientific_specialty', 'is_medical_specialty', 'is_married',
'minor_siblings','member_income','is_married','member_location_conf','education_status','case_study')
def onchange_member_status(self):
res ={}

View File

@ -742,11 +742,11 @@ class ServiceRequest(models.Model):
daughter_members_above_age = rec.family_id.mapped('member_ids').filtered(
lambda x: x.relationn.relation_type == 'daughter' and x.age > 18)
disable_mother = rec.family_id.mapped('member_ids').filtered(
lambda x: x.relationn.relation_type == 'mother' and x.has_disabilities)
lambda x: x.relationn.relation_type == 'mother')
work_mother = rec.family_id.mapped('member_ids').filtered(
lambda x: x.relationn.relation_type == 'mother' and x.benefit.is_mother_work)
disable_replacement_mother = rec.family_id.mapped('member_ids').filtered(
lambda x: x.relationn.relation_type == 'replacement_mother' and x.has_disabilities)
lambda x: x.relationn.relation_type == 'replacement_mother')
work_replacement_mother = rec.family_id.mapped('member_ids').filtered(lambda
x: x.relationn.relation_type == 'replacement_mother' and x.replacement_is_mother_work)
if not rec.family_id.has_car:

View File

@ -497,10 +497,6 @@
attrs="{'required':[('state','not in',['draft','new'])],'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="mother_income" widget="monetary" options="{'currency_field': 'currency_id', 'field_digits': False}" digits="[16,0]"
attrs="{'required':[('is_mother_work','=',True)],'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="is_alhaju" widget="radio"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="is_amra" widget="radio"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<!-- <field name="is_mother_benefit"/>-->
</group>
</group>
@ -586,10 +582,6 @@
attrs="{'required':[('state','not in',['draft','new']),('add_replacement_mother','=',True)],'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="replacement_mother_income"
attrs="{'required':[('replacement_is_mother_work','=',True),('add_replacement_mother','=',True)],'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="replacement_is_alhaju" widget="radio"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="replacement_is_amra" widget="radio"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<!-- <field name="is_mother_benefit"/>-->
</group>
</group>
@ -661,7 +653,6 @@
<group>
<field name="is_dead"/>
<field name="minor_siblings"/>
<field name="has_disabilities"/>
<!--<field name="gender" required="1"/>-->
<field name="is_married"
attrs="{'invisible':[('is_mother','=',True)]}"/>
@ -679,9 +670,6 @@
<field name="is_work" attrs="{'invisible':[('age','&lt;',18)]}"/>
<field name="member_income"
attrs="{'invisible':[('age','&lt;',18)], 'required':[('is_work','=',True), ('age','>=',18)]}"/>
<field name="need_transportation"/>
<field name="is_alhaju" widget="radio"/>
<field name="is_amra" widget="radio"/>
</group>
</group>
<group>
@ -1127,9 +1115,6 @@
<!-- </page>-->
<!-- <page string="other" attrs="{'invisible': [('state','=','draft')]}">-->
<!-- <group string="alhaju , amra and zakat fitr">-->
<!-- <field name="is_alhaju"/>-->
<!-- <field name="is_amra"/>-->
<!-- <field name="amra_date" attrs="{'invisible': [('is_amra', '=', False)]}"/>-->
<!-- </group>-->
<!-- </page>-->
<page string="Black List" attrs="{'invisible': [('state', 'not in', 'black_list')]}">
@ -1251,16 +1236,8 @@
<!-- </group>-->
<!-- </group>-->
<group>
<field name="is_zakat_fitr" widget="boolean_toggle"
<field name="has_car" widget="boolean_toggle" invisible="1"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="is_food_basket" widget="boolean_toggle"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="has_car" widget="boolean_toggle"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="has_othaim_family_number" widget="boolean_toggle"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}"/>
<field name="othaim_family_number"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])] ,'invisible':[('has_othaim_family_number','=',False)]}"/>
<field name="is_excluded_suspension" invisible="1"
groups="odex_benefit.group_benefit_manager,odex_benefit.group_benefit_branch_manager,odex_benefit.group_benefit_woman_commitee"
readonly="1" force_save="1"/>
@ -1277,7 +1254,7 @@
<!-- <field name="required_attach" attrs="{'required':[('state','not in',['draft'])]}"/>-->
</group>
</page>
<page string="Family Cars" attrs="{'invisible':[('has_car','=',False)]}">
<page string="Family Cars">
<group>
<field name="car_ids"
attrs="{'readonly':[('state','not in',['draft','new','complete_info'])]}">

View File

@ -121,8 +121,6 @@
attrs="{'readonly':[('state','not in',['draft','complete_info'])]}"/>
<field name="minor_siblings"
attrs="{'readonly':[('state','not in',['draft','complete_info'])]}"/>
<field name="has_disabilities"
attrs="{'readonly':[('state','not in',['draft','complete_info'])]}"/>
<field name="is_married"
attrs="{'readonly':[('state','not in',['draft','complete_info'])]}"/>
<field name="mother_location_conf"
@ -136,12 +134,6 @@
attrs="{'readonly':[('state','not in',['draft','complete_info'])]}"/>
<field name="member_income"
attrs="{'required':[('is_work','=',True)],'readonly':[('state','not in',['draft','complete_info'])]}"/>
<field name="need_transportation"
attrs="{'readonly':[('state','not in',['draft','complete_info'])]}"/>
<field name="is_amra" widget="radio"
attrs="{'readonly':[('state','not in',['draft','complete_info'])]}"/>
<field name="is_alhaju" widget="radio"
attrs="{'readonly':[('state','not in',['draft','complete_info'])]}"/>
</group>
</group>
<group>
@ -170,7 +162,6 @@
<field name="name"/>
<field name="hobbies_id" required="1"/>
<field name="datas" string="File content"/>
<field name="expiration_date"/>
<field name="attach_status"/>
<field name="member_id" invisible="1"/>
</tree>

View File

@ -248,9 +248,9 @@ class ServiceRequestInherit(models.Model):
('service_cat.service_type', '=', 'recruiting_driver'), ('id', '!=', self._origin.id)], limit=1)
son_members_above_age = rec.family_id.mapped('member_ids').filtered(lambda x:x.relationn.relation_type == 'son' and x.age > 18)
daughter_members_above_age = rec.family_id.mapped('member_ids').filtered(lambda x: x.relationn.relation_type == 'daughter' and x.age > 18)
disable_mother = rec.family_id.mapped('member_ids').filtered(lambda x: x.relationn.relation_type == 'mother' and x.has_disabilities)
disable_mother = rec.family_id.mapped('member_ids').filtered(lambda x: x.relationn.relation_type == 'mother')
work_mother = rec.family_id.mapped('member_ids').filtered(lambda x: x.relationn.relation_type == 'mother' and x.benefit_id.is_mother_work)
disable_replacement_mother = rec.family_id.mapped('member_ids').filtered(lambda x: x.relationn.relation_type == 'replacement_mother' and x.has_disabilities)
disable_replacement_mother = rec.family_id.mapped('member_ids').filtered(lambda x: x.relationn.relation_type == 'replacement_mother')
work_replacement_mother = rec.family_id.mapped('member_ids').filtered(lambda x: x.relationn.relation_type == 'replacement_mother' and x.replacement_is_mother_work)
if not rec.family_id.has_car:
raise UserError(_("You cannot request this service because you do not have a car"))