Ir para conteúdo
  • Cadastre-se

dev botao

Criando Chave de Acesso


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

Recommended Posts

Bom dia, estou tentando gerar alguns arquivos txt para enviar ao ACBrNFeMonitor que está apenas me retornando isso: ERRO: Classe não registrada.

Então tentei importar os arquivos no emissor nacional gratuito para testar ai ele até importa mais me retorno que os seguintes erros:

cDV: Dígito Verificador "numero gerado pelo meu sistema" inválido. ele foi alterado para "outro numero";

ai diz que a chave foi modificado e no final coloca o número informado na linha acima.

Estou postando aqui as rotinas que eu estou usando para tentar descobrir o pq disse. E ja ficando grato pela ajuda de todos ai vai os dados.

COD_UF:=14

ano:='12';

mes:='02';

cnpj:=07198515000197

modelo:=55

serie:=001

num_nota:=000000043;

forma_emissao:='1';

codigo_aleatorio:=00009811

campos:=cod_uf+ano+mes+cnpj+modelo+serie+num_nota+forma_emissao+codigo_aleatorio;

identificacao_nfe:=campos+modulo11(campos);

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;

Form_Principal.DV_NFE:=Digito;

end;

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Se vc usa Delphi use as rotinas do próprio componente.

Adicione o unit pcnAuxiliar no uses do seu programa e use a função abaixo:

GerarChave(var chave: AnsiString; const codigoUF: integer; codigoNumerico: integer;

const modelo, serie, numero, tpemi: integer; const emissao: TDateTime; const CNPJ: string)

djsystem-logo.png
 youtube.png facebook.png instagram.png linkedin.png
André Ferreira de Moraes | Analista de Sistemas
www.djsystem.com.br | www.djpdv.com.br
www.tefhouse.com.br | www.xpos.com.br
Link para o comentário
Compartilhar em outros sites

Se vc usa Delphi use as rotinas do próprio componente.

Adicione o unit pcnAuxiliar no uses do seu programa e use a função abaixo:

GerarChave(var chave: AnsiString; const codigoUF: integer; codigoNumerico: integer;

const modelo, serie, numero, tpemi: integer; const emissao: TDateTime; const CNPJ: string)

Alguem exemplo de utilização dessa função?

Link para o comentário
Compartilhar em outros sites

  • 5 meses depois ...

Alguem tem algum exemplo?

Estou tendo dificuldades em usar essa função

Estou fazendo assim, sei que esta muito errado, alguem para me ajudar?

sAux := GerarChave(Chave, Ide.cUF, Ide.cNF, Ide.modelo, Ide.serie,

Ide.nNF, StrToInt(TpEmisToStr(Ide.tpEmis)), Ide.dEmi, Emit.CNPJCPF);

O que eu não entendo, é que retorna um boolean, e não uma String.

Link para o comentário
Compartilhar em outros sites

Declare a unit "pcnAuxiliar" no uses e utilize o método "GerarChave".

Eu declarei pcnAuxiliar.

Digitei o metodo GerarChave

If GerarChave(Chave, Ide.cUF, Ide.cNF, Ide.modelo, Ide.serie,

Ide.nNF, StrToInt(TpEmisToStr(Ide.tpEmis)), Ide.dEmi, Emit.CNPJCPF) Then

ShowMessage('Chave gerada com sucesso.');

O que eu não entendo, é que ele me retorna um True ou False.

Eu queria que me retornasse o número do XML...

Exemplo:

// Obter Chave do XML

sAux := GerarChave(Chave, Ide.cUF, Ide.cNF, Ide.modelo, Ide.serie, Ide.nNF, StrToInt(TpEmisToStr(Ide.tpEmis)), Ide.dEmi, Emit.CNPJCPF);

sAux := sAux + '-nfe.xml'; // (00120408993715000102550010000001141000001146-nfe.xml

With DControle.QrGeral do

begin

If not DDatabase.IbTransaction1.InTransaction Then

DDatabase.IbTransaction1.StartTransaction;

Close;

SQL.Text :=

'update PEDIDOCAB ' +

'set ' +

'ENVIADA = :ENVIADA, ' +

'NFISCAL = :NFISCAL, ' +

'XML = :XML ' +

'where ' +

'TICKETNO = :TICKETNO';

ParamByName('TicketNo').Value := Tabela.FieldByName('TicketNo').Value;

ParamByName('Enviada').Value := 1;

ParamByName('NFiscal').Value := NFiscal;

ParamByName('XML').Value := sAux;

ExecSQL;

DDataBase.IbTransaction1.CommitRetaining;

End;

Entendeu o que eu gostaria de fazer?

Muitissimo obrigado

Link para o comentário
Compartilhar em outros sites

  • Moderadores

Você chegou da olhar o escopo do método GerarChave?

Vamos analisar ele:


function GerarChave(
[b]var chave: AnsiString;[/b]
const codigoUF: integer;
codigoNumerico: integer;
const modelo, serie, numero, tpemi: integer;
const emissao: TDateTime;
const CNPJ: string): boolean;
[/code]

Veja que existe um parâmetro variável [b]"var chave: AnsiString"[/b] que receberá o número da chave gerado, sendo que o retorno do método é um booleano dizendo se foi gerada ou não a chave.

Equipe ACBr

Régys Borges da Silveira

http://www.regys.com.br

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

Você chegou da olhar o escopo do método GerarChave?

Vamos analisar ele:


function GerarChave(

  [b]var chave: AnsiString;[/b] 

  const codigoUF: integer; 

  codigoNumerico: integer; 

  const modelo, serie, numero, tpemi: integer; 

  const emissao: TDateTime; 

  const CNPJ: string): boolean;

Veja que existe um parâmetro variável "var chave: AnsiString" que receberá o número da chave gerado, sendo que o retorno do método é um booleano dizendo se foi gerada ou não a chave.

Peço desculpas, eu olhei o corpo mas não havia entendido, meu conhecimento em delphi não é tão bom.

Atormentando novamente.

Como faço para obter o valor da chave do parametro variavel var chave: AnsiString?

Como faço para pegar a chave e jogar em outra variavel que criei do tipo String?

Obrigado

Link para o comentário
Compartilhar em outros sites

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