get(); return view('recap.selectAudition', compact('auditions')); } public function showRecap(Audition $audition) { $ranker = App::make(RankAuditionEntries::class); $subscores = $audition->scoringGuide->subscores()->orderBy('tiebreak_order')->get(); $entries = $ranker->rank('seating', $audition); $recapRows = []; $rowOn = 1; foreach ($entries as $entry) { if ($entry->hasFlag('no_show')) { continue; } $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; $recapRows[$rowOn]['scores'] = $entry['score_totals']; $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] ?? 0; }); $thisOrdinal = 1; foreach ($sortedEntries as $entry) { $subscoreOrdinals['entry'.$entry->id][$ssOn] = $thisOrdinal; $thisOrdinal++; } $ssOn++; } return view('recap.recap', compact('audition', 'subscores', 'entries', 'recapRows', 'subscoreOrdinals')); } }