Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado (editado)

Ao executar o evento onclick (do botao btn_ImportarNFe) o programa chama o mesmo evento onclick novamente a partir da chamada do método `Nfe.EnviarEvento(StrToInt(IDLote));` do segundo trecho de código (ver listagem completa abaixo). Ao executar o mesmo evento onclick em modo debug essa segunda chamada não acontece.

Trecho de código da Procedure ImportarNFe:

procedure Tfrm_LancamentosDespesas.btn_ImportarNFeClick(Sender: TObject);
var
  dlgImportarNFe       : TFrm_BuscarChave;
  Chave, CNPJ, idLote  : string;
  i                    : Integer;
  XMLtsl               : TStringList;
  XMLStream            : TStringStream;
begin
  dlgImportarNFe :=  TFrm_BuscarChave.Create(nil);
  XMLtsl    := TStringList.Create;
  XMLStream := TStringStream.Create;

  dlgImportarNFe.ShowModal;

  if dlgImportarNFe.ModalResult = mrCancel then
  begin
    Exit
  end
  else
  begin
    if dlgImportarNFe.chk_BuscarXML.Checked = False then
    begin
      Chave          := dlgImportarNFe.edt_Chave.Text;
      CNPJ           := dm.EmpresaControlada.CGC;
      idLote         := '1';

      dlgImportarNFe.free;

      dm_NFe.EventoConfirmacao(Chave, idLote, CNPJ);
      dm_NFe.DistribuicaoDFePorChaveNFe(31, CNPJ, Chave);
      op.FileName    := dm_NFe.nfe.Configuracoes.Arquivos.DownloadNFe.PathDownload + dm_NFe.nfe.WebServices.DistribuicaoDFe.ListaArqs[0];
    end;

Trecho de código com método EnviarEvento :

procedure Tdm_NFe.EventoConfirmacao(Chave, idLote, CNPJ: string);
var
  lMsg      : string;
  RetornoWS : string;
begin
  Chave  := Trim(OnlyNumber(Chave));
  idLote := Trim(OnlyNumber(idLote));
  CNPJ   := Trim(OnlyNumber(CNPJ));

  nfe.Configuracoes.WebServices.Ambiente      := dm_NFe.tipoAmbiente;
  nfe.Configuracoes.Certificados.NumeroSerie  := dm_logon.dat_EmpresaCTRLNUMSERIE_NFE.AsString;
  nfe.Configuracoes.WebServices.UF            := 'MG';
  DataModuleCreate(nil);

  Nfe.EventoNFe.Evento.Clear;
  with Nfe.EventoNFe.Evento.Add do
  begin
    InfEvento.cOrgao   := 91;
    infEvento.chNFe    := Chave;
    infEvento.CNPJ     := CNPJ;
    infEvento.dhEvento := now;
    infEvento.tpEvento := teManifDestConfirmacao;
  end;

  Nfe.EnviarEvento(StrToInt(IDLote));

Alguem sabe o que pode estar acontecendo?

Editado por mathlopes
  • Solution
Postado

Consegui solucionar o problema, o que estava acontecendo e que eu não estava limpando objeto antes de usa-lo. logo  depois de abrir  dlgImportarNFe.ShowModal;, foi inserido dm_NFe.nfe.NotasFiscais.Clear; para limpar o objeto. 

  • Curtir 2
  • Este tópico foi criado há 2051 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.