NFSeConsultaSituacaoLoteRPS

A função NFSeConsultaSituacaoLoteRPS é usada para consultar a situação do processamento do lote de RPS enviado à prefeitura. Algumas prefeituras como São Paulo/SP ou o provedor DFS (ou os que adotam o mesmo padrão) não possuem este serviço, e neste caso a função NFSeConsultaLoteRPS deve ser utilizada.

Tipo de Retorno

Boolean

Pacote

A função NFSeConsultaSituacaoLoteRPS está definida dentro do pacote NFSeConsultaSituacaoLoteRPS.pkg.

Sintaxe

Move (NFSeConsultaSituacaoLoteRPS({iCdMunicipio}, {sCertificado}, {iTpAmbiente}, ;
      {sVersao}, {sArquivoLote}, &{sXMLResposta}, &{icResultado}, &{sMsgResultado}, ;
      {sCNPJPrestador}, {sIMprestador}, {sProtocolo}, &{sNrLote}, &{iSituacao}, ;
      &{sListaMensagemRetorno}, {sProxy}, {sUsuario}, {sSenha}, {sLicenca}, ;
      {bExibeErro})) to {bRet}

Onde:

  • {iCdMunicipio} é o código do IBGE do município do prestador do serviço que está emitindo a NFS-e;
  • {sCertificado} é a string que representa o certificado digital que será usado na transmissão dos dados. Se não for informado, uma tela será exibida para o usuário escolher um dos certificados instalados. Você pode obter esta string e armazená-la em um campo de sua base de dados com a função NFSePegaNomeCertificado. No caso do provedor SIMPLISS, em vez de passar o nome do certificado deve-se passar uma string no formato "CNPJ|00000000000000|SENHA" (LITERAL CNPJ, PIPE, número do CNPJ, PIPE e senha);
  • {iTpAmbiente} é o código que indica o ambiente para onde o lote será enviado: 1 - Produção e 2 - Homologação. ATENÇÃO: verifique se existe o ambiente de homologação, pois algumas cidades/provedores não possuem, assim todos os RPS’s são enviados para o ambiente de produção sendo necessário o seu cancelamento;
  • {sVersao} é a versão do XML. Este parâmetro não é usado atualmente e pode ser passado em branco, mas foi mantido por questão de compatibilidade com versões anteriores para que o desenvolvedor não tenha que alterar seu código;
  • {sArquivoXML} é o caminho completo do arquivo XML de lote RPS assinado que foi enviado e cujo resultado do processamento será consultado;
  • &{sXMLResposta} é o XML de retorno do WS. Normalmente será útil somente para propósitos de depuração e homologação de novas prefeituras. Por exemplo, se o XML de retorno não estiver no padrão correto a função pode não devolver o código de retorno no parâmetro icResultado e/ou em iSituacao. Neste caso o desenvolvedor poderá ler o retorno diretamente do XML devolvido;
  • &{icResultado} é uma variável do tipo Integer que precisa ser passada por referência e que após a execução da função receberá o código do resultado da execução. Um código igual a 5000 indica que a comunicação com o Web Service foi bem sucedida e qualquer outro código de retorno indica um erro. Para saber o retorno da consulta faz-se necessário analisar os demais retornos;
  • &{sMsgResultado} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá a mensagem literal do resultado da chamada do Web Service; 
  • {sCNPJPrestador} é número do CNPJ do prestador, que deverá ser informado sem espaços e caracteres separadores;
  • {sIMprestador} é número da inscrição municipal do prestador, que deverá ser informada sem espaços e caracteres separadores. ATENÇÃO: nos municípios atendidos pelo provedor Equiplano informe o idEntidade neste parâmetro;
  • {sNrProtReceb} é número do protocolo de recebimento obtido como retorno da função NFSeEnviaLoteRPS. ATENÇÃO: As prefeituras que adotam o padrão DSF e a prefeitura de Blumenau/SC e São Paulo/SP não devolvem o número do protocolo e as consultas devem ser realizadas com base no número do lote;
  • &{sNrLote} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá o número do lote recebido pela prefeitura;
  • &{iSituacao} é uma variável do tipo Integer que precisa ser passada por referência e que após a execução da função receberá a situação do lote consultado: 
    • 1 - Não Recebido 
    • 2 - Não Processado 
    • 3 - Processado com Erro 
    • 4 - Processado com Sucesso 
  • &{sListaMensagemRetorno} é uma variável do tipo String que precisa ser passada por referência e que após a execução da função receberá as mensagens de erro ou advertência do WS;
  • {sProxy} é usado para informar o endereço do servidor proxy, se necesário. Por exemplo ’http://proxyserver:port’. Verificar com o cliente qual é o endereço do servidor proxy e a porta https, pois a porta padrão do https é 443, e sendo assim teríamos algo como ’http://192.168.15.1:443’;
  • {sUsuario} é usado para informar o usuário para autenticação no proxy, se necessário;
  • {sSenha} é usado informar a senha de autenticação no proxy, se necessário;
  • {sLicenca} é usado para informar a chave da licença de uso ou registro. A consulta pode ser utilizada sem qualquer restrição no ambiente de homologação. O uso em ambiente de produção requer o licenciamento ou registro da DLL. Entre em contato para mais informações;
  • {bExibeErro} é usado para indicar se a função deve exibir ou não os erros que ocorrerem na execução;
  • {bRet} é o retorno da chamada da função onde True indica que a comunicação com o Web Service foi feita com sucesso. Para saber o resultado da consulta é necessário analisar os demais valores devolvidos nos parâmetros passados por referência.

Exemplo

Um exemplo de uso da função pode ser encontrado dentro da Workspace de Exemplo no Data Dictionary cRPSDataDictionary.dd no procedimento BuscarLoteRPS. Abaixo em destaque a função citada e a chamada da função da Library na linha 62.

NFSeConsultaSituacaoLoteRPS - Exemplo

Observações

  • Se o retorno de iSituacao for igual a 2 significa que o lote foi recebido pelo provedor da prefeitura mas ainda não houve tempo hábil para o processamento. Nesta situação o lote NÃO deve ser enviado novamente mas sim deve ser aguardado mais alguns instantes e então uma nova consulta deve ser feita, repetindo a consulta até que o código de situação mude;
  • As prefeituras que adotam o padrão DSF e a prefeitura de São Paulo/SP não possuem a função de consulta de situação. Neste caso deve-se usar diretamente a função NFSeConsultaLoteRPS.

Não encontrou o que precisava, entre em contato conosco.