Componentes: Gabriel Ribeiro Santos, Henrique Furtado Wagner, Igor Postai Contezini e Lucas da Silva
Objetivos: Proporcionar um estoque virtual onde facilita todo o processo de qualquer estabelecimento.
Metodologia de desenvolvimento: Com base em recursos aprendidos na matéria, utilizamos de diversos conceitos em python para realização dos tema proposto. O uso de recursos da própria linguagem Python como a biblioteca para manipulação de arquivos externos, além da interação entre os envolvidos durante o desenvolvimento.
import csv
class Produto:
def __init__(self, nome, preco, descricao, marca, quantidade):
self.nome = nome
self.preco = preco
self.descricao = descricao
self.marca = marca
self.quantidade = quantidade
def __cadastrarProduto__(self):
with open('produtos.csv', 'a', newline='', encoding='utf-8') as csvfile:
produtos = csv.writer(csvfile, delimiter=',',quotechar='|')
produtos.writerow([self.nome, self.preco, self.descricao, self.marca, self.quantidade])
return
@staticmethod
def __listaProdutos__():
print(f"{"NOME":<30} {"PREÇO":<10} {"DESCRIÇÃO":<70} {"MARCA":<30} {"QUANTIDADE":<30}")
with open('produtos.csv', newline='', encoding='utf-8') as csvfile:
produtos = csv.reader(csvfile, delimiter=',', quotechar='|')
for linha in produtos:
print(f"{linha[0]:<30} {linha[1]:<10} {linha[2]:<70} {linha[3]:<30} {linha[4]:<30}")
return
@staticmethod
def __removerProduto__(nomeProduto):
linhas = []
with open('produtos.csv', 'r', newline='', encoding='utf-8') as csvfile:
leitor = csv.reader(csvfile, delimiter=',', quotechar='|')
for linha in leitor:
if linha[0].upper() != nomeProduto.upper():
linhas.append(linha)
with open('produtos.csv', 'w', newline='', encoding='utf-8') as csvfile:
produtos = csv.writer(csvfile, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL)
produtos.writerows(linhas)
return
@staticmethod
def __buscarProdutosPorPreco__(precoInicial, precoFinal):
linhas = []
print("\n=======================================")
print(f"{"NOME":<30} {"PREÇO":<10} {"DESCRIÇÃO":<70} {"MARCA":<30} {"QUANTIDADE":<30}")
with open('produtos.csv', 'r', newline='', encoding='utf-8') as csvfile:
leitor = csv.reader(csvfile, delimiter=',', quotechar='|')
for linha in leitor:
if float(linha[1]) >= precoInicial and float(linha[1]) <= precoFinal:
linhas.append(linha)
for linha in linhas:
print(f"{linha[0]:<30} {linha[1]:<10} {linha[2]:<70} {linha[3]:<30} {linha[4]:<30}")
return
class Loja:
def __iniciarLoja__(self):
while True:
print("\n==================================================\n")
print("---- ESTOQUE MAIS VIRTUAL QUE VOCÊ JÁ VIU!!!---- ")
print("\n==================================================")
print("1 - Cadastrar produtos no Estoque.")
print("2 - Listar todos os produtos cadastrados")
print("3 - Remover produtos do Estoque")
print("4 - Pesquisar produtos por preços")
print("5 - Finalizar programa")
print("\n=======================================")
opcaoDoLogin = int(input("Digite sua opção aqui: "))
if opcaoDoLogin == 1:
print("\n=======================================")
print("---- CADASTRO DE PRODUTO ----")
print("=======================================")
nome = input("Digite o nome: ")
preco = float(input("Digite o preço: "))
descricao = input("Digite a descrição: ")
marca = input("Digite a marca: ")
quantidade = int(input("Digite a quantidade: "))
produto = Produto(nome, preco, descricao, marca, quantidade)
produto.__cadastrarProduto__()
if opcaoDoLogin == 2:
print("\n=======================================")
print("---- LISTAGEM DE TODOS OS PRODUTOS ----")
print("=======================================")
Produto.__listaProdutos__()
if opcaoDoLogin == 3:
print("\n=======================================")
print("---- REMOÇÃO DE PRODUTOS ----")
print("=======================================")
nome = input("Digite o nome: ")
Produto.__removerProduto__(nome)
if opcaoDoLogin == 4:
print("\n=======================================")
print("---- LISTAR PRODUTOS POR PREÇO ----")
print("=======================================")
precoInicio = float(input("Preço inicial de: "))
precoFim = float(input("Preço final até: "))
Produto.__buscarProdutosPorPreco__(precoInicio, precoFim)
if opcaoDoLogin == 5:
break
loja = Loja()
loja.__iniciarLoja__()