[FIX] l10n_br: CPF is accepted as tax number

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 <csn@odoo.com>
Signed-off-by: Séna Serge Nshimiyimana (sesn) <sesn@odoo.com>
This commit is contained in:
momegahed
2023-10-16 07:58:41 +00:00
parent d382b20135
commit 3044b67372
+2 -2
View File
@@ -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))