Olá pessoal,
A principio a resposta para essa pergunta é não, uma vez que a grande maioria dos provedores seguem o layout da ABRASF e esse layout não contempla dois ou mais serviços, portanto devemos informar somente um.
Mas temos os provedores que tem o seu próprio layout e outros que modificaram o layout da ABRASF para permitir um ou mais serviços.
Abaixo a lista de provedores com layout próprio que permite:
Agili, AssessorPublico, EL, Equiplano, FGMaiss, Governa, Infisc, IPM, ISSDSF, RLZ, Simple, SmarAPD e WebFisco
Abaixo a lista de provedores que seguem o layout da ABRASF mas fizeram a alteração no mesmo:
Elotech, fintelISS e SimplISS
Como alimentar os itens de serviços para os provedores acima:
with Servico.ItemServico.New do
begin
Descricao := 'Desc. do Serv. 1';
ItemListaServico := '09.01';
Unidade := 'UN';
Quantidade := 10;
ValorUnitario := 0.01;
ValorTotal := Quantidade * ValorUnitario;
BaseCalculo := ValorTotal - ValorDeducoes - DescontoIncondicionado;
Aliquota := 0.10;
ValorISS := BaseCalculo * Aliquota / 100;
(...)
end;
Para saber quais são todos os campos que fazem parte da classe ItemServico, por favor vide o programa exemplo do novo componente ACBrNFSeX.
O que acontece se a lista de serviços for alimentada para o provedores que suportam apenas 1 serviço?
Simplesmente as informações contidas na classe ItemServico serão ignoradas e corre-se o risco do Rps não ser validado ou até rejeitado pelo webservice por conta da ausência de alguma informação.
Temos a intensão de fazer rotina que mesmo os provedores que não suportam uma lista de serviços, possamos alimentar essa lista e o componente alimentar os campos corretos, mas para que possamos liberar essa funcionalidade que vai simplificar a alimentação do componente vai exigir diversos testes até termos a certeza que funciona e que não vai gerar nenhum transtorno para os usuários do componente.