Ir para conteúdo
  • Cadastre-se

dev botao

Problema ao Ler Data e Hora em xml de Download (Correção proposta no post)


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

Recommended Posts

Boa tarde, encontrei um problema no momento de resgatar a data e hora em xmls que foram feito em download pelo componente
o problema de leitura ocorre no momento ler a tag de versão, sempre nesse caso ele retornava a versão 1.0 na primeira posição e o mesmo é 3.10 no "node" <procNFe>

segue a unit corrigida e uma imagem para comparação.
acbr1.thumb.jpg.343db3cf60fea68ab7ad1829

Assim no pcnNFeR.pas está sempre caíndo no"else" pois a versão ta em 1.0

metodo LerXml:

    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;

 

Correção Efetuada:

  origemDownloadNFe := Leitor.rAtributo('retDownloadNFe') <> '';
  if origemDownloadNFe then
    VersaoInfNFe := Leitor.rAtributo('nfeProc versao=')
  else
    VersaoInfNFe := Leitor.rAtributo('versao=');

 

 

pcnNFeR.pas

Warquia Pereira
Analista de Sistemas e Desenvolvedor

Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...
  • Consultores

Boa tarde Warquia,

Você não pode ler esse arquivo como se fosse o arquivo de uma NF-e.

Note que o seu inicio diz que se trata de um retorno de dowload de uma NF-e <retDownloadNFe .....

A NF-e propriamente dita esta contida nesse retorno e primeiramente tem que ser extraída e salva separadamente.

O Método Download do componente ACBrNFe salva o retorto do download e salva também um segundo XML que é a nota fiscal que você poder ler, ou seja, carregar através do LoadFromFile sem nenhum problema.

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

Boa noite Italo, muito obrigado por responder!
Italo na versão anterior ao trunk2 não precisava fazer isso, agora ficou uma dúvida, sabe se tem alguma função no componente que já faz a extração do Xml sem a tag <retDownloadNFe.... ?

Segue um trecho de como efetuo o download do xml.

    DMAcbr.DataModuleACBr.ACBrNFe.WebServices.DownloadNFe.retDownloadNFe.retNFe.Clear;
    DMAcbr.DataModuleACBr.ACBrNFe.DownloadNFe.Download.CNPJ := prmSis_Empresa_CpfCnpj;

    DMAcbr.DataModuleACBr.ACBrNFe.DownloadNFe.Download.Chaves.Clear;
    DMAcbr.DataModuleACBr.ACBrNFe.DownloadNFe.Download.Chaves.Add.chNFe := chaveNFe;

    DMAcbr.DataModuleACBr.ACBrNFe.Download;
    caminhoArquivoXML := TFuncoes.pathWithDelimiter(pathDown) + chaveNFe + '-nfe.xml';
    DMAcbr.DataModuleACBr.ACBrNFe.Gravar(ExtractFileName(caminhoArquivoXML), DMAcbr.DataModuleACBr.ACBrNFe.WebServices.DownloadNFe.retDownloadNFe.XML, ExtractFilePath(caminhoArquivoXML));

 

Warquia Pereira
Analista de Sistemas e Desenvolvedor

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Warquia,

Como assim, sempre foi dessa forma, o método Download se encarrega de extrair o XML da NF-e, descompacta se necessário e salva em disco, desde que o componente esteja configurado para salvar em disco.

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

Boa tarde, Italo. rsrs desculpa o incomodo, quando executo o código abaixo, ele faz o download juntamente com a tag <retDownloadNFe , ou seja o xml ta retornando completo com a tag "<retDownloadNFe" juntamente com a "<nfeProc". segundo sua orientação o componente já extrai o xml da NF-e, porém não encontrei ainda como fazer isso!

Anexei o XML também

DMAcbr.DataModuleACBr.ACBrNFe.Gravar

Configuração do componente:

ACBrNFe.Configuracoes.Arquivos.PathSalvar       := 'C:\XML\';
ACBrNFe.Configuracoes.Geral.Salvar                := True;
ACBrNFe.Configuracoes.WebServices.Salvar    := true;

52151007630747000172550010000114531000114539-nfe.xml

Editado por Warquia Pereira

Warquia Pereira
Analista de Sistemas e Desenvolvedor

Link para o comentário
Compartilhar em outros sites

Boa tarde Italo, conseguir resolver o problema, 

estava salvando o XML com o seguinte retorno:

DMAcbr.DataModuleACBr.ACBrNFe.WebServices.DownloadNFe.retDownloadNFe.XML

Com isso ele salva o xml completo,

Solução:

DMAcbr.DataModuleACBr.ACBrNFe.WebServices.DownloadNFe.retDownloadNFe.retNFe.Items[0].procNFe

Muio obrigado pela força!

Warquia Pereira
Analista de Sistemas e Desenvolvedor

Link para o comentário
Compartilhar em outros sites

  • Consultores

Bom dia Warquia,

O componente salva automaticamente o XML da NF-e retornada pelo método Download.

Note que o ACBrNFe possui em suas configurações um grupo chamado Download onde podemos definir o PathDownload e se desejamos SepararPorNome

Procure pelo XML que você vai encontrar ele salvo em disco.

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á 3100 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.