Este projeto foi desenvolvido como parte de uma disciplina de "Programação com Python". O projeto consiste em um sistema de controle de estoque para uma loja de produtos eletrônicos, desenvolvido em Python. Ele permite o cadastro, atualização e consulta de produtos no estoque, além de gerar relatórios detalhados sobre a quantidade e valor dos itens. O sistema também calcula o lucro presumido com base no custo e no preço de venda dos produtos.
- Cadastro de Produtos: Adiciona novos produtos ao estoque, com descrição, código, quantidade, custo e preço de venda.
- Inserção Inicial de Estoque: O sistema processa uma string fornecida com dados iniciais e carrega os produtos no estoque.
- Listagem de Produtos: Exibe uma lista completa dos produtos cadastrados, com todos os seus atributos.
- Ordenação de Produtos por Quantidade: Permite ordenar os produtos por quantidade em ordem crescente ou decrescente.
- Busca de Produtos: Busca produtos por descrição ou código, com parâmetros obrigatoriamente passados por palavra-chave.
- Remoção de Produtos: Remove um produto do estoque com base no código fornecido.
- Consulta de Produtos Esgotados: Lista produtos cuja quantidade no estoque é zero.
- Filtro de Produtos com Baixa Quantidade: Filtra produtos com quantidade abaixo de um limite mínimo, gerando um relatório.
- Atualização de Estoque: Atualiza a quantidade de um produto específico, permitindo aumento ou redução.
- Atualização de Preços: Permite alterar o preço de venda de um produto.
- Validação de Atualizações: Verifica se as atualizações de quantidade e preço são válidas, evitando estoque negativo ou preços de venda inferiores ao custo.
- Cálculo do Valor Total do Estoque: Calcula o valor total dos produtos no estoque.
- Cálculo do Lucro Presumido: Calcula o lucro baseado na diferença entre custo e preço de venda de cada produto.
- Relatório Geral do Estoque: Gera um relatório detalhado no terminal, formatado de forma organizada, com o valor total e o lucro do estoque.
O sistema é baseado no processamento de uma string inicial de estoque, que é convertida em uma lista de dicionários, onde cada dicionário representa um produto. As operações são realizadas por meio de um menu interativo, onde o usuário pode escolher a funcionalidade desejada.