Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Nos novos fontes da NFSe na ConsutarNFSeporRps() há uma validação que exige que tenham registros na NotaFiscal:

 if NotasFiscais.Count <= 0

  then begin

   if Assigned(Self.OnGerarLog)

    then Self.OnGerarLog('ERRO: Nenhum RPS adicionado');

   raise Exception.Create('ERRO: Nenhum RPS adicionado');

   exit;

  end;
Não entendi o porque dessa validação, não digo que está errada, talvés eu não esteje usando corratamente, mas e se eu não tiver o arquivo Xml em mãos, como vou fazer para carregar a nota? Vi que no exemplo é feito um load, a nota é carregada e a consulta é feita buscando os parâmetros da propria nota carregada:
 OpenDialog1.Title := 'Selecione o Rps';

 OpenDialog1.DefaultExt := '*-Rps.xml';

 OpenDialog1.Filter := 'Arquivos Rps (*-Rps.xml)|*-Rps.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';

 OpenDialog1.InitialDir := ACBrNFSe1.Configuracoes.Geral.PathSalvar;


 if OpenDialog1.Execute then

  begin

   ACBrNFSe1.NotasFiscais.Clear;

   ACBrNFSe1.NotasFiscais.LoadFromFile(OpenDialog1.FileName);


   ACBrNFSe1.ConsutarNFSeporRps(ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero,

                                ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Serie,

                                TipoRPSToStr(ACBrNFSe1.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Tipo),

                                ACBrNFSe1.NotasFiscais.Items[0].NFSe.Prestador.Cnpj,

                                ACBrNFSe1.NotasFiscais.Items[0].NFSe.Prestador.InscricaoMunicipal);


   MemoResp.Lines.Text   := UTF8Encode(ACBrNFSe1.WebServices.ConsNfseRps.RetWS);

   memoRespWS.Lines.Text := UTF8Encode(ACBrNFSe1.WebServices.ConsNfseRps.RetWS);

   LoadXML(MemoResp, WBResposta);

  end;

Nesse caso, porque eu consultaria via webservice se tenho o Xml? E no caso de não ter o Xml salvo na máquina, como consultar?

  • Consultores
Postado

Boa noite Marcio,

O que é carregado para o componente não é o XML da nota e sim do RPS - Recibo Provisório de Serviço.

E qual é a finalidade da função: ConsultarNFSeporRps ?

Não é acessar o webservice, passando alguns dados referente ao RPS para obter o XML da NFSe?

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Ok, entendi, vou passar para o componente os dados e dai consultar.

Outra dúvida que surgiu agora:

No método TWebServicesBase.LoadMsgEntrada, o sistema carrega o Websrvice conforme FConfiguracoes.WebServices.Provedor informado. Porém esse campo é read only, não consigo setar o provedor, ainda dependendo do médoto Configuracoes.WebServices.SetConfigMunicipio() para isso. A ideia não era eliminar o uso desse arquivo? Como posso fazer isso?

  • Consultores
Postado

Bom dia Marcio,

Qual arquivo você se refere?

Uma vez que com as alterações realizadas nos fontes do componente e a criação de uma unit para cada provedor, não há necessidade dos arquivos INI, mas ainda é necessário a execução do SetConfigMunicipio, mas você pode passar como parametro uma String vazia.

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

  • Membros Pro
Postado

Ítalo, mas o que o Márcio está dizendo faz todo sentido, pois de acordo com a função, você não precisa ter o XML do RPS para realizar a consulta, basta as informações que já são passados nos parâmetros da função.

Então está sendo obrigatório o carregamento do XML sem necessidade alguma. Pois, se observar o programa de exemplo, ele se utiliza do carregamento do XML simplesmente para passar os parâmetros para a função, e mais nada.

945757316_FantastsoftLogotipo100px.png.20c116e19bad4f7436640307ee0fa01a.png   Endrigo Rodrigues
Fantastsoft Sistemas

Node / Delphi 11.2
Cabo Frio/RJ

 

Postado

Pois é, o que eu fiz foi passar a salvar o xml e carregar na hora da consulta. Mas com certeza seria melhor só passar os parâmetros e consultar. Até é possível pelo que ví, usando a consulta a partir de NFSe.WebServices.ConsultaLoteRps(Protocolo, Cnpj, InscricaoMunicipal) ao invés de NFSe.ConsutarLoteRps(NumeroLote, Protocolo), mas ai dá erro ao passar as informações para a NotasFiscais.Items[ii] dentro do método Executar de TNFSeConsultarLoteRPS.

Está assim:

  FRetListaNfse := SeparaDados(FRetWS, Prefixo3 + 'ListaNfse');

  i := 0;

  while FRetListaNfse <> '' do

   begin

    // Alterado por Rodrigo Cantelli

    j := Pos('' + Prefixo3 +

                    NotaUtil.seSenao(FProvedor = proBetha, 'ComplNfse', 'CompNfse') + '>', FRetListaNfse);

    p := Length(trim(Prefixo3));

    if j > 0

     then begin


      // Alterado por Italo em 19/07/2012

      for ii := 0 to NFSeRetorno.ListaNfse.CompNfse.Count -1 do

       begin

        if FNotasFiscais.Items[ii].NFSe.IdentificacaoRps.Numero = NFSeRetorno.ListaNfse.CompNfse.Items[i].Nfse.IdentificacaoRps.Numero

         then begin

          FNotasFiscais.Items[ii].NFSe.CodigoVerificacao := NFSeRetorno.ListaNfse.CompNfse.Items[i].Nfse.CodigoVerificacao;

          FNotasFiscais.Items[ii].NFSe.Numero            := NFSeRetorno.ListaNfse.CompNfse.Items[i].Nfse.Numero;

          FNotasFiscais.Items[ii].NFSe.Competencia       := NFSeRetorno.ListaNfse.CompNfse.Items[i].Nfse.Competencia;

          FNotasFiscais.Items[ii].NFSe.NfseSubstituida   := NFSeRetorno.ListaNfse.CompNfse.Items[i].Nfse.NfseSubstituida;
Será que não poderia haver um opção para pegar o Xml da consulta da situação e carregar as notas no campo FNotasFiscais via StringStream? Assim:
FNotasFiscais.LoadFromStream(TStringStream.Create(FRetListaNfse));

Dessa forma não precisamos carregar o Rps.

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