Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado

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;

  • Moderadores
Postado

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
Postado

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?

Postado

Cara eu consegui utilizar o monitor sem alterar as funções de geração da chave. Mais muito me interesse a função Gerarchave descrita anteriormente.

Se alguem tem um exemplo de utilização dessa função, poderia postar ai pra gente, por favor.

  • 5 meses depois ...
Postado

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.

Postado

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

  • Moderadores
Postado

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
Postado

Não fui fuçar nessa função, mas por acaso o primeiro parametro não é pra passar uma variavel q depois de chamada a função, retornará preenchida com a chave gerada?

Então estava certo na meu chute... hehehe

Postado

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

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

The popup will be closed in 10 segundos...