Régys Borges da Silveira

  • Início
  • Assinatura Fontes
  • Cursos
  • Fontes de Aplicativos
  • Downloads
  • Contato
  • Sitemap
  • Sobre
14 dezembro 2012

Recuperando Número de Série e Valor do GT no componente ACBrAAC

Escrito por Régys Borges da Silveira
14/12/2012 ACBr ACBr, ACBrAAC, ACBrECF, Delphi, paf-ecf, programação 19 comentários

Um dos vários requisitos do Paf-ECF obrigatórios e a recomposição do Valor do GT ou Número de Série do ECF no arquivo auxiliar cripotografado. A suíte de componentes ACBr já possui a um bom tempo o componente ACBrAAC que quando é ligado ao componente ACBrECF permite a geração, controle e manipulação do arquivo criptografado automaticamente, conforme se vai utilizando o ECF, facilitando em muito a vida de quem programa para Paf ECF.

Segue o trecho referente ao requisito XXII:

1. O PAF-ECF deve garantir que será utilizado com ECF cujo pedido de autorização de uso tenha cumprido a legislação da unidade da federação de jurisdição do usuário do equipamento, adotando, no mínimo, as seguintes rotinas:

2. não possuir menus de configuração que possibilitem a desativação do ECF;

3. não possuir tela que possibilite configurar o ECF a ser utilizado, exceto quanto à porta de comunicação serial;

4. ao ser inicializado, ao viabilizar o acesso à tela de registro de venda e ao enviar ao ECF comando para abertura de documento fiscal, comparar o número de fabricação do ECF conectado neste momento com os números de fabricação dos ECFs autorizados para uso fiscal no estabelecimento, cadastrados em arquivo auxiliar criptografado, que somente poderá ser acessível ao estabelecimento usuário no caso de PAF-ECF exclusivo-próprio, observando-se que o cadastro de ECFs autorizados no arquivo auxiliar deve ser realizado exclusivamente pela empresa desenvolvedora do PAF;

5. ao ser inicializado, ao viabilizar o acesso à tela de registro de venda e ao enviar ao ECF comando para abertura de documento fiscal, comparar o valor acumulado no Totalizador Geral (GT) do ECF conectado neste momento com o valor correspondente armazenado em arquivo auxiliar criptografado, que somente poderá ser acessível ao estabelecimento usuário no caso de PAF-ECF exclusivo-próprio, observando-se que:
a) o registro inicial do valor correspondente ao Totalizador Geral no arquivo auxiliar criptografado deve ser realizado exclusivamente pela empresa desenvolvedora do PAF-ECF;
b) em cada emissão de documento fiscal o PAF-ECF deve atualizar o valor armazenado no arquivo auxiliar, correspondente ao Totalizador Geral do ECF respectivo.

6. caso não haja coincidência na comparação descrita no item 4 deste requisito e não havendo perda de dados gravados no arquivo auxiliar criptografado, impedir o seu próprio funcionamento, exceto para as funções descritas no item 1 do Requisito XVII.

7. caso não haja coincidência na comparação descrita no item 5 deste requisito e não havendo perda de dados gravados no arquivo auxiliar criptografado, impedir o seu próprio funcionamento, exceto:

  1. para as funções previstas no item 6 deste requisito;
  2. se, a critério da unidade federada, tiver ocorrido incremento do CRO, hipótese em que deverá recompor o valor do Totalizador Geral no arquivo auxiliar criptografado a partir do valor correspondente gravado no ECF.

8. caso não haja coincidência nas comparações descritas nos itens 4 ou 5 deste requisito e havendo perda, por motivo acidental, de dados gravados no arquivo auxiliar criptografado:

  1. comparar os números do CRZ e do CRO e o valor da Venda Bruta Diária, referentes à última Redução Z gravada na Memória Fiscal com os números e valor correspondentes no banco de dados a que se refere o item 2 do requisito XXV (campos 06, 08 e 12 do Registro tipo R02 constante no Anexo VI) e:
    1. se os números e valor forem iguais, recompor os dados no arquivo auxiliar (número de série de fabricação do ECF conectado e valor do Totalizador Geral atual do ECF conectado).
    2. se os números ou valor forem diferentes, impedir o seu próprio funcionamento, permitindo-se o funcionamento para as funções descritas no item 1 do Requisito XVII.

Para a recomposição do valor de GT e número de série o ACBrAAC possui dois eventos, onde as verificações devem ser feitas e se tudo estiver OK deve-se então passar ao eventos os novos valores, segue abaixo um exemplo simples de uso dos eventos de recuperação.

Recomposição do número de série:

procedure TForm1.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
  ACBrECF1.DadosUltimaReducaoZ;

  NumCRO     := ACBrECF1.DadosReducaoZClass.CRO;
  NumCRZ     := ACBrECF1.DadosReducaoZClass.CRZ;
  VendaBruta := 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;

  // 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;

Recomposição do grande total:

procedure TForm1.ACBrAAC1VerificarRecomporValorGT(const NumSerie: string;
  var ValorGT: Double);
var
  OK: Boolean;
  NumCRZ, NumCRO: Integer;
  VendaBruta: Double;
begin

  // ler os dados da ultima Z no ECF
  ACBrECF1.DadosUltimaReducaoZ;

  NumCRO     := ACBrECF1.DadosReducaoZClass.CRO;
  NumCRZ     := ACBrECF1.DadosReducaoZClass.CRZ;
  VendaBruta := 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;

  // setar o parametro se os valores (CRZ, CRO e Venda Bruta) forem iguais
  if OK then
    ValorGT := ACBrECF1.GrandeTotal;

end;

Compartilhar este post

  • Clique para compartilhar no WhatsApp(abre em nova janela) WhatsApp
  • Clique para compartilhar no Telegram(abre em nova janela) Telegram
  • Clique para compartilhar no Facebook(abre em nova janela) Facebook
  • Clique para compartilhar no LinkedIn(abre em nova janela) LinkedIn
  • Clique para imprimir(abre em nova janela) Imprimir
  • Clique para enviar um link por e-mail para um amigo(abre em nova janela) E-mail

Curtir isso:

Curtir Carregando...

Descubra mais sobre Régys Borges da Silveira

Assine para receber nossas notícias mais recentes por e-mail.

© Copyright 2014. Todos os direitos reservados.