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,
  • Este tópico foi criado há 384 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

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

  • Administradores
Postado

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

  • Consultores
Postado

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"

  • Membros Pro
Postado

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,

 

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