Bom dia, trabalhando com o componente ACBReSocial notei uma possivel divergencia do componente com o manual em dois casos.
Primeiro caso:
No evento S-2200 existe o campo dscSalVar. No leiaute diz que ele é obrigatório quando o campo undSalFixo for 6 ou 7. Se o undSalFixo tiver outro valor, o preenchimento do dscSalVar é opcional, mas o ACBr só está gravando esse campo no XML quando o undSalFixo está com o valor 6 ou 7.
De acordo com minha analise se mudarmos a procedure TeSocialEvento.GerarRemuneracao(pRemuneracao: TRemuneracao); do arquivo \Fontes\ACBrDFe\ACBreSocial\PCNeSocial\pcesGerador.pas, deixando como eu fiz abaixo, irá corrigir essa questão
procedure TeSocialEvento.GerarRemuneracao(pRemuneracao: TRemuneracao);
begin
Gerador.wGrupo('remuneracao');
Gerador.wCampo(tcDe2, '', 'vrSalFx', 1, 14, 1, pRemuneracao.VrSalFx);
Gerador.wCampo(tcStr, '', 'undSalFixo', 1, 1, 1, eSUndSalFixoToStr(pRemuneracao.UndSalFixo));
if (trim(pRemuneracao.DscSalVar) <> '') then
Gerador.wCampo(tcStr, '', 'dscSalVar', 0, 255, 0, pRemuneracao.DscSalVar);
Gerador.wGrupo('/remuneracao');
end;
Segundo caso:
Se refere a alteração no leiaute 1.3 abaixo do grupo infoIRComplem do evento S-5002
Esse grupo, agora pode ter até 13 ocorrências, conforme o leiaute
No arquivo \Fontes\ACBrDFe\ACBreSocial\PCNeSocial\pcesS5002.pas acredito que o certo seria trocar o tipo da propriedade FinfoIRComplem para TinfoIRComplemCollection, se for seguir o padrão dos outros grupos
TideTrabalhador4 = class(TIdeTrabalhador3)
private
FcpfBenef: string;
FdmDev: TdmDevCollection;
FtotInfoIR: TtotInfoIR;
FinfoIRComplem: TinfoIRComplem;
function getDmDev: TDmDevCollection;
function getInfoIRComplem: TInfoIRComplem;
function getTotInfoIR: TtotInfoIR;