Ir para conteúdo
  • Cadastre-se

dev botao

ACBrNFe.WebServices.Retorno.RetWS em branco!


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

Recommended Posts

Olá,

por que o conteúdo de ACBrNFe.WebServices.Retorno.RetWS está em branco depois de uma consulta ou de um cancelamento?


function TFrm_NotasFiscais.ImprimirNFe: Boolean;

var

  lNotasFiscais: TNotasFiscais;

  lACBrNFe: TACBrNFe;

  lNotaFiscal: NotaFiscal;

  lNomeArquivo: String;

  lMemoDados: TStrings;

  lAmbiente: Integer;

begin

  Result := Dtm_NotasFiscais.TemRegistros;


  if Result then

  begin

    TFrm_EsperaProcesso.MostraMensagemEspera;

    try

      lACBrNFe := Frm_Principal.ACBrNFe(True);


      if not Assigned(lACBrNFe) then

      begin

        TFrm_EsperaProcesso.DestroiMensagemEspera;

        raise Exception.Create('ATENÇÃO:'+#13#10+'Operação de envio de NF-e não disponível.');

      end;


      if not TSistema.DiretorioExiste(lACBrNFe.Configuracoes.Arquivos.GetPathNFe) then

      begin

        TFrm_EsperaProcesso.DestroiMensagemEspera;

        raise Exception.Create('ATENÇÃO:'+#13#10+'Diretório para salvar arquivos XML não existe.'+#13#10+'DIRETÓRIO: '+lACBrNFe.Configuracoes.Arquivos.GetPathNFe);

      end;


      if not TSistema.ValorVazio(Dtm_NotasFiscais.ClientDataSetARQUIVOS_ID) then

      begin

        Dtm_Arquivos.AcionaFiltro(Dtm_NotasFiscais.ClientDataSetARQUIVOS_ID.AsInteger);

        if Dtm_Arquivos.TemRegistros then

        begin

          if not TSistema.DiretorioExiste(lACBrNFe.Configuracoes.Geral.PathSalvar+'NFE_TEMP\') then

            if not TSistema.CriaDiretorio(lACBrNFe.Configuracoes.Geral.PathSalvar+'NFE_TEMP\') then

              raise Exception.Create('Problema ao criar pasta temporária para reposição de arquivos.'+#13#10+'Não foi possível criar o diretório, Verifique ou entre em contato com o administrador do sitema.');

          lNomeArquivo := lACBrNFe.Configuracoes.Geral.PathSalvar+'NFE_TEMP\'+Dtm_NotasFiscais.ClientDataSetEMITENTE_ID.AsString+'_'+Dtm_NotasFiscais.ClientDataSetNRO_NOTA_FISCAL.AsString+'.XML';

          Dtm_Arquivos.ClientDataSetARQUIVO.SaveToFile(lNomeArquivo);

        end

        else

          raise Exception.Create('Não foi encontrado arquivo XML da Nota Fiscal.'+#13#10+'Verifique ou entre em contato com o administrador do sitema.');

      end

      else

        raise Exception.Create('Não foi encontrado arquivo XML da Nota Fiscal.'+#13#10+'Verifique ou entre em contato com o administrador do sitema.');


      if not TSistema.ArquivoExiste(lNomeArquivo) then

      begin

        TFrm_EsperaProcesso.DestroiMensagemEspera;

        raise Exception.Create('ATENÇÃO:'+#13#10+'Arquivo XML não foi encontrado!'+#13#10+#13#10+'ARQUIVO: '+Dtm_NotasFiscais.ClientDataSetNOME_ARQUIVO_XML.AsString+#13#10+'DIRETÓRIO: '+lACBrNFe.Configuracoes.Arquivos.GetPathNFe);

      end;


      lNotasFiscais := lACBrNFe.NotasFiscais;

      lNotasFiscais.Clear;

      try

        lNotasFiscais.LoadFromFile(lNomeArquivo);

      except

        begin

          TFrm_EsperaProcesso.DestroiMensagemEspera;

          raise Exception.Create('ERRO:'+#13#10+'O Arquivo XML para envio é inválido.');

        end;

      end;

    finally

      TFrm_EsperaProcesso.DestroiMensagemEspera;

    end;


    if (TMensagem.Mensagem('PERGUNTA:'+#13#10+'Você deseja consultar essa Nota Fiscal na base de dados da SEFAZ?', mtConfirmation, [mbYes, mbNo], mrYes) = mrYes) then

    begin

      TFrm_EsperaProcesso.MostraMensagemEspera;

      try

        Result := lACBrNFe.Consultar;

      finally

        TFrm_EsperaProcesso.DestroiMensagemEspera;

      end;


      if Result then

      begin

        TryStrToInt(TpAmbToStr(lACBrNFe.WebServices.Retorno.TpAmb), lAmbiente);

        Dtm_ProtEnviosXML.AcionaFiltro(lACBrNFe.WebServices.Retorno.Protocolo, lAmbiente);

        if not Dtm_ProtEnviosXML.TemRegistros then

        begin

          Dtm_ProtEnviosXML.InserirRegistro;

          Dtm_ProtEnviosXML.ClientDataSetAMBIENTE.AsInteger := lAmbiente;

          Dtm_ProtEnviosXML.ClientDataSetVER_APP.AsString := lACBrNFe.WebServices.Retorno.verAplic;

          Dtm_ProtEnviosXML.ClientDataSetSTAT.AsInteger := lACBrNFe.WebServices.Retorno.cStat;

          Dtm_ProtEnviosXML.ClientDataSetUF.AsInteger := lACBrNFe.WebServices.Retorno.cUF;

          Dtm_ProtEnviosXML.ClientDataSetMOTIVO.AsString := lACBrNFe.WebServices.Retorno.xMotivo;

          Dtm_ProtEnviosXML.ClientDataSetCMENSAGEM.AsInteger := lACBrNFe.WebServices.Retorno.cMsg;

          Dtm_ProtEnviosXML.ClientDataSetXMENSAGEM.AsString := lACBrNFe.WebServices.Retorno.xMsg;

          Dtm_ProtEnviosXML.ClientDataSetRECIBO.AsString := lACBrNFe.WebServices.Retorno.Recibo;

          Dtm_ProtEnviosXML.ClientDataSetPROTOCOLO.AsString := lACBrNFe.WebServices.Retorno.Protocolo;

          Dtm_ProtEnviosXML.SalvaRegistro;


          Dtm_NotasFiscais.EditarRegistro;

          Dtm_NotasFiscais.ClientDataSetPROTOCOLO_ENVIO_ID.AsInteger := Dtm_ProtEnviosXML.ClientDataSetID.AsInteger;

          Dtm_NotasFiscais.SalvaRegistro;

        end;

      end;


      lMemoDados := TStringList.Create;

      try

        lMemoDados.Clear;

        lMemoDados.Add('Consulta NF-e');

        lMemoDados.Add('tpAmb: '+ TpAmbToStr(lACBrNFe.WebServices.Retorno.TpAmb));

        lMemoDados.Add('verAplic: '+ lACBrNFe.WebServices.Retorno.verAplic);

        lMemoDados.Add('cStat: '+ IntToStr(lACBrNFe.WebServices.Retorno.cStat));

        lMemoDados.Add('cUF: '+ IntToStr(lACBrNFe.WebServices.Retorno.cUF));

        lMemoDados.Add('xMotivo: '+ lACBrNFe.WebServices.Retorno.xMotivo);

        lMemoDados.Add('cMsg: '+ IntToStr(lACBrNFe.WebServices.Retorno.cMsg));

        lMemoDados.Add('xMsg: '+ lACBrNFe.WebServices.Retorno.xMsg);

        lMemoDados.Add('Recibo: '+ lACBrNFe.WebServices.Retorno.Recibo);

        lMemoDados.Add('Protocolo: '+ lACBrNFe.WebServices.Retorno.Protocolo);

        TFrm_RespostaNFe.ApresentaRetornoNFe(lACBrNFe.WebServices.Retorno.RetWS, 'Resultado da Consulta da NF-e', lMemoDados.Text);

      finally

        FreeAndNil(lMemoDados);

      end;

    end;

    lNotasFiscais.Imprimir;

  end;

end;

Aí não consigo pegar Nº de protocolo nem nada. Mexi por tudo e não achei solução.

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Se vc está fazendo um cancelamento, vc deve ler o retorno do cancelamento e não do webservice de retorno do envio.

ACBrNFe1.WebServices.Cancelamento.RetWS;

Estude o demo.

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.xpos.com.br
Link para o comentário
Compartilhar em outros sites

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