Atualizando:
1 - No ISSSaoPaulo.GravarXml.pas, mudei
if VersaoNFSe = ve200 then
begin
if NFSe.Servico.CodigoMunicipio <> '' then
LNFSeNode.AppendChild(AddNode(tcStr, '#1', 'cLocPrestacao', 7, 7, 1,
NFSe.Servico.CodigoMunicipio, ''))
else
LNFSeNode.AppendChild(AddNode(tcStr, '#1', 'cPaisPrestacao', 2, 2, 1,
CodIBGEPaisToSiglaISO2(NFSe.Servico.CodigoPais), ''));
end;
por
if VersaoNFSe = ve200 then
begin
if NFSe.Servico.CodigoMunicipio = '' then
NFSe.Servico.CodigoMunicipio := NFSe.Tomador.Endereco.CodigoMunicipio;
if NFSe.Servico.CodigoMunicipio <> '' then
LNFSeNode.AppendChild(AddNode(tcStr, '#1', 'cLocPrestacao', 7, 7, 1,
NFSe.Servico.CodigoMunicipio, ''))
else
LNFSeNode.AppendChild(AddNode(tcStr, '#1', 'cPaisPrestacao', 2, 2, 1,
CodIBGEPaisToSiglaISO2(NFSe.Servico.CodigoPais), ''));
end;
e no ISSSaoPaulo.LerXml.pas, mudei
if NFSe.Servico.CodigoMunicipio = '' then
NFSe.Servico.CodigoMunicipio := NFSe.Prestador.Endereco.CodigoMunicipio;
por
if NFSe.Servico.CodigoMunicipio = '' then
NFSe.Servico.CodigoMunicipio := NFSe.Tomador.Endereco.CodigoMunicipio;
Com isso o xml do RPS está sendo gerado e enviado corretamente. Mas não acho que é a solução final, posso estar preenchendo as propriedades do componente de maneira errada.
Mas queria finalizar este tópico.
Obrigado.