Untitled
unknown
python
2 years ago
2.1 kB
2
Indexable
def next_two_weeks_shopping_list(bakery): ingredients_for_two_weeks = {ingredient['name']: 0 for ingredient in bakery['wholesalePrices']} inventory = {ingredient['name']: get_numbers(ingredient['amount']) * UNITS[ingredient["amount"][-2:]] for ingredient in bakery['inventory']} for sale in bakery['salesOfLastWeek']: for ingredient in INGREDIENTS[sale['name']]: ingredients_for_two_weeks[ingredient['name']] += get_numbers(ingredient['amount']) * sale['amount'] * 2 ingredients_for_two_weeks_without_inventory = {ingredient['name']: (ingredients_for_two_weeks[ingredient['name']] - inventory[ingredient['name']]) for ingredient in bakery['wholesalePrices']} for ingredient in bakery['wholesalePrices']: ingredients_for_two_weeks_without_inventory[ingredient['name']] = ingredients_for_two_weeks_without_inventory[ingredient['name']] * 1.1 ingredients_for_two_weeks_without_inventory[ingredient['name']] = math.ceil(ingredients_for_two_weeks_without_inventory[ingredient['name']] / UNITS[ingredient["amount"][-2:]]) while not ingredients_for_two_weeks_without_inventory[ingredient['name']] % get_numbers(ingredient['amount']) == 0: ingredients_for_two_weeks_without_inventory[ingredient['name']] += 1 prices_for_two_weeks = {ingredient['name']: int(ingredients_for_two_weeks_without_inventory[ingredient['name']] / get_numbers(ingredient['amount'])) * ingredient['price'] for ingredient in bakery['wholesalePrices']} package_units = {" l": " l", "kg": " kg", "pc": " pc"} ingredients_with_units = {ingredient['name']: str(ingredients_for_two_weeks_without_inventory[ingredient['name']]) + package_units[ingredient['amount'][-2:]] for ingredient in bakery['wholesalePrices']} shopping_list = [{"name": ingredient, "amount": ingredients_with_units[ingredient], "totalPrice": prices_for_two_weeks[ingredient]} for ingredient in ingredients_for_two_weeks if prices_for_two_weeks[ingredient] > 0] return json.dumps(sorted(shopping_list, key= lambda x: x['totalPrice'], reverse=True), indent= 2)
Editor is loading...