Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 2883 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa tarde.

Estou com uma situação que é o seguinte:

Meu faturamento funciona assim, envio // consulta lote por recibo // consulta ct-e // processa retorno.

Quando eu envio meu CT-e, tem situações que não consigo pegar o recibo, assim quando vou consultar por lote preciso do recibo.

Teria alguma alternativa toda vez q eu envio o CT-e, e já pegar o recibo? Hoje eu pego o recibo assim ACBr.WebServices.WebServices.Retorno.Recibo. 

Existe alguma consulta que eu consigo o recibo do lote?

Se alguém poder me ajuda.

 

 

Postado

tenho trabalho assim, seria isso que você precisa

      ACBrCTe1.WebServices.Enviar.Lote := inttostr(nrolote);
      if ACBrCTe1.WebServices.Enviar.Executar then
      begin
        ShowMessage(ACBrCTe1.WebServices.Enviar.Msg);

        NumeroRecibo := ACBrCTe1.WebServices.Enviar.Recibo; //Crie a variável NumeroRecibo para guardar o Número do recibo do lote

        ACBrCTe1.WebServices.Retorno.Recibo := NumeroRecibo;
        ACBrCTe1.WebServices.Retorno.Executar;
        for i := 0 to (ACBrCTe1.WebServices.Retorno.CTeRetorno.ProtCTe.Count - 1) do
        begin

  • Curtir 1
Postado

Bom dia Doni Delphi.

Acho que entendi, você faz por parte, primeiro executar o envio, se o retorno for verdadeiro ele entra no begin end, recebi o recibo na variável  NumeroRecibo, logo em seguida vc executa a segunda parte que é o retorno. É isto mesmo?

Atualmente eu faço assim ACBr.Enviar(0, AImprimir) ele faz o envio e retorno automático, mas quando da um problema eu não consigo obter o recibo, mas vou testar essa sua forma que vc me apresentou acima.

Obrigado.

 

 

já aconteceu algum erro em seus teste nesse momento  if ACBrCTe1.WebServices.Enviar.Executar the, aí vc não teve o recibo?

  • 8 meses depois ...
Postado (editado)

Observei o comportamento do componente, e ele faz a consulta do recibo automaticamente:

// Se utilizar a chamada:
...Enviar(FLote, FImprimir);

Pois na unit 'ACBrCTeWebServices' linhas 2970-2982, internamente ele faz a consulta imediata do recibo.

// 'ACBrCTeWebServices' linhas 2970-2982:
function TWebServices.Envia(ALote: String): Boolean;
begin
  FEnviar.Lote := ALote;

  if not Enviar.Executar then
    Enviar.GerarException( Enviar.Msg );

  FRetorno.Recibo := FEnviar.Recibo;

  if not FRetorno.Executar then
    FRetorno.GerarException( FRetorno.Msg );

  Result := True;
end;

Sendo assim, não preciso realizar a consulta manualmente do recibo em uma primeira tentativa de envio, certo?

Obrigado.

Editado por Leandro Araújo
Correção de informações.

Leandro Araújo, Analista de Sistemas.

Postado (editado)

Boa noite.

Não precisa consultar o recibo.

Eu envio para a sefaz e gravo o recibo, protocolo etc, no banco de dados. Sempre antes de enviar a CT-e eu consulto o documento, se tiver o recibo no banco ai eu consulto por recibo se não consulto por chave, se o documento estiver na sefaz atualiza as informações no banco de dados, se não envia para a sefaz e grava informações no banco.

 

Espero ter ajudado.

 

 

Editado por Jorge Eduardo
erro na digitação
  • Curtir 1
Postado
10 horas atrás, Jorge Eduardo disse:

Boa noite.

Não precisa consultar o recibo.

Eu envio para a sefaz e gravo o recibo, protocolo etc, no banco de dados. Sempre antes de enviar a CT-e eu consulto o documento, se tiver o recibo no banco ai eu consulto por recibo se não consulto por chave, se o documento estiver na sefaz atualiza as informações no banco de dados, se não envia para a sefaz e grava informações no banco.

 

Espero ter ajudado.

 

 

Bom dia.

Era isso mesmo que queria saber.

Então aqui no meu caso só irei consultar o recibo em um caso de falha na comunicação, etc, já que o componente realiza essa consulta imediata no envio.

Obrigado.

Leandro Araújo, Analista de Sistemas.

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