Skip to content

fix(nfce): bloco da Lei 12.741 no DANFE NFC-e usa o vTotTrib do XML - #53

Merged
rhfranzoni merged 2 commits into
mainfrom
fix/danfe-nfce-lei-12741-vtottrib
Oct 8, 2026
Merged

rhfranzoni merged 2 commits into
mainfrom
fix/danfe-nfce-lei-12741-vtottrib

Conversation

@rhfranzoni

@rhfranzoni rhfranzoni commented Oct 8, 2026 •

Copy link
Copy Markdown

Refs nfe/dfetech-product-invoice-api#787

Problema

CreateFromProcNFCe montava o bloco "CONFORME LEI 12.741/2012" com a soma dos tributos destacados (vICMS + vST + vII + vIPI + vPIS + vCOFINS) e ignorava o vTotTrib. O vTotTrib é o valor aproximado da carga da cadeia, informado pelo emitente (ex.: IBPT). Na nota do caso, o XML trazia vTotTrib 5,09 e o DANFE imprimia 4,04 (PIS 0,41 + COFINS 1,89 + ICMS 1,74).

O Manual do DANFE NFC-e (v5.1, item 3.1.9.1) diz que esse campo é informativo e que "não é possível ser feita qualquer validação com relação à soma de tributos destacados".

Mudança

  • CreateFromProcNFCe: ValorAproximadoTributos = ICMSTot.vTotTrib. As parcelas federal e estadual não são mais derivadas dos destacados, porque o XML não discrimina o valor por ente.
  • BlocoQrCodeNFC (NFC-e) e BlocoMensagensT2 (Tipo 2): as linhas "Federais" e "Estaduais" só aparecem com valor. No Tipo 2 elas saíam com "é " e sem valor.
  • A altura reservada para o bloco (DanfeNFC, DanfeSimplificadoTipo2) segue as linhas impressas, via CalculoImpostoViewModel.LinhasTributosAproximados. Esse ajuste veio do code-review.

Merge: usar merge commit, sem squash. O submódulo de nfe/dfetech-product-invoice-api (#788) aponta para os commits desta branch.

Efeito visível

  • NFC-e com vTotTrib: o bloco mostra o vTotTrib, sem as linhas por ente.
  • NFC-e sem vTotTrib: o bloco deixa de aparecer. Antes, aparecia a soma dos destacados como se fosse o valor da lei.

Testes

Os testes de regressão ficam em nfe/dfetech-product-invoice-api (DanfeServiceNfceLei12741Tests e um caso em DanfeServiceSimplifiedType2Tests). Eles renderizam o PDF por esta lib, porque o DanfeSharp.Test é .NET Framework 4.6.1. Com o código anterior, os 6 testes falham.

🤖 Generated with Claude Code

O bloco "CONFORME LEI 12.741/2012" do DANFE NFC-e somava os tributos destacados
(vICMS+vST+vII+vIPI+vPIS+vCOFINS) e ignorava o vTotTrib, que é o valor aproximado
da carga da cadeia informado pelo emitente (ex.: IBPT). O Manual do DANFE NFC-e
(v5.1, item 3.1.9.1) diz que o campo é informativo e não guarda relação com a soma
dos destacados.

- CreateFromProcNFCe: ValorAproximadoTributos = ICMSTot.vTotTrib; as parcelas
  federal/estadual não são mais derivadas dos destacados (o XML não as discrimina)
- BlocoQrCodeNFC e BlocoMensagensT2: linhas "Federais"/"Estaduais" só quando
  houver valor (no Tipo 2 saíam com "é " e sem valor)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rhfranzoni rhfranzoni self-assigned this Oct 8, 2026
…code-review)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@rhfranzoni
rhfranzoni merged commit 1445783 into main Oct 8, 2026
2 checks passed
@rhfranzoni
rhfranzoni deleted the fix/danfe-nfce-lei-12741-vtottrib branch October 8, 2026 18:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant