Boa tarde, fiz uma correção na unit ISSDSF.Provider, tratando a procedure TACBrNFSeProviderISSDSF.ProcessarMensagemErros, onde ele dava erro ao consultar status do lote e havia erro no lote. A cidade em questão era São Luis.
Ele carregava a chave mas a mesma não existe neste xml de retorno.
ANodeAux := ANodeArray[I].Childrens.FindAnyNs('ChaveRPS');
Ao passar nesta linha, ANodeAux continuava = nil. na proxima linha ele capturava o valor da chave 'NumeroRPS', que não existe e causava a excessão.
Criei uma condição verificando se ANodeAux for <> de nil. ficou assim:
if (ANodeAux <> nil) then
RPS := 'RPS '+ObterConteudoTag(ANodeAux.Childrens.FindAnyNs('NumeroRPS'), tcStr)
else
RPS := ''; Após a correção passou a operar normalmente.
ISSDSF.Provider.pas
Bom dia. Eu usava o ACBrNFSe, estou migrando meu sistema para ACBrNFSeX, ficou muito bom.
Tenho sistema utilizando em algumas cidades distintas, uma delas é minha cidade mesmo, Campinas. Aqui usamos o provedor ISSDSF e no demo faltam algumas propriedades necessárias para o mesmo, mas até ai é detalhe, só que tive problema com a assinatura.
Peguei o manual do provedor no site da prefeitura verifiquei que a assinatura está diferente do padrão.
Fiz alteração na unit ISSDSF.PROVIDER, na linha 157...
sAssinatura := ACBrUtil.Strings.Poem_Zeros(NFSe.Prestador.IdentificacaoPrestador.InscricaoMunicipal, 11) + PadRight(NFSe.IdentificacaoRps.Serie, 5 , ' ') + ACBrUtil.Strings.Poem_Zeros(NFSe.IdentificacaoRps.Numero, 12) + FormatDateTime('yyyymmdd', NFse.DataEmissao) + PadRight(TipoTributacaoRPSToStr(NFSe.TipoTributacaoRPS),2,' ') + sSituacao + sISSRetido + ACBrUtil.Strings.Poem_Zeros(OnlyNumber(FormatFloat('#0.00', NFSe.Servico.Valores.ValorServicos)), 15 ) + ACBrUtil.Strings.Poem_Zeros(OnlyNumber(FormatFloat('#0.00', NFSe.Servico.Valores.ValorDeducoes)), 15 ) + ACBrUtil.Strings.Poem_Zeros(OnlyNumber(NFSe.Servico.CodigoCnae ), 10 ) + sTomador;
Seguem os documentos referente a alteração que mencionei acima, após alteração na unit parei de ter o erro do provedor no retorno sincrono. Erro gerado antes da alteração: Código: 1206 Mensagem: Assinatura do RPS incorreta. Codigo Hash gerado para o campo assinatura do RPS esta invalido. O codigo hash '53bba0c6b8f132ee2f5f8ad2ed6349ac43822522' gerado para o campo Assinatura do RPS nao esta valido. O campo Assinatura deveria estar com o conteudo '00000386138NF 00000000000120220903T NN000000000000100000000000000000062091000100021961997886' convertido no padrao SHA1 para o valor 'f53837310f705f34154e3a7d8d659e252954760d'
WebService.pdfISSDSF.Provider.pas
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.