entries() ->whereHas('totalScore') ->with('totalScore') ->with('student.school') ->join('entry_total_scores', 'entries.id', '=', 'entry_total_scores.entry_id') ->orderBy('entry_total_scores.seating_total', 'desc') ->orderByRaw('COALESCE(JSON_EXTRACT(entry_total_scores.seating_subscore_totals, "$[0]"), -999999) DESC') ->orderByRaw('COALESCE(JSON_EXTRACT(entry_total_scores.seating_subscore_totals, "$[1]"), -999999) DESC') ->orderByRaw('COALESCE(JSON_EXTRACT(entry_total_scores.seating_subscore_totals, "$[2]"), -999999) DESC') ->orderByRaw('COALESCE(JSON_EXTRACT(entry_total_scores.seating_subscore_totals, "$[3]"), -999999) DESC') ->orderByRaw('COALESCE(JSON_EXTRACT(entry_total_scores.seating_subscore_totals, "$[4]"), -999999) DESC') ->orderByRaw('COALESCE(JSON_EXTRACT(entry_total_scores.seating_subscore_totals, "$[5]"), -999999) DESC') ->orderByRaw('COALESCE(JSON_EXTRACT(entry_total_scores.seating_subscore_totals, "$[6]"), -999999) DESC') ->orderByRaw('COALESCE(JSON_EXTRACT(entry_total_scores.seating_subscore_totals, "$[7]"), -999999) DESC') ->orderByRaw('COALESCE(JSON_EXTRACT(entry_total_scores.seating_subscore_totals, "$[8]"), -999999) DESC') ->orderByRaw('COALESCE(JSON_EXTRACT(entry_total_scores.seating_subscore_totals, "$[9]"), -999999) DESC') ->select('entries.*') ->get(); // Get unscored entries sorted by draw number $unscored_entries = $audition->entries() ->whereDoesntHave('totalScore') ->whereDoesntHave('flags', function ($query) { $query->where('flag_name', 'no_show'); }) ->whereDoesntHave('flags', function ($query) { $query->where('flag_name', 'failed_prelim'); }) ->with('student.school') ->orderBy('draw_number', 'asc') ->get(); // Get no show entries sorted by draw number $noshow_entries = $audition->entries() ->whereDoesntHave('totalScore') ->whereHas('flags', function ($query) { $query->where('flag_name', 'no_show'); }) ->with('student.school') ->orderBy('draw_number', 'asc') ->get(); // Get failed prelim entries sorted by draw number $failed_prelim_entries = $audition->entries() ->whereDoesntHave('totalScore') ->whereHas('flags', function ($query) { $query->where('flag_name', 'failed_prelim'); }) ->with('student.school') ->orderBy('draw_number', 'asc') ->get(); return view('tabulation.auditionSeating', compact('audition', 'scored_entries', 'unscored_entries', 'noshow_entries', 'failed_prelim_entries') ); } protected function pickRightPanel(Audition $audition, array $seatable) { if ($audition->hasFlag('seats_published')) { $resultsWindow = new GetAuditionSeats; $rightPanel['view'] = 'tabulation.auditionSeating-show-published-seats'; $rightPanel['data'] = $resultsWindow($audition); return $rightPanel; } if ($seatable['allScored'] == false || $seatable['doublersResolved'] == false) { $rightPanel['view'] = 'tabulation.auditionSeating-unable-to-seat-card'; $rightPanel['data'] = $seatable; return $rightPanel; } $rightPanel['view'] = 'tabulation.auditionSeating-right-complete-not-published'; $rightPanel['data'] = $this->auditionService->getSeatingLimits($audition); return $rightPanel; } }