🔥 Apps, books, system as a service, podcast and more



Arquivo criptografado do PAF.ECF


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!





Sign up to our newsletter

Receive our latest updates about programming languages, software, database, books, ebooks, classes, jobs and more.

Top