Ir para conteúdo
  • Cadastre-se

dev botao

Erro ao executar função 'ConsultarNFSe'. (Provedor ISSDSF)


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

Recommended Posts

Boa tarde pessoal,

Atualizei os fontes do ACBr semana passada e uma programação que está então funcionava, agora está me retornando uma Exceção:

Segue os detalhes da minha rotina:


1) O provedor que estou testando é o ISSDSF.
2) Ao enviar o RPS, eu executo a função 'ConsultarLoteRps', no qual recebo o número da NFSe
3) Após consultar o RPS, executo a função 'ConsultarNFSe', para poder receber o XML da NFSe.

Agora com a atualização, esta função está me retornando uma Exceção.

Procurando nos fontes, encontrei uma possível anomalia:
 

function TNFSeWebService.ExtrairNotasRetorno: Boolean;
var
  FRetNFSe, PathArq, NomeArq, xCNPJ: String;
  i, l, ii: Integer;
  xData: TDateTime;
  NovoRetorno, CondicaoNovoRetorno: Boolean;
  Alerta203: Boolean;
begin
  FRetornoNFSe := TRetornoNFSe.Create;

  FRetornoNFSe.Leitor.Arquivo := FPRetWS;  // AQUI JÁ TENHO O XML DA NFSE
  FRetornoNFSe.Provedor       := FProvedor;
  FRetornoNFSe.TabServicosExt := FPConfiguracoesNFSe.Arquivos.TabServicosExt;
  FRetornoNFSe.PathIniCidades := FPConfiguracoesNFSe.Geral.PathIniCidades;
  FRetornoNFSe.LerXml;  // ESTA FUNÇÃO DEVE PEGAR O XML EM TEXTO E ALIMENTAR O COMPONENTE

  ii := 0;
  for i := 0 to FRetornoNFSe.ListaNFSe.CompNFSe.Count -1 do  // ESTA LINHA ME RETORNA O 'COUNT' = 0, QUE NO CASO ACREDITO QUE DEVERIA SER > 0


Não sei se o problema está nesta parte do código, mas acredito que o comportamento dela deveria ser diferente uma vez que a variável 'FRetornoNFSe.Leitor.Arquivo' já tenha o xml da NFSe.

Grato pela ajuda.

Link para o comentário
Compartilhar em outros sites

Só para complementar: A exceção ocorre porque a função citada acima tem o retorno = False:
 

// Validação de sucesso para provedores que não retornam data de recebimento
  if FProvedor in [proNotaBlu] then
    Result := UpperCase(FRetornoNFSe.ListaNFSe.Sucesso) = UpperCase('true')
  else // Validação através da data de recebimento
    Result := (FDataRecebimento <> 0);

  if (FProvedor = proISSDSF) and Alerta203 then
    Result := True;

Com este result, a função 'ConsultaNFSe' gera uma exceção:

function TWebServices.ConsultaNFSe(ADataInicial, ADataFinal: TDateTime;
  NumeroNFSe: String; APagina: Integer; ACNPJTomador, AIMTomador, ANomeInter,
  ACNPJInter, AIMInter, ASerie: String): Boolean;
begin
  FConsNfse.FDataInicial := ADataInicial;
  FConsNfse.FDataFinal   := ADataFinal;
  FConsNfse.FNumeroNFSe  := NumeroNFSe;
  FConsNfse.FPagina      := APagina;
  FConsNfse.FCNPJTomador := ACNPJTomador;
  FConsNfse.FIMTomador   := AIMTomador;
  FConsNfse.FNomeInter   := ANomeInter;
  FConsNfse.FCNPJInter   := ACNPJInter;
  FConsNfse.FIMInter     := AIMInter;
  FConsNfse.FSerie       := ASerie;

  Result := FConsNfse.Executar;

  if not (Result) then
    FConsNfse.GerarException( FConsNfse.Msg );  // GERA A EXCEÇÃO, PORÉM 'FConsNfse.Msg' ESTÁ VAZIO, POIS PELO QUE ENTENDI, NÃO HÁ ERRO
end;

 

Link para o comentário
Compartilhar em outros sites

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