From 3044b67372502e20d69c2dfa7f43fb97a13dab40 Mon Sep 17 00:00:00 2001 From: momegahed Date: Mon, 21 Aug 2023 12:14:24 +0000 Subject: [PATCH] [FIX] l10n_br: CPF is accepted as tax number MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Steps to reproduce: 1. install l10n_br and set up a Brazilian company with Brazilian customers 2. go to validate a sale as a Brazilian customer 3. fill in the CPF field w/ 11 digit number 4. error: "invalid CNPJ. Make sure that the CNPJ number is 14 digits" Issue: the code only accepts and validates CNPJ codes Fix: add support for CPF codes with its validation function according to: http://www.receita.fazenda.gov.br/aplicacoes/atcta/cpf/funcoes.js opw-3421476 closes odoo/odoo#137438 X-original-commit: 23a0ca6386590b6dfdbe24602a1a717bfdd84965 Signed-off-by: Cedric Snauwaert Signed-off-by: Séna Serge Nshimiyimana (sesn) --- addons/l10n_br/models/res_partner.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/addons/l10n_br/models/res_partner.py b/addons/l10n_br/models/res_partner.py index 8b674741b50..8731d8f1a01 100644 --- a/addons/l10n_br/models/res_partner.py +++ b/addons/l10n_br/models/res_partner.py @@ -16,5 +16,5 @@ class ResPartner(models.Model): @api.constrains('vat', 'l10n_latam_identification_type_id') def check_cpf(self): for partner in self.filtered(lambda partner: partner.l10n_latam_identification_type_id == self.env.ref('l10n_br.cpf')): - if partner.vat and not stdnum.br.cpf.is_valid(partner.vat): - raise ValidationError(_('CPF number %s for %s is not valid.') % (partner.vat, partner.display_name)) + if partner.vat and not stdnum.br.cpf.is_valid(partner.vat) and not stdnum.br.cnpj.is_valid(partner.vat): + raise ValidationError(_('CPF/CNPJ number %s for %s is not valid.') % (partner.vat, partner.display_name))