BISPDV: mudanças entre as edições
Sem resumo de edição |
|||
Linha 9: | Linha 9: | ||
* '''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'''. | * '''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)''. | * '''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. | *: 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. No PDVUI apenas as lógicas de UI são colocadas, como alguma validação de entradas do usuário, formatação e layout de tela, algumas questões de segurança para exibir ou esconder os componentes de tela, etc. | ||
* '''PDVApp''' - Esta classe Singleton é responsável pela inteligência da aplicação. | * '''PDVApp''' - Esta classe Singleton é responsável pela inteligência da aplicação. Através desta classe são realizadas todas as as ações de vendas, configurações, validações, segurança etc. Assim como uma camada "CRUD", esta classe faz a ligação entre as partes do sistema (CFSystem, Impressoras, TEF, Banco de Dados, etc.) e a interface do usuário (PDVUI). | ||
*: Qualquer comando que o PDVUI receba do usuário, deve ser passado e tratado dentro do PDVApp, sincronizado se for o caso. O PDVApp processa e valida o comando. | |||
= CFSystem = | = CFSystem = | ||
Linha 26: | Linha 26: | ||
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". | 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". | ||
= Cupom Fiscal / PDVCupomVO = | = Cupom Fiscal / PDVCupomVO = |
Edição das 20h34min de 27 de setembro de 2016
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. No PDVUI apenas as lógicas de UI são colocadas, como alguma validação de entradas do usuário, formatação e layout de tela, algumas questões de segurança para exibir ou esconder os componentes de tela, etc.
- PDVApp - Esta classe Singleton é responsável pela inteligência da aplicação. Através desta classe são realizadas todas as as ações de vendas, configurações, validações, segurança etc. Assim como uma camada "CRUD", esta classe faz a ligação entre as partes do sistema (CFSystem, Impressoras, TEF, Banco de Dados, etc.) e a interface do usuário (PDVUI).
- Qualquer comando que o PDVUI receba do usuário, deve ser passado e tratado dentro do PDVApp, sincronizado se for o caso. O PDVApp processa e valida o comando.
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".
Cupom Fiscal / PDVCupomVO
Independente do sistema de emissão do cupom fiscal, o cupom fiscal é representado no sistema pelo PDVCupomVO. Para cada tipo de cupom fiscal (emitido por sistemas diferentes) o objeto apresentará um conjunto de atributos obrigatórios.
Ciclo de Vida do Cupom Fiscal
O cupom fiscal segue um ciclo de vida básico representado pela enumeration PDVCUPOMSTATUS, conforme o diagrama abaixo:

![]() |
|