def ingredient_details(ingredient_name): f = open("stock.pickle", "rb") inventory = pickle.load(f) ingredient = inventory.get_ingredient(ingredient_name) quant = inventory.food_dict[ingredient_name] if request.method == 'POST': if request.form['submit'] == 'update': amount = request.form.get('amount') if amount != "": amount = int(amount) error = inventory.update_stock_quantity(ingredient_name, amount) f = open("stock.pickle", "wb") pickle.dump(inventory, f) ingredient = inventory.get_ingredient(ingredient_name) quant = inventory.food_dict[ingredient_name] if error: return render_template('ingredient_details.html', error=error, ingredient=ingredient, quant=quant) else: return render_template('ingredient_details.html', ingredient=ingredient, quant=quant) elif request.form['submit'] == 'remove': inventory.delete_stock(ingredient_name) f = open("stock.pickle", "wb") pickle.dump(inventory, f) return redirect(url_for('manage_inventory')) return render_template('ingredient_details.html', ingredient=ingredient, quant=quant)
def myCart(): global newOrder if newOrder == 0: return redirect(url_for('home')) f = open("stock.pickle", "rb") inventory = pickle.load(f) f.close f = open("temp_order.pickle", "rb") order = pickle.load(f) f.close() f = open("system.pickle", "rb") try: system = pickle.load(f) except EOFError: f.close() system = OrderingSystem() finally: print(newOrder) if request.method == "POST": if request.form.get("Cancel Order") != None: newOrder = 0 return redirect(url_for('home')) else: try: ID = system.checkout(order[0], order[1], order[2], inventory) except OrderError as error: return render_template('my_cart.html', order=order, inventory=inventory, error=error) else: newOrder = 0 f = open("system.pickle", "wb") pickle.dump(system, f) f = open("stock.pickle", "wb") pickle.dump(inventory, f) f.close return redirect(url_for('myOrder', orderID=ID)) # price calculating logic price = 0 total = {} for main in order[0]: total = merge_dictonaries(total, main) total = merge_dictonaries(total, order[1]) total = merge_dictonaries(total, order[2]) for key in total: stock = inventory.get_ingredient(key) price = price + stock.price * total[key] return render_template('my_cart.html', order=order, inventory=inventory, price=price)
def premade(): f = open("stock.pickle", "rb") inventory = pickle.load(f) f.close() if request.method == 'POST': f = open("temp_order.pickle", "rb") order = pickle.load(f) premade_ingredients = {} for food in inventory.food_list: if food.name == 'Classic Burger' and request.form.get( food.name) != '0': premade_ingredients[food.name] = int( request.form.get(food.name)) elif food.name == 'Classic Wrap' and request.form.get( food.name) != '0': premade_ingredients[food.name] = int( request.form.get(food.name)) errors = check_order_error(None, 'temp', premade_ingredients, inventory) if len(premade_ingredients) == 0: errors["Please add item to cart"] = "Nothing added" temp = {} for food_dict in order[0]: temp = merge_dictonaries(temp, food_dict) temp = merge_dictonaries(temp, premade_ingredients) for key in temp: stock = inventory.get_ingredient(key) if temp[key] * stock.ingredient_size > inventory.get_stock_quantity( key): errors[ "Order exceeds inventory: Only {0} of {1} left in inventory" .format(inventory.get_stock_quantity(key), key, temp[key] * stock.ingredient_size)] = "item out of stock" if errors: return render_template('premade.html', error=errors, ingredients=premade_ingredients, list=inventory.food_list) else: order[0].append(premade_ingredients) f = open("temp_order.pickle", "wb") pickle.dump(order, f) return redirect(url_for('sides')) return render_template('premade.html', list=inventory.food_list)
def drinks(): f = open("stock.pickle", "rb") inventory = pickle.load(f) if request.method == 'POST': f = open("temp_order.pickle", "rb") order = pickle.load(f) f.close() drink_ingredients = {} for food in inventory.food_list: if food.classification == 'drink' and request.form.get( food.name) != '0': drink_ingredients[food.name] = int(request.form.get(food.name)) errors = check_order_error(None, 'temp', drink_ingredients, inventory) temp = {} temp = merge_dictonaries(temp, order[2]) temp = merge_dictonaries(temp, drink_ingredients) for key in temp: stock = inventory.get_ingredient(key) if temp[key] * stock.ingredient_size > inventory.get_stock_quantity( key): errors[ "Order exceeds inventory: Only {0} of {1} left in inventory, t" .format(inventory.get_stock_quantity(key), key, temp[key] * stock.ingredient_size)] = "item out of stock" if errors: return render_template('drinks.html', error=errors, ingredients=drink_ingredients, list=inventory.food_list) else: order[2] = merge_dictonaries(order[2], drink_ingredients) f = open("temp_order.pickle", "wb") pickle.dump(order, f) return redirect(url_for('myCart')) return render_template('drinks.html', list=inventory.food_list)