Skip to content

feat(rtc): adicionar método do evento 112150 e 7 XSDs da NT 2025.002-RTC#76

Merged
rhfranzoni merged 3 commits into
masterfrom
feature/adicionar-eventos-rtc-faltantes
Apr 28, 2026
Merged

feat(rtc): adicionar método do evento 112150 e 7 XSDs da NT 2025.002-RTC#76
rhfranzoni merged 3 commits into
masterfrom
feature/adicionar-eventos-rtc-faltantes

Conversation

@john182
Copy link
Copy Markdown

@john182 john182 commented Apr 27, 2026

Contexto

Este fork (nfe/DFe.NET) já contém suporte parcial aos eventos RTC da NT 2025.002-RTC, trazidos via cherry-pick anterior (a04a2ee3 ajuste apps para reforma tributaria). Faltava completar o evento 112150 (Atualização da Data de Previsão de Entrega) e os 7 schemas XSD correspondentes — bloqueio para nfe/dfetech-product-invoice-api#8 (preparação dos eventos RTC no consumer, status "Ready").

Sincronização seletiva com upstream — não merge dos 1906 commits do ZeusAutomacao/DFe.NET (que conflitariam com nossos 277 hotfixes de URL SEFAZ, NTs antecipadas, SVAN customizado, conversão sync→async).

SHA de referência do upstream

Conteúdo derivado de ZeusAutomacao/DFe.NET@cfe8d802 (tag 2026.04.20.1711).

O que muda

Commit d8fc3a7b — 7 schemas XSD

Em NFe.AppTeste/Schemas/ (cópia byte-a-byte do upstream + entrada no .csproj):

  • e110001_v1.00.xsd — Cancelamento de Evento RTC
  • e112110_v1.00.xsd — Pagamento integral
  • e112120_v1.00.xsd — ALC/ZFM não convertida em isenção
  • e112130_v1.00.xsd — Perecimento transporte fornecedor
  • e112140_v1.00.xsd — Fornecimento não realizado
  • e112150_v1.00.xsd — Atualização Data Previsão Entrega
  • e211120_v1.00.xsd — Consumo pessoal (NF-e Importação)

Commit 2857e5dd — campo dPrevEntrega

NFe.Classes/Servicos/Evento/detEvento.cs: nova propriedade DateTime? dPrevEntrega + proxy ProxydPrevEntrega serializado como <dPrevEntrega> formato AAAA-MM-DD. Idêntico ao upstream.

Commit b5254419 — método 112150 em ServicosNFe

Novo método público RecepcaoEventoAtualizacaoDaDataDePrevisaoDeEntrega, completando os 7 eventos RTC do escopo da issue. Adaptado do upstream para o padrão assíncrono do fork (async Task<RetornoRecepcaoEvento> + await EnviarEObterRetornoRecepcaoEvento), seguindo template idêntico aos 6 métodos RTC irmãos. Inclui o serviço no array listaEventos de RecepcaoEventoAsync para consistência.

Garantias

  • Zero breaking changes: adição pura. Nenhum método/enum/classe pré-existente foi renomeado ou teve assinatura alterada.
  • Zero alteração nos 6 métodos RTC já presentes (110001, 112110, 112120, 112130, 112140, 211120).
  • Nenhum hotfix nosso de URL SEFAZ tocado (Enderecador, ServicosNFe.CriarServico, Validador).

Validações

Validação Resultado
dotnet build NFe.Servicos -c Release ✅ 0 errors, warnings só pré-existentes
MSBuild solução completa Release ✅ 0 errors, warnings só pré-existentes
NFe.Testes (legacy MSTest) ✅ compila; vstest.console não disponível, sanity OK
NFCe.Tests ⚠️ 1 falha pré-existente (path hardcoded C:\Works\nfe\nfe-products-api\schemas); reproduzido em master, não é regressão
Consumer dfetech-product-invoice-api build com submódulo neste SHA ✅ 0 errors
DFeTech.ProductInvoice.Tests ✅ 104/104
DFeTech.Taxes.Tests.Unit ✅ 43/43

Não-objetivos (explícitos)

  • Merge de outros commits do upstream
  • Eventos RTC de autoria Destinatário/Sucessora/Fisco (excluídos pela D-001 da análise da issue)
  • Ajustes em DANFE (NT §9 posterga)
  • Bump do submódulo no consumer + cópia de XSDs para nfeio-product-invoice/schemas/ — ficam para mudança separada após merge deste PR

Referência

  • Issue: nfe/dfetech-product-invoice-api#8
  • Análise técnica: openspec/changes/adicionar-eventos-rtc-faltantes/ (proposal, design, specs, tasks)

🤖 Generated with Claude Code

JohnVanderson and others added 3 commits April 24, 2026 15:05
Schemas copiados byte-a-byte de ZeusAutomacao/DFe.NET@cfe8d802
(tag 2026.04.20.1711) em NFe.AppTeste/Schemas/:
- e110001_v1.00.xsd (Cancelamento de Evento RTC)
- e112110_v1.00.xsd (Pagamento integral)
- e112120_v1.00.xsd (ALC/ZFM não convertida)
- e112130_v1.00.xsd (Perecimento transporte fornecedor)
- e112140_v1.00.xsd (Fornecimento não realizado)
- e112150_v1.00.xsd (Data previsão entrega)
- e211120_v1.00.xsd (Consumo pessoal NF-e Importação)

Necessários para validação em runtime pelo Validador ao
emitir eventos RTC da NF-e (autoria Emitente, modelo 55).

Ref: nfe/dfetech-product-invoice-api#8

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Adiciona propriedade nullable `dPrevEntrega` + proxy string
`ProxydPrevEntrega` na classe detEvento, usada pelo evento
RTC 112150 (Atualização da Data de Previsão de Entrega) para
transportar a data no formato "AAAA-MM-DD" conforme NT
2025.002-RTC.

Estrutura idêntica ao upstream ZeusAutomacao/DFe.NET@cfe8d802:
- `[XmlIgnore] DateTime? dPrevEntrega`
- `[XmlElement("dPrevEntrega")] string ProxydPrevEntrega` com
  serialização via `ParaDataString()` (já existente em
  DFe.Utils, suprime tag quando null).

Ref: nfe/dfetech-product-invoice-api#8

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
Adiciona `RecepcaoEventoAtualizacaoDaDataDePrevisaoDeEntrega`
em `ServicosNFe`, completando o suporte aos 7 eventos RTC
em escopo da NT 2025.002-RTC (autoria Emitente, NF-e mod.55).
Os outros 6 métodos (110001, 112110, 112120, 112130, 112140,
211120) já estavam no fork via cherry-pick anterior (a04a2ee).

Forma portada de ZeusAutomacao/DFe.NET@cfe8d802 adaptada ao
padrão assíncrono do fork (`async Task<RetornoRecepcaoEvento>`
+ `await EnviarEObterRetornoRecepcaoEvento`), seguindo o mesmo
template dos 6 métodos RTC irmãos.

Também inclui o serviço no array `listaEventos` de
`RecepcaoEventoAsync` (entrada assim como os irmãos RTC),
para consistência.

Zero breaking changes: adição pura de método e entrada em
array; nenhuma assinatura pré-existente alterada.

Ref: nfe/dfetech-product-invoice-api#8

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
@john182 john182 requested a review from rhfranzoni April 27, 2026 18:23
@rhfranzoni rhfranzoni merged commit d727aa3 into master Apr 28, 2026
2 checks passed
@rhfranzoni rhfranzoni deleted the feature/adicionar-eventos-rtc-faltantes branch April 28, 2026 20:34
rhfranzoni added a commit that referenced this pull request May 26, 2026
Completa os schemas dos eventos RTC NT 2025.002 v1.40 introduzidos pelo
PR #76 — os 10 abaixo estavam ausentes em NFe.AppTeste/Schemas e ja eram
referenciados pelo Validador.cs / ServicosNFe.cs:

- e211110_v1.00.xsd (Solicitacao de Apropriacao de credito presumido)
- e211124_v1.00.xsd (Perecimento, perda, roubo ou furto durante
  o transporte contratado pelo adquirente)
- e211128_v1.00.xsd (Aceite de debito na apuracao por emissao de
  nota de credito)
- e211130_v1.00.xsd (Imobilizacao de Item)
- e211140_v1.00.xsd (Solicitacao de Apropriacao de Credito de
  Combustivel)
- e211150_v1.00.xsd (Solicitacao de Apropriacao de Credito para bens
  e servicos que dependem de atividade do adquirente)
- e212110_v1.00.xsd (Manifestacao sobre Pedido de Transferencia de
  Credito de IBS em Operacoes de Sucessao)
- e212120_v1.00.xsd (Manifestacao sobre Pedido de Transferencia de
  Credito de CBS em Operacoes de Sucessao)
- e412120_v1.00.xsd (Manifestacao do Fisco sobre Pedido de
  Transferencia de Credito de IBS em Operacoes de Sucessao)
- e412130_v1.00.xsd (Manifestacao do Fisco sobre Pedido de
  Transferencia de Credito de CBS em Operacoes de Sucessao)

Atualiza tiposBasico_v1.03.xsd para a versao da NT 2025.002 v1.40, que
acrescenta TnItem, TDec_0302_04, TDec_1104Neg, TDec1302 e TCOrgaoIBGE
- necessarios para os XSDs RTC referenciarem corretamente. As mudancas
nos patterns existentes apenas relaxam restricoes (CFOP/NCM 15 ou 17
digitos, placa Mercosul, [ -y]* equiv. [ -y]{0,}) - backward-compatible
com os schemas legados que ja consomem tiposBasico_v1.03.xsd.

Adiciona entries <None Include> no NFe.AppTeste.csproj para os 10 novos
schemas, com CopyToOutputDirectory=Always seguindo o padrao dos demais
XSDs do projeto.

Co-Authored-By: Claude Opus 4.7 (1M context) <[email protected]>
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