ReconsultarLoteEventos(aIdLoteEventos)
Para reconsultar um evento do EFD-Reinf que enviamos, utilizaremos o método ReconsultarLoteEventos e informaremos o número de protocolo de um lote de eventos válido.
Esse método está disponível apenas a partir da versão manual 1.5.01, e tem o objetivo de reconsultar o evento na SEFAZ e na sequência atualizar o evento com o retorno obtido.
Atenção!
Para versão 1.5.01: Método utilizado exclusivamente para o evento R - 2099.
Para versão 2.1.02: Método utilizado para todos os eventos (Assíncronos).
Método
ReconsultarLoteEventos(const aIdLoteEventos: WideString): IspdReinfRetConsultarLote;
Parâmetros
Argumento | Tipo | Detalhes |
aIdLoteEventos | String | Número de protocolo que é retornado no envio dos eventos |
Retorno
Este método retornará um objeto do tipo IspdReinfRetConsultarLote com quatro níveis de retorno:
IspdReinfRetConsultarLote
Os campos a seguir são referentes ao Lote, onde é indicado o Status do lote na receita e suas principais informações. É dele que retiramos as informações para os demais níveis. Ele é demonstrado com a interface RetConsulta em nossos exemplos.
Campo | Função | Tipo | Exemplo |
Id | Propriedade que retorna o Identificador de lote | String | 9f1100ff-e8d8-4ab3-80c5-063ca5fg7f9a |
NumeroProtocolo | Propriedade que retorna o protocolo de envio do evento | String | 1.2.201801.0000000000001110983 |
Mensagem | Propriedade que retorna a mensagem gerada pela Receita | String | Lote processado com sucesso. |
Status | Propriedade que retorna o status atual do Lote | String |
EMPROCESSAMENTO PROCESSADO ERRO |
XmlRetorno | Propriedade que retorna o XML de resposta da Receita | String | XML de retorno |
XmlEnviado | Propriedade que retorna o XML de envio do evento | String | XML enviado |
Eventos | Propriedade que retorna os eventos do lote | Propriedade que retorna as ocorrências do envio | _RetConsultaItem := _RetConsulta.Eventos[1]; |
Ocorrencias | Propriedade que retorna as ocorrências do envio | Array | _RetConsultaOcorrenciaEnvio := _RetConsulta.Ocorrencias[1]; |
IspdReinfRetConsultarLoteOcorrenciaEnvio
Dentro do campo ocorrências nós retiramos as informações referentes a erros ocorridos no lote. É possível verificar a descrição e em que local ocorreu o erro ou advertência. Ele é demonstrado com a interface RetConsultaOcorrenciaEnvio em nossos exemplos.
Campo | Função | Tipo | Exemplo |
Codigo | Propriedade que retorna o código da situação desse evento | String | 609 |
Descricao | Propriedade que retorna a descrição da ocorrência | String | Código inválido. |
Tipo | Propriedade que retorna o código do tipo de ocorrência | String |
1 - Erro 2 - Advertência |
IspdReinfRetConsultarLoteItem
Dentro do campo eventos nós retiramos as informações dos eventos enviados a receita. É possível verificar a situação dos eventos, se eles foram autorizados ou não e suas principais informações. Ele é demonstrado com a interface RetConsultaItem em nossos exemplos.
Campo | Função | Tipo | Exemplo |
IdEvento | Identificação do evento | String | ID1081871680000002018011010350000001 |
NumeroRecibo | Recibo de autorização do evento | String | 1.2.0000000000010884662 |
cStat | Código da situação desse evento | String | 201 |
Mensagem | Mensagem referente ao código do evento | String | Sucesso. |
Status | Status do evento na receita | String | AUTORIZADO |
Ocorrencias | Ocorrências dos eventos | Array | _RetConsultaOcorrencia := _RetConsultaItem.Ocorrencias[1]; |
S5001 | Informações das contribuições sociais por trabalhador, quando existir | Array | _RetConsultaItem.S5001 |
S5011 | Informações das contribuições sociais consolidadas por contribuinte, quando existir | Array | _RetConsultaItem.S5011 |
IspdReinfRetConsultarLoteOcorrencia
Dentro do campo ocorrência nos eventos nós retiramos as informações referentes a erros ocorridos nos eventos. É possível verificar a descrição e em que local ocorreu o erro ou advertência. Ele é demonstrado com a interface RetConsultaOcorrencia em nossos exemplos.
Campo | Função | Tipo | Exemplo |
Codigo | Propriedade que retorna o código da situação desse evento | String | 609 |
Descricao | Propriedade que retorna a descrição da ocorrência | String | Código inválido. |
Requisitos
Para consultar um evento, é necessário referenciar um número de protocolo válido.
Exemplos
Delphi
var
Lote: IspdReinfRetConsultarLote;
_i, _j, _k: Integer;
begin
Lote := Reinf.ReconsultarLoteEventos(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);
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);
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(' Descrição: ' + Lote.Ocorrencias[_k].Descricao);
end;
C#
ReinfClientX.IspdReinfRetConsultarLote Lote;
Lote = Reinf.ReconsultarLoteEventos(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;
}
Visual Basic 6
Dim Lote As spdReinfRetConsultarLote
Dim i, j, k As Integer
Set Lote = Reinf.ReconsultarLoteEventos(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
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
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 & " Descrição: " & Lote.Eventos(i).Ocorrencias(j).Envio.Descricao & vbNewLine & vbNewLine
Next
Comentários
0 comentário
Por favor, entre para comentar.