invoiceService = $invoiceService; } public function profile() { return view('dashboard.profile'); } public function dashboard( CalculateEntryScore $scoreCalc, GetEntrySeatingResult $resultGenerator, RankAuditionEntries $ranker ) { $entries = Auth::user()->entries; $entries = $entries->filter(function ($entry) { return $entry->audition->hasFlag('seats_published'); }); $entries = $entries->sortBy(function ($entry) { return $entry->student->full_name(true); }); $scores = []; $results = []; $ranks = []; foreach ($entries as $entry) { $results[$entry->id] = $resultGenerator->getResult($entry); if (! $entry->hasFlag('no_show') && ! $entry->hasFlag('failed_prelim')) { $scores[$entry->id] = $scoreCalc->calculate('seating', $entry); $auditionResults = $ranker->rank('seating', $entry->audition); $ranks[$entry->id] = $auditionResults->firstWhere('id', $entry->id)->raw_rank; } } return view('dashboard.dashboard', compact('entries', 'scores', 'results', 'ranks')); } public function my_school() { if (Auth::user()->school) { return redirect('/schools/'.Auth::user()->school->id); } $possibilities = Auth::user()->possibleSchools(); if (count($possibilities) < 1) { return view('schools.create'); } $schools = School::orderBy('name')->get(); return view('dashboard.select_school', ['possibilities' => $possibilities, 'schools' => $schools]); } public function my_invoice() { if (! Auth::user()->school_id) { return redirect()->route('dashboard')->with('error', 'You do not have a school to get an invoice for'); } $invoiceData = $this->invoiceService->allData(Auth::user()->school_id); $school = Auth::user()->school; return view('dashboard.invoice', compact('school', 'invoiceData')); } }