Pesquisar na Comunidade
Showing results for tags 'prosp; são paulo'.
Encontrado 1 registro
-
Erro ao processar o retorno após reenviar uma nota para a prefeitura de São Paulo
um tópico no fórum postou roger.perezin ACBrNFSe
Explicando a situação: Enviamos uma nota para a prefeitura de São Paulo que foi devidamente aprovada. No entanto, por algum problema de comunicação o retorno da operação não foi recebido, e portanto a nota ficou como se não tivesse sido enviada no nosso sistema. Ao tentar reenviar a nota ocorre a exceção: "Argument out of range". Este é o arquivo de retorno neste caso: <RetornoEnvioLoteRPS xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://www.prefeitura.sp.gov.br/nfe"> <Cabecalho Versao="1" xmlns=""> <Sucesso>true</Sucesso> <InformacoesLote> <NumeroLote>517474301</NumeroLote> <InscricaoPrestador>12345678</InscricaoPrestador> <CPFCNPJRemetente> <CNPJ>012345678901234</CNPJ> </CPFCNPJRemetente> <DataEnvioLote>2019-07-23T14:48:02</DataEnvioLote> <QtdNotasProcessadas>1</QtdNotasProcessadas> <TempoProcessamento>0</TempoProcessamento> <ValorTotalServicos>1572</ValorTotalServicos> </InformacoesLote> </Cabecalho> <Alerta xmlns=""> <Codigo>224</Codigo> <Descricao>RPS ja convertido na NFS-e 00015999. RPS nao sera processado.</Descricao> <ChaveRPS> <InscricaoPrestador>32171544</InscricaoPrestador> <SerieRPS>001</SerieRPS> <NumeroRPS>67550</NumeroRPS> </ChaveRPS> </Alerta> </RetornoEnvioLoteRPS> Depois de investigarmos, descobrimos o seguinte: O arquivo de retorno neste caso não traz as tags <ChaveNFeRPS> e <ChaveRPS> que deveriam trazer os dados da(s) notas(s) aprovada(s) e consequentemente o componente não pode preencher o campo FRetEnvLote.InfRec.ListaChaveNFeRPS. Note que apesar disso, a tag <QtdNotasProcessadas> retorna 1. Na sequência, o componente tenta recuperar o número da nota, o seu código de verificação e o número do lote através do seguinte código [unit ACBrNFSeWebServices, linha 2910 - revisão 17357] : if (FProvedor in [proCTA]) or ((FProvedor in [ProNotaBlu, proSP]) and (RetEnvLote.InfRec.InformacoesLote.QtdNotasProcessadas > 0)) then begin FNotasFiscais.Items[i].NFSe.Numero := RetEnvLote.InfRec.ListaChaveNFeRPS[I].ChaveNFeRPS.Numero; FNotasFiscais.Items[i].NFSe.CodigoVerificacao := RetEnvLote.InfRec.ListaChaveNFeRPS[I].ChaveNFeRPS.CodigoVerificacao; FNotasFiscais.Items[i].NFSe.NumeroLote := RetEnvLote.InfRec.NumeroLote; end; end; Como a quantidade de notas processadas é maio que zero, ele tenta acessar RetEnvLote.InfRec.ListaChaveNFeRPS - que não foi preenchida como vimos anteriormente. Para evitar o problema, substituímos a linha if (FProvedor in [proCTA]) or ((FProvedor in [ProNotaBlu, proSP]) and (RetEnvLote.InfRec.InformacoesLote.QtdNotasProcessadas > 0)) then por if (FProvedor in [proCTA]) or ((FProvedor in [ProNotaBlu, proSP]) and (RetEnvLote.InfRec.ListaChaveNFeRPS.Count >= i)) then Saudaçoes!