Inicialização e Estrutura do BISPDV

De BIS Wiki
Revisão de 23h33min de 16 de fevereiro de 2025 por Rodrigogml (discussão | contribs) (Criou página com '= BISPDV = == Inicialização do Sistema == center|Inicialização do Sistema A inicialização do aplicativo segue as seguintes regras...')
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)
Ir para navegação Ir para pesquisar

BISPDV

Inicialização do Sistema

Inicialização do Sistema
Inicialização do Sistema

A inicialização do aplicativo segue as seguintes regras:

PDVStarter

A aplicação deve ser inicializada sempre por esta classe que contém o método main();

Esta classe não faz absolutamente nada além de passar a chamada, incluindo os argumentos de linha de comando para a PDVUpdater. Sua existência tem a finalidade de permitir a incorporação de plugins, siffers, debugger e outras ferramentas na aplicação. Para isso, basta que a ferramenta implemente uma 'sósia' desta classe (mesmo nome e package), e que sua bibliotexa (.jar) seja carregada no classpath antes dos .jars da própria aplicação. Após realizar o que for necessário a ferramenta deve repassar a chamada para PDVUpdater da mesma forma, para que a aplicação se inicie em seu fluxo normal.

PDVUpdater

Esta classe que concentra as tarefas de inicialização da aplicação recebe os seguintes parâmetros:

  • -help - Exibe este menu de opções.
  • -testDarumaFW - Não inicializa a aplicacao. Tenta apenas inicializar as bibliotecas da DarumaDramework, verificando se as DLLs estão OK. Não faz comunicação com a impressora.
  • -watcher - Habilita uma thread que imprime o valor de algumas variáveis do sistema a cada segundo no console do sistema.
  • -autoSaleTest - Carrega um arquivo de vendas automáticas. Esse arquivo deve conter o que deve ser vendido, e as vendas serão feitas automaticamente no horário programado.
  • -noUI - Não inicializa a UI do PDVApp. Útil quando estamos utilizando o -saleFile


Valida se é a única instância tentando bloquear o arquivo .\\instance.lock no diretório da aplicação.

PDVApp

O PDVApp é o coração da aplicação. Funciona com uma série de máquinas de estado (workflows) que definem a lógica da operação da aplicação.

Workflows do Sistema

Principal: PDVState


Esse é o WORKFLOW geral da aplicação, é definida nos valores da enum PDVState:

  • START - Valor inicial, utilizado somente na inicialização da aplicação.
    Neste passo é iniciado o workflow StartCheckStatus, enquanto esse workflow secundário é executado, o PDVState é passado para o estado STARTCHECK.
  • STARTCHECK - Estado enquanto a checagem inicial do sistema ocorre;
    Se a checagem inicial finalizar com sucesso vai para o estado WAITINGLOGIN, em caso de erro vai para o STARTCHECK_FAIL.
  • STARTCHECK_FAIL - indicador de que o processo de checagem inicial terminou com erro.
    Não há saída desse estado, a não ser reiniciar ou refazer a instalação do PDVApp.
  • WAITINGLOGIN - Sinaliza que o sistema está aguradando o login.
    Fica nesse estado até que o PDVUI interaja com o usuário para executar o login.
    Uma vez feita o login pelo método doLogin(), se realizado com sucesso para para o estado ADMINISTRATIVE.
  • ADMINISTRATIVE - Estado em que o sistema permite ser configurado, e permite acesso a outras funções administravias do checkout (como abrir e fechar o checkout).
    Este já um estado de uso do sistema, deste estado o usuário pode entrar no modo de venda SALES.
  • SALES - Estado em que o sistema entra no modo de vendas, permite a abertura de venda, venda de produtos, recebimento, etc.
    Sempre que não estiver com uma venda aberta, o usuário pode voltar para o estado ADMINISTRATIVE.

Uma vez nos estrados ADMINISTRATIVE ou SALES o usuário não pode mais voltar para os outros estados até que a aplicação seja finalizada.