Skip to content

[16.0][IMP] l10n_br_fiscal: catálogo de operações fiscais + saneamento das operações-base#4765

Draft
mileo wants to merge 3 commits into
OCA:16.0from
kmee:16.0-f7-operation-catalog
Draft

[16.0][IMP] l10n_br_fiscal: catálogo de operações fiscais + saneamento das operações-base#4765
mileo wants to merge 3 commits into
OCA:16.0from
kmee:16.0-f7-operation-catalog

Conversation

@mileo

@mileo mileo commented Jul 25, 2026

Copy link
Copy Markdown
Member

Resumo

Amplia e saneia o catálogo de operações fiscais (fiscal.operation) do l10n_br_fiscal, em três frentes:

  1. Catálogo de operações: 15 famílias curadas de cenários brasileiros comuns.
  2. Saneamento tributário das operações-base: corrige bugs de CST/pareamento em operações que já existem no core.
  3. Saneamento dos flags finance_move/stock_move do CFOP: corrige flags semanticamente errados.

Commits separados por tema para revisão em camadas (catálogo aditivo isolado dos dois saneamentos, que são sensíveis e têm migração).

1. Catálogo de operações (aditivo)

15 famílias, cada uma com linhas, CFOPs por destino, CST/tratamento tributário (dissociação de fato gerador onde aplicável), encadeamento remessa/retorno e testes:

consignação mercantil · venda (isento de IE, ativo, complementares) · compras (matriz de crédito) · devoluções · bonificação/brinde/doação/amostra · venda à ordem/triangular · comodato · industrialização por encomenda · ativo imobilizado · demonstração/mostruário/feira · transferências entre filiais · comércio exterior (remessa com fim específico de exportação) · ajustes/baixa de estoque · armazém geral/depósito e embalagens retornáveis · entrega futura · venda fora do estabelecimento.

2. Saneamento das operações-base (com migração)

Corrige bugs de tratamento tributário em operações do core:

  • fo_entrega_futura: remessa de produção passa a destacar IPI (zeramento com CST 51 estava errado); PIS/COFINS com CST 49 (não 06).
  • fo_simples_faturamento: adiciona zeramento de IPI.
  • fo_entrada_reparo: IPI CST 00->49; PIS/COFINS CST 99->98.
  • fo_entrada_industrializacao: IPI CST 55 (saída)->05 (entrada).
  • industrialização: corrige o pareamento de return (remessa do encomendante retorna pela entrada de retorno 1902, não pela entrada do industrializador 1901).
  • fo_bonificacao: completa a linha (product_type/ind_ie_dest/tax_icms_or_issqn).

Inclui post-migration para reaplicar as correções em bases existentes (registros noupdate). Bump de versão para 16.0.21.7.0.

3. Saneamento dos flags do CFOP

  • Entrega futura: simples faturamento (5922...) -> 1/0 (fatura, não move estoque); remessa/entrada física (5116/5117...) -> 0/1 (move, já faturado).
  • Inconsistências internoxinterestadual da mesma operação: devolução simbólica 5919 e devolução de transferência 6208/6209 alinhadas aos pares (0/1).

Escopo desta rodada: correções de alta confiança. Demais grupos suspeitos ficam catalogados para revisão caso a caso.

Testes

64 testes (--test-tags op_catalog), instalação do zero verde no Odoo 16.0.

@OCA-git-bot

Copy link
Copy Markdown
Contributor

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

@CristianoMafraJunior

Copy link
Copy Markdown
Member

@mileo Olá, boa noite, não seria melhor abrir uma PR para esse commit a0c77b6 e outra PR para esse commit 63111aa, vejo que o DIFF é bem menor e aparece corrigir questão de um BUG, falo isso por que abrir uma PR com DIFF de +4mil linhas até pessoal da localização revisar isso levar mesês então quebrar isso ali em duas PRs menor já seria um bom começo.
OBS: Não estou dizendo que o código ta errado por que não olhei, e outra coisa questão do prefixo [16.0] nos commits

@mileo
mileo force-pushed the 16.0-f7-operation-catalog branch from 63111aa to d5946e6 Compare July 25, 2026 00:53
@mileo
mileo marked this pull request as draft July 25, 2026 00:54
@mileo
mileo force-pushed the 16.0-f7-operation-catalog branch from d5946e6 to 03e5e31 Compare July 25, 2026 02:04
@mileo

mileo commented Jul 25, 2026

Copy link
Copy Markdown
Member Author

@mileo Olá, boa noite, não seria melhor abrir uma PR para esse commit a0c77b6 e outra PR para esse commit 63111aa, vejo que o DIFF é bem menor e aparece corrigir questão de um BUG, falo isso por que abrir uma PR com DIFF de +4mil linhas até pessoal da localização revisar isso levar mesês então quebrar isso ali em duas PRs menor já seria um bom começo. OBS: Não estou dizendo que o código ta errado por que não olhei, e outra coisa questão do prefixo [16.0] nos commits

so se eu separar os testes tb que eu inseri junto do fix. Mas os testes efetivamente nem sao a parte mais pesada, a parte pesada sao os dados das operações fiscais.

Cada operação 200 linhas em media X 15 = 3 mil linhas. Pra reduzir só se tirar os testes.

Mas o #4762 tem 3 mil linhas e sem testes.

A ideia desse PR eh deixar a configuracao fiscal mais rapida suportando todas as operacoes que mapei em clientes que implementamos nos ultimos anos.

@mileo
mileo marked this pull request as ready for review July 25, 2026 08:40
@mileo
mileo requested review from renatonlima and rvalyi July 25, 2026 08:41
@mileo
mileo marked this pull request as draft July 25, 2026 08:48
@mileo
mileo force-pushed the 16.0-f7-operation-catalog branch 3 times, most recently from 68231f3 to 1a34e10 Compare July 25, 2026 22:11
mileo added 3 commits July 25, 2026 19:36
Amplia o catálogo de fiscal.operation com 15 famílias curadas de cenários
brasileiros comuns (consignação, venda à ordem/triangular, comodato,
industrialização, ativo, demonstração, transferências, comércio exterior,
armazém geral, embalagens retornáveis, entrega futura, venda fora do
estabelecimento, bonificação/brinde/doação/amostra, devoluções, compras),
cada uma com linhas, CFOPs por destino, CST/tratamento tributário via
tax.definition e encadeamento remessa/retorno.

O catálogo é neutro de regime tributário: linhas irmãs Simples Nacional
(company_tax_framework=1) emitem com CSOSN (400 para movimentos sem receita,
900 para ajustes; linhas de receita herdam a tributação SN da empresa) e os
demais regimes com CST, pela mesma operação. Mudar a empresa de regime
(Simples <-> Presumido <-> Real, inclusive excesso de sublimite) exige apenas
alterar o cadastro da empresa (test_regime cobre as transições). Funciona em
multi-empresa: empresas de regimes diferentes no mesmo banco usam as mesmas
operações.

Operações de venda/compra novas não estendem fo_venda/fo_compras do core
(para não alterar a estrutura testada por l10n_br_pos/l10n_br_purchase).
Testes data-driven (test_operation_catalog) cobrem CFOPs por destino,
encadeamentos e CSTs por família.
- fo_entrega_futura: remessa de produção destaca IPI (zeramento CST 51 estava
  errado); PIS/COFINS com CST 49 (não 06)
- fo_simples_faturamento: adiciona zeramento de IPI
- fo_entrada_reparo: IPI CST 00->49; PIS/COFINS CST 99->98
- fo_entrada_industrializacao: IPI CST 55 (saida)->05 (entrada)
- industrializacao: corrige o pareamento de return
- fo_bonificacao: completa a linha (product_type/ind_ie_dest/tax_icms_or_issqn)

Inclui post-migration para reaplicar em bases existentes (registros noupdate).
O bump de versão habilita a pasta de migração.
… CFOP

- entrega futura: simples faturamento (5922...) -> 1/0; remessa/entrada física
  (5116/5117...) -> 0/1
- inconsistências interno x interestadual: 5919 e 6208/6209 alinhados aos pares (0/1)
@mileo
mileo force-pushed the 16.0-f7-operation-catalog branch from 1a34e10 to 842de12 Compare July 25, 2026 22:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants