Também vai mostrar na última aba uma “lista negra” de clientes que cancelaram ou não apareceram em agendamentos, e esta informação pode ser útil para definir se o cliente pode perder o status de fidelizado, perdendo assim os descontos.
Estatísticas por gênero:
No caso das vendas realizadas vai mostrar o total por gênero, baseado nas vendas realizadas, e tem a opção de escolher intervalo de datas. No caso das projeções futuras, a mesma coisa, porém baseado nos agendamentos futuros.
Fidelização de clientes:
O ROOT tem a prerrogativa de fidelizar ou desfidelizar os clientes, de acordo com as regras de negócio estabelecida e também os dados estatísticos que o sistema fornece. Quando o cliente é fidelizado ele possui a possibilidade de receber um desconto especial, que deve ser definido na hora do registro da venda pelo faturamento, esse desconto pode ser de 0 até 20% dependendo da regra de negócio. Caso o cliente não seja fidelizado, no momento da emissão da nota não haverá a opção do desconto, mas caso ele seja fidelizado, no momento da emissão da nota vai aparecer um slider permitindo setar o percentual de desconto para o serviço a ser faturado.
Assim como no projeto da padaria, existem várias opções de consultas de vendas, que podem ser acessadas no menu faturamento, na opção manutenção de notas, são elas:
- Todas as notas (mostra as últimas 50 notas)
- Todas as notas emitidas (mostra as últimas 50 notas emitidas)
- Todas as notas pendentes (mostra as últimas 50 notas pendentes)
- Todas as notas canceladas (mostra as últimas 50 notas canceladas)
- Notas por data da venda (selecionar a data desejada)
- Todas as notas por data de venda
- Notas emitidas por data de venda
- Notas pendentes por data de venda
- Notas canceladas por data de venda
- Notas por cliente (selecionar o cliente desejado)
- Todas as notas por cliente
- Notas emitidas por cliente
- Notas pendentes por cliente
- Notas canceladas por cliente
- Notas por intervalo de notas (informar o intervalo de notas que deseja)
- Todas as notas por intervalo de notas
- Notas emitidas por intervalo de notas
- Notas pendentes por intervalo de notas
- Notas canceladas por intervalo de notas
- Notas por intervalo de datas (informar o intervalo de datas desejado)
- Todas as notas por intervalo de datas
- Notas emitidas por intervalo de datas
- Notas pendentes por intervalo de datas
- Notas canceladas por intervalo de datas
Em resumo, podemos ver que esse sistema é relativamente complexo, e é uma grande evolução em relação ao sistema da oficina e da padaria, pois já possui uma complexidade considerável e grandes evoluções. Neste projeto consegui explorar bastante a linguagem SQL para fazer as consultas e as estatísticas do banco de dados, mas o que achei um pouco mais complexo de desenvolver é a lógica das vendas levando em consideração a fidelização do cliente.
Também esse sistema foi super importante para exercitar a lógica de permissão, do que os usuários podem ou não podem fazer, dependendo de suas permissões, e também a lógica dos registros de vendas e dos dados para formação das estatísticas.
Um grande desafio foi fazer a emissão de nota automaticamente através do agendamento, e também o controle dos agendamentos pendentes que é feito unico e exclusivamente pelo sistema, tanto no login quanto no logout do usuário, levando em consideração suas permissões.
Esse projeto foi um grande desafio, mas consegui a nota máxima ao apresentar ele como projeto integrador no final do curso no Senac.
Quem quiser ver como ficou basta baixar esse projeto, e instalar as dependências (basicamente pyqt5) e o Python na versão 3.x
Para poder cadastrar um usuário e setar suas permissões deve utilizar inicialmente o superusuário ROOT e a senha manager.
Para executar o sistema utilize o arquivo menu.py, que vai abrir a tela de login, onde você poderá logar com o superusuário ROOT, cadastrar um usuário, setar suas permissões e em seguida logar novamente com o usuário que você cadastrou e testar para ver como ficou esse meu projeto final do Jovem Programador Senac módulo 2.