Skip to content

feat: DANFE Simplificado Tipo 2 (NT 2026.003)#48

Open
honjoya wants to merge 2 commits into
mainfrom
feat/danfe-tipo-2
Open

feat: DANFE Simplificado Tipo 2 (NT 2026.003)#48
honjoya wants to merge 2 commits into
mainfrom
feat/danfe-tipo-2

Conversation

@honjoya

@honjoya honjoya commented Jul 3, 2026

Copy link
Copy Markdown

Resumo

Novo renderizador DanfeSimplificadoTipo2 — documento auxiliar em formato cupom para NF-e modelo 55 emitida com tpImp=6 (NT 2026.003 v1.00, producao 03/08/2026), nas 9 divisoes da NT:

Divisao Bloco
I — Cabecalho + titulo "DANFE Simplificado Tipo 2" BlocoCabecalhoSimplificadoT2
II — Produtos TabelaProdutosSimplificadoT2
III — Totais (troco sempre impresso) BlocoTotaisSimplificadoT2
III-A — IBS/CBS/IS (omitida sem o grupo) BlocoTributosIbsCbsT2
IV — Consulta (chave em 11 blocos de 4) BlocoConsultaChaveT2
V — QR Code (>= 25mm; omitida sem vm.QrCode) BlocoQrCodeT2
VI — Consumidor BlocoConsumidorT2
VII — Identificacao (dhEmi em horario local) BlocoIdentificacaoT2
VIII — Contingencia (2 locais + 2a via) / Homologacao BlocoMensagemContingenciaT2 + reuso BlocoInformacaoFiscal
IX — Mensagens (infCpl + Lei 12.741) BlocoMensagensT2
  • Pagina 280pt (~99mm, acima do minimo de 56mm), altura dinamica, mesmo padrao do DanfeNFC.
  • Contingencia pendente de autorizacao gera 2 paginas ("Via do Consumidor" / "Via do Estabelecimento").
  • DanfeViewModel: novos TributosIbsCbs, OperacaoNaoPresencial, PendenteAutorizacao, ValorPagoTotal, TrocoTotal.
  • Zero mudanca nos renderizadores existentes (Danfe A4 e DanfeNFC).

Spec OpenSpec em openspec/specs/danfe-simplificado-tipo-2/spec.md.

Testes

DanfeSimplificadoTipo2Tests (MSTest, padrao TextExtractor de DanfeCanceladaTests): 1 cenario por divisao + contingencia (4 ocorrencias da mensagem, 2 vias) + smoke de altura com 1/30/200 itens.

Emissor: nfe/dfetech-product-invoice-api — issue nfe/dfetech-product-invoice-api#268 (contexto NT 2026.002/003).

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

Adiciona o novo renderizador DanfeSimplificadoTipo2 (NT 2026.003, tpImp=6) para NF-e mod. 55 em layout “cupom” de largura fixa e altura dinâmica, composto por blocos empilhados (9 divisões) e com suíte de testes dedicada para validar cada divisão e cenários de contingência/altura.

Changes:

  • Implementa DanfeSimplificadoTipo2 e os blocos de renderização SimplificadoTipo2/* cobrindo as 9 divisões da NT (incl. 2 vias em contingência pendente).
  • Estende DanfeViewModel com TributosIbsCbs, OperacaoNaoPresencial, ValorPagoTotal e TrocoTotal, além de PendenteAutorizacao.
  • Inclui especificação OpenSpec e testes MSTest (DanfeSimplificadoTipo2Tests) + referência no .csproj.

Reviewed changes

Copilot reviewed 17 out of 17 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
openspec/specs/danfe-simplificado-tipo-2/spec.md OpenSpec com requisitos e cenários por divisão (incl. contingência e não-regressão).
DanfeSharp/Modelo/TributosIbsCbsViewModel.cs Novo ViewModel para totais IBS/CBS/IS (Divisão III-A).
DanfeSharp/Modelo/DanfeViewModel.cs Novas propriedades para NT 2026.003 (pendência, tributos IBS/CBS, totais de pago/troco, operação não presencial).
DanfeSharp/Extentions.cs Adiciona URL de consulta NF-e mod. 55 para a Divisão IV.
DanfeSharp/DanfeSimplificadoTipo2.cs Novo renderizador principal com composição por blocos, metadados e estimativa de altura.
DanfeSharp/Blocos/SimplificadoTipo2/BlocoCabecalhoSimplificadoT2.cs Divisão I (emitente + título).
DanfeSharp/Blocos/SimplificadoTipo2/TabelaProdutosSimplificadoT2.cs Divisão II (tabela de itens).
DanfeSharp/Blocos/SimplificadoTipo2/BlocoTotaisSimplificadoT2.cs Divisão III (totais, formas de pagamento, valor pago e troco sempre).
DanfeSharp/Blocos/SimplificadoTipo2/BlocoTributosIbsCbsT2.cs Divisão III-A (IBS/CBS/IS; omitida quando grupo ausente).
DanfeSharp/Blocos/SimplificadoTipo2/BlocoConsultaChaveT2.cs Divisão IV (URL de consulta + chave em 11 blocos).
DanfeSharp/Blocos/SimplificadoTipo2/BlocoQrCodeT2.cs Divisão V (QR Code opcional).
DanfeSharp/Blocos/SimplificadoTipo2/BlocoConsumidorT2.cs Divisão VI (identificação do consumidor / não identificado).
DanfeSharp/Blocos/SimplificadoTipo2/BlocoIdentificacaoT2.cs Divisão VII (número/série, emissão, via, protocolo).
DanfeSharp/Blocos/SimplificadoTipo2/BlocoMensagemContingenciaT2.cs Divisão VIII (mensagem de contingência pendente em 2 locais).
DanfeSharp/Blocos/SimplificadoTipo2/BlocoMensagensT2.cs Divisões VIII/IX (infAdFisco, infCpl e Lei 12.741).
DanfeSharp.Test/DanfeSimplificadoTipo2Tests.cs Nova suíte de testes por divisão + contingência + smoke de altura.
DanfeSharp.Test/DanfeSharp.Test.csproj Inclui o novo arquivo de testes no projeto.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

}
else
{
var rotuloDocumento = dest.CnpjCpf.Trim().Length == 14 ? "CNPJ" : "CPF";
Comment on lines +85 to +87
altura += 90; // Divisão III — totais fixos + valor pago + troco
foreach (var pagamento in viewModel.Pagamento)
altura += (pagamento.DetalhePagamento?.Count ?? 0) * 10;
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.

2 participants