Skip to content

Integração do fork Hércules (ZeusFiscal) até 4bfe1556 - #1729

Merged
AgnaldoSilva0 merged 31 commits into
ZeusAutomacao:masterfrom
AgnaldoSilva0:Branch_31781
Oct 26, 2026
Merged

AgnaldoSilva0 merged 31 commits into
ZeusAutomacao:masterfrom
AgnaldoSilva0:Branch_31781

Conversation

@AgnaldoSilva0

@AgnaldoSilva0 AgnaldoSilva0 commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Integração do fork Hercules-NET/ZeusFiscal na DFe.NET, do d4238431 (última integração) até o 4bfe1556.

PRs do fork nesta integração

PR do fork Autor Como veio Commits
Hercules-NET/ZeusFiscal#188 Vision-Digital ✅ Inteira 076d81c4 CT-e: grupo infDCe
Hercules-NET/ZeusFiscal#189 → Hercules-NET/ZeusFiscal#192 Thiago Batista (revisão de Danilo Breda) ◐ Parcial ✅ d7c88336 CNPJ alfanumérico no resEvento · ◐ 13abb775 só o tiposDistDFe_v1.01.xsd (o e211110 entrou pelo A2) · ❌ de82df75, 0c500cc4, 210d22aa e 5473691f: implementação paralela dos eventos RTC, que a DFe.NET já tem com API própria. As correções do 5473691f foram refeitas no A1 e no A6.
Hercules-NET/ZeusFiscal#190 Jair Gomes / Henrique Teles Ribeiro ✅ Inteira, com ajuste (TargetFramework trocado para net6.0; nome do parâmetro DocumentoCancelado corrigido no A7) a39b043a DACTE Skia · 050056f1 FastReport.dll · 63207c64 DAMDFE Skia
Hercules-NET/ZeusFiscal#191 Henrique Teles Ribeiro ✅ Inteira, completada pelo A5 606834b5 referências de schemas no CTe.AppTeste
Hercules-NET/ZeusFiscal#194 Walisson Pires ✅ Inteira 72972c35 DANFE Simplificado Tipo 2 no OpenFast
Hercules-NET/ZeusFiscal#195 mateushj25 ✅ Inteira (squash direto na master do fork) dc9737bc NF-e: ISUFEmit e cIndOp

Commits sem PR (feitos direto na master do fork):

Commit Autor Como veio
2cc2da0b Marcos Gerene ✅ Integrado: schemas do CT-e, completado pelo A4 (tpOperGov no gCompraGov)
2c94a3ce Marcos Gerene ✅ Integrado: cBenef e vICMSDeson no CT-e
d54a3820 Danilo Breda ◐ Integrado com ajuste: melhorias do #190. O cabeçalho da sln foi mantido como na DFe.NET. Do README, entraram à mão (d1cf3b1) só os trechos sobre os projetos Skia.
f4f6214d Danilo Breda ✅ Aplicado à mão (d1cf3b1): /.vscode no .gitignore

Ajustes feitos depois do merge

  • A1 (a4d0967) (com crédito a Danilo Breda): com RemoverAcentos = true, o descEvento de 15 eventos perdia o acento e o XML falhava no schema. A correção é baseada no 5473691f, adaptada aos nomes da DFe.NET e incluindo o 112150 e o 211120.
  • A2 (03663ed) (com crédito a Thiago Batista): evento 211110 no leiaute oficial da NT 2025.002 v1.40, conferido com o schema oficial.
  • A4 (23bb2c6 e da488e1): o schema do CT-e que veio do 2cc2da0b exige o tpOperGov no gCompraGov (NT 2025.001 RTC v1.14, em produção na SEFAZ desde 04/05/2026), mas a classe não tinha o campo.
    • Entraram o enum TipoOperacaoGov (1 a 4), os valores 5 (Consórcio Público) e 6 (Comitê Gestor do IBS) no TipoEnteGov, e os campos tpOperGov e refDFeAnt no gCompraGov.
    • Na revisão, o tpOperGov passou a ser anulável (ShouldSerializetpOperGov, mesmo padrão do emit.CRT e do vIBS). Assim, CT-e autorizados antes da v1.14, que não têm o campo, podem ser lidos e gravados de novo.
  • A5 (4586518): o DFeTiposBasicos_v1.00.xsd e os 3 schemas do CT-e Simplificado não eram copiados para a pasta bin. Sem o DFeTiposBasicos, os schemas do CT-e e do CT-e OS não compilam pela pasta de saída. Isso completa a correção do 606834b5.
  • A6 (147e1dd) (com crédito a Danilo Breda): com RemoverAcentos = true, o xCondUso do evento 110150 (Ator interessado) perdia o acento, e o XSD só aceita o texto acentuado. O mesmo método do A1 passa a preservar também esse xCondUso. Isso completa o A1.
  • A7 (da488e1): os projetos CTe.Dacte.Fast.Skia e MDFe.Damdfe.Fast.Skia, vindos do fork, passavam o parâmetro "DoocumentoCancelado". Os .frx da DFe.NET usam DocumentoCancelado (corrigido em 6c27ee5c e 1d89bfd8), então o documento cancelado saía sem a marca. Encontrado na revisão da PR.
  • Trechos do fork aplicados à mão (d1cf3b1) (com crédito a Danilo Breda): /.vscode no .gitignore (f4f6214d) e, no README, os projetos Skia do CT-e e do MDF-e e as DLLs licenciadas do FastReport.Skia (d54a3820).

O A3 (validação de vIBS/vCBS nos eventos 112130 e 211124) foi descartado, porque a validação de schema já barra esses casos. Mensagens mais claras para esses erros ficaram para o item #32442.

Observação:
Testes manuais de emissão de CTe: A validação foi realizada em cima dos schemas locais e da Sefaz devido a limitações de ambiente.

Thiago Batista and others added 30 commits August 19, 2026 11:10
A NT 2025.001 acrescentou o grupo infDCe ao choice de infDoc, permitindo
vincular ao CT-e as Declarações de Conteúdo eletrônicas (modelo 99)
transportadas. O grupo existe no cteTiposBasico_v4.00.xsd (elemento infDCe,
filho único: chave do tipo TChDFe), mas não havia classe correspondente.

Sem ele, a única forma de declarar uma DC-e era infOutros com tpDoc=00
(Declaração), cujo nDoc tem maxLength=20 e não comporta a chave de 44
dígitos — vínculo em texto livre, que a SEFAZ não amarra ao documento.

O membro é declarado sem Order porque nenhum outro membro de infDoc usa:
misturar membros ordenados e não ordenados na mesma classe faz o
XmlSerializer lançar InvalidOperationException na sua construção.
Remove referencias aos schemas deletados (evCancPrestDesacordo.xsd e tiposGeralCTe_v3.00-OPENSSL.xsd) que causavam o erro MSB3030 no build. Adiciona os novos schemas evCancVincPgto_v4.00.xsd e evVincPgto_v4.00.xsd, e habilita CopyToOutputDirectory para evCancPrestDesacordo_v4.00.xsd.
…dce-nt-2025-001

feat: add grupo infDCe ao infDoc do CT-e (NT 2025.001)
…teAppTeste

fix(CTe.AppTeste): corrige referencias de schemas do commit 2cc2da0
…treport_skia

Adicionado o projeto Dacte cross platform
…llable real; 112130 envia 0 quando não informado; 211124 rejeita vIBS/vCBS

- RemoverAcentos preserva descEvento dos eventos cujo XSD exige acentuação (assinatura e envio)
- ServicoNFe: novos serviços no final do enum para manter os valores numéricos
- Remove BOM adicionado em arquivos .cs existentes
Adicionando novos eventos RTC (Reforma Tributária) ao modulo de NFe - ZeusAutomacao#189
…omacao#195)

Conforme NT 2025.002 v1.52 (RTC). cIndOp em ide, entre indIntermed e
procEmi; ISUFEmit em emit, após CRT.
…tipo2-openfast

Adicionado suporte ao Danfe Simp. Tipo 2 no OpenFast
Integração do fork Hércules-ZeusFiscal (d423843..4bfe155) - item 31781.

Integrados:
- 076d81c CT-e: grupo infDCe no infDoc (NT 2025.001) - Vision-Digital (ZeusAutomacao#188)
- 2cc2da0 / 606834b CT-e: atualização de schemas e referências no AppTeste - Marcos Gerene / Henrique Teles Ribeiro (ZeusAutomacao#191)
- 2c94a3c CT-e: cBenef e vICMSDeson nos grupos de ICMS - Marcos Gerene
- 050056f FastReport.dll dos projetos Skia - Henrique Teles Ribeiro (ZeusAutomacao#190)
- 72972c3 DANFE Simplificado Tipo 2 no OpenFast - Walisson Pires (ZeusAutomacao#194)
- dc9737b NF-e: ISUFEmit (C22) e cIndOp (B25d) - mateushj25 (ZeusAutomacao#195)
- d7c8833 resEvento: CNPJ alfanumérico (já equivalente no upstream) - Thiago Batista (ZeusAutomacao#192)

Integrados com ajuste:
- a39b043 / 63207c6 DACTE e DAMDFE Skia - Jair Gomes / Henrique Teles Ribeiro (ZeusAutomacao#190):
  TargetFramework net8/9/10 -> net6.0 (padrão DFe.NET e CI com SDK 6)
- d54a382 melhorias do ZeusAutomacao#190 - Danilo Breda: README.md e cabeçalho VS 17 da sln mantidos
- 13abb77 schemas NF-e - Thiago Batista: apenas tiposDistDFe_v1.01.xsd (CNPJ/chave alfanuméricos)

Descartados (efeito revertido neste merge):
- de82df7, 210d22a, 0c500cc, 5473691 (ZeusAutomacao#192): implementação paralela dos eventos RTC.
  A DFe.NET já possui esses eventos com API própria (Evento/Informacoes/*).
  Correções de valor reimplementadas em commits seguintes (Co-authored-by).
- 13abb77 (demais schemas): tiposBasico_v1.03 regride CNPJ alfanumérico e remove
  TDec_1104Neg (evento 790700); os demais arquivos mudam só formatação; e211110 vai
  junto do ajuste do evento 211110.
Com RemoverAcentos = true, os acentos eram removidos de todo o XML do evento,
inclusive do descEvento. Os XSD de 15 eventos (110751, 112110, 112120, 112140,
112150, 211110, 211120, 211128, 211130, 211140, 211150, 212110, 212120, 412120
e 412130) só aceitam a descrição acentuada, o que gerava erro de schema.

Adicionado RemoverAcentosPreservandoDescEvento, usado na assinatura, no envio
e na validação do detEvento. Baseado no commit 5473691 do fork Hércules.

Co-authored-by: Danilo Breda <danilo@bredas.com.br>
- gCredPres -> gCredPresOper (detEvento.gCredPresOper)
- vBC (int) -> vBCCredPres (decimal, 2 casas)
- cCredPres movido de gIBS/gCBS para o item (gCredPresOper)
- gIBS/gCBS -> gIBSCredPres/gCBSCredPres
- schema e211110_v1.00.xsd atualizado para a versão oficial v1.40 (tpAutor aceita 1 e 2)

Co-authored-by: Thiago Batista <rodrigo@visualmanager.com.br>
O commit addf291 do fork Hércules (PR ZeusAutomacao#128) incluiu no projeto os schemas
DFeTiposBasicos_v1.00.xsd, cteSimp_v4.00.xsd, procCTeSimp_v4.00.xsd e
retCTeSimp_v4.00.xsd sem CopyToOutputDirectory. O commit 606834b corrigiu
o mesmo problema só no evCancPrestDesacordo_v4.00.xsd.

Sem o DFeTiposBasicos_v1.00.xsd na pasta bin\schemas, os schemas do CT-e,
do CT-e OS e dos modais (exceto o aéreo) não compilam ("Type 'TPagamentoRTC'
is not declared"), e a validação local falha quando o diretório de schemas
aponta para a saída do projeto.
Aplicados à mão os trechos do fork Hércules que tinham ficado de fora no
merge:
- .gitignore: /.vscode (commit f4f6214)
- README: projetos Skia do CT-e e do MDF-e e DLLs licenciadas do
  FastReport.Skia (commit d54a382)

Co-authored-by: Danilo Breda <danilo@bredas.com.br>
…ajusta o tpOperGov do gCompraGov para ser anulavel e manter a compatibilidade com XML gerados anteriormente
…centos

O XSD do evento 110150 (Ator interessado na NF-e) só aceita o xCondUso
com acento. Com RemoverAcentos = true, o texto saía sem acento e o evento
falhava na validação de schema. O RemoverAcentosPreservandoDescEvento
passa a restaurar também esse xCondUso, como já faz com o descEvento.

Co-authored-by: Danilo Breda <danilo@bredas.com.br>
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.

10 participants