Jump to content

2 Dia do ACBr

O Dia da Automação Comercial está chegando!
Inscreva-se

Nova Loja Oficial
loja.projetoacbr.com.br
Ajude o projeto a crescer, com estilo

Comprar

Balança SM100 performance surpreendente

Tecnologia Japonesa   Teclado e Visor resistentes a água
Consumo inteligente de etiquetas   Baixo custo de manutenção
Comunicação Ethernet e WIFI independentes

Saiba mais

Impressora de Etiquetas ELGIN - L42 PRO

Protocolos PPLA, PPLB, ZPL, EPL (automático)
Porta USB padrão Opcionais: Ethernet, Serial, Paralela
Sensor de Etiquetas Móvel Garantia de 18 meses

Saiba mais

microporto.suporte

Valor inválido cNF precisei alterar os fontes para resolver meu problema.

Recommended Posts

Depois de ter batido a cabeça por um bom tempo tentando solucionar o erro de Valor Indevido cNF da NFe, seguindo a orientação do Ítalo de deixar a informação na ide.nNF com o numero sequencial da nota fiscal e o ide.cNF com zero para que ele assumisse sozinho um numero aleatório para o preenchimento do campo com 8 dígitos  ou utilizasse a função                         Ide.cNF := ACBrUtil.GerarCodigoDFe(Nronta+1) que não me adiantou nada fiz i seguinte:

deixei o campo Ide.cNF = 0 no fonte de nosso sistema e na unit pcnNFe.pas , na linha 248, dentro da função  TNFeW.GerarXml: Boolean criei um avariável _numNFe para manter o numero

do campo Ide.nNF com o numero sequencial  e fiz uma comparação de quando os campos Ide.cNF e Ide.nNf forem iguais cria um numero de oito digitos randômico e armazena no campo

Ide.cNF, conforme abaixo.

O problema é que quando eu for atualizar os componentes perco a solução.

function TNFeW.GerarXml: Boolean;
var
  Gerar: Boolean;
  _numNfe : Integer;   <--------
  xProtNFe : String;
  xCNPJCPF : string;
begin
  Gerador.ListaDeAlertas.Clear;

  FUsar_tcDe4 := (NFe.infNFe.Versao >= 3.10);
  FVersao     := Copy(NFe.infNFe.VersaoStr, 9, 4);

  xCNPJCPF := nfe.emit.CNPJCPF;

  if not EstaVazio(nfe.Avulsa.CNPJ) then
    xCNPJCPF := nfe.Avulsa.CNPJ;
  _numNfe := nfe.ide.nNF;                                           <------
  if ( nfe.ide.cNF = nfe.ide.nNF ) then                        <------
     nfe.ide.cNF := Round(random(99999999)); // 99999999 é o limite do numero randomico      <-------
  nfe.ide.nNF := _numNfe;                                           <------
  FChaveNFe := GerarChaveAcesso(nfe.ide.cUF, nfe.ide.dEmi, xCNPJCPF, nfe.ide.serie,
                            nfe.ide.nNF, StrToInt(TpEmisToStr(nfe.ide.tpEmis)),
                            nfe.ide.cNF, nfe.ide.modelo);
  nfe.infNFe.ID := 'NFe' + FChaveNFe;
 

 

Share this post


Link to post
Share on other sites
11 minutos atrás, microporto.suporte disse:

  if ( nfe.ide.cNF = nfe.ide.nNF ) then                        <------
     nfe.ide.cNF := Round(random(99999999)); // 99999999 é o limite do numero randomico      <-------

Se você precisou fazer essa alteração significa que ainda está passando o mesmo valor para nNF e cNF ao alimentar o componente na geração do XML.

Faça o que foi sugerido, informe 0 para cNF ou use a função GerarCodigoDFe(nNF) para gerar o numero randômico, assim não precisa alterar os fontes do ACBr.

  • Like 1

Equipe ACBr BigWings
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

 

 

Share this post


Link to post
Share on other sites

Uma dúvida sobre usar cNF := Round(random(99999999))

Exemplo:

Como vou fazer pra criar a chave baseado nos dados da nota gerada, caso precise?

Pois não vou saber o cNF.

me refiro case eu não salve a chave, e precisar fazer essa consulta abaixo.

NFE.CONSULTARNFE("c:\35XXXXXXXXXXXXXXXX550010000000050000000058-nfe.xml")

 

Paulo

 

Share this post


Link to post
Share on other sites

Boa tarde.

O recomendado é salvar estes dados em seu banco de dados com as demais informações relativas a NFe.

Att.

  • Like 2

Consultora SAC ACBr

Juliana Tamizou
Ajude o Projeto ACBr crescer - Assine o SAC

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

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

Share this post


Link to post
Share on other sites
Em 14/08/2019 at 14:47, Pauloa1 disse:

Uma dúvida sobre usar cNF := Round(random(99999999))

Exemplo:

Como vou fazer pra criar a chave baseado nos dados da nota gerada, caso precise?

Pois não vou saber o cNF.

me refiro case eu não salve a chave, e precisar fazer essa consulta abaixo.

NFE.CONSULTARNFE("c:\35XXXXXXXXXXXXXXXX550010000000050000000058-nfe.xml")

 

Paulo

 

Paulo, tbm tinha essa dúvida,

não sei se estou certo, mas acabei fazendo um algoritmo para gerar o cNF baseado nas informações da nota, portanto não é randômico mas é diferente do nNF

Share this post


Link to post
Share on other sites

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...