Ir para conteúdo
  • Cadastre-se

dev botao

TAG "dEmi" retornando zero ao importar


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

Recommended Posts

Olá pessoal!

Estou tendo um problema ao utilizar o recurso de importar XML no Delphi 7. Ao utilizar o método “LoadFromFile” em “ACBrNFeNotasFiscais”:

Fdm_Principal.ACBrNFePrincipal.NotasFiscais.LoadFromFile(dirXml);

Quando eu tento pegar a data de saída e data de emissão, é retornado o valor “zero”:

Fdm_Principal.ACBrNFePrincipal.NotasFiscais.Items[0].NFe.Ide.dEmi;

Mas tem um porém, se eu baixar o XML do servidor nacional da SEFA ou se eu pegar o XML que foi gerado pelo sistema usando o ACBr a falha não acontece. O problema só acontece se eu pegar o XML da SEFA-PR no novo recurso que eles disponibilizaram de baixar os XML em lote.

Comparando os arquivos, vi que o XML da SEFA-PR tem uma tag a mais no início do arquivo “<NFeLog versao="1.00">”. Se eu editar o XML removendo essa tag, o arquivo importa com a data certa. Existe alguma forma de corrigir isso para que não precise editar o XML?

Segue o XML das SEFAs para comparação, desde já obrigado.

SEFA-Nacional.xml

SEFA-PR.xml

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Sim debugue o load e confira o local o que está ocorrendo!

se o componente não está pegando essa versão pra determinar como deverá ser feito a leitura!

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Black-02.png
 

 

Link para o comentário
Compartilhar em outros sites

Olá pessoal!

Identifiquei a situação, ela acontece em “pcnNFeR”, no método LerXml na linha 137 ele tem a seguinte instrução:

NFe.infNFe.Versao := StringToFloat(VersaoInfNFe);

Porém como disse antes esse XML da SEFA-PR tem uma tag a mais no início “<NFeLog versao="1.00">”

Por causa dessa tag o valor retornado para “NFe.infNFe.Versao” está sendo 1 quando deveria ser 3,1, com isso ele entra errado na linha 152:

if NFe.infNFe.Versao >= 3 then
     begin
      (*B09*) NFe.ide.dEmi    := Leitor.rCampo(tcDatHor, 'dhEmi');
      (*B10*) NFe.ide.dSaiEnt := Leitor.rCampo(tcDatHor, 'dhSaiEnt');
     end
    else
     begin
      (*B09*) NFe.ide.dEmi    := Leitor.rCampo(tcDat, 'dEmi');
      (*B10*) NFe.ide.dSaiEnt := Leitor.rCampo(tcDat, 'dSaiEnt');
      (*B10a*)NFe.ide.hSaiEnt := Leitor.rCampo(tcHor, 'hSaiEnt');
     end;

Resumindo, por causa da tag a mais, inserida no PR, ele pega a versão errada e consequentemente tenta pegar as tags de emissão e saída das versões antigas do XML quando deveria pegar das novas.

Link para o comentário
Compartilhar em outros sites

  • Fundadores

anexe o XML com problemas, para estudo...

Acredito que sua sugestão possa causar problemas colaterais em outros xml's

opa... agora que notei eles no inicio... analisando...

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

Em 25/04/2016 at 15:33, tobexy disse:

Arquivo alterado

pcnNFeR.pas

Bom dia @tobexy, foi feita uma analise na sua contribuição, mas ela iria nos trazer efeitos colaterais ao importar xml do padrão SEFAZ, dessa forma fizemos um ajuste no componente para que ele conseguisse identificar a versão conforme a tag padrão e não a versão da tag da webservice do PR.

Atualize seus fontes, o ajuste já está no SVN, e ele atende aos dois XML em anexo no post inicial que você anexou, sem problema agora.

  • Curtir 1

--
Isaque Pinheiro
Aracruz/ES - Brasil
___________________________________________________________________________
Site Oficial: www.isaquepinheiro.com.br 
Youtube: youtube.com/isaquepinheirooficialbr
Facebook: facebook.com.br/isaquepinheirooficialbr
Instagram: instagram.com/isaquepinheirooficialbr
Linkdin: https://www.linkedin.com/in/isaquepinheirooficialbr

Conheça o Projeto ORMBr Framework for Delphi - https://www.ormbr.com.br

 

Link para o comentário
Compartilhar em outros sites

28 minutos atrás, Isaque Pinheiro disse:

Bom dia @tobexy, foi feita uma analise na sua contribuição, mas ela iria nos trazer efeitos colaterais ao importar xml do padrão SEFAZ, dessa forma fizemos um ajuste no componente para que ele conseguisse identificar a versão conforme a tag padrão e não a versão da tag da webservice do PR.

Atualize seus fontes, o ajuste já está no SVN, e ele atende aos dois XML em anexo no post inicial que você anexou, sem problema agora.

Bom dia. 

Situação testada e funcionando.
Obrigado @Isaque Pinheiro, @Juliomar Marchetti e @Daniel Simoes

Link para o comentário
Compartilhar em outros sites

  • 1 mês depois ...

Reativando o tópico.

Conforme a imagem anexada, o ACBrNFe carrega a NF-e com a tag NFeLog esperando a tag "nfeProc" (como no xml anexado no inicio deste tópico), mas conforme o manual da sefaz-pr (pdf anexo) o esperado é a tag "procNFe" fazendo o ACBrNFe se perder em algum ponto que não encontrei até o momento.

Assim no momento de imprimir (ACBrDanfeFR) sai a informação que não está autorizada (por não ter carregado o bloco "protNFe").

Alguem mais está passando por isto ?

 

 

 

erro_protocolo.png

NFeLog.pdf

-=Ma®©oS=-

Link para o comentário
Compartilhar em outros sites

18 horas atrás, Daniel Simoes disse:

Seus fontes estão atualizados ?

Lembro que foi enviado ajuste para o SVN referente a esse assunto

É @Daniel Simoes, realmente estava desatualizado, estranhamente o .PAS estava ok, desinstalei e instalei novamente o ACBr e continuou com o problema, tive de excluir manualmente, remover os componentes, library e afins no delphi, fechar tudo, instalar novamente ai funcionou.

-=Ma®©oS=-

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 2837 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.