Ir para conteúdo
  • Cadastre-se

dev botao

Pegar Chave através do ACBrNFe antes de enviar ?


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

Recommended Posts

// Monta os numeros da Chave de Acesso da NFe 2.00

function MontaChaveAcessoNFe_v200( codUF: integer; dtEmissao: TDateTime; CNPJ, tpEmis: string; Modelo, Serie, NumeroNF: integer): string;

var

emissao : string[10];

chave : string;

begin

emissao := formatdatetime('DD/MM/YY', dtEmissao);

chave := IntToStr(codUF) +

copy( emissao, 7, 2) +

copy(emissao, 4, 2) +

FiltraNumeros(CNPJ) +

StrZero(Modelo, 2) +

StrZero(Serie, 3) +

StrZero(NumeroNF, 9) +

tpEmis +

StrZero(NumeroNF, 8);

Result := chave + Modulo11(chave);

end;

OBS: tpEmis = producao ou homologação

// função do Modulo 11

function Modulo11(Numero: String): String;

var

i,j,k : Integer;

Soma : Integer;

Digito : Integer;

CNPJ : Boolean;

begin

Result := '';

Try

Soma := 0; k:= 2;

for i := Length(Numero) downto 1 do

begin

Soma := Soma + (StrToInt(Numero)*k);

inc(k);

if k > 9 then k := 2;

end;

Digito := 11 - Soma mod 11;

if Digito >= 10 then Digito := 0;

Result := Result + Chr(Digito + Ord('0'));

except

Result := 'X';

end;

end;

// função StrZero

function StrZero(Valor: Integer; TamanhoRet: Integer): String;

var

VarStr : String;

TamanhoStr: Integer;

begin

VarStr := Trim(IntToStr(Valor));

TamanhoStr := Length(VarStr);

if TamanhoStr >= 0 then

begin

for TamanhoRet := 1 to TamanhoRet - TamanhoStr do

VarStr := '0' + VarStr;

end;

StrZero := VarStr;

end;

// função Filtra Numeros

function FiltraNumeros(Texto: String): String;

var

i: Integer;

Validos: String;

begin

Result := '';

Validos := '0123456789';

for I := 1 to Length(Texto) do

if Pos(Texto, Validos) > 0 then

begin

Result := Result + Texto;

end;

end;

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Olá, regys.silveira, sim perfeitamente, após enviar tranquilo 100% consigo pegar a chave através do componente.

O problema é que preciso pegar a chave antes de enviar !

Utilize o método "gerarchave", basta adicionar pcnAuxiliar ao uses que ele estará disponível.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

certificacao delphicertificacao delphi
Link para o comentário
Compartilhar em outros sites

  • 4 anos depois...
Em 8/10/2012 at 15:01, Régys Silveira disse:

Após enviar utilize a propriedade "ACBrNFe.NotasFiscais.Items.NFe.procNFe.chNFe" para ler a chave.

Muito obrigado... me ajudou muito Feliz 2017

Atenciosamente

___________________________________________

Adolfo Jefferson Fernandes Lopes

Top Software Consultoria em Informática Ltda. 1992
Top Software Ltda. 2017
(41) 99144-1838 whats ** 3323-1622

[email protected]
http://imastercontroll.blogspot.com/

Link para o comentário
Compartilhar em outros sites

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