feat: DANFE Simplificado Tipo 2 (NT 2026.003)#48
Open
honjoya wants to merge 2 commits into
Open
Conversation
There was a problem hiding this comment.
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
DanfeSimplificadoTipo2e os blocos de renderizaçãoSimplificadoTipo2/*cobrindo as 9 divisões da NT (incl. 2 vias em contingência pendente). - Estende
DanfeViewModelcomTributosIbsCbs,OperacaoNaoPresencial,ValorPagoTotaleTrocoTotal, além dePendenteAutorizacao. - 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; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
BlocoCabecalhoSimplificadoT2TabelaProdutosSimplificadoT2BlocoTotaisSimplificadoT2BlocoTributosIbsCbsT2BlocoConsultaChaveT2vm.QrCode)BlocoQrCodeT2BlocoConsumidorT2BlocoIdentificacaoT2BlocoMensagemContingenciaT2+ reusoBlocoInformacaoFiscalBlocoMensagensT2DanfeNFC.DanfeViewModel: novosTributosIbsCbs,OperacaoNaoPresencial,PendenteAutorizacao,ValorPagoTotal,TrocoTotal.DanfeA4 eDanfeNFC).Spec OpenSpec em
openspec/specs/danfe-simplificado-tipo-2/spec.md.Testes
DanfeSimplificadoTipo2Tests(MSTest, padrao TextExtractor deDanfeCanceladaTests): 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).