Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[16.0][REF] l10n_br_base: use vat field for CNPJ and extract l10n_br_cpf_code #3386

Open
wants to merge 4 commits into
base: 16.0
Choose a base branch
from

Conversation

rvalyi
Copy link
Member

@rvalyi rvalyi commented Sep 27, 2024

O objetivo desse PR é de se aproximar do modelo de dados da Odoo que desde a versão 16.0 (e até a v18) usa o vat para armazenar o CNPJ.

Na v14 botamos o vat como related do cnpj_cpf, a ideia é agora de usar a coluna vat no banco de dados e conservar o campo cnpj_cpf como related para conservar uma certa compatibilidade e facilitar os cherry-picks com o codigo da v14 por enquanto.

Eu tb introduzi o campo l10n_br_cpf_code pro CPF de acordo com o modelo do Odoo a partir da v16:
https://github.com/odoo/odoo/blob/16.0/addons/l10n_br/models/res_partner.py

Eu tb aproveitei para melhorar a mensagem de validação.

@OCA-git-bot
Copy link
Contributor

Hi @renatonlima,
some modules you are maintaining are being modified, check this out!

@rvalyi rvalyi marked this pull request as draft September 27, 2024 02:29
@rvalyi rvalyi force-pushed the 16.0-vat branch 5 times, most recently from 1b06354 to cfb783c Compare September 27, 2024 04:39
@rvalyi
Copy link
Member Author

rvalyi commented Sep 27, 2024

pessoal pensei num primeiro passo melhor para ter uma compatibilidade com l10n_br_cpf_code tb sem perder a facilidade dos cherry-picks com a v14. Novo PR em breve.

EDIT: acabei finalizando esse PR que nao é muito invasivo

@rvalyi rvalyi closed this Sep 27, 2024
@rvalyi rvalyi reopened this Sep 28, 2024
@OCA-git-bot
Copy link
Contributor

Hi @renatonlima,
some modules you are maintaining are being modified, check this out!

@rvalyi rvalyi force-pushed the 16.0-vat branch 5 times, most recently from 6bd980d to cf3ff61 Compare September 28, 2024 21:29
@rvalyi rvalyi changed the title [16.0][REF] l10n_br_base: use vat field for CNPJ - WIP [16.0][REF] l10n_br_base: use vat field for CNPJ e separa o campo l10n_br_cpf_code Sep 28, 2024
@rvalyi rvalyi changed the title [16.0][REF] l10n_br_base: use vat field for CNPJ e separa o campo l10n_br_cpf_code [16.0][REF] l10n_br_base: use vat field for CNPJ and extract l10n_br_cpf_code Sep 28, 2024
@rvalyi rvalyi force-pushed the 16.0-vat branch 5 times, most recently from d9146b8 to 240b399 Compare September 29, 2024 20:51
@rvalyi
Copy link
Member Author

rvalyi commented Sep 29, 2024

teste de migração. Dados da v16 antes do PR:

odoo16=# select id, vat, cnpj_cpf, is_company, name from res_partner where cnpj_cpf is not null;
 id | vat |      cnpj_cpf      | is_company |                   name
----+-----+--------------------+------------+-------------------------------------------
  1 |     | 97.231.608/0001-69 | t          | Sua Empresa
 41 |     | 86.144.802/0001-90 | t          | Intel do Brasil
 42 |     | 62.228.384/0001-51 | t          | AMD do Brasil
 43 |     | 92.737.124/0001-72 | t          | LG do Brasil
 44 |     | 21.717.475/0001-73 | t          | Samsung Recife
 45 |     | 77.256.611/0001-20 | t          | Positivo Informatica
 46 |     | 73.623.891/0001-06 | t          | Dell Computadores do Brasil
 47 |     | 14.685.381/0001-02 | t          | Info Bahia
 48 |     | 38.633.837/0001-40 | t          | Informatica Manaus
 49 |     | 81.493.979/0001-89 | t          | Cliente 1 SP Contribuinte
 50 |     | 12.046.835/0001-61 | t          | Cliente 2 -SP - Simples Nacional
 51 |     | 96.660.336/0001-50 | f          | Cliente 2 - SP - Endereço Entrega
 52 |     | 46.081.676/0001-58 | t          | Cliente 3 - Z/F Manaus - Contribuinte
 53 |     | 84.148.732/0001-13 | t          | Cliente 4 - Z/F Manaus - Simples Nacional
 54 |     | 14.753.702/0001-50 | t          | Cliente 5 - Contribuinte - PE
 55 |     | 97.449.840/0001-78 | t          | Cliente 6 - Simples Nacional- PE
 56 |     | 43.266.887/0001-77 | t          | Cliente 7 RS - Contribuinte
 57 |     | 13.691.522/0001-29 | f          | Cliente 7 - RS - Endereço Cobrança
 58 |     | 32.406.080/0001-76 | t          | Cliente 8 RS - Simples Nacional
 59 |     | 11.034.414/0001-58 | t          | Akretion Sao Paulo
 61 |     | 11.034.414/0003-10 | t          | Akretion Aluminio - SP
 62 |     | 26.355.289/0001-55 | t          | Cliente 9 MG - PJ Não Contribuinte
 63 |     | 276.288.360-11     | f          | Cliente 10 MG - PF Não Contribuinte
 64 |     | 23.130.935/0001-98 | t          | KMEE
 66 |     | 765.865.078-12     | f          | Cliente 11 SP - PF Não Contribuinte
 67 |     | 81.583.054/0001-29 | t          | Empresa Lucro Presumido
 68 |     | 59.594.315/0001-57 | t          | TESTE - Simples Nacional
(27 rows)

depois da migração:

odoo16=# select id, vat, l10n_br_cpf_code, is_company, name from res_partner where cnpj_cpf is not null;
 id |        vat         | l10n_br_cpf_code | is_company |                   name
----+--------------------+------------------+------------+-------------------------------------------
  1 | 97.231.608/0001-69 |                  | t          | Sua Empresa
 41 | 86.144.802/0001-90 |                  | t          | Intel do Brasil
 42 | 62.228.384/0001-51 |                  | t          | AMD do Brasil
 43 | 92.737.124/0001-72 |                  | t          | LG do Brasil
 44 | 21.717.475/0001-73 |                  | t          | Samsung Recife
 45 | 77.256.611/0001-20 |                  | t          | Positivo Informatica
 46 | 73.623.891/0001-06 |                  | t          | Dell Computadores do Brasil
 47 | 14.685.381/0001-02 |                  | t          | Info Bahia
 48 | 38.633.837/0001-40 |                  | t          | Informatica Manaus
 49 | 81.493.979/0001-89 |                  | t          | Cliente 1 SP Contribuinte
 50 | 12.046.835/0001-61 |                  | t          | Cliente 2 -SP - Simples Nacional
 51 | 96.660.336/0001-50 |                  | f          | Cliente 2 - SP - Endereço Entrega
 52 | 46.081.676/0001-58 |                  | t          | Cliente 3 - Z/F Manaus - Contribuinte
 53 | 84.148.732/0001-13 |                  | t          | Cliente 4 - Z/F Manaus - Simples Nacional
 54 | 14.753.702/0001-50 |                  | t          | Cliente 5 - Contribuinte - PE
 55 | 97.449.840/0001-78 |                  | t          | Cliente 6 - Simples Nacional- PE
 56 | 43.266.887/0001-77 |                  | t          | Cliente 7 RS - Contribuinte
 57 | 13.691.522/0001-29 |                  | f          | Cliente 7 - RS - Endereço Cobrança
 58 | 32.406.080/0001-76 |                  | t          | Cliente 8 RS - Simples Nacional
 59 | 11.034.414/0001-58 |                  | t          | Akretion Sao Paulo
 61 | 11.034.414/0003-10 |                  | t          | Akretion Aluminio - SP
 62 | 26.355.289/0001-55 |                  | t          | Cliente 9 MG - PJ Não Contribuinte
 64 | 23.130.935/0001-98 |                  | t          | KMEE
 67 | 81.583.054/0001-29 |                  | t          | Empresa Lucro Presumido
 68 | 59.594.315/0001-57 |                  | t          | TESTE - Simples Nacional
 63 |                    | 276.288.360-11   | f          | Cliente 10 MG - PF Não Contribuinte
 66 |                    | 765.865.078-12   | f          | Cliente 11 SP - PF Não Contribuinte

@rvalyi rvalyi marked this pull request as ready for review September 29, 2024 21:00
@rvalyi rvalyi force-pushed the 16.0-vat branch 3 times, most recently from 9968114 to 46ac1d7 Compare September 30, 2024 03:42
@antoniospneto
Copy link
Contributor

antoniospneto commented Oct 17, 2024

@rvalyi

Apenas teria que ver a questão dos filtros do CNPJ/CPF o campo cnpj_cpf agora ele não é mais persistido no banco de dados, então ele não pode ser mais usado no dominio do filtro que atualmente está assim:

                <field
                    name="cnpj_cpf"
                    filter_domain="['|', ('cnpj_cpf', 'ilike', self), ('cnpj_cpf_stripped', 'ilike', self)]"
                />

Vejo duas soluções:

Solução 1: Marcar o campo cnpj_cpf como stored=true
Solução 2: Utilizar os campos vat e l10n_br_cpf_code no lugar de cnpj_cpf na estrutura do dominio do filtro.

Obs: esse mesmo filtro é aplicado em diversos modelos: contato, pedido, fatura, crm. é preciso aplicar a alteraçaõ em todos

Copy link
Contributor

@antoniospneto antoniospneto left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Concordo que a alteração é bem-vinda para manter a consistência com o Odoo Nativo.
Apenas precisamos verificar a questão dos filtros que comentei acima.

@rvalyi
Copy link
Member Author

rvalyi commented Nov 13, 2024

vale a pena ver que um refator importante do VAT/CNPJ que tinha sido feito pelo @marcelsavegnago na 14.0 ta atualmente faltando na 16.0 e por isso certamente esse meu PR ta incompleto:

#3487 (comment)

cc @antoniospneto @renatonlima

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants