Ir para conteúdo
  • Cadastre-se

dev botao

Mundanças Ct-e 4.0 captura de dados Retorno WebService


Ver Solução Respondido por Italo Giurizzato Junior,

Recommended Posts

  • Membros Pro

Bom dia, 

Com a mudança para a versão 4.0 estou tendo problema na captura do retorno do WebService para pegar o Status, Protoolo, etc ...  Estou colocando parte do meu código que faz a captura que não está funcionando mais na 4.0 . Alguém poderia me ajudar ?

for i_richtext:= RichEditStatusRetorno.lines.count - 1 downto 0 do
    begin
      if i_richtext > 0 then
       RichEditStatusRetorno.lines.delete(i);
    end;

    // replicando CTE  ------ Aqui não pega mais na versão 4.0
    for i:= 0 to ACBrCTe1.WebServices.Retorno.CteRetorno.ProtDFe.Count -1 do
    begin
      CopyFile(Pchar(v_mesano + ACBrCTe1.WebServices.Retorno.CTeRetorno.ProtDFe.Items[i].chDFe+'-cte.xml'),            Pchar(QryPesqFilialCTE_PATH_AVERBACAO_SEGURO.AsString + '\' + ACBrCTe1.WebServices.Retorno.CTeRetorno.ProtDFe.Items[i].chDFe+'-cte.xml'), False);

      v_serie := copy((ACBrCTe1.WebServices.Retorno.CTeRetorno.ProtDFe.Items[i].chDFe),25,1);
      v_id_nf := strtoint(copy((ACBrCTe1.WebServices.Retorno.CTeRetorno.ProtDFe.Items[i].chDFe),26,9));

      QryPesqCtrc.Close;
      QryPesqCtrc.ParamByName('p_ctrc'       ).Value := v_id_nf;
      QryPesqCtrc.ParamByName('p_id_empresa' ).Value := dm1.EmpCod;
      QryPesqCtrc.ParamByName('p_id_filial'  ).Value := dm1.FilCod;
      QryPesqCtrc.ParamByName('p_ser_ctrc'   ).Value := v_serie;
      QryPesqCtrc.Open;

      QryAtualizaCte.Close;
      QryAtualizaCte.ParamByName('p_id').Value := QryPesqCtrc.FieldByName('id').value;
      QryAtualizaCte.Open;

      //ACBrCTe1.WebServices.Retorno.cStat
      status := ACBrCTe1.WebServices.Retorno.CTeRetorno.ProtDFe.Items[i].cStat;
      if status = 100  then
      begin
        QryAtualizaCte.Edit;
        QryAtualizaCte.FieldByName('CTE_ENVIADA'               ).value    := 'SIM';
        QryAtualizaCte.FieldByName('CTE_NUM_PROTOCOLO_USO'     ).AsString := ACBrCTe1.WebServices.Retorno.CTeRetorno.ProtDFe.Items[i].nProt;
        QryAtualizaCte.FieldByName('CTE_NUM_RECIBO'            ).AsString := ACBrCTe1.WebServices.Retorno.CTeRetorno.nRec;
        QryAtualizaCte.FieldByName('DATA_MOV'                  ).Value    := dm1.RetonaHoraFusoHorario;
        QryAtualizaCte.FieldByName('CTE_NUM_CHAVE_CANCELAMENTO').value := null;
        QryAtualizaCte.FieldByName('CTE_DATA_CANCELAMENTO'     ).value := null;

 

WhatsApp Image 2024-02-02 at 09.23.03.jpeg

WhatsApp Image 2024-02-02 at 09.21.38.jpeg

Link para o comentário
Compartilhar em outros sites

  • Administradores

Tópico movido para a área do SAC, para que o SLA de respostas seja considerado

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

  • Consultores

Boa tarde,

Voce precisa ter em mente que não é mais Assincrono e sim Sincrono, portanto é no Envia e não no Retorno, e não terá tambem protocolo de Envio, pois, não é Assincrono.

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

  • Membros Pro

Entendi, teria me passar um exemplo de como proceder, estou com o exemplo aberto mas não consegui , fazer funcionar 

  usei este código que peguei no exemplo do ACBR mas o Count retornou  0

for i := 0 to ACBrCTe1.WebServices.EnvEvento.EventoRetorno.retEvento.Count -1 do

 

Grato,

 

Link para o comentário
Compartilhar em outros sites

  • Consultores
  • Solution

Boa tarde @daniel_mirassol,

Veja o código do botão [Criar e enviar síncrono] do programa exemplo.

  • Curtir 2
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

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