Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Saudações

Estou cometendo algum erro muito idiota que não consigo ver.

Estou tentando cancelar uma Nfce emitida e estou tendo um retorno que não encontro aqui no site, (apesar de achar alguns bem parecidos). Fiz a nota em tempo de homologação e tento cancelar ainda entro do prazo de 2 horas.

Estou usando o código abaixo:

 
 if qvndvndEmitiuNfce.AsString = 'Sim' then
    begin
 
      ACBrNFe1.NotasFiscais.Clear;
      ACBrNFe1.NotasFiscais.LoadFromFile(qvndvndnomenfce.AsString);
      ACBrNFeDANFEFR1.FastFile := 'C:\Posirelo\relat\nfcesimples - modelo 2.fr3';
      ACBrNFeDANFEFR1.MostrarPreview := true;
      ACBrNFe1.Configuracoes.Geral.IdToken := cfgcfgidtoken.AsString;
      ACBrNFe1.Configuracoes.Geral.Token := cfgcfgtoken.AsString;
 
      // numero do lote de envio (somente um exemplo, pode-se utilizar seu proprio controle)
      NumeroLote := 0;
      Protocolo := qvndvndnprot.AsString;
 
      // carregar o xml da nota fiscal eletronica, pode ser omitido
      // showmessage(copy(qvndvndnomenfce.AsString, 28, 52));
      { if not ACBrNFe1.NotasFiscais.LoadFromString((copy(qvndvndnomenfce.AsString, 28, 52))) then
        raise Exception.Create('Não foi possível carregar o XML da Nota Fiscal Eletrônica correspondente!'); }
 
      // Criar o cancelamento
      ACBrNFe1.EventoNFe.Evento.Clear;
      ACBrNFe1.EventoNFe.idLote := NumeroLote;
 
      with ACBrNFe1.EventoNFe.Evento.Add do
      begin
        infEvento.chNFe := copy(qvndvndnomenfce.AsString, 28, 152);
        infEvento.CNPJ := cfgcfgdoc1.AsString;
        infEvento.dhEvento := now;
        infEvento.tpEvento := teCancelamento;
        infEvento.detEvento.nProt := Protocolo;
        infEvento.detEvento.xJust := motivo;
        infEvento.detEvento.cOrgaoAutor := 51; // Mato Grosso
 
        ACBrNFe1.EnviarEventoNFe(1);
 
      end;
 
      // Enviar o evento de cancelamento
      if ACBrNFe1.EnviarEventoNFe(NumeroLote) then
      begin
        with ACBrNFe1.WebServices.EnvEvento do
        begin
          if EventoRetorno.retEvento.Items[0].RetInfEvento.cStat <> 135 then
          begin
            raise Exception.CreateFmt('Ocorreu o seguinte erro ao cancelar a nota fiscal eletrônica:' + sLineBreak +
                'Código:%d' + sLineBreak + 'Motivo: %s', [EventoRetorno.retEvento.Items[0].RetInfEvento.cStat,
              EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo]);
          end;
 
          // retornos
          qvndvndDataHoraEvento.AsFloat := EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento;
          qvndvndNumeroProtocolo.AsString := EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;
          qvndvndXMLCancelamento.AsString := EventoRetorno.retEvento.Items[0].RetInfEvento.XML;
          qvndvndCodigoStatus.AsInteger := EventoRetorno.retEvento.Items[0].RetInfEvento.cStat;
          qvndvndMotivoStatus.AsString := EventoRetorno.retEvento.Items[0].RetInfEvento.xMotivo;
        end;
      end
      else
      begin
        with ACBrNFe1.WebServices.EnvEvento do
        begin
          raise Exception.Create('Ocorreram erros ao tentar efetuar o cancelamento:' + sLineBreak + 'Lote: ' + inttostr
              (EventoRetorno.idLote) + sLineBreak + 'Ambiente: ' + TpAmbToStr(EventoRetorno.tpAmb)
              + sLineBreak + 'Orgao: ' + inttostr(EventoRetorno.cOrgao)
              + sLineBreak + sLineBreak + 'Status: ' + inttostr(EventoRetorno.cStat)
              + sLineBreak + 'Motivo: ' + EventoRetorno.xMotivo);
        end;
      end;
    end;
 
O erro que retorna é : ' Falha na validação dos dados de envio de evento '51140811124759000100650010000670011000670018-nfe.xml' violates pattern constraint of '[0-9] {44}. The element '{www.portalfiuscal.inf.br/nfe/} chnfe ' whith value 51140811124759000100650010000670011000670018.
 
Até onde entendi, estou enviando a chave errada, mas não consigo descobrir o porque.
Ás vezes também recebo o erro de Orgão não identificado.
Sou de MT onde o Orgão seria 51.
Qualquer idéia ajuda.
 
Grato galera.
 
Claudiomir
Link para o comentário
Compartilhar em outros sites

Galera... acho que achei. Testes indicam isso.

 

mudei isso. 

  with ACBrNFe1.EventoNFe.Evento.Add do
      begin
        infEvento.chNFe := copy(qvndvndnomenfce.AsString, 28, 44);
        infEvento.CNPJ := cfgcfgdoc1.AsString;
        infEvento.dhEvento := now;
 
erro no envio da chave.
 
Abraços galera
 
Tópico (aparentemente) resolvido.
Link para o comentário
Compartilhar em outros sites

  • 2 semanas depois ...

Desculpe reabrir o tópico mas achei melhor do que começar um novo.

Sobre o cancelamento da nfce tenho o seguinte código:

 
 
            // retornos
            qvnd.Edit;
            qvndvndDataHoraEvento.AsFloat := EventoRetorno.retEvento.Items[0].RetInfEvento.dhRegEvento;
            qvndvndnprotcancela.AsString := EventoRetorno.retEvento.Items[0].RetInfEvento.nProt;
            qvndstatus.AsString := 'NFC-e Cancelada';
            qvndvndXMLCancelamento.AsString := EventoRetorno.retEvento.Items[0].RetInfEvento.XML;
 
//// Aqui! O que devo salvar aqui? O Xml inteiro? o local onde ele foi gravado?? no momento ele me retorna o seguinte valor
 
<?xml version="1.0" encoding="UTF-8" ?>
 <procEventoNFe versao="1.00" xmlns="http://www.portalfiscal  
 
 e só. Ou o campo é pequeno ou eu estou salvando a coisa errada por aqui.
 
idéias??
Sugestões??
No aguardo
Claudiomir
Link para o comentário
Compartilhar em outros sites

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

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • 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.