Jump to content

dev botao

Consultar Nfc-E Pela Chave Atraves Do Componente


Go to solution Solved by bolinha182,
  • Este tópico foi criado há 3082 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro

Ola pessoal, Eu estou trabalhando com o acbr e gerando a nfc-e des de outubro do ano passado, porem agora que estamos mais proximos da obrigatoriedade aqui em mt a sefaz tem apresentado muitas falhas de retorno, e a vezes nao conseguimos o protocolo e o status da nfc-e. Quando isso acontece tenho que entrar no portal da nfce de mato grosso e pegar manualmente os dados.

Eu gostaria de saber se existe alguma possibilidade ou se alguem tem uma solucão parecidade com a consulta pela chave da nfe pelo acbr, que nos traz os dados faltantes.

 

Obrigado a todos.

Link to comment
Share on other sites

  • 1 year later...

Bom Dia...

Eu faço assim:

***********************************************************************************************

OBS: Virtual_Principal é o nome do meu formulario principal...

         MessageDlgDef é uma função minha derivada do MessageDLG....

***********************************************************************************************

Virtual_Principal.ACBrNFe1.Configuracoes.Geral.ModeloDF := moNFCe;
Virtual_Principal.ACBrNFe1.Configuracoes.Geral.VersaoDF := ve310;
Virtual_Principal.ACBrNFe1.NotasFiscais.Clear;
  Virtual_Principal.ACBrNFe1.NotasFiscais.LoadFromFile(Virtual_Principal.ACBrNFe1.Configuracoes.Arquivos.PathSalvar+'\NFe\'+NFCe.FieldByName('NFCe_ChaveAcesso').AsString+'-NFe.xml',False);

 

   Try
      If  Virtual_Principal.ACBrNFe1.Consultar Then Begin
         if Virtual_Principal.ACBrNFe1.WebServices.Consulta.cStat = 100 then Begin
            NFCe.Edit;
            NFCe.FieldByName('Sefaz_Protocolo').AsString           := Virtual_Principal.ACBrNFe1.WebServices.Consulta.Protocolo;
            NFCe.FieldByName('Sefaz_cStat').AsString                  := IntToStr(Virtual_Principal.ACBrNFe1.WebServices.Consulta.cStat);
            NFCe.FieldByName('Sefaz_Data_Protocolo').AsString := DateToStr(Virtual_Principal.ACBrNFe1.WebServices.Consulta.DhRecbto);
            NFCe.FieldByName('NFCe_Status').AsString                := 'Autorizada';
            NFCe.FieldByName('NFCe_ChaveAcesso').AsString    := Virtual_Principal.ACBrNFe1.WebServices.Consulta.NFeChave;
            NFCe.Post;
            NFCe.ApplyUpdates;
            dmVMVirtualShop.Transacao.CommitRetaining;
         End;
         if Virtual_Principal.ACBrNFe1.WebServices.Consulta.cStat = 150 then Begin
            NFCe.Edit;
            NFCe.FieldByName('Sefaz_Protocolo').AsString          := Virtual_Principal.ACBrNFe1.WebServices.Consulta.Protocolo;
            NFCe.FieldByName('Sefaz_cStat').AsString                 := IntToStr(Virtual_Principal.ACBrNFe1.WebServices.Consulta.cStat);
            NFCe.FieldByName('Sefaz_Data_Protocolo').AsString := DateToStr(Virtual_Principal.ACBrNFe1.WebServices.Consulta.DhRecbto);
            NFCe.FieldByName('NFCe_Status').AsString               := 'Autorizada';
            NFCe.FieldByName('NFCe_ChaveAcesso').AsString   := Virtual_Principal.ACBrNFe1.WebServices.Consulta.NFeChave;
            NFCe.Post;
            NFCe.ApplyUpdates;
            dmVMVirtualShop.Transacao.CommitRetaining;
         End;

         if Virtual_Principal.ACBrNFe1.WebServices.Consulta.cStat = 101 then Begin
            NFCe.Edit;
            NFCe.FieldByName('NFCe_Cancelamento_Protocolo').AsString := Virtual_Principal.ACBrNFe1.WebServices.Consulta.Protocolo;
            NFCe.FieldByName('NFCe_Cancelamento_cStat').AsString        := IntToStr(Virtual_Principal.ACBrNFe1.WebServices.Consulta.cStat);
            NFCe.FieldByName('Sefaz_Data_Protocolo').AsString                 := DateToStr(Virtual_Principal.ACBrNFe1.WebServices.Consulta.DhRecbto);
            NFCe.FieldByName('NFCe_Status').AsString                               := 'Cancelada';
            //NFCe.FieldByName('NFCe_ChaveAcesso').AsString                 := Virtual_Principal.ACBrNFe1.WebServices.Consulta.NFeChave;
            NFCe.Post;
            NFCe.ApplyUpdates;
            dmVMVirtualShop.Transacao.CommitRetaining;
         End;

      End;
   Except

      on E: Exception do begin
         if   (pos('12007 - ', E.Message.ToUpper) > 0) or // erro de conexão
            (pos('12002 - ', E.Message.ToUpper) > 0) or // timeout
            (pos('12029 - ', E.Message.ToUpper) > 0) or // limite de tempo de conexão
            (pos('ERRO NAO CATALOGADO', E.Message.ToUpper) > 0) then  begin

            NFCe.Edit;
            NFCe.FieldByName('NFCe_Status').AsString := 'Contingencia';
            NFCe.Post;
            NFCe.ApplyUpdates;
            dmVMVirtualShop.Transacao.CommitRetaining;
            MessageDlgDef('C O N S U L T A  N Ã O  R E A L I Z A D A ' + #13 + 'Retorno de Erro da SEFAZ: ' + E.Message,mtInformation,[mbok], mrOk,0);
            NFCe.Close;
            NFCe.ParamByName('NFCe_Status').AsString := 'Contingencia';
            NFCe.Open;

         end Else Begin
             NFCe.Edit;
             NFCe.FieldByName('Sefaz_cStat').AsString := IntToStr(Virtual_Principal.ACBrNFe1.WebServices.Retorno.cStat);
             NFCe.FieldByName('NFCe_Status').AsString := 'Contingencia';
             NFCe.Post;
             NFCe.ApplyUpdates;
             dmVMVirtualShop.Transacao.CommitRetaining;
             NFCe.Close;
             NFCe.ParamByName('NFCe_Status').AsString := 'Contingencia';
             NFCe.Open;

           MessageDlgDef('C O N S U L T A  N Ã O  R E A L I Z A D A ' + #13+#13 + 'ERRO NAO CATALOGADO ' + #13 + 'Retorno de Erro da SEFAZ: ' + Message,mtInformation,[mbok], mrOk,0);
         End;

      End;

End;

 

PS: O CStat 150 é para autorização fora do prazo, fiz um relatório no sistema que demonstra todas as notas aprovadas fora do prazo legal... aqui a internet chega a ficar sem por mais de 02 dias... 
 

Edited by infomatte

VANDERLEI MATTE

INFOMATTE Sistemas e Consultoria

Distrito de Castelo de Sonhos - Altamira / PA

Whattzap: (66) 99695-4979

email: vanderleim[email protected]

Link to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.