Account for entry flags when ranking

This commit is contained in:
Matt Young 2024-07-13 13:17:25 -05:00
parent 93c970c26e
commit 83ee56717d
1 changed files with 15 additions and 1 deletions

View File

@ -8,6 +8,7 @@ use App\Exceptions\TabulationException;
use App\Models\Audition; use App\Models\Audition;
use Illuminate\Database\Eloquent\Collection; use Illuminate\Database\Eloquent\Collection;
use Illuminate\Support\Facades\Cache; use Illuminate\Support\Facades\Cache;
use function is_numeric;
class RankAuditionEntries class RankAuditionEntries
{ {
@ -60,12 +61,25 @@ class RankAuditionEntries
$rank = 1; $rank = 1;
foreach ($entries as $entry) { foreach ($entries as $entry) {
$entry->rank = $rank; $entry->rank = $rank;
$rank++; if ($mode === 'seating') {
if ($entry->hasFlag('declined')) {
$entry->rank = 'Declined';
} elseif ($entry->hasFlag('no_show')) {
$entry->rank = 'No Show';
} elseif ($entry->hasFlag('failed_prelim')) {
$entry->rank = 'Failed Prelim';
}
}
if (is_numeric($entry->rank)) {
$rank++;
}
} }
return $entries; return $entries;
} }
protected function basicValidation($mode, Audition $audition): void protected function basicValidation($mode, Audition $audition): void
{ {
if ($mode !== 'seating' && $mode !== 'advancement') { if ($mode !== 'seating' && $mode !== 'advancement') {