Jump to content

dev botao

NFC-e como atualizar XML de NFCe emitida offline


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

Recommended Posts

Olá a todos, estou reemitindo uma NFCe que foi emitida offline e estava pendende, na hora que emito: ACBrNFce.configuracoes.arquivos.salvarevento   está falso  e ACBrNFce.configuracoes.arquivos.salvar   está true, quando emito a NFCe eu consigo pegar o XML dela, caso ela seja aprovada vem o xml certo, caso seja offline ela fica sem o protocolo da receita e sem a assinatura no RODAPé, quando faço reemissão de NFCe offline ou Consulta de NFCe não está atualizando o arquivo XML para que eu possa guardar na base de dados e auditar a NFCe mais tarde, alguém poderia me ajusar com os passos neste caso e me indicar meu erro!?      no caso eu faço a remissão da NFCe que estava offline, ela fica como NFCe autorizada, eu dou um edit na tabela do banco com o arquivo XML referente a NFCe e posto porém o arquivo XML físico em disco não está alterando fica sempre o mesmo arquivo de quando a NFCe foi emitida offline, no caso uso o comando  dm6.QNfeXmlEmitidosxml.LoadFromFile(dm7.acbrNfce.NotasFiscais.Items[0].NomeArq);  e está sempre o mesmo arquivo.

vou postar o trecho do meu codigo:

dm5.NfceCabecalhoOffLine.First;
    while not dm5.NfceCabecalhoOffLine.Eof do
    begin

      if TransmitirNfce(F_ConsultaNfce, dm5.NfceCabecalhoOffLineID_Empresa.AsInteger, dm5.NfceCabecalhoOffLineID.AsInteger, 9, SituacaoAposTransmissao) then
      begin

        try

          if not(ConsultaNfeXmlEmitidos('consulta',' WHERE (IdNfceCabecalho = "'+ dm5.NfceCabecalhoOffLineID.AsString +'") AND (TipoDfe = "Nfce") AND (id_empresa = "'+ F_menu_principal.FIdEmpresaNfe +'") ','','')) then
          begin

            if (Trim(dm7.acbrNfce.NotasFiscais.Items[0].NomeArq) <> '') then
            begin
              //GRAVA O ARQUIVO XML - OK
              ManipulaNfeXmlEmitidos('', ' LIMIT 0');
              dm6.QNfeXmlEmitidos.append;
              dm6.QNfeXmlEmitidosIdNfceCabecalho.Value := (dm5.NfceCabecalhoOffLineID.AsInteger);
              dm6.QNfeXmlEmitidosTipoDfe.Value         := ('Nfce');
              dm6.QNfeXmlEmitidosid_empresa.AsString   := (F_menu_principal.FIdEmpresaNfe);
              dm6.QNfeXmlEmitidosNomeArquivo.AsString  := ExtractFileName(dm7.acbrNfce.NotasFiscais.Items[0].NomeArq);
              dm6.QNfeXmlEmitidosCaminhoArquivo.Value  := dm7.acbrNfce.NotasFiscais.Items[0].NomeArq;
              dm6.QNfeXmlEmitidosxml.LoadFromFile(dm7.acbrNfce.NotasFiscais.Items[0].NomeArq);
              dm6.QNfeXmlEmitidos.Post;
            end;

 

p trecho do meu transmitir da NFCe até o envio:

   try
      dm7.acbrNfce.NotasFiscais.Clear;
      dm7.acbrNfce.WebServices.Enviar.Clear;
      dm7.acbrNfce.WebServices.Retorno.Clear;

      Result                           := False;
      StatRetorno                      := 0;
      dm7.FRetWSNfce                   := '';
      F_Menu_Principal.FTipoRequisicao := trEnviar;

      if F_Menu_Principal.FSituacaoSefaz = '107' then
      begin
        ConfigurarAcbrNfce(pForm, IntToStr(pIdEmpresa));

        if pTipoEmissao = 1 then
        begin
          PreencheAcbrComNfce(pIdEmpresa, pIdNfceCabecalho, True);

          try
            NotaEValida := True;
            dm7.acbrNfce.NotasFiscais.GerarNFe;

 

depois de configurar e preencher o componente: dm7.acbrNfce.Enviar(0,False, True);

 

Se puderem passar um passo a passo de como agir neste caso, não se se devo ativar eventos ( acredito que nao ), penso que somente estando como ACBrNFce.configuracoes.arquivos.salvar  já deveria atualizar  o XML apos o acbrNfce.NotasFiscais.GerarNFe; e dm7.acbrNfce.Enviar(0,False, True);

Bem, desde já fico grato por qualquer ajuda! obrigado!

 

Edited by AlexBecker
Link to comment
Share on other sites

4 minutos atrás, BigWings disse:

Veja se ACBrNFe1.Configuracoes.Geral.Salvar está True.

está true sim, eu sempre deixo ele true, em caso de CONSULTA o XML também é atualizado no componente e fisicamente (confirme a config do path e salvar = true) automatico ou devo fazer algum procedimento para isto?  

bem basicamente se tiver os passos de efetuar uma consulta na receita para a NFCe e ele atualizar o XML fisico em arquivo no hd automaticamente, quando ele não existe cria normal, quando estou retransmitindo offline ou consultando ( no caso consulto porque tranmisti a offline, ela gerou uma nfce emitida mas ai como não veio o protocolo eu consulto na receita para ver se atualiza o XML fisico e não estou conseguindo isto )

Edited by AlexBecker
Link to comment
Share on other sites

achei o meu problema e erro também, como a NFCe é emitida offline ele gera uma CHAVE2 esta chave 2 mesmo que envie a NFCe que estava online e deixe ela autorizada  a chave 2 continua sendo a padrao entao quando consulto com a chave1 ele sempre me retorna o XML sem assinatura da receita porque logicamente não está lá, um erro bobo da minh aparte... fiz este esquema para pegar a chave2 offline a pouco tempo e nas consultas nao estou incluindo por ela quando o tipo de envio é 9, falha minha acredito que agora deve retornar o XML vou fazer mais alguns testes aqui para ver e retorno.

Link to comment
Share on other sites

21 minutos atrás, AlexBecker disse:

achei o meu problema e erro também, como a NFCe é emitida offline ele gera uma CHAVE2 esta chave 2 mesmo que envie a NFCe que estava online e deixe ela autorizada  a chave 2 continua sendo a padrao entao quando consulto com a chave1 ele sempre me retorna o XML sem assinatura da receita porque logicamente não está lá, um erro bobo da minh aparte... fiz este esquema para pegar a chave2 offline a pouco tempo e nas consultas nao estou incluindo por ela quando o tipo de envio é 9, falha minha acredito que agora deve retornar o XML vou fazer mais alguns testes aqui para ver e retorno.

já tinha feito a atualizacao sim para busca pela chave 2, estou consultando a NFCe com a chave 2 corretamente sim,  a chave é: 41200725295518000120650030000414571516703447  através do código: 
 

        dm7.acbrNfce.NotasFiscais.GerarNFe;

        try
          F_Menu_Principal.FTipoRequisicao           := trConsulta;
          dm7.acbrNfce.WebServices.Consulta.NFeChave := dm5.LNfceCabecalhoCHAVE_ACESSO2.AsString;
          dm7.acbrNfce.WebServices.Consulta.Executar;

          StatRetorno := dm7.acbrNfce.WebServices.Consulta.cStat;
 

porém nos XMLs gerados pelo ACBR na pasta só encontro: 

image.png.83e02835a1895d3ddb8e81f389398bbb.png
ou seja, não encontro o arquivo em disco referente a NFe quando faço a consulta na receita pela chave de acesso ele encontra na receita a NFCe normalmente, faço uma consulta na receita pelo ACBR porém o mesmo não salva a NFCe no path configurado c:\XML, então novamente a pergunta... quais os passos para consultar uma NFCe na receita com uma chave de acesso ( a consulta já está acima ) e para depois desta consulta GERAR o XML referente a NFCe ( ele fica com extensão NF-e.xml aqui no final do acbr ).

Edited by AlexBecker
Link to comment
Share on other sites

  • Moderadores

Não deve existir duas chaves pra uma mesma nota.

Se está gerando chave diferente é porque você está alterando algo na nota e gerando novamente o XML.

Por exemplo o tpEmis da nota, alterando de normal para offline você terá uma chave e um XML diferentes, um vai ser protocolado na consulta e o outro não.

Você deve sempre armazenar o XML gerado pelo ACBr antes do envio, e carregar ele com ACBrNFe1.NotasFiscais.LoadFromFile e após isso chamar o método Consultar, assim o arquivo vai ser atualizado com o protocolo, se houver.

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Link to comment
Share on other sites

5 minutos atrás, BigWings disse:

Não deve existir duas chaves pra uma mesma nota.

Se está gerando chave diferente é porque você está alterando algo na nota e gerando novamente o XML.

Por exemplo o tpEmis da nota, alterando de normal para offline você terá uma chave e um XML diferentes, um vai ser protocolado na consulta e o outro não.

Você deve sempre armazenar o XML gerado pelo ACBr antes do envio, e carregar ele com ACBrNFe1.NotasFiscais.LoadFromFile e após isso chamar o método Consultar, assim o arquivo vai ser atualizado com o protocolo, se houver.

a nota ficou offline,  eu tenho um procedimento no sistema para identificar isto ai emito a NFCe que estava offline, aqui o sistema gera a chave online e offline como chave2, quando o tipo de envio é 9 que é offline eu pego a chave2 que seria a chave offline e gravo na chave1 então não existem 2 notas é somente 1, eu monto a NFCe com os mesmos dados e mando consultar ( usando a chave2 que neste ponto já virou chave 1)  ele retorna como na imagem mostrada acima os dados da consulta,  ele acha a nota, porem não traz o XML.

 

Se eu consultar na receita por CHAVE o ACBRNFCE vai gerar um NOVO XML da NFCe tal como é para a NFe ou não?

Edited by AlexBecker
Link to comment
Share on other sites

14 horas atrás, BigWings disse:

A consulta não retorna o XML completo, retorna apenas o protocolo.

Por isso precisa já ter o XML gerado, assinado e validado carregado no componente pra que o arquivo XML seja atualizado.

sim, eu a um tempo atrás ( muito tempooo ) fiz para a danfe imprimir sem ter o XML, então preencho o ACBR novamente com os dados da nota ele gera a nota sem o protocolo, gero o XML, consulto a NOTA pela chave, pego o protocolo e incluo nela, já tinha isto pronto aqui e estou testando já novamente em outas partes assim que tiver tudo certo posto aqui, muito obrigado pela ajuda por enquanto! 

Edited by AlexBecker
  • Like 1
Link to comment
Share on other sites

Desculpem a demora em retornar mas tive que parar por um tempo, problema resolvido! consulto o XML pela chave e se não esta com o protocolo eu adiciono ele, mesmo esquema que tinha feito para gerar a danfe a um bom tempo atrás, muito grato pela ajuda de todos!

  • Like 1
Link to comment
Share on other sites

  • Este tópico foi criado há 1510 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...