| 1 | -- recipe.kcal_sum = SUM(kcal per 100g * gramsInRecipe / 100)
|
|---|
| 2 | UPDATE recipe r
|
|---|
| 3 | SET kcal_sum = ROUND(COALESCE((
|
|---|
| 4 | SELECT SUM(i.kcal * rci.ingredient_quantity / 100.0)
|
|---|
| 5 | FROM recipe_contains_ingredient rci
|
|---|
| 6 | JOIN ingredient i ON i.name = rci.ingredient_name
|
|---|
| 7 | WHERE rci.recipe_id = r.id
|
|---|
| 8 | ), 0), 2);
|
|---|
| 9 |
|
|---|
| 10 | -- grocery_list.kcal = kcal bulk-added + kcal single-added
|
|---|
| 11 | UPDATE grocery_list g
|
|---|
| 12 | SET kcal = ROUND(
|
|---|
| 13 | COALESCE((SELECT SUM(r.kcal_sum)
|
|---|
| 14 | FROM grocery_list_bulk_add_ingredient b
|
|---|
| 15 | JOIN recipe r ON r.id = b.recipe_id
|
|---|
| 16 | WHERE b.list_id = g.id), 0)
|
|---|
| 17 | + COALESCE((SELECT SUM(i.kcal * s.buy_quantity / 100.0)
|
|---|
| 18 | FROM grocery_list_single_add_ingredient s
|
|---|
| 19 | JOIN ingredient i ON i.name = s.ingredient_name
|
|---|
| 20 | WHERE s.list_id = g.id), 0)
|
|---|
| 21 | , 2);
|
|---|
| 22 |
|
|---|
| 23 | -- intake_planner.kcal = Portion based
|
|---|
| 24 | UPDATE intake_planner ip
|
|---|
| 25 | SET kcal = ROUND((
|
|---|
| 26 | SELECT SUM(r.kcal_sum / r.servings) -- one portion per saved post
|
|---|
| 27 | FROM intake_planner_save_to_list_post sp
|
|---|
| 28 | JOIN post p ON p.id = sp.post_id
|
|---|
| 29 | JOIN recipe r ON r.id = p.recipe_id
|
|---|
| 30 | WHERE sp.planner_id = ip.id
|
|---|
| 31 | ), 2)
|
|---|
| 32 | WHERE EXISTS (SELECT 1
|
|---|
| 33 | FROM intake_planner_save_to_list_post sp
|
|---|
| 34 | JOIN post p ON p.id = sp.post_id
|
|---|
| 35 | WHERE sp.planner_id = ip.id AND p.recipe_id IS NOT NULL);
|
|---|