Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 3748 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Olá amigos.

 

Estou com uma questão no cancelamento de NF-e. O único evento retornado é "128 - Lote de Evento Processado". Qualquer NF-e continua autorizada e o cancelamento não se realiza.

 

Fiz o procedimento configurando a versão de demonstração do ACBr (por evento e por XML) e o mesmo problema apareceu.

 

Detalhe: isso só acontece com um único cliente. Já refiz a instalação do aplicativo e dos schemas.

 

Uma chave e protocolo que estou usando para os testes:

35140849702822000103550010000026751451102140
135140518509194

 

Anexei o XML.

 

Meu código é o seguinte:

function TdtmFiscal.NFeCancela(PJustificativa: string;
  PProtocolo: string): Boolean;
var
  LCaminhoPastaXML, LCodigoUnidadeNeg, LPastaData, LArquivoXML, LPathXML: string;
  LLote: Integer;
  frmNFeCancelaJustificativa: TfrmNFeCancelaJustificativa;
begin
  LCaminhoPastaXML := dmMain.LeConfiguracao('nfe.xml.pasta');
  LCodigoUnidadeNeg := dtmAdmin.qryUnidadesNeg.Lookup('ID_AD_UNIDADESNEG',
    qryNotasID_AD_UNIDADESNEG.Value, 'CODIGO');
  LPastaData :=  IntToStr(YearOf(qryNotasDATA_EMISSAO.Value)) +
    FormatFloat('00', MonthOf(qryNotasDATA_EMISSAO.Value));
  LArquivoXML := qryNotasCHAVE_NFE.Value + '-procNFe.xml';

  LPathXML := LCaminhoPastaXML
    + '\'
    + LCodigoUnidadeNeg
    + '\'
    + LPastaData
    + '\'
    + LArquivoXML;

  if (FileExists(LPathXML)) then
  begin
    NFeCarregaXML(LPathXML, 1);
    LLote := qryNotasID_FS_NOTAS.Value;

    ACBrNFe1.EventoNFe.idLote := LLote;
    with ACBrNFe1.EventoNFe.Evento.Add do
    begin
      infEvento.dhEvento := dmMain.Agora;
      infEvento.tpEvento := teCancelamento;
      infEvento.detEvento.xJust := PJustificativa;
    end;
    ACBrNFe1.EnviarEventoNFe(LLote);

    // 128 - Lote de Evento Processado
    if (ACBrNFe1.WebServices.EnvEvento.cStat = 128) then
    begin
      PProtocolo :=
        ACBrNFe1.WebServices.EnvEvento.EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;

      frmMensagem.MostraMensagem(msgInformacao,
        IntToStr(ACBrNFe1.WebServices.EnvEvento.cStat)
        + ' - '
        + ACBrNFe1.WebServices.EnvEvento.xMotivo);

      Result := True;
    end
    else
    begin
      frmMensagem.MostraMensagem(msgErro, 'Erro no cancelamento da NF-e.'
        + crlf
        + IntToStr(ACBrNFe1.WebServices.EnvEvento.cStat)
        + ' - '
        + ACBrNFe1.WebServices.EnvEvento.xMotivo);

      Result := False;
    end
  end
  else
  begin
    frmMensagem.MostraMensagem(msgErro,
      'Não foi possível encontrar o xml.'
      + crlf
      + LPathXML);

    Result := False;
  end;
end;

Se alguém tiver alguma idéia do que pode ser, agradeço o retorno.

 

35140849702822000103550010000026751451102140-procNFe.xml

  • Solution
Postado

André, sua pergunta me ajudou muito.

Observei o conteúdo do arquivo e descobri que o horário do servidor desse cliente estava adiantado.

A correção foi feita e a nfe cancelada com sucesso.

Por favor, feche esse post.

Grato pela atenção.

  • Curtir 1
×
×
  • 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.