Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Boa tarde pessoal.

 

Estou notando algo estranho na emissão da NFS-e.

Vira e mexe vem me retornando a seguinte mensagem:

Código Erro: E010

Mensagem: RPS ja informado. Numero do RPS em que ocorreu o erro: ....

Correção: Para essa Inscricao Municipal/CNPJ ja existe um RPS informado com o mesmo numero, serie e tipo.

Provedor: ISSNET.

 

Com esta informação fui consultar no site da prefeitura e a nota consta lá.

O AcbrNfse esta enviou a nota só que não sei porque não pegou o retorno.

 

Alguém já passou por isto?

Sabe como resolver?

  • 7 meses depois ...
  • Membros Pro
Postado (editado)

Tambem estou com esse problema, mas não é sempre, qual a função que vc utilizar para consultar o status do lote ?

Editado por marciotga

Atenciosamente,

Márcio Lopes

Analista de Sistemas

  • Consultores
Postado

Bom dia a todos,

 

Primeiramente, lembrem-se que é responsabilidade da aplicação controlar o numero do RPS que deve ser sequencial.

 

O numero da NFS-e por sua vez é controlado pelo Web Services.

 

Quanto as funções de consulta, o programa exemplo possui 4 botões:

[Consultar Situação do Lote]

[Consultar Lote]

[Consultar NFSe por RPS]

[Consultar NFSe por Período]

 

É importante ressaltar que dependendo do provedor alguma dessas funções podem não estar disponível como por exemplo: Consultar Situação do Lote.

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 (editado)

Deixa eu tentar te explicar o que acontece Italo.

 

No meu sistema o usuário manda vários registros de notas de uma vez, ele marca os registros que quer ser gerado a nota e o sistema entra em um while enviando.

Mas tem momentos que em determinados registros dá o erro E010 informado no primeiro post. Não é problema do sistema ter gerado número de rps repetido, pois 

acesso o site da prefeitura e aquele registro que deu o erro lá esta a nota gerada no site. Ai o que tenho que fazer é lançar os dados da nota do site para o meu sistema para que assim ele de continuidade na sequencia do número de rps.

Eu acredito que este problema esta no componente ou no servidor da prefeitura que é o issnet.

Editado por leufmt
  • Consultores
Postado

Boa tarde leufmt,

 

Entendi o usuário lança vários RPS e depois tem a opção de selecionar os que deseja enviar para o provedor e este retornar as respectivas notas.

 

Como ocorre esse envio, é por lote ou de um em um?

 

A sugestão que dou é usar o envio por lote (até 50 RPS), caso o provedor tenha essa opção disponível.

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 (editado)

Caro Italo, segue abaixo o código, se tu puder ver se acha algo errado agradeço.

 

OBS: No post abaixo.

Editado por leufmt
  • Consultores
Postado

Bom dia,

 

Por favor, não post fragmentos de código como texto no post e sim como arquivo em anexo, principalmente se o fragmento for grande como o seu.

 

É simples, basta clicar no botão [Mais Opções] que você vai encontrar um outro botão para anexar arquivos.

 

Edit o seu post anexando o fragmento como um arquivo TXT (bloco de notas).

  • Curtir 1
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

  • Consultores
Postado

Notei segundo o seu código, que você envia os RPS de forma individual, ou seja, cada lote possui apenas um RPS, vem vez de enviar todos os RPS no mesmo lote. Mas até tudo bem.

 

Notei que a variável RPS por receber o seu valor do campo ULTIMO somado de 1 da tabela NFSE_NOTA ou do campo NUMERONOTAINICIAL_PAR de uma tabela acredito eu chamada Parametro.

 

Até ai perfeito.

 

Mas em que momento os campos ULTIMO e ou NUMERONOTAINICIAL_PAR são atualizados em suas respectivas tabelas?

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

É atualizar a partir do momento que é gerada a nota, abaixo da linha "If ACBrNFSe.Enviar(Lote, False) then" tu vai ver o campo recebendo o valor atual "ADOQNotas.FieldByName('NUMERORPS_NOT').AsString :=  ACBrNFSe.NotasFiscais.Items[0].NFSe.IdentificacaoRps.Numero;"

  • Consultores
Postado

Boa tarde,

 

Mas acontece que IdentificacaoRps.Numero recebe o valor da variável RPS.

 

E está recebe o valor segundo o IF abaixo:

 

If ADOQConsulta.FieldByName('ULTIMO').AsInteger >= DMBase.ADOQParametroNUMERONOTAINICIAL_PAR.AsInteger then
     RPS := ADOQConsulta.FieldByName('ULTIMO').AsInteger + 1
Else
     RPS := DMBase.ADOQParametroNUMERONOTAINICIAL_PAR.AsInteger;
 
Em que momento o campo ULTIMO ou NUMERONOTAINICIAL_PAR são atualizados?
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

Vem um novo valor a partir da consulta ao banco de dados: 

ADOQConsulta.SQL.Text := 'SELECT MAX(NUMERORPS_NOT) ULTIMO FROM NFSE_NOTA ' +
     'WHERE (AMBIENTE_NOT = ' + QuotedStr(DMBase.ADOQParametroAMBIENTE_PAR.AsString) +
     ') AND (CODIGOPARAMETRO_NOT = ' + DMBase.ADOQParametroCODIGO_PAR.AsString + ')';
  • Consultores
Postado

Entendi, o ULTIMO não é um campo e sim uma variável que recebe o valor do campo NUMERORPS_NOT.

 

Sendo assim o que pode estar ocorrendo:

 

Como você tem a consulta e a atualização da tabela dentro do loop, pode estar ocorrendo um atraso na atualização da tabela e consequentemente ao fazer a nova consulta pega o mesmo valor de NUMERORPS_NOT.

 

Dai você tem o erro de retorno do Web Service acusando que já existe um RPS com aquele numero.

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

Pensei nisto.

Mas não explica o porque que no registro que dá este erro ele se encontra autorizado no site da prefeitura.

Se este registro não tivesse registrado na prefeitura eu entenderia.

Postado

Caro Italo, fiz uma analise para ver se estava havendo atraso na geração do NUMERORPS_NOT na minha consulta ao banco.

Mas não esta havendo atraso. Por exemplo, o RPS 1846 que foi gerado para o envio da nota dá o erro que já foi informado, dai acesso o site da prefeitura e aquele rps que deu o erro esta lá a nota gerada.

Como faço para enviar várias notas em um lote, pois pelo que tu disse antes parece que dá para fazer isto, talvez isto resolva meu problema?

É o servido ISSNET

  • Consultores
Postado

Bom dia ,

 

Você tem um rotina que alimenta o componente com os dados do RPS, correto?

 

Algo do tipo:

 

 ACBrNFSe1.NotasFiscais.Clear;
 
 with ACBrNFSe1 do
  begin
   NotasFiscais.NumeroLote:='1';
   NotasFiscais.Transacao := True;
 
   with NotasFiscais.Add.NFSe do
    begin
      (...)
    end;
 
  end;
 
As linhas em negrito são responsáveis por adicionar (Add) um RPS ao componente.
Se você tem 10 RPS basta colocar esse bloco dentro de um loop, e a cada vez que ele executar ele adiciona um novo RPS e alimenta com os dados dele.
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

Bom. Até ai acho que entendi.

Mas agora como vou pegar nesse meu código que vem logo abaixo:

   with NotasFiscais.Add.NFSe do
    begin
      (...)

    end;

 

    If ACBrNFSe.Enviar(Lote, False) then
    begin
      //Como vou pegar aqui o retorno de cada rps? Como por exemplo o Codigo de Verificacao?
    end;
  • Consultores
Postado

Boa tarde,

 

Também através de um loop.

 

Se enviamos um lote contendo 10 RPS, no retorno temos a lista com as 10 NFS-e.

 

Essa é a linha que você utiliza para atualizar a tabela no banco de dados no que se refere ao código de verificação:

 

     ADOQNotas.FieldByName('CODIGOVERIFICACAO_NOT').AsString := ACBrNFSe.NotasFiscais.Items[0].NFSe.CodigoVerificacao;
 
Percebeu que se trata de uma lista e como você só envia um RPS de cada vez, sempre lê o elemento [0] (zero), ou seja, o primeiro elemento da lista?
 
loop:
 
for x := 0 to ACBrNFSe.NotasFiscais.Count-1 do // o Count retorna a quantidade de itens "-1" uma vez que o índice começa em zero.
begin
(...)
     ADOQNotas.FieldByName('CODIGOVERIFICACAO_NOT').AsString := ACBrNFSe.NotasFiscais.Items[x].NFSe.CodigoVerificacao;
(...)
end;
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

Entendi Italo.

 

Mais uma coisa que notei.

Hoje foi tentando gerar uma única nota.

E Deu o erro.

Estou chegando a conclusão que o problema deva estar no servidor o ISSNET.

  • 2 anos depois...
Postado

Para registro (se alguém consultar este tópico): 
O ISSNET retorna Código 99999 - Nota não processada, ou erro desconhecido, quando o RPS está na fila para processamento. Já me ocorreu a situação:
1) Transmito a nota, gravo o recibo/protocolo, porém o servidor está lento (vai pra fila para processamento);
2) Na consulta, retorna 99999;
3) Transmito novamente, gravo o recibo/protocolo, e o servidor continua enviando pra fila pra processamento; Pronto, já está reproduzida a situação.
4) Se o servidor processar as transmissões, quando é consultado o Recibo/Protocolo (2o envio), vai dar RPS já informado .

A solução é efetuar a consulta por RPS e processar a atualização do sistema.
Isto só ocorre com Cuiabá. Transmito também para Curitiba, e não ocorre esta situação (retorna RPS ainda não processada).

Espero ter ajudado

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