participants()->orderBy('lastname')->orderBy('firstname')->get() as $participant) { $participants[] = $participant->toResource()->toArray($request); }; return $participants; } public function getParticipantsWithIntolerances(Event $event, Request $request) : array { $participants = []; foreach ($event->participants()->whereNotNull('intolerances')->whereNot('intolerances' , '=', '')->get() as $participant) { $participants[] = $participant->toResource()->toArray($request); }; return $participants; } public function getKitchenOverview(Event $event) : array { $data = []; $participants = $event->participants()->get(); for ($cur_date = $event->start_date; $cur_date <= $event->end_date; $cur_date->modify('+1 day')) { $dateKey = $cur_date->format('d.m.Y'); $data[$dateKey] = [ '1' => [], '2' => [], '3' => [], ]; foreach (EatingHabit::all() as $eatingHabit) { $data[$dateKey]['1'][$eatingHabit->slug] = 0; $data[$dateKey]['2'][$eatingHabit->slug] = 0; $data[$dateKey]['3'][$eatingHabit->slug] = 0; } foreach ($participants as $participant) { $eatingHabitSlug = $participant->eating_habit; if ($eatingHabitSlug === null) { continue; } $anreise = $participant->arrival_date; $abreise = $participant->departure_date; if ($anreise->getTimestamp() === $cur_date->getTimestamp()) { switch ((int)$participant->arrival_eating) { case 1: $data[$dateKey]['3'][$eatingHabitSlug]++; break; case 2: $data[$dateKey]['2'][$eatingHabitSlug]++; $data[$dateKey]['3'][$eatingHabitSlug]++; break; case 3: $data[$dateKey]['1'][$eatingHabitSlug]++; $data[$dateKey]['2'][$eatingHabitSlug]++; $data[$dateKey]['3'][$eatingHabitSlug]++; break; } } elseif ($abreise->getTimestamp() === $cur_date->getTimestamp()) { switch ((int)$participant->departure_eating) { case 1: $data[$dateKey]['1'][$eatingHabitSlug]++; break; case 2: $data[$dateKey]['1'][$eatingHabitSlug]++; $data[$dateKey]['2'][$eatingHabitSlug]++; break; case 3: $data[$dateKey]['1'][$eatingHabitSlug]++; $data[$dateKey]['2'][$eatingHabitSlug]++; $data[$dateKey]['3'][$eatingHabitSlug]++; break; } } else { $data[$dateKey]['1'][$eatingHabitSlug]++; $data[$dateKey]['2'][$eatingHabitSlug]++; $data[$dateKey]['3'][$eatingHabitSlug]++; } } } return $data; } }