Benefit customization

This commit is contained in:
eman 2024-11-02 15:59:37 +02:00
parent 788597decf
commit 8a6eb3a356
3 changed files with 127 additions and 37 deletions

View File

@ -6,8 +6,8 @@ msgid ""
msgstr ""
"Project-Id-Version: Odoo Server 14.0\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2024-10-31 11:50+0000\n"
"PO-Revision-Date: 2024-10-31 11:50+0000\n"
"POT-Creation-Date: 2024-11-02 13:50+0000\n"
"PO-Revision-Date: 2024-11-02 13:50+0000\n"
"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
@ -815,9 +815,10 @@ msgstr "عدد فواتير الموردين"
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit.py:0
#: code:addons/odex_benefit/models/benefit.py:0
#, python-format
msgid "%s must be unique within the same record."
msgstr "%s يجب ألا يتكرر رقم الأم أو الأم البديلة أو الأب لنفس الأسرة"
msgstr "%s يجب ألا يتكرر لنفس الأسرة"
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit.py:0
@ -4598,13 +4599,10 @@ msgstr ""
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit.py:0
#: code:addons/odex_benefit/models/benefit.py:0
#: code:addons/odex_benefit/models/benefit.py:0
#: code:addons/odex_benefit/models/benefit.py:0
#: code:addons/odex_benefit/models/family_members.py:0
#, python-format
msgid "Enter a valid Saudi mobile number"
msgstr ""
msgstr "برجاء إدخال رقم سعودي صحيح"
#. module: odex_benefit
#: code:addons/odex_benefit/wizards/entity_black_list_wizard.py:0
@ -8940,6 +8938,12 @@ msgstr "تمت إضافة رقم الهاتف إلى القائمة السودا
msgid "Phone Number"
msgstr "رقم الهاتف"
#. module: odex_benefit
#: code:addons/odex_benefit/models/family_members.py:0
#, python-format
msgid "Phone number cannot be the same in The Family"
msgstr "رقم الجوال لا يمكن تكراره لنفس الأسرة"
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_grant_benefit__phone2
msgid "Phone2"
@ -10838,8 +10842,9 @@ msgstr ""
msgid ""
"The ID number {} already exists in family with code {}. Please enter a "
"unique ID number."
msgstr "رقم الهوية {} موجود بالفعل في العائلة بكود {}. الرجاء إدخال رقم تعريف غير مكرر."
msgstr ""
"رقم الهوية {} موجود بالفعل في العائلة بكود {}. الرجاء إدخال رقم تعريف غير "
"مكرر."
#. module: odex_benefit
#: model:ir.model.fields,field_description:odex_benefit.field_family_member__nearest_literacy_school
@ -10847,6 +10852,14 @@ msgstr "رقم الهوية {} موجود بالفعل في العائلة بك
msgid "The Nearest Literacy School"
msgstr "أقرب مدرسة لمحو الأمية"
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit.py:0
#, python-format
msgid ""
"The Phone Number %s in the Family Members list must be unique across the "
"record."
msgstr "رقم الهاتف %s مكرر لعضو في نفس"
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit.py:0
#, python-format
@ -10922,6 +10935,25 @@ msgstr ""
msgid "The payment's currency."
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 "The phone Number already exists in Family with code %s"
msgstr ""
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit.py:0
#, python-format
msgid "The phone number {} already exists in family with code {}."
msgstr "رقم الجوال {} موجود بالفعل في أسرة بكود {}"
#. module: odex_benefit
#: code:addons/odex_benefit/models/benefit.py:0
#, python-format
msgid "The phone {} already exists in family with code {}."
msgstr "رقم الجوال {} موجود بالفعل في أسرة بكود {}"
#. module: odex_benefit
#: model:ir.model.fields,help:odex_benefit.field_benefits_representative__membership_amount
#: model:ir.model.fields,help:odex_benefit.field_external_benefits__membership_amount

View File

@ -1758,37 +1758,70 @@ class GrantBenefitProfile(models.Model):
return
template.with_context(lang=self.env.user.lang).send_mail(self.id, force_send=True, raise_exception=False)
# Validation Opertaion
@api.onchange('phone', 'phone2', 'relative_phone', 'sms_phone')
def _onchange_mobile_validation(self):
if self.phone:
if self.phone.startswith('+966'):
phone = self.phone[4:]
self.phone = phone
if re.match(SAUDI_MOBILE_PATTERN, self.phone) == None:
# # Validation Opertaion
# @api.onchange('phone', 'phone2','sms_phone')
# def _onchange_mobile_validation(self):
# if self.phone:
# if self.phone.startswith('+966'):
# phone = self.phone[4:]
# self.phone = phone
# if re.match(SAUDI_MOBILE_PATTERN, self.phone) == None:
# raise ValidationError(
# _('Enter a valid Saudi mobile number'))
# if self.phone2:
# if self.phone2.startswith('+966'):
# phone2 = self.phone2[4:]
# self.phone2 = phone2
# if re.match(SAUDI_MOBILE_PATTERN, self.phone2) == None:
# raise ValidationError(
# _('Enter a valid Saudi mobile number'))
# if self.sms_phone:
# if self.sms_phone.startswith('+966'):
# sms_phone = self.sms_phone[4:]
# self.sms_phone = sms_phone
# if re.match(SAUDI_MOBILE_PATTERN, self.sms_phone) == None:
# raise ValidationError(
# _('Enter a valid Saudi mobile number'))
@api.onchange('phone', 'phone2','sms_phone')
def _onchange_phone_numbers(self):
phone_numbers = {
'الهاتف': self.phone,
'رقم الجوال الثاني': self.phone2,
'رقم الجوال للتواصل': self.sms_phone,
}
# Check each ID number for 10-digit format and uniqueness within the parent model
unique_ids = set()
for label, phone_number in phone_numbers.items():
if phone_number:
if re.match(SAUDI_MOBILE_PATTERN,phone_number) == None:
raise ValidationError(
_('Enter a valid Saudi mobile number'))
if phone_number in unique_ids:
raise ValidationError(_("%s must be unique within the same record.") % label)
unique_ids.add(phone_number)
# Check for uniqueness against `member_phone` in child records and across database records
for member in self.member_ids:
if member.member_phone and member.member_phone in unique_ids:
raise ValidationError(
_('Enter a valid Saudi mobile number'))
if self.phone2:
if self.phone2.startswith('+966'):
phone2 = self.phone2[4:]
self.phone2 = phone2
if re.match(SAUDI_MOBILE_PATTERN, self.phone2) == None:
_("The Phone Number %s in the Family Members list must be unique across the record.") % member.member_phone)
# Check for duplicate IDs across records in the database
for phone_number in unique_ids:
duplicate_record_family = self.env['grant.benefit'].search([
'|', '|', ('phone', '=', phone_number), ('phone2', '=', phone_number),
('sms_phone', '=', phone_number), ('id', '!=', self._origin.id)
], limit=1)
duplicate_record_member = self.env['family.member'].search([('member_phone', '=', phone_number)], limit=1)
if duplicate_record_family:
raise ValidationError(
_('Enter a valid Saudi mobile number'))
if self.relative_phone:
if self.relative_phone.startswith('+966'):
relative_phone = self.relative_phone[4:]
self.relative_phone = relative_phone
if re.match(SAUDI_MOBILE_PATTERN, self.relative_phone) == None:
_("The phone number {} already exists in family with code {}.").format(
phone_number, duplicate_record_family.code))
if duplicate_record_member:
raise ValidationError(
_('Enter a valid Saudi mobile number'))
if self.sms_phone:
if self.sms_phone.startswith('+966'):
sms_phone = self.sms_phone[4:]
self.sms_phone = sms_phone
if re.match(SAUDI_MOBILE_PATTERN, self.sms_phone) == None:
raise ValidationError(
_('Enter a valid Saudi mobile number'))
_("The phone {} already exists in family with code {}.").format(
phone_number, duplicate_record_member.benefit_id.code))
@api.onchange('email')
def onchange_email(self):

View File

@ -668,4 +668,29 @@ class FamilyMemberProfile(models.Model):
if exist:
raise ValidationError(
_('This Phone Already Exist!'))
# Check if the father ID and mother ID are the same on the same record
if self.member_phone == self.benefit_id.phone or self.member_phone == self.benefit_id.phone2 or self.member_phone == self.benefit_id.sms_phone:
raise ValidationError(
_("Phone number cannot be the same in The Family"))
# Check if the ID number exists in other records or in family members
exist = self.search([
('member_phone', '=', self.member_phone)
], limit=1)
exist_in_family = self.env["grant.benefit"].search([
'|', '|',
('phone', '=', self.member_phone),
('phone2', '=', self.member_phone),
('sms_phone', '=', self.member_phone),
], limit=1)
if exist or exist_in_family:
if exist_in_family:
raise ValidationError(
_("The phone Number already exists in Family with code %s") % exist_in_family.code)
if exist:
raise ValidationError(
_("The phone Number already exists in Family with code %s") % exist.benefit_id.code)