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.

The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...