Ir para conteúdo
  • Cadastre-se

dev botao

Sugestão de melhoria no retorno da NFe do Sefaz


  • Este tópico foi criado há 1301 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Como ja é de conhecimento, o ACBr gera a NF-e sempre utilizando aspas (") ao invés de Apostrofe (').

Porém foi verificado que o retorno que o SEFAZ devolve utiliza apostrofe nas Tags, e como esse retorno é incorporado no XML da NF-e, o mesmo fica com algumas tag utilizando apostrofe ao invés de aspas

Exemplo do retorno:

<?xml version="1.0" encoding="UTF-8"?><protNFe versao='4.00'><infProt Id='ID141200000856482'><tpAmb>2</tpAmb><verAplic>PR-v4_6_6</verAplic><chNFe>41200902499797000149550010000409741000687910</chNFe><dhRecbto>2020-09-22T11:40:25-03:00</dhRecbto><nProt>141200000856482</nProt><digVal>FmfNHEoUX+tT3NBtPqg0bfC+z+4=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe>

O nosso cliente acaba tendo problema ao realizar a importação da DU-e, pois acusam que o XML está inconsistente.

Para corrigir internamente realizei a alteração no método TNFeConsulta.TratarResposta da Unit ACBrNFeWebServices da seguinte forma:

// O código abaixo é bem mais rápido que "GerarXML" (acima)...
AProcNFe := TProcNFe.Create;
try
   AProcNFe.XML_NFe := RemoverDeclaracaoXML(XMLOriginal);
   
   // TRECHO ALTERADO
   AProcNFe.XML_Prot := StringReplace(NFeRetorno.XMLprotNFe, '''', '"', [rfReplaceAll]);
   
   AProcNFe.Versao := NFeRetorno.protNFe.Versao;
   if AProcNFe.Versao = '' then
      AProcNFe.Versao := FPVersaoServico;
   AjustarOpcoes( AProcNFe.Gerador.Opcoes );
   AProcNFe.GerarXML;

   XMLOriginal := AProcNFe.Gerador.ArquivoFormatoXML;
finally
   AProcNFe.Free;
end;

Gostaria de sugerir a implementação de um tratamento para este caso, pois imagino que a situação pode acontecer com outras pessoas.

Link para o comentário
Compartilhar em outros sites

  • Consultores
51 minutos atrás, Higor Craco Baltieri disse:

Como ja é de conhecimento, o ACBr gera a NF-e sempre utilizando aspas (") ao invés de Apostrofe (').

Porém foi verificado que o retorno que o SEFAZ devolve utiliza apostrofe nas Tags, e como esse retorno é incorporado no XML da NF-e, o mesmo fica com algumas tag utilizando apostrofe ao invés de aspas

Exemplo do retorno:


<?xml version="1.0" encoding="UTF-8"?><protNFe versao='4.00'><infProt Id='ID141200000856482'><tpAmb>2</tpAmb><verAplic>PR-v4_6_6</verAplic><chNFe>41200902499797000149550010000409741000687910</chNFe><dhRecbto>2020-09-22T11:40:25-03:00</dhRecbto><nProt>141200000856482</nProt><digVal>FmfNHEoUX+tT3NBtPqg0bfC+z+4=</digVal><cStat>100</cStat><xMotivo>Autorizado o uso da NF-e</xMotivo></infProt></protNFe>

O nosso cliente acaba tendo problema ao realizar a importação da DU-e, pois acusam que o XML está inconsistente.

Para corrigir internamente realizei a alteração no método TNFeConsulta.TratarResposta da Unit ACBrNFeWebServices da seguinte forma:


// O código abaixo é bem mais rápido que "GerarXML" (acima)...
AProcNFe := TProcNFe.Create;
try
   AProcNFe.XML_NFe := RemoverDeclaracaoXML(XMLOriginal);
   
   // TRECHO ALTERADO
   AProcNFe.XML_Prot := StringReplace(NFeRetorno.XMLprotNFe, '''', '"', [rfReplaceAll]);
   
   AProcNFe.Versao := NFeRetorno.protNFe.Versao;
   if AProcNFe.Versao = '' then
      AProcNFe.Versao := FPVersaoServico;
   AjustarOpcoes( AProcNFe.Gerador.Opcoes );
   AProcNFe.GerarXML;

   XMLOriginal := AProcNFe.Gerador.ArquivoFormatoXML;
finally
   AProcNFe.Free;
end;

Gostaria de sugerir a implementação de um tratamento para este caso, pois imagino que a situação pode acontecer com outras pessoas.

Boa tarde Higor,

   Obrigado pelo relato. A nossa decisão é fazer uma correção temporária, mas também avisar a SEFAZ.

   O erro é da própria SEFAZ, mas entendemos que possa estar causando transtorno em vários casos.

   O que acontece é que a SEFAZ está retornando um XML "não canonicalizado". Isso, pela regras deles mesmo está errado (vide o item 3.2.1.1 no "MOC - Visão Geral" ).

   Conforme pode ser confirmado pelo link acima:

Citar
  • Attribute value delimiters are set to quotation marks (double quotes)

   Por isso, incentivamos a todos que passarem por esse problema a contatar a sua Sefaz e relatar para que eles possam corrigir. Vamos tentar fazer isso também, mas quanto maior o número de pessoas relatando, maior a probabilidade deles agirem rapidamente e levarem mais a sério as regras que eles mesmos definiram.

   O nosso consultor @Italo Jurisato Junior já está analisando a correção temporária e logo enviará ao SVN.

  • Curtir 3

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Higor,

Muito obrigado pela colaboração, já esta no repositório.

  • Curtir 1
Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Araraquara - A era dos Trólebus

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 1301 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.