summaryrefslogtreecommitdiff
path: root/addons/l10n_co/models
diff options
context:
space:
mode:
authorAndrea Grazioso (agr-odoo) <agr@odoo.com>2019-10-10 13:41:32 +0000
committerfw-bot <otis@odoo.com>2019-10-11 09:16:14 +0000
commit8a098afa09dd728fdb2e7f8e57a93e9cbb4e4631 (patch)
tree30aa789ac5de9c5c165efd140ef1ac4b9045e963 /addons/l10n_co/models
parent3fa123d69fb5d5c1e396bd8307eedc2a3549e72c (diff)
[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>
Diffstat (limited to 'addons/l10n_co/models')
-rw-r--r--addons/l10n_co/models/res_partner.py42
1 files changed, 22 insertions, 20 deletions
diff --git a/addons/l10n_co/models/res_partner.py b/addons/l10n_co/models/res_partner.py
index 986ecf2397e..0fb3bf9e149 100644
--- a/addons/l10n_co/models/res_partner.py
+++ b/addons/l10n_co/models/res_partner.py
@@ -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
-
- 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]
-
- number %= 11
-
- if number < 2:
- partner.l10n_co_verification_code = number
- else:
- partner.l10n_co_verification_code = 11 - number
- except ValueError:
+ 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
+
+ # 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
+
+ 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')