Ir para conteúdo
  • Cadastre-se

dev botao

Provedor recebe RPS mais não tenho retorno


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

Recommended Posts

Postado

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?

 

Postado

Beleza, mais uma coisa, sabe me dizer como pego as informações de retorno? apos a consulta? tentei varias formas mais não deu certo, uma delas é essa:

DmNFSe.NFSe.WebServices.ConsNFSeRps.RetornoNFSe.ListaNFSe.MsgRetorno[ 0 ].Codigo

Postado
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;

 

Postado
        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.

Postado

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?

Postado
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.

Postado

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?

Postado

 

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

Postado

O meu arquivo estava sem os 2 link's mesmo, por isso não dava certo gerar pela função, ai eu estava criando manualmente o link...

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?

Postado
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)

Postado

Queria usar o WebBrowser no delphi, mais não tem como, não consegui abrir o link, acho que pelo fato de pedir o certificado, vou usar direto no Navegador mesmo.

Postado

@everson.turossi consegui ajustar quase 100% a emissão com o Equiplano, só fiquei com uma duvida, voce conseguiu fazer o cancelamento e o envio por email, pois o Equiplano não tem um xml completo da NFSe apos o envio, e para esses dois procedimentos é necessario dar um load no xml, voce conseguiu?

Postado (editado)

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
Postado

Sim, lá estão canceladas... mais pelo  meu sistema me retorna esse erro, no caso da certo mais aparece esse erro, ai se eu teno denovo diz que ja esta cancelada.

Postado (editado)

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
Postado

Abre o xml de retorno do cancelamento, a mensagem do print provavelmente esteja lá, nesse caso dai é erro interno do provedor. Eu recebia erro semelhante quando tentava passar uma série que não era numérica. Mas vou fazer um teste aqui pra ver se voltou a cancelar.

Postado

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.

Postado

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...

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