diff --git a/odex25_sales/dev_membership/i18n/ar_001.po b/odex25_sales/dev_membership/i18n/ar_001.po index 106c6a923..4b97bdfb5 100644 --- a/odex25_sales/dev_membership/i18n/ar_001.po +++ b/odex25_sales/dev_membership/i18n/ar_001.po @@ -1574,6 +1574,31 @@ msgstr "المرشحين" msgid "Print Membership Nomination" msgstr "طباعة المرشحين للعضوية" + + + + +#. module: dev_membership +#: code:addons/dev_membership/models/res_partner.py:0 +#, python-format +msgid "Mobile number must be exactly 10 digits." +msgstr "يجب أن يتكون رقم الجوال من 10 أرقام بالضبط." + + +#. module: dev_membership +#: code:addons/dev_membership/models/res_partner.py:0 +#, python-format +msgid "ID number must be unique." +msgstr "يجب أن يكون رقم الهوية فريدًا." + +#. module: dev_membership +#: code:addons/dev_membership/models/res_partner.py:0 +#, python-format +msgid "Mobile number is required for members." +msgstr "رقم الجوال مطلوب للأعضاء." + + +======= #. module: dev_membership #: code:addons/dev_membership/models/res_partner.py:10 #, python-format @@ -1597,3 +1622,4 @@ msgstr "رقم الهاتف يجب أن يتكون من 10 أرقام بالضب + diff --git a/odex25_sales/dev_membership/models/res_partner.py b/odex25_sales/dev_membership/models/res_partner.py index 5d33912a0..e435cb7c0 100644 --- a/odex25_sales/dev_membership/models/res_partner.py +++ b/odex25_sales/dev_membership/models/res_partner.py @@ -169,9 +169,28 @@ class Partner(models.Model): 'target': 'current', } + @api.onchange('mobile') + def _check_mobile_format(self): + for record in self: + if record.mobile and not (len(record.mobile) == 10 and record.mobile.isdigit()): + raise ValidationError("Mobile number must be exactly 10 digits.") + + + # @api.constrains('identification_number') + # def _check_id_no_required_if_member(self): + # for record in self: + # if record.is_member and not record.identification_number: + # raise ValidationError(_("ID number is required for members.")) + @api.constrains('mobile','is_member') + def _check_mobile_required_if_member(self): + for record in self: + if record.is_member and not record.mobile: + raise ValidationError(_("Mobile number is required for members.")) + + @@ -186,6 +205,7 @@ class Partner(models.Model): ], limit=1) if existing_mobile: raise ValidationError(_("Mobile number must be unique.")) + if record.identification_number: existing_id = self.search([ ('identification_number', '=', record.identification_number), @@ -193,6 +213,11 @@ class Partner(models.Model): ], limit=1) if existing_id: raise ValidationError(_("ID number must be unique.")) + + + + + @api.onchange('mobile') @@ -204,8 +229,8 @@ class Partner(models.Model): raise ValidationError(_("Mobile number must be exactly 10 digits.")) - # Optional: Add SQL constraints for uniqueness - + + diff --git a/odex25_sales/dev_membership/views/partner_extended.xml b/odex25_sales/dev_membership/views/partner_extended.xml index 3d046406e..f60385503 100644 --- a/odex25_sales/dev_membership/views/partner_extended.xml +++ b/odex25_sales/dev_membership/views/partner_extended.xml @@ -170,10 +170,19 @@ res.partner - - + + + + + + {'required': [('is_member', '=', True)]} + {"pattern": "[0-9]{10}"} + + + +

@@ -278,6 +287,9 @@ + + {'required': [('is_member', '=', True)]} +