Ir para conteúdo
  • Cadastre-se

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

Recommended Posts

Postado

Prezados,

 

Estou tendo um erro no procedimento  "ACBrPAF.SaveFileTXT_N('lista_autenticados.txt')", quando chego nesta linha se eu tenho o arquivo no diretório ele da a exception "Arquivo: Auxiliar.txt inválido" e se eu não tenho ele da a exception "Arquivo: Auxiliar.txt Não encontrado". Gostaria de uma ajuda de como configurar o AcbrAAC e o AcbrEAD corretamente. O componente acbrECF está ligado ao componente acbrACC, no acbrACC está setada a propriedade NomeArquivoAux -> Auxiliar.txt e o arquivo Auxiliar.txt está na pasta setada no caminho. Não encontrei muitas informações no demo do acbrACC e nenhuma referencia no acbrECF. Configurei o acbrACC conforme o exemplo do demo , (troquei apenas o valor da chave mas mantive com 4 digitos),

O que pode estar ocorrendo ?

 

Se possível também confirmar se obrigatóriamente no Arquivo Auxiliar Criptografado devo colocar o  Número de Série da Impressora e o GT, e como fazer isso (de forma criptografada).

 

Abaixo código que estou usando :

 

Para o acbrEAD:

 

procedure TFDMPafEcf.ACBrEAD1GetChavePrivada(var Chave: String);
begin
  Chave := 'MIICXgIBAAKBgQDawShBJxM0rFLadxR8GSD5DaKVvxtlQ+OnuOZX/vOEP2pQXCiG';
  Chave := Chave + 'NpQfNMDm73dWpTaqFLhuFvU+MSF+ys9u6bI2IqOmWUfEaE16cK4nKTbIm69fLDB8';
  Chave := Chave + 'SnaocjMfO6LnbdJmG+dSxbLmrHE8BYX17/d7Vbuxcr1BoSDojGpubqP7OQIDAQAB';
  Chave := Chave + 'AoGBAK0+F+ExTvaCGsPFVsXJKOHUuJQbW1jhYSPtPQ8nbDep+UpXEgjopHnqT3MU';
  Chave := Chave + '5tAJ27bq3fzh1atBQaOmfoz6KxVZHEptcLPlpR+jSrBXyhG/mlvD54ZMKKZQb3qD';
  Chave := Chave + 'b1UvHAO2CYRH7f7Y9PEGAvqXCloUVkbKl9rS7MEfaukj3xq5AkEA+Qqi8c1j47Db';
  Chave := Chave + 'NyezJULfskNwK1wnxcLaFQBKfzpWD2dD0GS/dzWaB5T6d1zmxfXa8ZYv6WQULvqd';
  Chave := Chave + '/BGCs+FMcwJBAODd4aDvQf6py4FocklojYbDhpp040NGUyhsVnj702Gq/oj2HBgI';
  Chave := Chave + '4bce/b2H5+HwkyEsSZHMm5d/5HuNY35Y+qMCQQDoWCMTgvLZn8u1loVNkymOb9p7';
  Chave := Chave + 'qZu1poe+JiparrtR3Z7oEsaK2mhdAIH40KTBNhHRaLREg8lM1yaD4HZXii+/AkA2';
  Chave := Chave + 'L0EfNogAhYm0NSbU6Yyw3Iyiy2e33kpLg0+S95uH/Vw4RJWgdQNuzNj3wrftibrq';
  Chave := Chave + 'U3Gm4FbdusOjwf4ng+lhAkEApd6RF3AqJXtmgtZpXrO6P8riEpE1qZXBQwdfeRBX';
  Chave := Chave + 'Q22LlhcCq5vxgG78jKWeydtan9ue2ebXav/oUT+37LfHYA==';
end;           

procedure TFDMPafEcf.ACBrEAD1GetChavePublica(var Chave: String);
begin
  Chave := 'MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDawShBJxM0rFLadxR8GSD5DaKV';
  Chave := Chave + 'vxtlQ+OnuOZX/vOEP2pQXCiGNpQfNMDm73dWpTaqFLhuFvU+MSF+ys9u6bI2IqOm';
  Chave := Chave + 'WUfEaE16cK4nKTbIm69fLDB8SnaocjMfO6LnbdJmG+dSxbLmrHE8BYX17/d7Vbux';
  Chave := Chave + 'cr1BoSDojGpubqP7OQIDAQAB';
end;

 

 

Para o ACBRAcc :

 

procedure TFDMPafEcf.ACBrAAC1GetChave(var Chave: String);
begin                 
  Chave := '7777';
end;

procedure TFDMPafEcf.ACBrAAC1VerificarRecomporNumSerie(
  const NumSerie: String; const ValorGT: Double; var CRO, CNI: Integer);
var
  OK: Boolean;
  NumCRZ, NumCRO: Integer;
  VendaBruta: Double;
begin

  // ler os dados da ultima Z no ECF
  FDMPAFECF.ACBrECF1.DadosUltimaReducaoZ;
 
  NumCRO     := FDMPAFECF.ACBrECF1.DadosReducaoZClass.CRO;
  NumCRZ     := FDMPAFECF.ACBrECF1.DadosReducaoZClass.CRZ;
  VendaBruta := FDMPAFECF.ACBrECF1.DadosReducaoZClass.ValorVendaBruta;

  // comparar os dados obtidos com os dados da ultima redução Z gravada no Banco de dados
  //OK := Comparar com dados do BD; Aqui deixei sempre como true, para teste.
  OK:= TRUE;
 
  // setar os parametros se os valores (CRZ, CRO e Venda Bruta) forem iguais
  if OK then
  begin
    CRO := NumCRO;
    CNI := 010101; // codigo nacional de identificação do ECF conforme tabela
  end;
 
end;


procedure TFDMPafEcf.ACBrAAC1VerificarRecomporValorGT(
  const NumSerie: String; var ValorGT: Double);

var
  OK: Boolean;
  NumCRZ, NumCRO: Integer;    
  VendaBruta: Double;                       
begin
 
  // ler os dados da ultima Z no ECF
  FDMPAFECF.ACBrECF1.DadosUltimaReducaoZ;
 
  NumCRO     := FDMPAFECF.ACBrECF1.DadosReducaoZClass.CRO;
  NumCRZ     := FDMPAFECF.ACBrECF1.DadosReducaoZClass.CRZ;
  VendaBruta := FDMPAFECF.ACBrECF1.DadosReducaoZClass.ValorVendaBruta;
 
  // comparar os dados obtidos com os dados da ultima redução Z gravada no Banco de dados
  //OK := Comparar com dados do BD; Aqui deixei sempre como true, para teste.
  OK:= TRUE;
 
  // setar o parametro se os valores (CRZ, CRO e Venda Bruta) forem iguais
  if OK then
    ValorGT := FDMPAFECF.ACBrECF1.GrandeTotal;
 
end;
 

 

if FileExists(ExtractFilePath(Application.ExeName) + 'Auxiliar.txt') then
      DeleteFile(ExtractFilePath(Application.ExeName) + 'Auxiliar.txt');

    AssignFile(F, ExtractFilePath(Application.ExeName) + 'Auxiliar.txt');
    Rewrite(F);
    closefile(F);

  // setar o diretório onde vai ser salvo o arquivo
  FdmPafEcf.ACBrPAF1.Path := ExtractFilePath(Application.ExeName) + 'PAF-ECF\';

  // registro dos dados do desenvolvedor
  //Self.PreencherHeaderArquivo(FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1);

  // registro dos dados do aplicativo
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.RAZAOSOCIAL := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.RazaoSocial;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.UF          := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.Uf;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.CNPJ        := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.CNPJ;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.IE          := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.IE;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN1.IM          := FdmPafEcf.ACBrAAC1.IdentPAF.Empresa.IM;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN2.NOME        := FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Nome;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN2.VERSAO      := FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Versao;
  FdmPafEcf.ACBrPAF1.PAF_N.RegistroN2.LAUDO       := FdmPafEcf.ACBrAAC1.IdentPAF.NumeroLaudo;

  // lista dos arquivo executaveis e seus respectivos MD5
  with FdmPafEcf.ACBrAAC1.IdentPAF.OutrosArquivos.New do //Aqui só está pegando e processando o ultimo nome (easyconfigurador.exe)
  begin
    Nome := 'EmpPafEcf.exe';
  end;

  with FdmPafEcf.ACBrAAC1.IdentPAF.OutrosArquivos.New do //Aqui só está pegando e processando o ultimo nome (easyconfigurador.exe)
  begin
    Nome := 'BemaFI32.dll';
  end;

  // Salvar o arquivo de autenticados
  FdmPafEcf.ACBrPAF1.SaveFileTXT_N('lista_autenticados.txt');

  // Carregar o MD5 do arquivo de autenticados
  FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.Nome := 'lista_autenticados.txt';

  FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.MD5  := FdmPafEcf.ACBrEAD1.MD5FromFile(ExtractFilePath(Application.ExeName) + 'PAF-ECF\' + 'lista_autenticados.txt');

  FdmPafEcf.ACBrAAC1.SalvarArquivo;

  // setar o MD5 do arquivo de autenticados que deve aparecer no rodapé do cupom
  // se a impressora for MFD então fazer a programação para que apareça nas informações complementares
  // se não for MFD setar a propriedade InfoRodapeCupom.MD5 do FdmPafEcf.ACBrECF
  if FdmPafEcf.ACBrECF1.MFD then
  begin                                               
    FdmPafEcf.ACBrECF1.InfoRodapeCupom.MD5 := EmptyStr;
    if FdmPafEcf.ACBrECF1.Estado = estLivre then
    begin
      FdmPafEcf.ACBrECF1.IdentificaPAF(
        FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Nome + ' v' + FdmPafEcf.ACBrAAC1.IdentPAF.Paf.Versao,
        'MD-5: ' + FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.MD5
      );
    end;
  end
  else
  begin
    FdmPafEcf.ACBrECF1.InfoRodapeCupom.MD5 := FdmPafEcf.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.MD5;
  end;

 

 

Grato se alguem responder.

  • Consultores
Postado

Duplicado em:

Tópico trancado.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 4369 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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...
The popup will be closed in 10 segundos...
The popup will be closed in 10 segundos...