Ir para conteúdo
  • Cadastre-se

dev botao

Provedor recebe RPS mais não tenho retorno


@Mauricio
Ver Solução Respondido por everson.turossi,
  • Este tópico foi criado há 2019 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Olá pessoal, estou com um probleminha, estou utilizando o provedor Equiplano, faço o envio do RPS e vai sem erro nenhum, se eu consulto o RPS esta normal no site do provedor, posso ate imprimir, mais o problema que estou tento é que apos o envio estou recebendo um retorno em branco, utilizo as 3 linhas após o envio, como esta no exemplo em delphi, mais todas estão vindo em branco, no caso envia o RPS mais não tenho erro nenhum na tela.

DmNFSe.NFSe.NotasFiscais.Items[0].NomeArq
DmNFSe.NFSe.NotasFiscais.Items[0].NFSe.Numero
DmNFSe.NFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao

Outra coisa que percebi é que na unit ACBRNFSe na função enviar:

      if NotasFiscais.Items.Confirmada and Imprimir then
        NotasFiscais.Items.Imprimir;


a propriedade Confirmada vem false e a nota não imprime, alguem sabe o que posso estar fazendo errado?

 

Link para o comentário
Compartilhar em outros sites

procedure TNFSeACBrUtil.ConsultaAutorizacaoEquiplano();
const
  cTentativas = 5;
var
  LTentativa: Integer;
begin
  LTentativa := 0;

  { não existe objeto caso tenha ocorrido alguma exception de validação antes de enviar para webservice }
  if (Assigned(FACBrNFSe.WebServices.EnviarLoteRPS.RetEnvLote)) then
  begin
    if (FACBrNFSe.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.MsgRetorno.Count > 0) then
    begin
      if (FACBrNFSe.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.MsgRetorno.Items[0].Codigo <> '8005') then { O RPS ainda nao foi convertido em NFS-e }
        LTentativa := cTentativas + 1;
      { 8011 - ja foi convertido
        1204 - Valor Total de Servicos nao confere com o enviado }
    end;
    if (FACBrNFSe.WebServices.EnviarLoteRPS.RetEnvLote.InfRec.MsgRetorno.Count = 0) then
      Aviso('É preciso aguardar alguns segundos até que o RPS seja convertido em NFSe.');
  end
  else
    LTentativa := cTentativas + 1;

  while (LTentativa < cTentativas) do
  begin
    try
      FACBrNFSe.NotasFiscais.Clear;
      FACBrNFSe.WebServices.ConsultaNFSeporRps(FTopNFSe.NotaFiscal.RPS.Numero.ToString, FTopNFSe.NotaFiscal.RPS.Serie, TipoRPSToStr(trRPS));
      LTentativa := cTentativas + 1;
    except
      if (FACBrNFSe.WebServices.ConsNFSeRps.RetornoNFSe.ListaNFSe.MsgRetorno.Count > 0) then
      begin
        if (FACBrNFSe.WebServices.ConsNFSeRps.RetornoNFSe.ListaNFSe.MsgRetorno.Items[0].Codigo = '8005') then { O RPS ainda nao foi convertido em NFS-e }
        begin
          Inc(LTentativa);
          Aviso('Consultando NFSe (Tentativa %D / %D)', [LTentativa, cTentativas]);
        end
        else
          raise;
      end;
    end;
  end;

  if (LTentativa = cTentativas) then
  begin
    Aviso('RSP ainda não convertido. Utilize a opção "Verificar Situação da NFS-e" mais tarde para atualizar os dados da NFSe.');
  end;
end;

 

      if (LProvedor = proEquiplano) then
      begin
        Self.ConsultaAutorizacaoEquiplano();

        if (FACBrNFSe.NotasFiscais.Count > 0) then { quando consulta é zerado lista de notas }
          if (FACBrNFSe.NotasFiscais.Items[0].Confirmada) then
          begin
            FNotaFiscal.Situacao := tsAutorizada;
            FNotaFiscal.CodigoVerificacao := FACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao;
            FNotaFiscal.NumeroAutorizado := StrToIntDef(FACBrNFSe.NotasFiscais.Items[0].NFSe.Numero, 0);
            FNotaFiscal.Link := Self.GerLinkImpressao();
            { xml que retorna é apenas com dados da autorizacao }
          end;
      end;

 

Link para o comentário
Compartilhar em outros sites

        if (FACBrNFSe.NotasFiscais.Items[0].NFSe.Protocolo <> '') then
        begin
          FNotaFiscal.RPS.Protocolo := FACBrNFSe.NotasFiscais.Items[0].NFSe.Protocolo;
        end;

 

Te mandei parte do meu código, inclusive algumas partes comentadas pois tive uma certa dificuldade pra entender como o provedor trabalhava.

O mais estranho é que ele valida na hora do envio já os dados, mas não retorna os dados da NFS-e gerada.

Link para o comentário
Compartilhar em outros sites

Consegui pegar o CodigoVerificacao e o Numero da nota agora, entendi melhor o funcionamento...

Vou ajustando melhor aqui agora conforme meu uso, outra coisa ja aproveitando, na parte de impressão estou utilizando o FastReport, mais a DANFSe vem sempre vazia, no caso só dou um loadfromfile no -nfse.xml, esta correto isso que estou fazendo?

Link para o comentário
Compartilhar em outros sites

25 minutos atrás, @Mauricio disse:

Consegui pegar o CodigoVerificacao e o Numero da nota agora, entendi melhor o funcionamento...

Vou ajustando melhor aqui agora conforme meu uso, outra coisa ja aproveitando, na parte de impressão estou utilizando o FastReport, mais a DANFSe vem sempre vazia, no caso só dou um loadfromfile no -nfse.xml, esta correto isso que estou fazendo?

Eu na verdade não utilizo o DANFSe, eu guardo o link direto da nota lá no provedor. Neste caso ainda não sei como vou proceder, pois vou precisar implementar a geração de PDF do DANFSe para envio por email, mas diferentemente do provedor Betha que implementei no passado, esse XML de retorno do Equiplano não corresponde ao XML completo da nota, então ao dar um LoadFromFile não serão carregados todas as informações da NFSe.

Link para o comentário
Compartilhar em outros sites

Pois é, a parte da impressão tambem estou vendo como vou fazer, unica coisa que não consegui ainda é pegar o protocolo, mesmo com a função que voce me passou ele retorno vazio:
DmNFSe.NFSe.NotasFiscais.Items[0].NFSe.Protocolo

e a parte de gerar o link do provedor voce colocou alguma url na parte do componente?

Link para o comentário
Compartilhar em outros sites

 

O link eu mesmo gero, quando implementei no passado NFS-e para o provedor Betha não lembro se já existia essa opção, mas acabei de conferir aqui, ajustei o arquivo ini do provedor e vou submeter.

Pode utilizar a função ACBrNFSe.LinkNFSe(....); passando como parametro o FACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao

Equiplano.ini

Link para o comentário
Compartilhar em outros sites

4 minutos atrás, @Mauricio disse:

Não sei se para voce aconteceu isso, mais em homologação ele precisa de um certificado para abrir o link, no seu tambem pede?

Eu até ia responder que não (sou usuário do Firefox), mas por desencargo de consciência fui testar no Edge e no Chrome e realmente apareceu a tela de seleção de certificado, mas mesmo cancelando abre a visualização (em homologação)

Link para o comentário
Compartilhar em outros sites

Não estou conseguindo fazer o cancelamento, pra mim está retornando erro  "NFS-e já cancelada". Esse erro começou a aparecer recentemente, mas quando implementei, cancelava normalmente. Quanto a emails tanto de autorização quanto cancelamento aqui pra mim quem manda é o próprio provedor. Inclusive se eu não informar um email válido, pra mim nem autoriza a nota. Toda via, pode ser uma configuração definida por cidade.

Editado por everson.turossi
Link para o comentário
Compartilhar em outros sites

esse erro esta ocorrendo na unit ACBrNFSeWebServices, no CancelaNFSe:

      case TACBrNFSe(FACBrNFSe).Configuracoes.Geral.Provedor of
        proInfisc,
        proInfiscv11,
        proSafeWeb,
        proTiplanv2 : Result := True
      else
        Result := FConsNfseRps.Executar; <<<<<<<<<<< Erro ocorre aqui
      end;

      if not (Result) then
        FConsNfseRps.GerarException( FConsNfseRps.Msg );

Se eu forçar o Resulta para True, ele termina o procedimento normalmente e cancela a nota, mais no caso ele sempre cai no IF e retorna o exception que mostrei acima.

No caso ele faz 2x o mesmo comando "FConsNfseRps.Executar" se ele entrasse no case do provedor o erro não ocorreria

 

Editado por @Mauricio
Link para o comentário
Compartilhar em outros sites

Testei aqui, infelizmente continuo recebendo o erro de NFS-e ja cancelada.

Já tive muitos problemas com provedores de NFS-e, a solução encontrada pra resolver a maioria das situações foi fazer da consulta de situação da nota e após isso fazer a verificação se o status dela no webservice coincide com o status dela no sistema. Em caso de divergências, atualizar ela no sistema de acordo com o webservice.

Link para o comentário
Compartilhar em outros sites

Dentro do meu xml de retorno vem com sucesso

<?xml version="1.0" encoding="UTF-8"?>&#xd;
<es:esCancelarNfseResposta xmlns:es="http://www.equiplano.com.br/esnfs" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.equiplano.com.br/esnfs esCancelarNfseResposta_v01.xsd">&#xd;
  <sucesso>true</sucesso>&#xd;
  <dtCancelamento>2018-09-05T13:05:53</dtCancelamento>&#xd;
</es:esCancelarNfseResposta>&#xd;

a parte de consulta situação da nota voce fez como? pois todas as consulta que fiz pede o numero de protocolo e não da certo...

Link para o comentário
Compartilhar em outros sites

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