Skip to content

feat(rtc): classes RTC NT 2025.002 (PL_010e) — IS, cIndOp, refDFeAnt, gALCZFMCBS#85

Draft
rhfranzoni wants to merge 3 commits into
masterfrom
feat/nt2025-002-rtc-schema-classes
Draft

feat(rtc): classes RTC NT 2025.002 (PL_010e) — IS, cIndOp, refDFeAnt, gALCZFMCBS#85
rhfranzoni wants to merge 3 commits into
masterfrom
feat/nt2025-002-rtc-schema-classes

Conversation

@rhfranzoni

@rhfranzoni rhfranzoni commented Jul 3, 2026

Copy link
Copy Markdown

Contexto

A NF-e da Reforma Tributária (RTC — NT 2025.002) adiciona grupos/campos que o DFe.NET ainda não modela. O consumidor nfe/dfetech-product-invoice-api#265 precisa dessas classes para emitir os grupos na conversão XML.

Escopo (limitado ao schema fornecido: PL_010e_v1.01 — nível RTC v1.40)

  • IS (TIS) — grupo Imposto Seletivo em det/imposto (CSTIS, cClassTribIS?, vBCIS, pIS, adRemIS?, uTrib?, qTrib, vIS).
  • cIndOp — código indicador do local da operação, no produto (opcional).
  • refDFeAnt — referência a DF-e anterior (Compras Governamentais, TChDFeRTC).
  • gALCZFMCBS — ALC/ZFM alíquota zero CBS (tpALCZFMCBS, nProcSUFRAMA, pAliqEfetRegCBS, vTribRegCBS).

Fora de escopo (não estão no PL_010e_v1.01)

  • Monofásico reformulado v1.50 (Ad Rem × Ad Valorem, gpBioDiferenca) e ISUFemit — change futura quando o PL v1.50 oficial chegar.

Compatibilidade

Aditivo: todos os campos são opcionais (minOccurs=0) com ShouldSerialize* — notas sem RTC produzem XML idêntico ao atual.

Plano

OpenSpec: add-nt2025-002-rtc-schema-classes (proposal + design + tasks + spec).

🤖 Generated with Claude Code


Relates to #86


⚠️ Divergência do upstream (ZeusAutomacao/DFe.NET) — risco documentado para decisão futura

Decisão atual: manter esta implementação no fork (curto prazo) — desbloqueia o consumidor nfe/dfetech-product-invoice-api#265. A estratégia de fork fica como decisão futura (este registro é para embasá-la).

Situação (verificado em 2026-07-03):

  • O nfe/DFe.NET está divergente do upstream ZeusAutomacao/DFe.NET: +285 / −1989 commits (diverged). O fork seguiu caminho próprio; o upstream avançou ~2000 commits (RTC própria + CNPJ alfanumérico NT 2026.004 + mais).
  • O upstream tem implementação RTC própria e paralela à nossa: já possui IBSCBS.cs e Federal/IS.cs no master, e histórico grande de PRs da Reforma (ex.: feat: ajuste nos campos criados pela Reforma Tributária e adição dos da nova Nota Técnica ZeusAutomacao/DFe.NET#1626 "adição dos campos da nova NT", mergeado em Reforma_tributaria, tocando gIBSCBSMono, gMonoPadrao/Ret/Reten/Dif, gTribCompraGov, IS.cs, ide.cs, gCBSTotal).
  • Os 3 campos deste PR (cIndOp, refDFeAnt, gALCZFMCBS) NÃO existem no master do upstream (code search + grep no ide.cs do upstream = 0) — logo, não há duplicação com o upstream hoje.

Riscos da divergência:

  • Se um dia sincronizarmos com o upstream, a RTC deles pode diferir da nossa (nomes de classe/campo, estrutura do monofásico) → merge doloroso / retrabalho.
  • O upstream pode implementar cIndOp/gALCZFMCBS/refDFeAnt de forma diferente da nossa.

Opções para a decisão futura:

  1. Continuar divergindo no fork (custo de manutenção crescente).
  2. Sincronizar/rebasear na RTC do upstream (aparenta mais avançada — já tem os gMono*).
  3. Contribuir upstream (PR no ZeusAutomacao/DFe.NET) e voltar a acompanhar o master.

Recomenda-se um alinhamento técnico sobre a estratégia de fork antes de investir mais na RTC do fork.

…ALCZFMCBS)

Modela os grupos RTC presentes no schema PL_010e_v1.01 (nível v1.40) ausentes no Zeus.
Fora de escopo: monofásico reformulado v1.50 e ISUFemit (não estão no schema).
Consumidor: nfe/dfetech-product-invoice-api#265.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
rhfranzoni and others added 2 commits July 3, 2026 08:20
- ide.cs: campo cIndOp (B25d) opcional, entre indIntermed e procEmi
- gCompraGov.cs: refDFeAnt (List<string>, até 99) — TCompraGovReduzido
- gALCZFMCBS.cs (novo) + encaixe no gCBS (Order 5; vCBS→6): pAliqEfetRegCBS, vTribRegCBS
- Grupo IS já existia (Federal/IS.cs) — escopo corrigido na OpenSpec
Build NFe.Classes (Release) OK. Consumidor: nfe/dfetech-product-invoice-api#265.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Code-review sem bloqueios (serialização por Order/declaração verificada). Promove a
spec nfe-rtc-schema-classes para openspec/specs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
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