get(); return view('admin.recap.selectAudition', compact('auditions')); } public function showRecap(Audition $audition) { $ranker = App::make(RankAuditionEntries::class); $subscores = $audition->scoringGuide->subscores()->orderBy('tiebreak_order')->get(); $judges = $audition->judges; $entries = $ranker->rank('seating', $audition); $recapRows = []; $rowOn = 1; foreach ($entries as $entry) { $recapRows[$rowOn]['rank'] = $entry->raw_rank; $recapRows[$rowOn]['name'] = $entry->student->full_name(true); $recapRows[$rowOn]['school'] = $entry->student->school->name; $recapRows[$rowOn]['entryId'] = $entry->id; foreach ($entry->scoreSheets as $sheet) { foreach ($sheet->subscores as $subscore) { $recapRows[$rowOn]['subscores']['judge'.$sheet->user_id][$subscore['subscore_name']] = $subscore['score']; } } $recapRows[$rowOn]['total_score'] = $entry['score_totals'][0]; $rowOn++; } //dd($recapRows); // Calculate ordinals for each score $subscoreOrdinals = []; $ssOn = 1; foreach ($subscores as $subscore) { $sortedEntries = $entries->sortByDesc(function ($entry) use ($ssOn) { return $entry['score_totals'][$ssOn]; }); $thisOrdinal = 1; foreach ($sortedEntries as $entry) { $subscoreOrdinals['entry'.$entry->id][$ssOn] = $thisOrdinal; $thisOrdinal++; } $ssOn++; } return view('admin.recap.recap', compact('audition', 'subscores', 'judges', 'entries', 'recapRows', 'subscoreOrdinals')); } }