|
|
As novas implementações na camada Daruma Framework agora te auxiliam a atender o requisito do arquivo auxiliar criptografado exigido no roteiro do PAF-ECF.
Sim, agora você tem esta preocupação a menos!
Capturar o GT e o Número de Série do ECF, criptografar, gravar em um arquivo de texto e ficar comparando a informação gravada no mesmo com a do equipamento conectado...
Imaginamos o trabalho que você tem para criar esta rotina!
E agora a pedido da comunidade de desenvolvedores, a camada Daruma Framework conta com uma série de recursos para atender os requisitos e testes referentes ao arquivo auxiliar criptografado.
Métodos:
ePAFCadastrar_ECF_DARUMA
ePAFValidarDados_ECF_DARUMA
ePAFAtualizarGT_ECF_DARUMA
confModoPAF_ECF_Daruma
Alguns dos métodos acima possuem o prefixo ePAF o que representa que este é um método:
e : Especial
P : Programa
A : Aplicativo
F : Fiscal
E indica que o método foi desenvolvido especialmente para atender testes do PAF-ECF, mas agora vamos ver melhor como funciona!
|
Método ePAFCadastrar_ECF_Daruma |
Este método grava em um arquivo de texto o número de série da impressora e o GT(Totalizador Geral) criptografados com base em uma chave informada.
Esta chave é um texto utilizado para criptografar/descriptografar os dados gravados no arquivo.
O arquivo é criado apenas uma vez, porém a função pode ser executada N vezes, fazendo que o arquivo possua os dados criptografados de diversas ECFs.
Isto possibilita que você possua apenas um único arquivo criptografado do PAF-ECF com informações de todas as impressoras do estabelecimento.
Caso o método tenha sido executado com sucesso o retorno será = 1, no caso da tentativa do cadastro de um número de série já existente no arquivo o retorno será = -112 (O número de série já existe no arquivo do PAF).
Parâmetros:
1 |
pszNomeArquivo: |
Nome do arquivo em que os dados serão gravados |
|
|
Exemplo: C:\Daruma\PAF.txt |
2 |
pszChave: |
Texto utilizado para criptografar os dados gravados no arquivo |
|
|
Exemplo: darumaECF |
3 |
pszNumSerieECF: |
Número de série da impressora fiscal |
|
|
Exemplo: DR0207BR000000096456 |
4 |
pszGT: |
GT da impressora fiscal |
|
|
Exemplo: 1780524,87 |
Na prática (DELPHI)
//Declaracao
function ePAFCadastrar_ECF_Daruma(pszNomeArquivo:string; pszChave:string; pszNumSerieECF: string; pszGT:string): Integer; StdCall; External 'DarumaFramework.dll';
//Chamada
procedure TFR_MenuImpressoraFiscal_Principal.ePAFCadastrarClick(Sender: TObject);
var
Int_Retorno: Integer;
begin
Int_Retorno:=ePAFCadastrar_ECF_Daruma('C:\arquivo.crip', 'cripdaruma', 'DR0510BR000000207166', '279215,09');
end;
Após a execução do método, o arquivo auxiliar criptografado será criado conforme os parâmetros informados no local indicado.
|
|
Se aberto, podemos observar que os dados do arquivo estão criptografados como exigido no roteiro do PAF-ECF.
Exemplo:
|
|
IMPORTANTE: Os demais métodos abaixo dependem primeiramente da execução deste método apresentado acima: ePAFCadastrar_ECF_DARUMA, pois ele utiliza a criptografia no padrão da camada DarumaFramework. |
ePAFValidarDados_ECF_DARUMA |
Este é o método responsável por abrir o arquivo criptografado informado, descriptografar o mesmo com a palavra chave informada e verificar se o Número de Série e GT estão iguais aos informados pelos parâmetros passados à função: ePAFCadastrar_ECF_DARUMA.
Parâmetros:
1 |
pszNomeArquivo: |
Nome do arquivo em que os dados estão gravados. |
|
|
Exemplo: C:\Daruma\PAF.txt |
2 |
pszChave: |
Texto utilizado para criptografar os dados gravados no arquivo |
|
|
Exemplo: darumaECF |
3 |
pszNumSerieEFC: |
Número de série da impressora fiscal |
|
|
Exemplo: DR0207BR000000096456 |
4 |
pszGT: |
GT que será comparado com o do arquivo |
|
|
Exemplo: 1780524,87 |
|
|
Obs: A variável pszChave que armazena a palavra chave na criptografia/descriptografia do arquivo deve ser passada da mesma maneira de que na chamada do método: ePAFCadastrar_ECF_DARUMA, para que a comparação seja válida. |
Na prática (DELPHI)
//Declaracao
function ePAFValidarDados_ECF_Daruma(pszNomeArquivo:string; pszChave:string; pszNumSerieECF: string; pszGT:string): Integer; StdCall; External 'DarumaFramework.dll';
//Chamada
procedure TFR_MenuImpressoraFiscal_Principal.ePAFValidarClick(
Sender: TObject);
var
Int_Retorno: Integer;
begin
Int_Retorno:=ePAFValidarDados_ECF_Daruma('C:\arquivo.crip', 'cripdaruma', 'DR0510BR000000207166', '279215,09');
FR_MenuImpressoraFiscal_Principal.DarumaFramework_Mostrar_Retorno(Int_Retorno);
end;
Caso os dados do arquivo tenham sido validados com sucesso o retorno da função será = 1.
|
|
Em caso contrário o erro será = 0, que representa: Erro durante a execução. |
ePAFAtualizarGT_ECF_DARUMA |
Este é o método responsável por substituir o GT que está gravado no arquivo do criptografado pelo GT atual, obtido através da DarumaFrameWork.dll.
A função solicita em um dos parâmetros a passagem do GT atual para fazer as devidas comparações de autenticidade.
Os dados gravados no arquivo são criptografados através da chave passada na chamada à função, por isso são lidos e modificados somente quando a mesma é informada corretamente.
Parâmetros:
1 |
pszNomeArquivo: |
Nome do arquivo em que os dados serão gravados |
|
|
Exemplo: C:\Daruma\PAF.txt |
2 |
pszChave: |
Texto utilizado para criptografar os dados gravados no arquivo |
|
|
Exemplo: darumaECF |
3 |
pszNumSerieECF: |
Número de série da impressora fiscal |
|
|
Exemplo: DR0207BR000000096456 |
4 |
pszGT: |
GT que estava no arquivo e dever ser atualizado. |
|
|
Exemplo: 1780524,87 |
A função pode ser utilizada quando houver a emissão de algum documento Fiscal e a necessidade de alterar o valor no arquivo criptografado criado.
Na prática(DELPHI):
//Declaracao
function ePAFAtualizarGT_ECF_Daruma(pszNomeArquivo:string; pszChave:string; pszNumSerieECF: string; pszGT:string): Integer; StdCall; External 'DarumaFramework.dll';
//Chamada
procedure TFR_MenuImpressoraFiscal_Principal.ePAFAtualizarGTClick(
Sender: TObject);
var
Int_Retorno: Integer;
begin
Int_Retorno:=ePAFAtualizarGT_ECF_Daruma('C:\arquivo.crip', 'cripdaruma', 'DR0510BR000000207166', '279215,09');
FR_MenuImpressoraFiscal_Principal.DarumaFramework_Mostrar_Retorno(Int_Retorno); end;
Caso os dados do arquivo tenham sido validados e atualizados com sucesso o retorno da função será = -110, o que indica que o GT foi atualizado no arquivo de registro do PAF.
|
|
|
|
confModoPAF_ECF_Daruma |
Este é o método responsável por tornar automático todo o controle de atualização do arquivo criptografado do PAF-ECF, habilitando o “Modo PAF” na DarumaFrameWork.dll, que realiza a comparação do GT (Totalizador Geral) e do Numero de Série da ECF gravados no arquivo criptografado, com as mesmas informações obtidas diretamente da impressora.
Essa comparação é feita automaticamente na abertura dos Cupons Fiscais, na venda dos itens do Cupom Fiscal, na abertura de um comprovante Não-Fiscal, Sangria e Suprimento de Caixa, de acordo com a legislação do PAF-ECF. Caso o GT ou número de série da ECF não correspondam, somente os métodos de retorno poderão ser utilizados.
Parâmetros:
1 |
pszAtivar: |
Deve possuir valor 1 para a ativação do modo PAF, e valor 0 para desativação |
|
|
Exemplo: 1 |
2 |
pszChave: |
Texto utilizado para descriptografar os dados gravados no arquivo |
|
|
Exemplo: darumaECF |
3 |
pszNomeArquivo: |
Nome do arquivo em que os dados estão gravados |
|
|
Exemplo: C:\Daruma\PAF.txt |
Na prática(DELPHI):
//Declaracao
function confModoPAF_ECF_Daruma(pszAtivar: string; pszChave:string; pszNomeArquivo:string): Integer; StdCall; External 'DarumaFramework.dll';
//Chamada
procedure TFR_MenuImpressoraFiscal_Principal.ePAFCadastrarClick(
Sender: TObject);
var
Int_Retorno: Integer;
begin
Int_Retorno:=confModoPAF_ECF_Daruma('1', 'cripdaruma', 'C:\arquivo.crip');
Int_Retorno:=iCFAbrirPadrao_ECF_Daruma();
Int_Retorno:=iCFVenderSemDesc_ECF_Daruma('F1', '2','2,00', '0032920', 'UN', 'Venda teste');
FR_MenuImpressoraFiscal_Principal.DarumaFramework_Mostrar_Retorno(Int_Retorno);
end;
Caso a validação e atualização do arquivo criptografado tenha ocorrido com sucesso o retorno da função será = 1, conforme demonstrado na imagem abaixo.
|
|
No caso de outra impressora ter sido conectada e feita à comparação com os dados do arquivo criptografado o retorno será = -113 (ECF conectado não cadastrado no arquivo do PAF), bloqueando assim todas as operações Fiscais na impressora.
|
|
Ficou fácil mesmo né...
Este é mais um recurso planejado e implementado graças aos feedbacks da comunidade de desenvolvedores Daruma.
Um abraço! |
| |