nfephp-org / sped-nfe

API para geração e comunicação das NFe com as SEFAZ autorizadoras
Other
1.2k stars 531 forks source link

Problema ao Cancelar NFE Sefaz de MG #1065

Open privatesistemas opened 1 month ago

privatesistemas commented 1 month ago

Nota: para questões de suporte, use Google Groups https://groups.google.com/forum/#!forum/nfephp . Os problemas deste repositório são reservados para solicitações de recursos e relatórios de erros.

Comportamento esperado

O evento de Cancelamento NFE em Minas Gerais deve-se setar 1.00 nas tags de cabecalho do xml

Comportamento Atual

Gera o erro abaixo ao tentar cancelar uma nota pelo SEFAZ de MG na versão 4.00: "Element '{http://www.portalfiscal.inf.br/nfe}envEvento', attribute 'versao': [facet 'pattern'] The value '4.00' is not accepted by the pattern '1.00'.

Solução possível

Fiz uma correção no arquivo diretamente no arquivo ..sped-nfe\src\Tools.php

Passos para reproduzir

1 Emitir uma NFE pelo SEFAZ de MG (ambiente de Homologacao) 2 TENTAR CANCELAR ESSA NFE 3 4

Contexto (Ambiente)

O sistema não conseguia enviar o evento de cancelamento. Gerando o erro citado acima

Descrição detalhada

Automaticamente na classe ..sped-nfe\src\Tools.php, na function sefazEvento(...), está setando o cabeçalho do evento sempre com a variavel: $this->urlVersion "<envEvento xmlns=\"$this->urlPortal\" versao=\"$this->urlVersion\">"

Está está vindo de acordo com o padrão 4.00 em MG.

Possível implementação

ADicionei a linha 911 //Evento de Cancelamento NFE em Minas gerais deve-se setar 1.00 nas tags de cabecalho do xml //$this->urlVersion --> variavel usada abaixo para montar XML, nao pode seta-la antes em outra classe // pq ela esta como protected e na linha 908 a funcao this->servico seta ela novamente pra 4.00 if (!empty($eventos[$tpEvento])) { $evt = $eventos[$tpEvento]; if (($uf == "MG") && ($evt['nome'] == 'envEventoCancNFe')){ $this->urlVersion = "1.00"; } }

robmachado commented 1 month ago

Não sei o que você está fazendo ai ! mas todos os cancelamento a versão enviada é a 1.00, para qualquer UF Acabei de testar aqui !