Este exemplo de uso mostra o fluxo de utilização do Componente eSocial em Delphi. Faça o download de nossos projetos no GitHub.
- Como utilizar o GitHub
- Link download do Projeto no Git: https://github.com/tecnospeed/Componente_eSocial.git
Instanciando o componente
Primeiramente é necessário adicionar o ESocialClientX_TLB ao Uses do seu projeto, em seguida é necessário criar uma variavel do tipo TspdESocialClientX como no exemplo a baixo.
eSocial: TspdESocialClientX;
Após é necessário criar o objeto na variavel:
eSocial := TspdESocialClientX.Create(nil);
Agora é possível utilizar os métodos e propriedades do componente.
Configurar o componente
As propriedades do componente devem ser configuradas antes de realizar a chamada de qualquer método. A propriedade ConfigurarSoftwareHouse espera receber o CNPJ ou CPF e o Token cadastrados na sua Conta TecnoSpeed.
eSocial.CpfCnpjEmpregador := '29062609000177';
eSocial.CpfCnpjTransmissor := '29062609000177';
eSocial.VersaoManual := '2.4.02';
eSocial.Ambiente := akPreProducaoReais;
eSocial.DiretorioEsquemas := 'C:\Program Files\TecnoSpeed\eSocial\Arquivos\Esquemas';
eSocial.DiretorioTemplates := 'C:\Program Files\TecnoSpeed\eSocial\Arquivos\Templates';
eSocial.ConfigurarSoftwareHouse('Seu CNPJ ou CPF', 'Seu Token');
eSocial.NomeCertificado := cbbCertificados.Text;
Gerar o XML
O primeiro passo para enviar um TX2 de um evento do eSocial é converter este TX2 em XML. Para fazer isso, utilizaremos o método GerarXMLporTX2.
mmRetorno.Text := eSocial.GerarXMLporTx2(mmRetorno.Text);
Assinar os eventos
Antes de enviarmos um XML do eSocial à SEFAZ, devemos assiná-lo digitalmente. Para isso, utilizamos o método AssinarEvento.
mmRetorno.Text := eSocial.AssinarEvento(mmRetorno.Text);
Enviar os eventos
Para enviar o lote de eventos à SEFAZ, utilizaremos o método EnviarLoteEventos.
var
Retorno: IspdRetEnviarLoteEventos;
begin
Retorno := eSocial.EnviarLoteEventos(mmRetorno.Text, 1);
mmRetorno.Lines.Add(' Retorno:');
mmRetorno.Lines.Add(' ID Lote: ' + Retorno.IdLote);
mmRetorno.Lines.Add(' Mensagem: ' + Retorno.Mensagem);
Consultar os eventos
Para consultar um evento do eSocial que enviamos, utilizaremos o método ConsultarLoteEventos e informaremos o número de protocolo de um evento válido.
var
Lote: IspdRetConsultarLote;
_i, _j, _k: Integer;
begin
Lote := eSocial.ConsultarLoteEventos(edtIDLote.Text);
mmRetorno.Lines.Clear;
mmRetorno.Lines.Add('Lote:');
mmRetorno.Lines.Add(' Número do Protocolo: ' + Lote.NumeroProtocolo);
mmRetorno.Lines.Add(' Mensagem de Retorno: ' + Lote.Mensagem);
mmRetorno.Lines.Add(' Status do Lote: ' + Lote.Status);
mmRetorno.Lines.Add(' Tempo estimado para conclusão do processamento: ' + Lote.TempoEstimadoConclusao + #13#10);
for _i := 0 to Lote.Count - 1 do
begin
mmRetorno.Lines.Add('Evento ' + IntToStr(_i+1) + ':');
mmRetorno.Lines.Add(' Id Evento: ' + Lote.Eventos[_i].IdEvento);
mmRetorno.Lines.Add(' Número Recibo: ' + Lote.Eventos[_i].NumeroRecibo);
mmRetorno.Lines.Add(' Código de Status: ' + Lote.Eventos[_i].cStat);
mmRetorno.Lines.Add(' Mensagem: ' + Lote.Eventos[_i].Mensagem);
mmRetorno.Lines.Add(' Status do Evento: ' + Lote.Eventos[_i].Status + #13#10);
for _j := 0 to Lote.Eventos[_i].Count -1 do
begin
mmRetorno.Lines.Add(' Ocorrencia ' + IntToStr(_j+1) + ':');
mmRetorno.Lines.Add(' Código: ' + Lote.Eventos[_i].Ocorrencias[_j].Codigo);
mmRetorno.Lines.Add(' Descrição: ' + Lote.Eventos[_i].Ocorrencias[_j].Descricao);
mmRetorno.Lines.Add(' Tipo: ' + Lote.Eventos[_i].Ocorrencias[_j].Tipo);
mmRetorno.Lines.Add(' Localização: ' + Lote.Eventos[_i].Ocorrencias[_j].Localizacao + #13#10);
end;
end;
for _k := 0 to Lote.CountOcorrencias - 1 do
begin
mmRetorno.Lines.Add('Lote:');
mmRetorno.Lines.Add(' Codigo: ' + Lote.Ocorrencias[_k].Codigo);
mmRetorno.Lines.Add(' Tipo: ' + Lote.Ocorrencias[_k].Tipo);
mmRetorno.Lines.Add(' Localização: ' + Lote.Ocorrencias[_k].Localizacao);
mmRetorno.Lines.Add(' Descrição: ' + Lote.Ocorrencias[_k].Descricao);
end;
mmRetorno.Lines.Add('XML: ' + #13#10 + ' ' + Lote.XmlRetorno);
* Na demonstração de uso a consulta faz o mapeamento completo de retorno dos eventos S-5001, S-5002, S-5011 e S-5012
E-Social Versão s-1.0
Atualmente, contamos com a versão do E-social Simplificado, também chamado como versão S-1.0. Com ele houve uma redução de mais de 30% dos campos de preenchimento do eSocial, trazendo mais agilidade e praticidade para a emissão.
Para o layout completo, Acesse o Sumário com o Dicionário de Dados.
Comentários
0 comentário
Por favor, entre para comentar.