Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

Fiz o cancelamento de um NFC-e  (estou utilizando o servidor do AM em ambiente de homologação).  A nota foi cancelada no servidor mas ao consultar esta nota o sistema retorna como a nota esta autorizada e não cancelada..

 

Como fiz o cancelamento: 

     ACBrNFe1.NotasFiscais.Clear;
     ACBrNFe1.NotasFiscais.LoadFromFile(TaNotaFiscalARQXML_LOCAL.value);

    

 ACBrNFe1.EventoNFe.Evento.Clear;
  ACBrNFe1.EventoNFe.idLote := StrToInt(idLote) ;
  with ACBrNFe1.EventoNFe.Evento.Add do
    begin
      infEvento.dhEvento := now;
      infEvento.tpEvento := teCancelamento;
      infEvento.detEvento.xJust := vAux;
      infEvento.chNFe           := ACBrNFe1.NotasFiscais[0].NFe.procNFe.chNFe;
      infEvento.detEvento.nProt := ACBrNFe1.NotasFiscais[0].NFe.procNFe.nProt;
      infEvento.CNPJ            := FormatarDocumento(Dm.TaEmpresaCGC.value,1);

    

    end;
  ACBrNFe1.EnviarEvento(StrToInt(idLote));

 

MemoResp.Lines.Text :=  UTF8Encode(ACBrNFe1.WebServices.EnvEvento.RetWS);
  LoadXML(MemoResp, WBResposta);

 

Depois consultei a situação da nota com o comando abaixo:

       ACBrNFe1.Configuracoes.Geral.VersaoDF := ve310;
       ACBrNFe1.Configuracoes.Geral.IdCSC:='000001'; // IdToken
       ACBrNFe1.Configuracoes.Geral.CSC:='0123456789'; //token

    ACBrNFe1.NotasFiscais.Clear;
    ACBrNFe1.NotasFiscais.LoadFromFile(NomeArqXml);
    ACBrNFe1.Consultar;

 

 

esta retornando:  ACBrNFe1.WebServices.Consulta.cStat=100   

consultei a nota no site e ela esta cancelada..

 

 

 

 

Postado

Faço assim, o problema é que ao consultar a nota , ele retorna como nota autorizada e não excluida

Percebi que apos gerar o evento foi gerado um novo XML

XML antes de excluir a nfe:  13160105864986000161650010000000071000000071-nfe.xml

xml apos a nota ser excluida: 13160105864986000161650010000000071000000071-NFeDFe.xml

  • 2 semanas depois ...
Postado

Boa tarde Italo.

Então o XML original o primeiro enviado tenho descartar e passará a valer esse com o final NFeDFe.xml?

porque antes quando cancelava uma NFe o XML que tinha enviado era atualizado com uma TAG de cancelamento no final

isso ainda funciona? não consigo, na pasta mensal onde contem os xmls ("nfe.xml") que o cliente envia para a contabilidade estão todos com o motivo "Autorizado o Uso da NF-e"  e não como cancelamento!

não está atualizando o Xml como antes, como é o procedimento agora?

  • Consultores
Postado

Boa tarde Anderson,

Antes o XML era alterado de forma errônea, pois não esta escrito em nenhum lugar que ao efetuar o cancelamento de uma NF-e devemos trocar o protocolo de autorização pelo de cancelamento.

O XML de uma NF-e para ter validade jurídica é preciso estar assinado e com o procolo de autorização, fazendo essa troca o XML deixa de ser válido.

Quando cancelamos uma nota é gerado o arquivo *-procEventoNFe.xml é esse arquivo que o emitente da nota tem que guardar e disponibilizar aos interessados, ou seja, o destinatário e a contabilidade.

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Pessoal, pesquisei e já ficou claro que a NF-e não terá o XML alterado caso a mesma seja Cancelada, mantendo o seu cStat 100, sendo que a propriedade ACBrNFe.Configuracoes.Geral.AtualizarXMLCancelado não possui mais efeito algum, até aí tudo bem, o que gostaria de saber o que posso fazer para tratar situações de erros em que não consiga receber a resposta do evento de Cancelamento para situações de queda de energia, ou da internet no momento do Cancelamento?

Antes para toda tentativa de Cancelamento eu enviada um Consulta para saber se já estava cancelado ou não, agora não faz efeito pois o cStat não muda. Outra coisa que achei estranho é que em nenhum momento me retornou o *-NFeDFe.xml como o colega sistemp informou acima.

Para essa situação o que vocês sugerem? Como identificar que já foi cancelado?

Em anexo estou enviando o XML em homologação como autorizado, já efetuei o cancelamento do mesmo.

52160104429915000178550000000004661000079213-nfe.xml

  • Consultores
Postado

Boa tarde Fabrício,

O arquivo <chave>-NFeDFe.xml só será gerado se:

1. for carregado ao componente o XML da NF-e que se pretende consultar;

2. A NF-e consultada tem que possuir eventos vinculados a mesma;

3. Configuracoes.Arquivos.Salvar := True;

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Bom dia Italo,

Obrigado por tentar ajudar. Sobre as considerações que fez, utilizo exatamente como descreveu e em nenhum momento gera o arquivo <chave>-NFeDFe.xml, sendo que para consultar faço assim:

    ACBrNFe.NotasFiscais.Clear;
    ACBrNFe.NotasFiscais.LoadFromFile(PastaEnv + FNomeArquivoXML);
    if ACBrNFe.Consultar() then

E o componente está configurado corretamente, como:

ACBrNFe.Configuracoes.Geral.Salvar       := True;

A NF-e que citei acima já está cancelada, apesar que no site de GO ainda não mostra que está, o que é estranho é que nem no ambiente de homologação nacional estão aparecendo as minhas notas.

Hoje fiz mais um teste de consulta e me retorna que está cancelada, mas sem o evento. O arquivo de retorno está assim:

52160104429915000178550000000004661000079213-sit.xml

O duro é saber como proceder em meu sistema, pois ontem após o cancelamento em uma Consulta não retornava que o Cancelamento estava homologado, e hoje já retorna mas sem o evento associado.

Isso pode ser uma instabilidade em GO homologação? Acontece o mesmo com você?

 

  • Consultores
Postado

Bom dia Fabrício,

Vejo que não esta configurado corretamente.

O Salvar de Geral é para salvar ou não os arquivos gerais, ou seja, de envio e de retorno.

Por outro lado o Salvar de Arquivos ( Configuracoes.Arquivos.Salvar) é para definir se vai salvar ou não os arquivos fiscais. 

O <chave>-NFeDFe.xml é tratado como sendo um arquivo fiscal.

 

Consultor SAC ACBr

Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / Araraquara-SP

Araraquara - A era dos Trólebus

Postado

Já utilizada os dois Italo, copiei o errado:

    ACBrNFe.Configuracoes.Arquivos.Salvar    := True;

    ACBrNFe.Configuracoes.Geral.Salvar       := True;

O fato de não gerar o arquivo <chave>-NFeDFe.xml pode ser uma instabilidade em GO (homologação)?

Postado

Ontem mesmo desisti de testar a consulta da NF-e cancelada em GO, então iniciei os testes com consulta de NFC-e do AM e aí sim respondeu como me informou o Italo, gerando o arquivo <chave>-NFeDFe.xml. Agora é torcer para que essas instabilidades não ocorram em produção.

Uma coisa que percebi é que quando efetua um Cancelamento e tudo funciona, é gerado o arquivo *-procEventoNFe.xml, mas ao Consultar uma nota já cancelada não gera esse arquivo. Então para poder armazenar esse arquivo, estou gerando ele na mão. No meu caso funciona bem, pois o único evento que poderá estar associado é o de Cancelamento, abaixo vou mostrar como faço para gerar o arquivo *-procEventoNFe.xml idêntico ao que obtém quando efetua o Cancelamento, só que através de uma Consulta:

var
  strAux: String;
  Leitor: TLeitor;
  strList: TStringList;
  NomeArqEvento: String;
begin
  ACBrNFe.NotasFiscais.Clear;
  ACBrNFe.NotasFiscais.LoadFromFile(PastaEnv + FNomeArquivoXML);
  if ACBrNFe.Consultar() then
  begin
    if (ACBrNFe.WebServices.Consulta.procEventoNFe.Count > 0) and
       (ACBrNFe.WebServices.Consulta.procEventoNFe.Items[0].RetEventoNFe.cStat in [135, 155]) then
    begin
      NomeArqEvento := Copy(ACBrNFe.WebServices.Consulta.procEventoNFe.Items[0].RetEventoNFe.InfEvento.id, 3, 52)
                     + '-procEventoNFe.xml';

      Leitor  := nil;
      strList := nil;
      try
        // Vamos remover as tags desnecessárias para gerar o arquivo do Evento de Cancelamento Homologado completo
        // como se tive acabado de efeturar o cancelamente e dado tudo certo

        Leitor := TLeitor.Create;
        strList := TStringList.Create;

        Leitor.Arquivo := ACBrNFe.WebServices.Consulta.RetWS;

        strAux := Leitor.rExtrai(1, 'procEventoNFe', 'procEventoNFe');
        strAux := StringReplace(strAux, '<procEventoNFe versao="1.00">', '<procEventoNFe versao="1.00" xmlns="http://www.portalfiscal.inf.br/nfe">', [rfReplaceAll]);
        strAux := '<?xml version="1.0" encoding="UTF-8"?>' + strAux;

        strList.Text := strAux;

        strList.SaveToFile(PastaCanceladas + NomeArqEvento);
      finally
        Leitor.Free;
        strList.Free;
      end;
    end;
  end;
end;

Dessa forma tem resolvido para mim quando dá algum problema no momento do Cancelamento e o meu sistema não armazena os dados e então quando o usuário tenta cancelar novamente eu disparo essa rotina acima.

Obs: Para utilizar a classe TLeitor, tem que adicionar no uses: pcnLeitor

Espero que possa ser útil para alguém.

Abraços,

Fabrício Gomes Araújo

  • Curtir 1
  • Este tópico foi criado há 3229 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.