예제 #1
0
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)
예제 #2
0
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)
예제 #3
0
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)
예제 #4
0
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)