/** * @Put("/{id}") * @Middleware("admin") * * Admin adds a food to the menu. * */ public function addFoodToMenu($id) { $foodId = \Input::get('food_id'); $menu = Menu::find($id); $menuFood = MenuFood::create(['food_id' => $foodId, 'menu_id' => $id]); $menus = Menu::with(['menuFoods', 'menuFoods.menu', 'menuFoods.food'])->where('week', $menu->week)->get(); return $menus; }
public static function getCateringEmailData($week) { $users = \Hungry\Models\User::get(); $allEatenFoodWeek = $users->map(function ($user) use($week) { return $user->eatenFoodForWeek($week); })->collapse(); $allEatenFoodWeek = $allEatenFoodWeek->sortBy(function ($menuFood) { return $menuFood['menu']['date']; }); $menuFoodsByDate = $allEatenFoodWeek->groupBy(function ($menuFood) { if (isset($menuFood->menu)) { return $menuFood->menu->date->format('d.m.Y'); } else { return Menu::find($menuFood['menu']['id'])->date->format('d.m.Y'); } }); // Group by food name $menuFoodsByDate = $menuFoodsByDate->map(function ($menuFoods) { return $menuFoods->groupBy(function ($mf) { if (isset($mf->food)) { return $mf->food->description; } else { return $mf['food']['description']; } }); }); // Calculate counts for each food $menuFoodsByDate = $menuFoodsByDate->map(function ($differentMenuFoods) { return $differentMenuFoods->map(function ($menuFoods) { return $menuFoods->count(); })->sortByDesc(function ($count) { return $count; }); }); // dd($menuFoodsByDate); return $menuFoodsByDate; }