- Introdução
- 1. Diagrama E-R - Modelo de banco de dados
- 2. Diagrama de Classe
- 3. Caso de uso
- 4. Tecnologias Utilizadas
- 5. Interface do sistema
- 6. Segurança do Sistema
Este artigo descreve um sistema de gerenciamento para empresas de vendas de peças agrícolas onde é possível efetuar a venda de peças controlando seu estoque com entradas e saídas e uma ferramenta financeira responsável pelo gerenciamento de pagamentos. Abordando também o desenvolvimento do sistema em etapas contendo diagramas de caso de uso, diagrama de classes, modelagem de banco de dados, tecnologias utilizadas. principais telas do sistemas e as camada de segurança do sistema.
A figura 1 representa graficamente as entidades e seus relacionamentos com as de mais entidades do banco de dados.
Figura 1 - Diagrama ER
A figura 2 descreve a estrutura do sistema modelando suas classes descrevendo, seus atributos e as relações entre objetos.
Figura 2 - Diagrama de classe
A figura 3 representa o diagrama de caso de uso e descrevendo como cada “autor” operará o sistema.
Figura 3 - Diagrama de caso de uso
Java - Linguagem de programação utilizada.
Swing - Interface gráfica do java para criação das telas.
JPA - Para persistência dos dados com a implementação do Hibernate.
iText - Usado para geração de notas fiscais e relatórios.
JfreeChart - Usado para geração de gráficos.
MySql - Banco de dados
Nesse tópico serão mostradas as principais telas do sistemas seguindo de suas funcionalidades.
Inicialmente o sistema inicia na tela de “login” figura 4 onde o funcionário irá entrar com seus dados de autenticação.
Figura 4 - Tela de login
A tela de “menu principal” figura 5 serão informadas algumas informações como o dia da semana, data e hora atual e o horário que o usuário entrou no sistema.
Figura 5 - Menu Principal
#### 5.3 Menus No menu principal **figura 6** encontra-se na barra de menu, o menu de manutenção onde contará com a manutenção dos dados do sistema, menu gerenciamento onde contará com parte administrativa e financeira, menu de relatórios onde são gerado os relatórios de dados e apuramentos financeiros e no menu de gráficos onde são mostrados diversos tipos de gráficos e gráficos comparativos, já na tela do sistema encontra-se os botões de “cadastrar cliente”, “Efetuar Venda”, “Consultar” e o botão de “Efetuar Orçamento”. Os botões encontrados na tela de “menu principal” serão todas de “acesso normal”, ou seja, qualquer usuário poderá ter acesso às ações do botões.Figura 6 - Menus
No Botão de “cadastrar cliente” figura 7 é apresentada uma tela de cadastros de usuário nela encontramos um “painel de navegação”, “painel de filtro e ordenação”, “tabela de listagem de registros“, “campos de formulários” e o “painel de ações”.
O painel de navegação tem a utilidade de navegar entre os registro do sistema, alternando entre “primeiro registro”, “registro anterior”, “próximo registro”, “último registro” e “fechar aplicação”.
No painel de “filtro e ordenação” pode-se filtrar a ordem de apresentação dos registros na “tabela de listagem de registros”, a listagem é feita de ordem crescente e pode-se filtrar a pesquisa por nome.
A “tabela de listagem de registro” exibe os registros cadastrados na base de dados do sistema. Através dessa tabela pode-se selecionar um registro para editá-lo ou excluí-lo.
No “campo de formulário” é onde são escritas as informações necessárias para o cadastros de um registro, os campos vem desabilitado por padrão, onde só são habilitado caso um novo registro seja solicitado ou editado.
No “painel de ações” são encontrados os botões “novo”, “editar”, “gravar” e “cancelar”. Por padrão os botões “novo” e “editar” vem habilitados. Assim podendo adicionar um novo registro e editar um registro selecionado.
Figura 7 - Tela de cadastros de cliente
As telas dos itens da manutenção figura8 possui um layout diferente do layout apresentado no do “Cadastros de Cliente”. Embora ambas tenham a mesma implementação nos painéis foi escolhido deixar os layout da tela de “cadastros de cliente” do “menu principal” com uma interface mais amigável para o funcionário poder operar as ações, enquanto nas telas de manutenções serem mais limpas porém mas com o layout menos amigável para facilitar dar manutenção aos arquivos. Nas telas de manutenções foi incluído o botão de excluir registro.
Figura 8 - Tela de manutenção de cliente
O menu de “consultar” figura 9 se deve para fins de consultas, verifica se um produto existe em estoque ou se um cliente e cadastrado no sistema.
Figura 9 - Tela de menu de consulta
O menu de “Efetuar Orçamento” figura 10 possui a finalidade de simular uma venda, ou seja, calcular o valor total de uma compra sem haver necessidade de efetuar uma venda tendo a opção de imprimir a nota de orçamento após concluir o orçamento.
Figura 10 - Tela de efetuar orçamento
O menu de “Efetuar venda” figura 11 efetua uma venda.
Figura 11 - Tela de movimento - venda
Ao concluir a venda automaticamente fará a baixa de estoque e será exibida uma tela de “confirmação de pagamento” figura 12 onde o cliente poder escolher a forma de pagamento desejado.
Figura 12 - Tela de confirmação de pagamento
O menu de “confirmação de pagamento” disponibiliza imprimir a nota fiscal da compra. Ao imprimir a nota fiscal figura 13 um PDF com os dados da compra.
Figura 13 - Relatório da venda
O menu de “pedidos” figura 14 e onde são feitas as listas de produtos que pretendem dar entrada de estoque, são listadas no painel de produto somente os produtos com o “estoque” abaixo do “estoque crítico” assim facilitando quais produtos estão com falta de estoque podendo assim pesquisar na barra de pesquisa por outros produtos já cadastrados ou adicionar novos produtos. Após a conclusão do pedido é habilitado o botão de imprimir os pedidos.
Figura 14 - Tela de requerimento de pedidos
Na entrada de estoque figura 15 e o menu onde são inseridos a entrada de produto na empresa, adicionando o valor ao estoque do produto existente.
Figura 15 - Tela de entrada de produtos
Esse e o menu onde são listadas as contas a serem pagas assim como registrar um pagamento feito a prazo informando o valor pago e assim calculando o “valor restante” como mostrado na figura 16 . Quando o “valor restante” de um pagamento for igual a 0 (zero) automaticamente o status da conta e mudada para “pago” .
Figura 16 - Tela de contas a receber
No menu de “Relatórios” figura 17 se encontram os relatórios de produtos cadastrados, produtos mais vendidos, relatório de vendas diária, apuramento de vendas diária, mensal e anual, balanço anual e relatórios de vendas avançados
Figura 17 - Tela de emissão de relatórios
No menu de “Gráficos” figura 18 são encontrados gráficos de produtos mais vendidos em vários formatos de gráficos, apuramento mensal e anual, gráficos comparativos onde é possível comparar o apuramento de vendas em duas diferentes épocas (mês/ano).
Figura 18 - Tela de geração de gráfico
O menu “Controle de Acesso” figura 19 e onde são concedidos os acessos ao sistema, nele é possível selecionar quais ferramentas do sistema cada usuário terá acesso.
Figura 19 - Tela de controle de acesso
Neste tópico são apresentadas as seguranças e como estão sendo tratados os campos de formulários de maneira que evite possíveis erros de usuários.
SQL Injection é uma técnica onde um atacante cria ou altera comandos SQL existentes para expor dados escondidos, ou sobrescrever dados valiosos, ou ainda executar comandos de sistema perigosos no servidor.
O sistema é implementado com o implementação do hibernate e com especificação JPA, essas ferramentas evitam falhas de seguranças como SQL Injection.
E muito comum formulários aceitar qualquer tipo de valores como preencher letras em campos numéricos ou mesmo esquecer de preencher um campo obrigatório.
Para evitar esses tipo de erro de usuários foi usada uma classe para tratar preenchimentos de campos impedindo de inserir letras em campos numéricos, converter valores de preços para números flutuantes.
Para evitar que um formulário seja concluído com campos obrigatórios vazios foi criado um método “trataCampos” onde verifica se os campos obrigatórios foi preenchidos caso contrário exibirá uma mensagem informando o campos a serem preenchidos e assim impedindo que conclua o formulário sem o preenchimento dos campos.
O MD5 que é um algoritmo de hash de 128 bits unidirecional usado para criptografar senhas. No formulário de funcionários onde é inserido a senha, ao sair do campo automaticamente é gerado o MD5 no campo senha transformando o valor inserido num hash de 32 caracteres.
Na tela de login onde é inserido o login e a senha do usuário o valor do campo senha é convertido no hash e verificando a integridade do login.