Jump to content

click.png click.png click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

click.png

Função para gerar Chave


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

Recommended Posts

  • Membros Pro

Olá a todos,

Estou precisando criar uma função que me informe qual chave seria gerada para uma nota qualquer. Por exemplo, se eu gerasse uma NFCe  de número 2100, de Série 1, com emissão normal na data de hoje, qual chave o ACBrNFe1 geraria?

Desde já agradeço a atenção de todos

Link to comment
Share on other sites

  • Consultores

Bom dia,

Qual seria a finalidade disso?

No meu entendimento a chave só deve ser gerada no momento da emissão da nota.

E se tratando de NFC-e lembre-se que você pode usar um numero de série diferente para cada PDV.

Para saber qual é a função que o ACBr usa, abra a unit ACBrDFeUtil e procure pela função: GerarChaveAcesso

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Membros Pro

Olá Italo, tudo bom?

Então rapaz, obrigado pelas dicas.

Minha finalidade é bem simples, estou com um problema em meu código que está fazendo o programa sobrescrever informações de notas enviadas anteriormente, tais como chave e xml. Por exemplo, a nota 128 série 1 em minha base é sobrescrita com chave e xml da 129. E esse problema está cada vez mais frequente.

Para analisar onde meu código está dando erro, preciso dessas informações da nota 128 que foram perdidas, por isso tal função seria importante para mim nesse momento, se não eu tenho que ficar "adivinhando" qual foi a chave gerada. Entendeu?

Desde já agradeço a atenção

Link to comment
Share on other sites

  • Membros Pro

Ah sim, verdade :-)

Poderia me ajudar dizendo do que se trata o parâmetro ACodigo dessa função?

Já botei como se fosse o lote e o tipo de ambiente, mas ainda não consegui gerar a chave conforme o componente ACBrNFe1. Creio que estou falhando nesse parâmetro.

Link to comment
Share on other sites

  • Consultores

Boa noite,

Desculpe passe a função errada.

a correta se chama GerarChave e se encontra na unit pcnAuxiliar que esta dentro da pasta ...\PCNComum

function GerarChave(out chave: AnsiString; const codigoUF: integer; codigoNumerico: integer; const modelo, serie, numero, tpemi: integer; const emissao: TDateTime; const CNPJ: string): boolean;

Essa função nos fornecesses 2 retornos:

O primeiro é justamente o primeiro parâmetro da função, onde você deve colocar uma variável que vai conter a chave gerada.

A segunda é True ou False, indicando se a chave foi gerada corretamente ou não.

Os próximos parâmetros da função são:

codigoUF: integer; -> Código da UF segundo a IBGE;

codigoNumerico: integer; -> Código aleatório com no máximo 8 digitos (alguns informão o mesmo numero da nota);

modelo, -> modelo do documento fiscal, no caso da NF-e é 55, se for NFC-e é 65;

serie, -> numero da série do documento fiscal;

numero, -> numero do documento fiscal;

tpemi: integer; -> tipo de emissão, se for normal deve ser 1

emissao: TDateTime; -> data de emissão do documento fiscal;

CNPJ: string -> CNPJ do emitente

Espero ter ajudado.

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

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

  • Membros Pro

Olá Italo, obrigado, mas ainda não consegui obter o mesmo retorno de quando gero pelo componente.

Por exemplo, através do comando: ACBrNFe1.Enviar(2629, False, True) eu recebi a chave "33160702620499000165650030000026291000026299".

Tentei reproduzir a mesma através da função que me passou, com o seguinte comando: 

GerarChave(chave, 33, 2629, 65, 3, 2629, 1,  18-07-2016, '02620499000165')

Mas a chave que recebo é "33940702620499000165650030000026291000026290"

Onde será que estou errando?

 

Link to comment
Share on other sites

  • Consultores

Bom dia,

Vamos comparar as duas chaves:

33160702620499000165650030000026291000026299

33940702620499000165650030000026291000026290

O que esta diferente?

O Ano e Mês de emissão ( 94 07 ) e o digito verificador ( 0 ).

Se corrigir o Ano e Mês, o digito verificador vai ser corrigido automaticamente uma vez que é o procedimento que o calcula.

Tente fazer fazer da seguinte forma:

GerarChave(chave, 33, 2629, 65, 3, 2629, 1,  StrToDate('18-07-2016'), '02620499000165')

ou

GerarChave(chave, 33, 2629, 65, 3, 2629, 1,  StrToDate('18/07/2016'), '02620499000165')

  • Like 1
Consultor SAC ACBr Italo Giurizzato Junior
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr

Analista de Sistemas / e-mail: [email protected] / Fone: (16) 9-9701-5030 / Araraquara-SP

Link to comment
Share on other sites

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