O eSocial possui vários eventos de retorno (S-5001, S-5002, S-5003, S-5011, S-5012, S-5013), esses eventos não são enviados ao eSocial e sim retornados por eles na consulta de alguns eventos.
Cada um desses eventos possui a sua particularidade, são retornados por eventos diferentes e possuem informações diferentes, porém, temos o mesmo padrão de consulta para todos eles. Abaixo, temos uma tabela relacionando os eventos enviados e o retorno.
> Veja os eventos de retorno na prática (vídeo)
Evento | Retornado por: |
---|---|
S-5001 | S-1200 ou S-2299 ou S-2399 |
S-5002 | S-1210 |
S-5003 | S-1200 ou S-2299 ou S-2399 |
S-5011 | S-1299 ou S-1295 |
S-5012 | S-1299 ou S-1295 |
S-5013 | S-1299 ou S-1295 |
O Componente da TecnoSpeed trata esse retorno e traz uma variável tipada, dessa forma a verificação das informação fica bem mais rápida e fácil.
Cada um desses eventos terá um retorno tipado com diferentes propriedades. Temos um exemplo de parceamento de cada evento em nossas demonstrações.
Abaixo teremos um exemplo do parceamento do evento S-5002 em Delphi.
if not RetConsultaItem.S5002.IsEmpty then begin mmoRetorno.Lines.Add(' ### S5002 ###'); mmoRetorno.Lines.Add(' Id: ' + RetConsultaItem.S5002.Id); // IdeEvento mmoRetorno.Lines.Add(' nrRecArqBase: ' + RetConsultaItem.S5002.IdeEvento.NrRecArqBase); mmoRetorno.Lines.Add(' perApur: ' + RetConsultaItem.S5002.IdeEvento.perApur); // IdeEmpregador mmoRetorno.Lines.Add(' tpInsc: ' + RetConsultaItem.S5002.IdeEmpregador.tpInsc); mmoRetorno.Lines.Add(' nrInsc: ' + RetConsultaItem.S5002.IdeEmpregador.nrInsc); // IdeTrabalhador mmoRetorno.Lines.Add(' cpfTrab: ' + RetConsultaItem.S5002.IdeTrabalhador.cpfTrab); // InfoDep mmoRetorno.Lines.Add(' vrDedDep: ' + RetConsultaItem.S5002.InfoDep.vrDedDep); // InfoIrrf for _a := 0 to RetConsultaItem.S5002.CountInfoIrrf - 1 do begin mmoRetorno.Lines.Add(' codCateg: ' + RetConsultaItem.S5002.InfoIrrf[_a].codCateg); mmoRetorno.Lines.Add(' indResBr: ' + RetConsultaItem.S5002.InfoIrrf[_a].indResBr); // BasesIrrf for _b := 0 to RetConsultaItem.S5002.InfoIrrf[_a].CountBasesIrrf - 1 do begin mmoRetorno.Lines.Add(' tpValor: ' + RetConsultaItem.S5002.InfoIrrf[_a].BasesIrrf[_b].tpValor); mmoRetorno.Lines.Add(' Valor: ' + RetConsultaItem.S5002.InfoIrrf[_a].BasesIrrf[_b].valor); end; // Irrf for _b := 0 to RetConsultaItem.S5002.InfoIrrf[_a].CountIrrf - 1 do begin mmoRetorno.Lines.Add(' tpCR: ' + RetConsultaItem.S5002.InfoIrrf[_a].Irrf[_b].tpCR); mmoRetorno.Lines.Add(' vrIrrfDesc: ' +RetConsultaItem.S5002.InfoIrrf[_a].Irrf[_b].vrIrrfDesc); end; // IdePais mmoRetorno.Lines.Add(' codPais: ' + RetConsultaItem.S5002.InfoIrrf[_a].IdePgtoExt.IdePais.codPais); mmoRetorno.Lines.Add(' indNIF: ' + RetConsultaItem.S5002.InfoIrrf[_a].IdePgtoExt.IdePais.indNIF); mmoRetorno.Lines.Add(' nifBenef: ' + RetConsultaItem.S5002.InfoIrrf[_a].IdePgtoExt.IdePais.nifBenef); // EndExt mmoRetorno.Lines.Add(' dscLograd: ' + RetConsultaItem.S5002.InfoIrrf[_a].IdePgtoExt.EndExt.dscLograd); mmoRetorno.Lines.Add(' nrLograd: ' + RetConsultaItem.S5002.InfoIrrf[_a].IdePgtoExt.EndExt.nrLograd); mmoRetorno.Lines.Add(' complem: ' + RetConsultaItem.S5002.InfoIrrf[_a].IdePgtoExt.EndExt.complem); mmoRetorno.Lines.Add(' bairro: ' + RetConsultaItem.S5002.InfoIrrf[_a].IdePgtoExt.EndExt.bairro); mmoRetorno.Lines.Add(' nmCid: ' + RetConsultaItem.S5002.InfoIrrf[_a].IdePgtoExt.EndExt.nmCid); mmoRetorno.Lines.Add(' codPostal: ' + RetConsultaItem.S5002.InfoIrrf[_a].IdePgtoExt.EndExt.codPostal); end; end;
Como é possível verificar no exemplo, utilizamos a propriedade isEmpty para verificar se a variável está preenchida ou não. Utilizamos também laços de repetição para pegar os valores que podem possuir mais de uma ocorrência.
Algumas linguagens, como o FoxPro, não conseguem lidar com muitos níveis de objetos, dessa forma, é necessário utilizar o nosso retorno no formato Json. É possível verificar o exemplos desse parseamento via json em nossa demonstração em FoxPro.
Caso deseje ver exemplos dos demais eventos, basta realizar o download das Demonstrações.
Veja na prática
Comentários
0 comentário
Por favor, entre para comentar.