def cadastrarProduto(self, nome, preco, categoria, quantidade): x = DaoEstoque.ler() y = DaoCategoria.ler() h = list(filter(lambda x: x.categoria == categoria, y)) est = list(filter(lambda x: x.produto.nome == nome, x)) if len(h)>0: if len(est) == 0: produto = Produto(nome,preco, categoria) DaoEstoque.salvar(produto, quantidade) print('Produto cadastrado com sucesso') else: print('Produto já existe em estoque') else: print('Categoria inexistente')
def alterarCategoria(self, categoriaAlterar, categoriaAlterada): x = DaoCategoria.ler() estoque = DaoEstoque.ler() cat = list(filter(lambda x: x.categoria == categoriaAlterar, x)) if len(cat) > 0: cat1 = list(filter(lambda x: x.categoria == categoriaAlterada, x)) if len(cat1) == 0: try: x = list(map(lambda x: Categoria(categoriaAlterada) if(x.categoria == categoriaAlterar) else(x), x)) estoque = list(map(lambda x: Estoque(Produto(x.produto.nome, x.produto.preco, categoriaAlterada), x.quantidade) if (x.produto.categoria == categoriaAlterar) else(x),estoque)) with open('estoque.txt', 'w') as arq: for i in estoque: arq.writelines( i.produto.nome + "|" + i.produto.preco + "|" + i.produto.categoria + "|" + str(i.quantidade)) arq.writelines('\n') print('Categoria alterada com sucesso') except: print('Erro') else: print('A categoria para qual está alterando já existe') else: print('A categoria que deseja alterar não existe') with open('categoria.txt', 'w') as arq: for i in x: arq.writelines(i.categoria) arq.writelines('\n')
def removerCategoria(self, categoriaRemover): x = DaoCategoria.ler() print("") cat = list(filter(lambda x: x.categoria == categoriaRemover, x)) if len(cat) <= 0: print('A categoria que deseja remover não existe') else: for i in range(len(x)): if x[i].categoria == categoriaRemover: del x[i] break print('categoria removida com sucesso') with open('categoria.txt', 'w') as arq: for i in x: arq.writelines(i.categoria) arq.writelines('\n') #TODO: colocar sem categoria nos produtos com a categoriaRemover estoque = DaoEstoque.ler() estoque = list(map(lambda x: Estoque(Produto(x.produto.nome, x.produto.preco, "sem categoria"), x.quantidade) if(x.produto.categoria == categoriaRemover) else(x) ,estoque)) with open('estoque.txt', 'w') as arq: for i in estoque: arq.writelines(i.produto.nome + "|" + i.produto.preco + "|" + i.produto.categoria + "|" + str(i.quantidade)) arq.writelines('\n')
def cadastrarVenda(self, nomeProduto, vendedor, comprador, quantidadeVendida): x = DaoEstoque.ler() temp = [] quantidade = False existe = False for i in x: if existe == False: if i.produto.nome == nomeProduto: existe = True if i.quantidade >= quantidadeVendida: quantidade = True i.quantidade = int(i.quantidade) - int(quantidadeVendida) vendido = Venda(Produto(i.produto.nome, i.produto.preco, i.produto.categoria), vendedor, comprador, quantidadeVendida) valorCompra = int(quantidadeVendida) * int(i.produto.preco) DaoVenda.salvar(vendido) temp.append([Produto(i.produto.nome, i.produto.preco, i.produto.categoria), i.quantidade]) arq = open('estoque.txt', 'w') arq.write("") for i in temp: with open('estoque.txt', 'a') as arq: arq.writelines(i[0].nome + "|" + i[0].preco + "|" + i[0].categoria + "|" + str(i[1])) arq.writelines('\n') if existe == False: print("O produto nao existe") return None elif not quantidade: print('A quantidade vendida nao contem no estoque') return None else: return valorCompra
def mostrarEstoque(self): estoque = DaoEstoque.ler() if(len(estoque)==0): print('Estoque vazio!') for i in estoque: print("=========Produto========") print(f"Nome: {i.produto.nome}\n" f"Preço: {i.produto.preco}\n" f"Categotia: {i.produto.categoria}\n" f"Quantidade: {i.quantidade}")
def removerProduto(self, nome): x = DaoEstoque.ler() est = list(filter(lambda x: x.produto.nome == nome, x)) if len(est) > 0: for i in range(len(x)): if x[i].produto.nome == nome: del x[i] break else: print('O produto que deseja remover não existe') with open('estoque.txt', 'w') as arq: for i in x: arq.writelines(i.produto.nome + "|" + i.produto.preco + "|" + i.produto.categoria + "|" + str(i.quantidade)) arq.writelines('\n') print('produto removido com sucesso')
def alterarProduto(self, nomeAlterar, novoNome, novoPreco, novaCategoria, novaQuantidade): x = DaoEstoque.ler() y = DaoCategoria.ler() h = list(filter(lambda x: x.categoria == novaCategoria, y)) if len(h) > 0: est = list(filter(lambda x: x.produto.nome == nomeAlterar, x)) if len(est) > 0: est = list(filter(lambda x: x.produto.nome == novoNome, x)) if len(est) == 0: x = list(map(lambda x: Estoque(Produto(novoNome, novoPreco, novaCategoria), novaQuantidade) if(x.produto.nome == nomeAlterar) else(x),x)) else: print('Produto já cadastrado') else: print('O produto que deseja alterar não existe') with open('estoque.txt', 'w') as arq: for i in x: arq.writelines(i.produto.nome + "|" + i.produto.preco + "|" + i.produto.categoria + "|" + str(i.quantidade)) arq.writelines('\n') print('produto alterado com sucesso') else: print("A categoria informada não existente")