From 4b74cea41346e190ad696370139274530f4fe48e Mon Sep 17 00:00:00 2001 From: Joren Van Onder Date: Fri, 26 Jan 2018 16:23:27 -0800 Subject: [PATCH] [FIX] l10n_co: only validate VAT for RUT document types In Colombia customers can legally identify themselves with various codes, one of which is the RUT. This is the traditional TIN and adheres to the rules implement by base_vat. The other types however don't and so shouldn't be checked by base_vat. opw-781247 --- addons/l10n_co/models/res_partner.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/addons/l10n_co/models/res_partner.py b/addons/l10n_co/models/res_partner.py index cf6763b6d2d..b2a23a08f9d 100644 --- a/addons/l10n_co/models/res_partner.py +++ b/addons/l10n_co/models/res_partner.py @@ -40,3 +40,16 @@ class ResPartner(models.Model): partner.l10n_co_verification_code = 11 - number except ValueError: partner.l10n_co_verification_code = False + + @api.constrains('vat', 'commercial_partner_country_id', 'l10n_co_document_type') + def check_vat(self): + # check_vat is implemented by base_vat which this localization + # doesn't directly depend on. It is however automatically + # installed for Colombia. + if self.sudo().env.ref('base.module_base_vat').state == 'installed': + # don't check Colombian partners unless they have RUT (= Colombian VAT) set as document type + self = self.filtered(lambda partner: partner.country_id != self.env.ref('base.co') or\ + partner.l10n_co_document_type == 'rut') + return super(ResPartner, self).check_vat() + else: + return True