Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Olá!

Fiz a minha nota eletrônica usando o ACBR e funciona perfeitamente. Porem, depois de transmitir umas 3, 4 notas o sistema simplesmente para de transmitir e retorna mensagem de retorno em branco. Ai preciso fechar meu sistema e abri-lo novamente para continuar emitindo as notas. Acredito que deva estar faltando algum comando no fonte que evite esse problema

Estou usando Delphi 2010, ACBR, Firebird 2.1.3, e certificado A3.

Segue o código abaixo

procedure TLanNotasSaida.btnTransmitirClick(Sender: TObject);

begin

    try

       case TfrmMsg.Msg('Confirmacao', 'Tem certeza que deseja transmitir essa nota?', imPergunta, [mbNao, mbSim]) of

         1: Abort;

       end;


       cxProgressBar.Visible := True;

       Application.ProcessMessages;


       if cdsNotasSaidaDATA_EMISSAO.AsDateTime <> Date then

         begin

             cdsNotasSaida.Edit;

             cdsNotasSaidaDATA_EMISSAO.AsDateTime := Date;

             cdsNotasSaida.Post;

         end;


       if ((cdsNotasSaidaDATA_SAIDA_ENTRADA.AsDateTime > 0) and (cdsNotasSaidaDATA_SAIDA_ENTRADA.AsDateTime < Date)) then

         begin

             cdsNotasSaida.Edit;

             cdsNotasSaidaDATA_SAIDA_ENTRADA.AsDateTime := Date;

             cdsNotasSaida.Post;

         end;



       case TfrmMsg.Msg('Confirmação', 'Deseja imprimir a hora de saída na nota?', imPergunta, [mbNao, mbSim]) of

         2: begin

                if cdsNotasSaidaHORA_SAIDA_ENTRADA.IsNull then

                  begin

                      cdsNotasSaida.Edit;

                      cdsNotasSaidaHORA_SAIDA_ENTRADA.AsDateTime := TimeOf(Now);

                      cdsNotasSaida.Post;

                  end;

            end;


         1: begin

                if not(cdsNotasSaidaHORA_SAIDA_ENTRADA.IsNull) then

                  begin

                      cdsNotasSaida.Edit;

                      cdsNotasSaidaHORA_SAIDA_ENTRADA.Clear;

                      cdsNotasSaida.Post;

                  end;

            end;

       end;


       ConfiguraACBR_NFE;


       AlimentaACBR_NFE;


       try

          ACBrNFe.Enviar(1, False);

       except

          on E: Exception do

            begin

                if Pos('Certificado Digital não encontrado!', E.Message) > 0 then

                  begin

                      TfrmMsg.Msg('Erro no envio', 'Certificado digital não encontrado.', imErro, [mbOk]);

                      Abort;

                  end;


                ACBrNFe.WebServices.Retorno.Executar;


                TfrmMsg.Msg('Erro no envio', E.Message, imErro, [mbOk]);

                TfrmMsg.Msg('Erro no envio', Copy(ACBrNFe.WebServices.Retorno.RetWS, Pos('', ACBrNFe.WebServices.Retorno.RetWS) + 17, Length(ACBrNFe.WebServices.Retorno.RetWS) - 1), imErro, [mbOk]);

                Abort;

            end;

       end;


       TfrmMsg.Msg('Retorno do envio', ACBrNFe.WebServices.Retorno.Msg, imInformacao, [mbOk]);


       if ACBrNFe.WebServices.Retorno.Protocolo > '' then

         begin

             cdsNotasSaida.Edit;

             cdsNotasSaidaNUMERO_PROTOCOLO.AsString := ACBrNFe.WebServices.Retorno.Protocolo;

             cdsNotasSaidaDATA_AUTORIZACAO.AsDateTime := ACBrNFe.WebServices.Retorno.NFeRetorno.ProtNFe.Items[0].dhRecbto;

             cdsNotasSaida.Post;


             ACBrNFe.NotasFiscais.Imprimir;

             ACBrNFe.NotasFiscais.ImprimirPDF;


             EnviarEmailXML;

         end;

    finally

       cxProgressBar.Visible := False;

    end;

end;

Desde já agradeço a ajuda.

Carlos Alexandre Heidrich

Programador e Técnico em Informática

Postado

Olá tenta colocar o Clear nessa parte do código;

       

      ACBrNFe1.NotasFiscais.Clear;  // Ante de carregar as informações no mesmo


       ConfiguraACBR_NFE;


       AlimentaACBR_NFE;


Espero que ajude.

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