Este exemplo de uso mostra o fluxo de utilização do Componente eSocial em VB6. 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
Para que o projeto funcione corretamente, é necessário adicionar a OCX às referencias do projeto (por padrão, a OCX está localizada em "C:\Windows\System32\ESocialClientX.ocx"). Depois de adicionada, você já poderá executar o projeto normalmente.
No eSocial Simplificado o novo objeto deve ser instanciado da seguinte forma:
Set eSocial = New ESocialSClientX.spdESocialSClientX
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.ConfigurarSoftwareHouse "12090234903", "GRk7PBfmzx5QaeJFHpMUI3GlyFaZIGDUQAkezoPb"
eSocial.CpfCnpjEmpregador = "29062609000177"
eSocial.CpfCnpjTransmissor = "29062609000177"
eSocial.VersaoManual = "2.4.02"
eSocial.DiretorioTemplates = "C:\Program Files\TecnoSpeed\eSocial\Arquivos\Templates\"
eSocial.DiretorioEsquemas = "C:\Program Files\TecnoSpeed\eSocial\Arquivos\Esquemas\"
eSocial.Ambiente = akPreProducaoReais
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 = eSocial.AssinarEvento(mmRetorno.Text)
Enviar os eventos
Para enviar o lote de eventos à SEFAZ, utilizaremos o método EnviarLoteEventos.
Dim Retorno As spdRetEnviarLoteEventos
Set Retorno = eSocial.EnviarLoteEventos(mmRetorno.Text, 1)
mmRetorno.Text = " Retorno:" & vbNewLine
mmRetorno.Text = mmRetorno.Text & " ID do lote: " & Retorno.IdLote & vbNewLine
mmRetorno.Text = mmRetorno.Text & " 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.
Dim Lote As spdRetConsultarLote
Dim i, j, k As Integer
Set Lote = eSocial.ConsultarLoteEventos(edtIDLote.Text)
mmXML.Text = "Lote:" & vbNewLine
mmXML.Text = mmXML.Text & " Número do Protocolo: " & Lote.NumeroProtocolo & vbNewLine
mmXML.Text = mmXML.Text & " Mensagem de Retorno: " & Lote.Mensagem & vbNewLine
mmXML.Text = mmXML.Text & " Status do Lote: " & Lote.Status & vbNewLine
mmXML.Text = mmXML.Text & " Tempo estimado para conclusão do processamento: " & Lote.TempoEstimadoConclusao & vbNewLine & vbNewLine
For i = 0 To Lote.Count - 1
mmXML.Text = mmXML.Text & "Evento: " & Lote.Eventos(i).IdEvento & vbNewLine
mmXML.Text = mmXML.Text & " Número Recibo: " & Lote.Eventos(i).NumeroRecibo & vbNewLine
mmXML.Text = mmXML.Text & " Código de Status: " & Lote.Eventos(i).cStat & vbNewLine
mmXML.Text = mmXML.Text & " Mensagem: " & Lote.Eventos(i).Mensagem & vbNewLine
mmXML.Text = mmXML.Text & " Status do Evento: " & Lote.Eventos(i).Status & vbNewLine & vbNewLine
For j = 0 To Lote.Eventos(i).Count - 1
mmXML.Text = mmXML.Text & " Código: " & Lote.Eventos(i).Ocorrencias(j).Codigo & vbNewLine
mmXML.Text = mmXML.Text & " Descrição: " & Lote.Eventos(i).Ocorrencias(j).Descricao & vbNewLine
mmXML.Text = mmXML.Text & " Localização: " & Lote.Eventos(i).Ocorrencias(j).Localizacao & vbNewLine
mmXML.Text = mmXML.Text & " Descrição: " & Lote.Eventos(i).Ocorrencias(j).Descricao & vbNewLine & vbNewLine
Next
Next
For k = 0 To Lote.CountOcorrencias - 1
mmXML.Text = "Lote:" & vbNewLine
mmXML.Text = mmXML.Text & " Codigo: " & Lote.Eventos(i).Ocorrencias(j).Envio.Codigo & vbNewLine
mmXML.Text = mmXML.Text & " Tipo: " & Lote.Eventos(i).Ocorrencias(j).Envio.Tipo & vbNewLine
mmXML.Text = mmXML.Text & " Localização: " & Lote.Eventos(i).Ocorrencias(j).Envio.Localizacao & vbNewLine
mmXML.Text = mmXML.Text & " Descrição: " & Lote.Eventos(i).Ocorrencias(j).Envio.Descricao & vbNewLine & vbNewLine
Next
mmXML.Text = mmXML.Text & "XML: " & vbNewLine & " " & 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
Comentários
0 comentário
Por favor, entre para comentar.