BISPDV

De BIS Wiki
Revisão de 22h51min de 19 de setembro de 2016 por Rodrigogml (discussão | contribs) (CFSystem)
Ir para navegação Ir para pesquisar

O BISPDV é a aplicação utilizada na frente de caixa para realização da venda ao consumidor e de outra funções pertinentes à venda e atendimento do cliente da loja.

Arquitetura

O aplicativo apresenta a arquitetura dividia conforme o diagrama abaixo:

  • PDVStarter - O PDVStarter é a classe inicial da aplicação, a classe que contém o método main(). Ela faz apenas algumas verificações necessárias para o funcionamento do sistema e em seguida inicializa o PDVUI.
  • PDVUI - PDVUI é o responsável pela Interface Gráfica da aplicação. A interface é montada toda com o JavaFX, por isso o método chamado no PDVUI para inicia-lo é o launch(). Ao iniciar, o JavaFX chamará o método start(Stage stage).
    O PDVUI é responsável por montar a interface gráfica, porém todo o controle da aplicação é feita através do PDVApp. Para que o PDVUI seja atualizado, o PDVApp emite eventos toda vez que seus estados sofrem alguma alteração.
  • PDVApp - Esta classe Singleton é responsável pela inteligência da aplicação. Todas as operações e controle de estado da aplicação é feita através desta classe. Qualquer comando que o PDVUI receba do usuário, deve ser passado e tratado dentro do PDVApp, sincronizado se for o caso. O PDVApp por sua vez aciona o banco de dados, impressora, comunicações pela rede, etc.


CFSystem

O CFSystem (Sistema de Cupom Fiscal) é o nome dado para o encapsulamento dos diferentes sistemas de emissão de cupom fiscal - SAT, ECF, NFCe, etc. - suportados atualmente ou que venham a existir no futuro. Separando o controle da emissão do cupom fiscal das rotinas do sistema permite que o mesmo app seja reaproveitado para todas as tecnologias existes com pouca ou nenhuma adaptação.

Esse encapsulamento funciona porque embora independente de como a tecnologia da emissão funcione a rotina de venda é sempre a mesma de forma geral: "Inicia a Venda - Registra Produtos - Executa Descontos e Totalizações - Recebe Pagamentos - Finaliza Venda". A cada passo da venda o PDVApp chamará os métodos da interface do CFSystem para notificar os acontecimentos da venda. Devendo o CFSystem traduzir e organizar o funcionamento para cada tecnologia.

O CFSystem é uma interface que permite as implementações das distintas tecnologias. Assim, cada implementação do CFSystem representa um equipamento e modelo de emissão diferentes. Por exemplo, a implementação para suporte do ECF Daruma é uma classe "CFSystemECFDaruma" que implementa a CFSystem.

O CFSystem também apresenta os métodos para impressão de relatórios gerenciais e outros documentos não fiscais.

CFSystemFactory

Esta classe permite que a implementação correta do CFSystem seja retornada de acordo com os parâmetros de configuração passados. Seguindo o pattern "Factory".