Pesquisar na Comunidade
Showing results for tags 'isssaopaulo.provider'.
Encontrado 1 registro
-
Prezados, Para viabilizar o envio de RPS/DPS no layout 2.0 da Prefeitura de São Paulo utilizando as fontes atualizadas do ACBRNFSex, foi necessário aplicar uma correção no método AssinaturaAdicional da classe ISSSaoPaulo.Provider. Encaminho em anexo o objeto atualizado com o ajuste realizado. Peço, por gentileza, que avaliem a possibilidade de incorporar essa correção ao repositório oficial. Conforme o manual da Prefeitura de São Paulo: "Observação: não é necessário informar os dados de intermediário na assinatura se não houver intermediário. ..." Correção realizada: procedure TACBrNFSeProviderISSSaoPaulo.AssinaturaAdicional(Nota: TNotaFiscal); var sSituacao, sISSRetido, sCPFCNPJTomador, sIndTomador, sTomador, sCPFCNPJInter, sIndInter, sISSRetidoInter, sInter, sAssinatura, sNIF: string; iTamanhoIM: Integer; begin with Nota do begin sSituacao := EnumeradoToStr(NFSe.SituacaoNfse, ['N', 'C'], [snNormal, snCancelado]); sISSRetido := EnumeradoToStr(NFSe.Servico.Valores.IssRetido, ['N', 'S'], [stNormal, stRetencao]); // Tomador do Serviço sCPFCNPJTomador := OnlyNumber(NFSe.Tomador.IdentificacaoTomador.CpfCnpj); if sCPFCNPJTomador = '' then sIndTomador := '3' else if Length(sCPFCNPJTomador) <= 11 then sIndTomador := '1' else if Length(sCPFCNPJTomador) <= 14 then sIndTomador := '2'; sTomador := sIndTomador + Poem_Zeros(sCPFCNPJTomador, 14); // Prestador Intermediario sCPFCNPJInter := OnlyNumber(NFSe.Intermediario.Identificacao.CpfCnpj); if sCPFCNPJInter = '' then sIndInter := '3' else if Length(sCPFCNPJInter) <= 11 then sIndInter := '1' else if Length(sCPFCNPJInter) <= 14 then sIndInter := '2'; sISSRetidoInter := EnumeradoToStr(NFSe.Intermediario.IssRetido, ['N', 'S'], [stNormal, stRetencao]); sNIF := trim(NFSe.Intermediario.Identificacao.Nif); if sIndInter = '3' then sNIF := NaoNIFToStr(NFSe.Intermediario.Identificacao.cNaoNIF); if FPVersaoDFe = '2' then begin if (sCPFCNPJInter <> '') then sInter := sIndInter + Poem_Zeros(sCPFCNPJInter, 14) + sISSRetidoInter + sNIF else sInter := ''; iTamanhoIM := 12; end else begin if sIndInter <> '3' then sInter := sIndInter + Poem_Zeros(sCPFCNPJInter, 14) + sISSRetidoInter else sInter := ''; iTamanhoIM := 8; end; sAssinatura := Poem_Zeros(NFSe.Prestador.IdentificacaoPrestador.InscricaoMunicipal, iTamanhoIM) + PadRight(NFSe.IdentificacaoRps.Serie, 5, ' ') + Poem_Zeros(NFSe.IdentificacaoRps.Numero, 12) + FormatDateTime('yyyymmdd', NFse.DataEmissao) + TipoTributacaoRPSToStr(NFSe.TipoTributacaoRPS) + sSituacao + sISSRetido + Poem_Zeros(OnlyNumber(FormatFloat('#0.00', NFSe.Servico.Valores.ValorServicos)), 15) + Poem_Zeros(OnlyNumber(FormatFloat('#0.00', NFSe.Servico.Valores.ValorDeducoes)), 15) + Poem_Zeros(OnlyNumber(NFSe.Servico.ItemListaServico), 5) + sTomador + sInter; NFSe.Assinatura := string(TACBrNFSeX(FAOwner).SSL.CalcHash(AnsiString(sAssinatura), dgstSHA1, outBase64, True)); end; end; ISSSaoPaulo.Provider.pas
