Jump to content

dev botao
  • Este tópico foi criado há 3589 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 to comment
Share on other 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 to comment
Share on other sites

  • 2 weeks later...

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 to comment
Share on other sites

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

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.

The popup will be closed in 10 seconds...