Skip to content

Plano de Desenvolvimento da Parte 2 #3

Description

@Asfuri

Banco de Dados

  • Adicionar categoria e fabricado_em_mari na tabela instrumentos
  • Criar tabela clientes (nome, cpf, email, telefone, time_futebol, assiste_one_piece, cidade)
  • Criar tabela funcionarios (nome, cpf, email, telefone, cargo)
  • Criar tabela pedidos (cliente_id FK, funcionario_id FK, data, forma_pagamento, status_pagamento, desconto, total)
  • Criar tabela itens_pedido (pedido_id FK, instrumento_id FK, quantidade, preco_unitario)
  • Criar ENUMs forma_pgto e status_pgto
  • Criar restrições de integridade referencial (FKs com ON DELETE RESTRICT/CASCADE)
  • Criar índices (nome, categoria, fabricado_em_mari, cliente_id, funcionario_id, data_pedido)
  • Criar view vw_vendas_por_vendedor_mes
  • Criar stored procedure efetuar_compra

Classes C++ (Headers)

  • Cliente — atributos + getters/setters + exibir()
  • Funcionario — atributos + getters/setters + exibir()
  • Pedido — atributos + getters/setters + exibir()
  • ItemPedido — atributos + getters/setters
  • Atualizar Instrumento para incluir categoria e fabricado_em_mari

CRUD de Clientes

  • Inserir cliente
  • Alterar cliente
  • Pesquisar por nome
  • Remover cliente
  • Listar todos
  • Exibir um (por ID)
  • Exibir pedidos de um cliente

CRUD de Funcionários

  • Inserir funcionário
  • Alterar funcionário
  • Pesquisar por nome
  • Remover funcionário
  • Listar todos
  • Exibir um (por ID)

Módulo de Vendas

  • Fluxo de nova venda: selecionar cliente → selecionar funcionário/vendedor → adicionar itens ao carrinho → escolher forma de pagamento → chamar CALL efetuar_compra(...) via PQexecParams
  • Validar estoque antes de confirmar (a procedure já faz isso, mas exibir mensagem amigável no C++)
  • Exibir desconto aplicado automaticamente (Flamengo / One Piece / Sousa)
  • Confirmar/recusar pagamento (atualizar status_pagamento)

Filtros de Produtos (expandir pesquisa)

  • Busca por nome (já existe)
  • Filtro por faixa de preço (preço mínimo e máximo)
  • Filtro por categoria
  • Filtro por fabricado em Mari
  • Filtro por estoque < 5 unidades (exclusivo para funcionários logados)

Autenticação Simples

  • "Login" de funcionário por CPF ou ID antes de acessar funções restritas
  • Diferenciar modo cliente (sem login) vs. modo funcionário (com login) no menu

Relatórios

  • Relatório de estoque (já existe — atualizar para incluir categoria)
  • Relatório mensal de vendas por vendedor (consultar a view vw_vendas_por_vendedor_mes)
  • Histórico de pedidos de um cliente

Menu Principal (refatorar)

  • Menu inicial: [^1] Entrar como funcionário / [^2] Continuar como cliente / [^0] Sair
  • Menu funcionário: acesso total (CRUD instrumentos, clientes, funcionários, vendas, relatórios, filtro estoque < 5)
  • Menu cliente: ver produtos, pesquisar, realizar compra, ver histórico próprio

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions