Este exemplo de uso mostra o fluxo de utilização do Componente EFD-Reinf 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_REINF.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\ReinfClientX.ocx"). Depois de adicionada, você já poderá executar o projeto normalmente.
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.
Reinf.ConfigurarSoftwareHouse "12090234903", "GRk7PBfmzx5QaeJFHpMUI3GlyFaZIGDUQAkezoPb"
Reinf.CpfCnpjEmpregador = "29062609000177"
Reinf.VersaoManual = "1.3.02"
Reinf.DiretorioTemplates = "C:\Program Files\TecnoSpeed\Reinf\Arquivos\Templates\"
Reinf.DiretorioEsquemas = "C:\Program Files\TecnoSpeed\Reinf\Arquivos\Esquemas\"
Reinf.Ambiente = akPreProducaoReais
Reinf.NomeCertificado = cbbCertificados.Text
Gerar o XML
O primeiro passo para enviar um TX2 de um evento do EFD-Reinf é converter este TX2 em XML. Para fazer isso, utilizaremos o método GerarXMLporTX2.
mmRetorno.Text = Reinf.GerarXMLporTx2(mmRetorno.Text)
Assinar os eventos
Antes de enviarmos um XML do EFD-Reinf à SEFAZ, devemos assiná-lo digitalmente. Para isso, utilizamos o método AssinarEvento.
mmRetorno = Reinf.AssinarEvento(mmRetorno.Text)
Enviar os eventos
Para enviar o lote de eventos à SEFAZ, utilizaremos o método EnviarLoteEventos.
Dim Retorno As spdReinfRetEnviarLoteEventos
Set Retorno = Reinf.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.
ReinfClientX.IspdReinfRetEnviarLoteEventosLote;
Lote = Reinf.ConsultarLoteEventos(edtIDLote.Text);
mmXML.Text = "Lote:" + Environment.NewLine;
mmXML.Text += " Número do Protocolo: " + Lote.NumeroProtocolo + Environment.NewLine;
mmXML.Text += " Mensagem de Retorno: " + Lote.Mensagem + Environment.NewLine;
mmXML.Text += " Status do Lote: " + Lote.Status + Environment.NewLine;
mmXML.Text += Environment.NewLine;
for (var k = 0; k < Lote.CountOcorrencias(); k++)
{
mmXML.Text = "Lote:" + Environment.NewLine;
mmXML.Text += " Codigo: " + Lote.Ocorrencias[k].Codigo + Environment.NewLine;
mmXML.Text += " Tipo: " + Lote.Ocorrencias[k].Tipo + Environment.NewLine;
mmXML.Text += " Descrição: " + Lote.Ocorrencias[k].Descricao + Environment.NewLine + Environment.NewLine;
}
for (var i = 0; i < Lote.Count(); i++)
{
mmXML.Text = "Evento:" + Environment.NewLine;
mmXML.Text += " Id Evento: " + Lote.Eventos[i].IdEvento + Environment.NewLine;
mmXML.Text += " Número Recibo: " + Lote.Eventos[i].NumeroRecibo + Environment.NewLine;
mmXML.Text += " Código de Status: " + Lote.Eventos[i].cStat + Environment.NewLine;
mmXML.Text += " Mensagem: " + Lote.Eventos[i].Mensagem + Environment.NewLine;
mmXML.Text += " Status do Evento: " + Lote.Eventos[i].Status + Environment.NewLine;
mmXML.Text += Environment.NewLine;
for (var j = 0; j < Lote.Eventos[i].Count(); j++)
{
mmXML.Text += " Ocorrência: " + (j + 1).ToString() + Environment.NewLine;
mmXML.Text += " Código: " + Lote.Eventos[i].Ocorrencias[j].Codigo + Environment.NewLine;
mmXML.Text += " Descrição: " + Lote.Eventos[i].Ocorrencias[j].Descricao + Environment.NewLine;
}
* Na demonstração de uso a consulta faz o mapeamento completo de retorno dos eventos R-5001 e R-5011
Comentários
0 comentário
Por favor, entre para comentar.