auditionadmin/app/Http/Controllers/Tabulation/TabulationController.php

48 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers\Tabulation;
use App\Http\Controllers\Controller;
use App\Models\Audition;
use App\Models\Entry;
use App\Models\ScoreSheet;
use App\Services\TabulationService;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Session;
use function compact;
use function dump;
use function redirect;
class TabulationController extends Controller
{
protected $tabulationService;
public function __construct(TabulationService $tabulationService)
{
$this->tabulationService = $tabulationService;
}
public function status()
{
// $auditions = Audition::with(['entries' => function($query) {
// $query->withCount('scoreSheets');
// },'room.judges'])->orderBy('score_order')->get();
$auditions = $this->tabulationService->getAuditionsWithStatus();
return view('tabulation.status',compact('auditions'));
}
public function auditionSeating(Audition $audition)
{
// $entries = $audition->entries()->with(['student','scoreSheets.audition.scoringGuide','audition.room.judges'])->get();
// $entries = $entries->sortByDesc(function ($entry) {
// return $entry->totalScore();
// });
// $entries = $audition->rankedEntries()->load('student.entries.audition','scoreSheets.audition.scoringGuide.subscores');
$entries = $this->tabulationService->auditionEntries($audition->id);
return view('tabulation.auditionSeating',compact('audition','entries'));
}
}