Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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.

Postado

Na consulta resolvi o problema informando ao invés de lACBrNFe.WebServices.Retorno troquei por lACBrNFe.WebServices.Consulta

Agora o cancelamento continua, não adianta trocar lACBrNFe.WebServices.Retorno por lACBrNFe.WebServices.Cancelamento

RetWS sempre retorna em branco.

Postado

Obrigado pela ajuda,

Criei minha rotina de cancelamento tal qual o Demo e o resultado é o mesmo: o ACBrNFe1.WebServices.Cancelamento.RetWS ainda volta vazio. Coloquei a chamada dentro de um try...finally pode ser isso?

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