Ir para conteúdo
  • Cadastre-se

dev botao

Desacordo de CT-e - Rejeição: Órgão de recepção do evento inválido


Ver Solução Respondido por Ellosis Sistemas de Gestão,
  • Este tópico foi criado há 771 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Cliente está tentando fazer o desacordo do CT-e, onde a chave do CT-e iniciado com 43, está sendo informado no componente do ACBR a chave e enviando fixo para teste na propriedade cOrgao o código 43, e no XML está sendo gerado como 42, que é o estado do tomador do serviço. Ao enviar recebemos o seguinte retorno: Rejeição: Órgão de recepção do evento inválido

1-eve.xml

  • Consultores
Postado
1 hora atrás, claudio algayer disse:

Cliente está tentando fazer o desacordo do CT-e, onde a chave do CT-e iniciado com 43, está sendo informado no componente do ACBR a chave e enviando fixo para teste na propriedade cOrgao o código 43, e no XML está sendo gerado como 42, que é o estado do tomador do serviço. Ao enviar recebemos o seguinte retorno: Rejeição: Órgão de recepção do evento inválido

1-eve.xml 309 B · 1 download

Você está montando o evento?

codigo extraido do exemplo, onde você informa o COrgão 

// Devemos informar a UF do Emitente do CT-e
      InfEvento.cOrgao     := UFtoCUF(xUF);

procedure TfrmACBrCTe.btnPrestacaoDesacordoClick(Sender: TObject);
var
  xObs, xUF, xUFOld: String;
  iLote: Integer;
begin
  {
   O Evento de Prestação de Serviço em Desacordo deve ser enviado pelo Tomador
   do serviço que pode ser tanto o Remetente quanto o Destinatário da carga.
   Sendo assim na linha abaixo que faz referencia a edtEmitCNPJ entende-se que
   o CNPJ é do tomador (emitente do evento) e não o CNPJ do emitente do CT-e.
  }
  OpenDialog1.Title := 'Selecione o CTe para enviar o Evento de Prestação de Serviço em Desacordo';
  OpenDialog1.DefaultExt := '*-cte.xml';
  OpenDialog1.Filter := 'Arquivos CTe (*-cte.xml)|*-cte.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
  OpenDialog1.InitialDir := ACBrCTe1.Configuracoes.Arquivos.PathSalvar;

  if OpenDialog1.Execute then
  begin
    ACBrCTe1.Conhecimentos.Clear;
    ACBrCTe1.Conhecimentos.LoadFromFile(OpenDialog1.FileName);

    xObs := 'Observacao do Tomador (com no minimo 15 caracteres)';
    if not(InputQuery('Prestação de Serviço em Desacordo:', 'Observação do Tomador', xObs)) then
      exit;

    xUF := '';
    if not(InputQuery('Prestação de Serviço em Desacordo:', 'UF do Emitente do CT-e', xUF)) then
      exit;

    // Salva a UF configurada no componente
    xUFOld := ACBrCTe1.Configuracoes.WebServices.UF;
    // O evento tem que ser enviado para a UF do Emitente do CT-e
    ACBrCTe1.Configuracoes.WebServices.UF := xUF;

    ACBrCTe1.EventoCTe.Evento.Clear;

    with ACBrCTe1.EventoCTe.Evento.New do
    begin
      // Para o Evento: nSeqEvento sempre = 1
      infEvento.nSeqEvento := 1;
      // Devemos informar a UF do Emitente do CT-e
      InfEvento.cOrgao     := UFtoCUF(xUF);
      infEvento.chCTe      := Copy(ACBrCTe1.Conhecimentos.Items[0].CTe.infCTe.Id, 4, 44);
      infEvento.CNPJ       := edtEmitCNPJ.Text;
      infEvento.dhEvento   := now;
      infEvento.tpEvento   := tePrestDesacordo;

      infEvento.detEvento.xOBS  := xObs;
    end;

    iLote := 1; // Numero do Lote do Evento
    ACBrCTe1.EnviarEvento(iLote);

    // Retorna a configuração
    ACBrCTe1.Configuracoes.WebServices.UF := xUFOld;

    MemoResp.Lines.Text   := ACBrCTe1.WebServices.EnvEvento.RetWS;
    memoRespWS.Lines.Text := ACBrCTe1.WebServices.EnvEvento.RetornoWS;

    LoadXML(ACBrCTe1.WebServices.EnvEvento.RetWS, WBResposta);

    ShowMessage(IntToStr(ACBrCTe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat));
    ShowMessage(ACBrCTe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt);
  end;
end;

 

Consultor SAC ACBr

Victor H Gonzales - Pandaaa
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil

Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

"Aprender é a única coisa que a mente nunca se cansa, nunca tem medo e nunca se arrepende” - Leonardo da Vinci

"Ter sucesso é falhar repetidamente, mas sem perder o entusiasmo"

  • Membros Pro
  • Solution
Postado
38 minutos atrás, Victor H. Gonzales - Panda disse:

Você está montando o evento?

codigo extraido do exemplo, onde você informa o COrgão 

// Devemos informar a UF do Emitente do CT-e
      InfEvento.cOrgao     := UFtoCUF(xUF);

procedure TfrmACBrCTe.btnPrestacaoDesacordoClick(Sender: TObject);
var
  xObs, xUF, xUFOld: String;
  iLote: Integer;
begin
  {
   O Evento de Prestação de Serviço em Desacordo deve ser enviado pelo Tomador
   do serviço que pode ser tanto o Remetente quanto o Destinatário da carga.
   Sendo assim na linha abaixo que faz referencia a edtEmitCNPJ entende-se que
   o CNPJ é do tomador (emitente do evento) e não o CNPJ do emitente do CT-e.
  }
  OpenDialog1.Title := 'Selecione o CTe para enviar o Evento de Prestação de Serviço em Desacordo';
  OpenDialog1.DefaultExt := '*-cte.xml';
  OpenDialog1.Filter := 'Arquivos CTe (*-cte.xml)|*-cte.xml|Arquivos XML (*.xml)|*.xml|Todos os Arquivos (*.*)|*.*';
  OpenDialog1.InitialDir := ACBrCTe1.Configuracoes.Arquivos.PathSalvar;

  if OpenDialog1.Execute then
  begin
    ACBrCTe1.Conhecimentos.Clear;
    ACBrCTe1.Conhecimentos.LoadFromFile(OpenDialog1.FileName);

    xObs := 'Observacao do Tomador (com no minimo 15 caracteres)';
    if not(InputQuery('Prestação de Serviço em Desacordo:', 'Observação do Tomador', xObs)) then
      exit;

    xUF := '';
    if not(InputQuery('Prestação de Serviço em Desacordo:', 'UF do Emitente do CT-e', xUF)) then
      exit;

    // Salva a UF configurada no componente
    xUFOld := ACBrCTe1.Configuracoes.WebServices.UF;
    // O evento tem que ser enviado para a UF do Emitente do CT-e
    ACBrCTe1.Configuracoes.WebServices.UF := xUF;

    ACBrCTe1.EventoCTe.Evento.Clear;

    with ACBrCTe1.EventoCTe.Evento.New do
    begin
      // Para o Evento: nSeqEvento sempre = 1
      infEvento.nSeqEvento := 1;
      // Devemos informar a UF do Emitente do CT-e
      InfEvento.cOrgao     := UFtoCUF(xUF);
      infEvento.chCTe      := Copy(ACBrCTe1.Conhecimentos.Items[0].CTe.infCTe.Id, 4, 44);
      infEvento.CNPJ       := edtEmitCNPJ.Text;
      infEvento.dhEvento   := now;
      infEvento.tpEvento   := tePrestDesacordo;

      infEvento.detEvento.xOBS  := xObs;
    end;

    iLote := 1; // Numero do Lote do Evento
    ACBrCTe1.EnviarEvento(iLote);

    // Retorna a configuração
    ACBrCTe1.Configuracoes.WebServices.UF := xUFOld;

    MemoResp.Lines.Text   := ACBrCTe1.WebServices.EnvEvento.RetWS;
    memoRespWS.Lines.Text := ACBrCTe1.WebServices.EnvEvento.RetornoWS;

    LoadXML(ACBrCTe1.WebServices.EnvEvento.RetWS, WBResposta);

    ShowMessage(IntToStr(ACBrCTe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.cStat));
    ShowMessage(ACBrCTe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt);
  end;
end;

 

Situação identificada, em ACBRCTE.Configuracoes.Webservices.UF ajustado para receber a UF do Emissor do CTE e mantido no InfEvento.cOrgao o código da UF do emissor.

 

 

  • Curtir 1
  • Administradores
Postado

Obrigado por reportar.

Fechando. Para novas dúvidas, criar um novo tópico.

Consultora SAC ACBr

Juliana Tamizou

Gerente de Projetos ACBr / Diretora de Marketing AFRAC
Ajude o Projeto ACBr crescer - Seja Pro

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.  Discord

Projeto ACBr - A maior comunidade Open Source de Automação Comercial do Brasil


Participe de nosso canal no Discord e fique ainda mais próximo da Comunidade !!

  • Este tópico foi criado há 771 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.