Ir para conteúdo
  • Cadastre-se

dev botao

Consultar Nfc-E Pela Chave Atraves Do Componente


Ver Solução Respondido por bolinha182,
  • Este tópico foi criado há 2911 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 para o comentário
Compartilhar em outros sites

  • 1 ano depois...

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

Editado por infomatte

VANDERLEI MATTE

INFOMATTE Sistemas e Consultoria

Distrito de Castelo de Sonhos - Altamira / PA

Whattzap: (66) 99695-4979

email: vanderleim[email protected]

Link para o comentário
Compartilhar em outros sites

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

The popup will be closed in 10 segundos...