diff --git a/odex25_benefit/odex_benefit/i18n/ar_001.po b/odex25_benefit/odex_benefit/i18n/ar_001.po index af665f4e0..ce4f7f5c8 100644 --- a/odex25_benefit/odex_benefit/i18n/ar_001.po +++ b/odex25_benefit/odex_benefit/i18n/ar_001.po @@ -18535,4 +18535,68 @@ msgstr "الجنسيات المسموح بها" msgid "" "Countries where this service is available. Leave empty to allow all " "countries." -msgstr "الجنسيات التي تتوفر فيها هذه الخدمة. اتركها فارغة للسماح بجميع الجنسيات." \ No newline at end of file +msgstr "الجنسيات التي تتوفر فيها هذه الخدمة. اتركها فارغة للسماح بجميع الجنسيات." + +#. module: odex_benefit +#: model:res.groups,name:odex_benefit.group_family_member_exception +msgid "Family Member Exception" +msgstr "استثناء أفراد الأسرة" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/benefit.py:0 +#, python-format +msgid "Non-Saudi mothers and fathers cannot register." +msgstr "الأمهات والآباء غير السعوديين." + +#. module: odex_benefit +#: model:ir.model.fields,field_description:odex_benefit.field_family_member__full_age +msgid "Full Age" +msgstr "العمر" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/family_members.py:0 +#, python-format +msgid "%s years" +msgstr "%s سنة" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/family_members.py:0 +#, python-format +msgid "0 years, 0 months, 0 days" +msgstr "0 سنة، 0 شهر، 0 يوم" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/family_members.py:0 +#, python-format +msgid "%s months" +msgstr "%s شهر" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/family_members.py:0 +#, python-format +msgid "%s day(s)" +msgstr "%s يوم" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/family_members.py:0 +#, python-format +msgid "%s days" +msgstr "%s يوم" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/family_members.py:0 +#, python-format +msgid "%s month(s)" +msgstr "%s شهر" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/family_members.py:0 +#, python-format +msgid "%s year(s)" +msgstr "%s سنة" + +#. module: odex_benefit +#: code:addons/odex_benefit/models/family_members.py:0 +#, python-format +msgid "0 days" +msgstr "0 يوم" \ No newline at end of file diff --git a/odex25_benefit/odex_benefit/models/benefit.py b/odex25_benefit/odex_benefit/models/benefit.py index e044d4481..b2fbd4303 100644 --- a/odex25_benefit/odex_benefit/models/benefit.py +++ b/odex25_benefit/odex_benefit/models/benefit.py @@ -2321,7 +2321,7 @@ class GrantBenefitProfile(models.Model): income = family_income ben.member_income = round(income, 0) - @api.depends("member_income") + @api.depends("member_income", "benefit_member_count") def get_benefit_category(self): default_category = self.env['benefit.category'].sudo().search( [('is_benefit', '=', False)], limit=1 @@ -2698,9 +2698,9 @@ class GrantBenefitProfile(models.Model): def update_data_automatically(self): obj = self.env["grant.benefit"].search([]) for member in obj.member_ids: - # member._compute_get_age_date() + member._compute_get_age_date() member.check_member_status() - self.action_auto_suspend() + #self.action_auto_suspend() class BenefitFollowers(models.Model): diff --git a/odex25_benefit/odex_benefit/models/family_members.py b/odex25_benefit/odex_benefit/models/family_members.py index 99c4ec0dd..f42b09ed1 100644 --- a/odex25_benefit/odex_benefit/models/family_members.py +++ b/odex25_benefit/odex_benefit/models/family_members.py @@ -64,6 +64,7 @@ class FamilyMemberProfile(models.Model): # member_location = fields.Many2one('member.location', string="Member Location") birth_date = fields.Date(string="Birth Date") age = fields.Integer(string="Age", compute='_compute_get_age_date', store=True) + full_age = fields.Char(string="Full Age",compute='_compute_get_age_date',store=True) age_status = fields.Selection( [('minor', 'Minor'), ('non_minor', 'Non-Minor')], string='Age Status', @@ -702,20 +703,20 @@ class FamilyMemberProfile(models.Model): _("Over %s years old and not enrolled in a scientific or vocational specialization.") % exceptional_age_scientific_specialty ) - if rec.is_work: - if rec.member_income > max_income_for_benefit: - rec.member_status = 'non_benefit' - reasons.append(_("He is employed with a salary exceeding %s.") % max_income_for_benefit) - if not rec.is_married and rec.education_status in ['illiterate']: - rec.member_status = 'non_benefit' - reasons.append( - _("He is over %s years of age and not enrolled in an educational institution.") % male_benefit_age) - if not rec.is_married and rec.education_status in [ - 'educated'] and rec.case_study in [ - 'graduate', 'intermittent']: - rec.member_status = 'non_benefit' - reasons.append( - _("He is over %s years of age and has completed his education.") % male_benefit_age) + if rec.is_work: + if rec.member_income > max_income_for_benefit: + rec.member_status = 'non_benefit' + reasons.append(_("He is employed with a salary exceeding %s.") % max_income_for_benefit) + if not rec.is_married and rec.education_status in ['illiterate']: + rec.member_status = 'non_benefit' + reasons.append( + _("He is over %s years of age and not enrolled in an educational institution.") % male_benefit_age) + if not rec.is_married and rec.education_status in [ + 'educated'] and rec.case_study in [ + 'graduate', 'intermittent']: + rec.member_status = 'non_benefit' + reasons.append( + _("He is over %s years of age and has completed his education.") % male_benefit_age) if not rec.member_location_conf.is_benefit: rec.member_status = 'non_benefit' reasons.append(_("He does not reside with his family.")) @@ -871,14 +872,26 @@ class FamilyMemberProfile(models.Model): @api.depends('birth_date') def _compute_get_age_date(self): + today = date.today() for rec in self: - if rec.birth_date: - today = date.today() - day = datetime.strptime(str(rec.birth_date), DEFAULT_SERVER_DATE_FORMAT) - age = rd(today, day) - rec.age = age.years - else: + if not rec.birth_date: rec.age = 0 + rec.full_age = _("0 years, 0 months, 0 days") + continue + birth = fields.Date.from_string(rec.birth_date) + delta = rd(today, birth) + + years = delta.years + months = delta.months + days = delta.days + + rec.age = years + parts = [] + parts.append(_("%s year(s)") % years if years == 1 else _("%s years") % years) + parts.append(_("%s month(s)") % months if months == 1 else _("%s months") % months) + parts.append(_("%s day(s)") % days if days == 1 else _("%s days") % days) + + rec.full_age = ", ".join(parts) if parts else _("0 days") @api.onchange("member_id_number") def onchange_member_id_number(self): diff --git a/odex25_benefit/odex_benefit/security/security_view.xml b/odex25_benefit/odex_benefit/security/security_view.xml index 0b76b3b7b..6ce2284f4 100644 --- a/odex25_benefit/odex_benefit/security/security_view.xml +++ b/odex25_benefit/odex_benefit/security/security_view.xml @@ -67,6 +67,12 @@ + + Family Member Exception + + + + Head of the Women's Committee diff --git a/odex25_benefit/odex_benefit/views/family_members.xml b/odex25_benefit/odex_benefit/views/family_members.xml index 94643ebbf..53c0b71a2 100644 --- a/odex25_benefit/odex_benefit/views/family_members.xml +++ b/odex25_benefit/odex_benefit/views/family_members.xml @@ -56,12 +56,12 @@