Ir para conteúdo
  • Cadastre-se

dev botao

NFC-e em modo sincrono - Pegar retornos


Ver Solução Respondido por Victor H. Gonzales - Panda,
  • Este tópico foi criado há 958 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Bom dia,

Estou adequando a nova critica de envio da NFC-e em modo sincrono!

Antes enviada de modo assincrono e fazia a consulta e pegava algumas informações para gravar na minha base de dados o qual de modo SINCRONO não consigo obter!

Sao essas informações:

       sDataRec    := FormatDateTime('DD/MM/YYYY',fConfigACBR_NFCe.ACBrNFCe1.WebServices.Retorno.NFeRetorno.ProtDFe.Items[0].dhRecbto); 
       sHoraRec    := FormatDateTime('HH:MM:SS',fConfigACBR_NFCe.ACBrNFCe1.WebServices.Retorno.NFeRetorno.ProtDFe.Items[0].dhRecbto); 
       sRecibo       := fConfigACBR_NFCe.ACBrNFCe1.WebServices.Retorno.NFeRetorno.nRec;
       sDigestVal   := fConfigACBR_NFCe.ACBrNFCe1.WebServices.Retorno.NFeRetorno.ProtDFe.Items[0].digVal; // TATIANE 01/03/2019

 

Como pego essas informações agora de modo SINCRONO?

 

Atenciosamente,

Tatiane Peixoto.

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Boa tarde,

da uma olhadinha no programa de exemplo, lá você terá uma ideia mais clara do tratamento.
if not Sincrono then
  <ACBrNFe>.WebServices.Retorno.RetWS
else
 <ACBrNFe>.WebServices.Enviar.RetWS;

 

if not Sincrono then
  <ACBrNFe>.WebServices.Retorno.cStat
else
 <ACBrNFe>.WebServices.Enviar.cStat;

  • Curtir 1
Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

Link para o comentário
Compartilhar em outros sites

5 horas atrás, Victor H. Gonzales - Panda disse:

Boa tarde,

da uma olhadinha no programa de exemplo, lá você terá uma ideia mais clara do tratamento.
if not Sincrono then
  <ACBrNFe>.WebServices.Retorno.RetWS
else
 <ACBrNFe>.WebServices.Enviar.RetWS;

 

if not Sincrono then
  <ACBrNFe>.WebServices.Retorno.cStat
else
 <ACBrNFe>.WebServices.Enviar.cStat;

Estou vendo aqui. Na minha rotina atual, eu capturo a chave da NF pela propriedade <ACBrNFe>.WebServices.Retorno.chaveNFe , como faço pra pegar a chave de acesso no modo síncrono?

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

18 horas atrás, tiago_oliveira disse:

Estou apanhando pra resolver a situação! @Tatianepx você conseguiu resolver o problema? 

Para quem precisar , segue envio e captira de eventos no modo sincrono:

 

Envio:

dmdados.ACBrNFe1.Enviar(edtnumlote.text, False,True);.

Retorno:

   achavenfe :=dmdados.ACBrNFe1.NotasFiscais[0].NFe.procNFe.chNFe;
   aprotocolo :=dmdados.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.nProt;

   arecibo :=dmdados.ACBrNFe1.WebServices.Enviar.Recibo;

   xmotivo:= dmdados.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.xMotivo;
   xCSTAT:= IntToStr(dmdados.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.cStat);

 

  • Curtir 4
  • Obrigado 1
Link para o comentário
Compartilhar em outros sites

fica sugestão que captura automaticamente, pelo tipo de envio;

 

  var
	vsincrono : Boolean;
	vcsat     : integer;
	vxmotivo  : string ;
  begin
    vsincrono := StrToBool(IfThen(ACBrNFe1.NotasFiscais.Count > 1, 'True', 'false'));
    ACBrNFe1.Enviar(1, True, vsincrono);
    vcsat    := IfThen(vsincrono = true, acbrnfe1.WebServices.Enviar.cStat, acbrnfe1.WebServices.retorno.cStat);
    vxmotivo := IfThen(vsincrono = true, acbrnfe1.WebServices.Enviar.xMotivo, acbrnfe1.WebServices.retorno.xMotivo);
    //ifthen uses math
  end;

 

Editado por Aurino
  • Curtir 1
  • Obrigado 1

Aurino

 

 

Link para o comentário
Compartilhar em outros sites

Em 01/09/2021 at 12:09, Pdvlopes Sistemas disse:

Para quem precisar , segue envio e captira de eventos no modo sincrono:

 

Envio:

dmdados.ACBrNFe1.Enviar(edtnumlote.text, False,True);.

Retorno:

   achavenfe :=dmdados.ACBrNFe1.NotasFiscais[0].NFe.procNFe.chNFe;
   aprotocolo :=dmdados.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.nProt;

   arecibo :=dmdados.ACBrNFe1.WebServices.Enviar.Recibo;

   xmotivo:= dmdados.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.xMotivo;
   xCSTAT:= IntToStr(dmdados.ACBrNFe1.NotasFiscais.Items[0].NFe.procNFe.cStat);

 

Obrigada pelo retorno!

Isso mesmo! desta forma eu conseguir pegar estes retornos!

Link para o comentário
Compartilhar em outros sites

  • Administradores

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

  • Curtir 2
Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

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

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

Link para o comentário
Compartilhar em outros sites

  • Este tópico foi criado há 958 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...