diff --git a/odex25_benefit/odex_benefit/i18n/ar_001.po b/odex25_benefit/odex_benefit/i18n/ar_001.po index af665f4e0..3aa937ee0 100644 --- a/odex25_benefit/odex_benefit/i18n/ar_001.po +++ b/odex25_benefit/odex_benefit/i18n/ar_001.po @@ -18535,4 +18535,15 @@ 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 "الأمهات والآباء غير السعوديين." \ 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..6b4e20d74 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 diff --git a/odex25_benefit/odex_benefit/models/family_members.py b/odex25_benefit/odex_benefit/models/family_members.py index 99c4ec0dd..dc0551e41 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', @@ -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..93d773ed9 100644 --- a/odex25_benefit/odex_benefit/views/family_members.xml +++ b/odex25_benefit/odex_benefit/views/family_members.xml @@ -56,12 +56,12 @@