Ir para conteúdo
  • Cadastre-se

dev botao

Gerar arquivo Requisito X PAF com AAC (Registros N1, N2, N9)


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

Recommended Posts

  • Consultores

Pessoal,

Para poder usar o ACBrPAF e o ACBrAAC para criar os registros N1, N2 e N9, tive que adicionar o comando para abrir o ACBrAAC antes de usar ACBrPAF.SaveFileTXT_N. Na hora do desenvolvimento, eu preferi adicionar isso ao código do ACBrPAF alterando o ACBrPAF.pas, mas agora não tenho certeza se foi a melhor maneira.

Como não fui eu quem implementei essa parte, gostaria que alguém mais desse uma olhadinha.

ACBrPAF.pas

[]'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.
Link para o comentário
Compartilhar em outros sites

  • 2 meses depois ...
  • Fundadores

Analisei que a mudança pode quebrar código de aplicações já existentes...

O que ocorre é que muitos programadores (como eu), atribuem informações "fixas" para o ACBrAAC após a sua abertura... eu faço isso com as informações de: Laudo, Versão, ER...

Lembro que na minha última homologação, argumentei com o homologador sobre isso... seria muito difícil, obrigar todos a substituir todos os arquivos AAC, de todas as aplicações, a cada novo lançamento de versão, devido o fato de ser necessário ler informações dos ECFs em operação antes de gerar o novo arquivo..

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Consultores

Daniel,

obrigado pelo retorno. Mas não sei se entendi como o código poderia quebrar a compatibilidade com outros usuários. Também acho que essa parte da geração do Requisito X usando os componentes não está bem clara. Se puder me dar uma resposta um pouco mais elaborada.

Se for o caso, eu mudo aqui a minha implementação para não ter que usar uma versão do ACBrPAF diferente da do projeto.

[]'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.
Link para o comentário
Compartilhar em outros sites

  • Fundadores

Veja esse trecho do meu código:


Procedure CalcRequisitoIX_MD5 ;
Var
wNumeroLaudo, wVersaoER, wPrincipalEXE : String ;
Ini: TIniFile;
begin
with FrVenda.ACBrAAC1 do
begin
// Salvando as informações do Componente em Variaveis de Trabalho //
with IdentPAF do
begin
wNumeroLaudo := NumeroLaudo ;
wVersaoER := VersaoER ;
wPrincipalEXE:= Paf.PrincipalExe.Nome;
end ;

AbrirArquivo;

// Restaurando as Informações Originais do Componente, sobrepondo as do arquivo //
with IdentPAF do
begin
NumeroLaudo := wNumeroLaudo;
VersaoER := wVersaoER;
Paf.Versao := VersaoDJPDV;
Paf.PrincipalExe.Nome := wPrincipalEXE;

// Lendo os parâmetros da Loja //
Ini := TIniFile.Create( pIniParamsLoja );
try
Paf.MinasLegal := Ini.ReadBool('PAF-ECF','MinasLegal',False);
Paf.CupomMania := Ini.ReadBool('PAF-ECF','CupomMania',False);
Paf.RealizaDAVNaoFiscal:= not Ini.ReadBool('PAF-ECF','BloqueiaDAVNaoFiscal',False);
finally
Ini.Free ;
end ;

Paf.RealizaDAVECF := True;
Paf.RealizaPreVenda := True;

Paf.DAVConfAnexoII := True;
Paf.EmitePED := True;
Paf.TransfDAV := False;
Paf.TransfPreVenda := False;
Paf.Linguagem := 'Lazarus/FreePascal';
Paf.SistemaOperacional := 'Windows XP ou Superior';
Paf.BancoDados := 'Firebird';
Paf.TipoFuncionamento := tpfParametrizavel;
Paf.IntegracaoPAFECF := tpiNaoIntegra;
end ;
end ;

with FrVenda.ACBrAAC1.IdentPAF.OutrosArquivos do
begin
Clear;
Add( FrVenda.ACBrAAC1.IdentPAF.Paf.PrincipalExe.Nome );
Add('sqlite3.dll'); // Banco de Dados Sqlite
Add('inpout32.dll'); // Acesso direto a Porta Paralela/AT
Add('fbclient.dll'); // Client do FireBird
Add('libeay32.dll'); // OpenSSL 0.9.8.1
Add('ssleay32.dll'); // OpenSSL 0.9.8.1
Add('msvcr71.dll'); // MSVisual C RunTime 7.1
Add('msvcr80.dll'); // MSVisual C RunTime 8.0
Add('CliSiTef32.dll'); // SiTEF
Add('CliSiTef32I.dll'); // SiTEF
Add('libseppemv.dll'); // SiTEF
Add('BemaFI32.dll'); // ECF: Bematech
Add('BemaMFD.dll'); // ECF: Bematech
Add('BemaMFD2.dll'); // ECF: Bematech
Add('sign_bema.dll'); // ECF: Bematech
Add('BemaMFD2_MP4000THFI.dll'); // ECF: Bematech
Add('swmfd.dll'); // ECF: Sweda
Add('CONVECF.dll'); // ECF: Sweda
Add('DarumaFrameWork.dll'); // ECF: Daruma
Add('LeituraMFDBin.dll'); // ECF: Daruma
Add('lebin.dll'); // ECF: Daruma
Add('DLLG2.dll'); // ECF: DataRegis/TermoPrinter
Add('DLLG2_Gerador.dll'); // ECF: DataRegis/TermoPrinter
Add('HIME.dll'); // ECF: DataRegis/TermoPrinter ?
Add('elgin.dll'); // ECF: Elgin
Add('ATO17.dll'); // ECF: Elgin/Urano
Add('leitura.dll'); // ECF: Elgin/Urano
Add('InterfaceEpson.dll'); // ECF: Epson
Add('djmonitor.exe');
end ;

with FrVenda.ACBrPAF1 do
begin
PAF_N.NomeArquivo := 'executaveis.txt' ;
Path := ExtractFilePath( ParamStr(0) );
SaveFileTXT_N( PAF_N.NomeArquivo );
end ;

{ Gravando o MD5 atual no Terminal }
dml.sqlTerminal.Edit ;
dml.sqlTerminal.FieldByName('MD5').AsString := FrVenda.ACBrAAC1.IdentPAF.ArquivoListaAutenticados.MD5 ;
dml.PostTerminal ;

end;

[/code]

Uma chamada a AbrirArquivo dentro de SaveFileTXT_N causaria a perda de algumas propriedades que defini após a Abertura do mesmo

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

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

Link para o comentário
Compartilhar em outros sites

  • Consultores

Vou verificar e dou um retorno.

[]'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.
Link para o comentário
Compartilhar em outros sites

  • 4 meses depois ...
  • Consultores

Acabei ficando sem dar um retorno a esse tópico. O que percebi foi que fazendo como o Daniel sugeriu não há necessidade de alteração do componente.

 

Então para resumir:

Sempre que a aplicação abrir o arquivo do componente AAC, adicione os dados extras que não são salvos no AAC. Isso inclui a lista de executáveis na propriedade OutrosArquivos do objeto IdentPAF do componente ACBrAAC (TACBrAAC.IdentPAF.OutrosArquivos).

 

Nota: Não vou postar código de exemplo pois o código do Daniel acima ficou bem claro.

[]'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.
Link para o comentário
Compartilhar em outros sites

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