Este exemplo de uso mostra o fluxo de utilização do Componente Reinf em Fox Pro. 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", "GRk7PBfmzx5QaeJFHpMUI3GlyFatiGDUQAkezoPb"
Reinf.CpfCnpjEmpregador = "08187168"
Reinf.VersaoManual = "1.4.00"
Reinf.DiretorioTemplates = "C:\Program Files\TecnoSpeed\Reinf\Arquivos\Templates\"
Reinf.DiretorioEsquemas = "C:\Program Files\TecnoSpeed\Reinf\Arquivos\Esquemas\"
Reinf.Ambiente = 2
Reinf.NomeCertificado = ALLTRIM(thisform.cbcertificados.Value)
Gerar o XML
O primeiro passo para enviar um TX2 de um evento do Reinf é converter este TX2 em XML. Para fazer isso, utilizaremos o método GerarXMLporTX2.
thisform.mmoRetorno.Value = Reinf.GerarXMLporTx2(thisform.mmoRetorno.Value)
Assinar os eventos
Antes de enviarmos um XML do Reinf à SEFAZ, devemos assiná-lo digitalmente. Para isso, utilizamos o método AssinarEvento.
thisform.mmoRetorno.Value = Reinf.AssinarEvento(thisform.mmoRetorno.Value)
Enviar os eventos
Para enviar o lote de eventos à SEFAZ, utilizaremos o método EnviarLoteEventos.
PUBLIC RetEnvio As IspdReinfRetEnviarLoteEventos
RetEnvio = Reinf.EnviarLoteEventos(thisform.mmoRetorno.Value, VAL(thisform.cbGrupo.value))
thisform.mmoRetorno.Value = " Retorno:"
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " ID do lote: " + RetEnvio.IdLote
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Mensagem: " + RetEnvio.Mensagem
Consultar os eventos
Para consultar um evento do Reinf que enviamos, utilizaremos o método ConsultarLoteEventos e informaremos o número de protocolo de um evento válido.
PUBLIC _i as Integer
PUBLIC _j as Integer
PUBLIC _k as Integer
PUBLIC RetConsulta As IspdReinfRetConsultarLote
PUBLIC RetConsultaItem As IspdReinfRetConsultarLoteItem
PUBLIC RetConsultaOcorrencia As IspdReinfRetConsultarLoteOcorrencia
PUBLIC RetConsultaOcorrenciaEnvio As IspdReinfRetConsultarLoteOcorrenciaEnvio
RetConsulta = Reinf.ConsultarLoteEventos(ALLTRIM(thisform.edtIdLote.value))
thisform.mmoRetorno.Value = "### CONSULTA PROTOCOLO ###"
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + "Mensagem de Retorno: " + RetConsulta.Mensagem
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + "Status do Lote: " + RetConsulta.Status
FOR _i = 0 to RetConsulta.Count -1
RetConsultaItem = RetConsulta.Eventos[_i]
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Evento: " + STR(_i + 1)
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Id Evento: " + RetConsultaItem.IdEvento
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Número Recibo: " + RetConsultaItem.NumeroRecibo
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Código de Status: " + RetConsultaItem.cStat
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Mensagem: " + RetConsultaItem.Mensagem
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Status do Evento: " + RetConsultaItem.Status
FOR _j = 0 to RetConsultaItem.Count -1
RetConsultaOcorrencia = RetConsultaItem.Ocorrencias[_j]
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Ocorrencia: " + STR(_j + 1)
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Código: " + RetConsultaOcorrencia.Codigo
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Descrição: " + RetConsultaOcorrencia.Descricao
NEXT
NEXT
FOR _k = 0 to RetConsulta.CountOcorrencias -1
RetConsultaOcorrenciaEnvio = RetConsulta.Ocorrencias[_k]
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Codigo: " + RetConsultaOcorrenciaEnvio.Codigo
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Tipo: " + RetConsultaOcorrenciaEnvio.Tipo
thisform.mmoRetorno.Value = thisform.mmoRetorno.Value + chr(13)+chr(10) + " Descrição: " + RetConsultaOcorrenciaEnvio.Descricao
NEXT
* 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.