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

55 lines
1.5 KiB
PHP

<?php
namespace App\Http\Controllers\Tabulation;
use App\Actions\Tabulation\GetBonusScoreRelatedEntries;
use App\Http\Controllers\Controller;
use App\Models\BonusScore;
use App\Models\Entry;
use function request;
class BonusScoreController extends Controller
{
public function chooseEntry()
{
$method = 'GET';
$formRoute = 'bonus-scores.entryBonusScoreSheet';
$title = 'Enter Bonus Scores';
return view('tabulation.choose_entry', compact('method', 'formRoute', 'title'));
}
public function entryBonusScoreSheet(GetBonusScoreRelatedEntries $getRelatedEntries)
{
$validData = request()->validate([
'entry_id' => 'required|exists:entries,id',
]);
$entry = Entry::find($validData['entry_id']);
$bonusScoreDefinition = $entry->audition->bonusScore->first();
$assignedJudges = $bonusScoreDefinition->judges;
$relatedEntries = $getRelatedEntries($entry);
$existingScores = [];
foreach ($relatedEntries as $related) {
$existingScores[$related->id] = BonusScore::where('entry_id', $related->id)
->with('judge')
->with('entry')
->with('originallyScoredEntry')
->get();
}
return view('tabulation.bonus-score-sheet',
compact('entry', 'bonusScoreDefinition', 'assignedJudges', 'existingScores', 'relatedEntries'));
}
public function saveEntryBonusScoreSheet()
{
}
public function destroyBonusScore()
{
}
}