[FIX] l10n_co: crash when adding contact
Install l10n_co,contacts. Open contacts. Several crash messages will popup because the override in l10n_co of res_partner is not computing the 'l10n_co_verification_code' field for every record. Changing the implementation to be sure to store some value for every record fix the issue. opw-2082583 closes odoo/odoo#38473 X-original-commit: 2489c40507abba5df833b0db7b5a02749b2f749a Signed-off-by: Nicolas Martinelli (nim) <nim@odoo.com>
This commit is contained in:
committed by
fw-bot
parent
3fa123d69f
commit
8a098afa09
@@ -24,26 +24,28 @@ class ResPartner(models.Model):
|
||||
def _compute_verification_code(self):
|
||||
multiplication_factors = [71, 67, 59, 53, 47, 43, 41, 37, 29, 23, 19, 17, 13, 7, 3]
|
||||
|
||||
for partner in self.filtered(lambda partner: partner.vat and partner.country_id == self.env.ref('base.co') and
|
||||
len(partner.vat) <= len(multiplication_factors)):
|
||||
number = 0
|
||||
padded_vat = partner.vat
|
||||
for partner in self:
|
||||
if partner.vat and partner.country_id == self.env.ref('base.co') and len(partner.vat) <= len(multiplication_factors):
|
||||
number = 0
|
||||
padded_vat = partner.vat
|
||||
|
||||
while len(padded_vat) < len(multiplication_factors):
|
||||
padded_vat = '0' + padded_vat
|
||||
while len(padded_vat) < len(multiplication_factors):
|
||||
padded_vat = '0' + padded_vat
|
||||
|
||||
# if there is a single non-integer in vat the verification code should be False
|
||||
try:
|
||||
for index, vat_number in enumerate(padded_vat):
|
||||
number += int(vat_number) * multiplication_factors[index]
|
||||
# if there is a single non-integer in vat the verification code should be False
|
||||
try:
|
||||
for index, vat_number in enumerate(padded_vat):
|
||||
number += int(vat_number) * multiplication_factors[index]
|
||||
|
||||
number %= 11
|
||||
number %= 11
|
||||
|
||||
if number < 2:
|
||||
partner.l10n_co_verification_code = number
|
||||
else:
|
||||
partner.l10n_co_verification_code = 11 - number
|
||||
except ValueError:
|
||||
if number < 2:
|
||||
partner.l10n_co_verification_code = number
|
||||
else:
|
||||
partner.l10n_co_verification_code = 11 - number
|
||||
except ValueError:
|
||||
partner.l10n_co_verification_code = False
|
||||
else:
|
||||
partner.l10n_co_verification_code = False
|
||||
|
||||
@api.constrains('vat', 'country_id', 'l10n_co_document_type')
|
||||
|
||||
Reference in New Issue
Block a user