Bom dia.
O provedor SimplISS permite informar vários itens de serviço no RPS. E ao implementar a NFSe de Piracicaba, notei que o método de leitura de RPS não estava contemplando essa característica.
Portanto alterei o fonte pnfsNFSeR.pas nas linhas 123 e 206 a 219.
Adicionei a varíavel "i" e o seguinte trecho para carregar os serviços do RPS:
item, i: Integer;
//Provedor SimplISS permite varios itens servico
if FProvedor = proSimplISS then
begin
i := 1;
while (Leitor.rExtrai(4, 'ItensServico', 'ItensServico', i) <> '') do
begin
with NFSe.Servico.ItemServico.Add do
begin
Descricao := Leitor.rCampo(tcStr, 'Descricao');
Quantidade := Leitor.rCampo(tcInt, 'Quantidade');
ValorUnitario := Leitor.rCampo(tcDe2, 'ValorUnitario');
end;
i := i + 1;
end;
end;
Segue o fonte em anexo.
Roger Rodrigues
pnfsNFSeR.pas