Deal with bonus scores when calculating total scores.
This commit is contained in:
parent
ee45499e7a
commit
86ec4f4062
|
|
@ -2,6 +2,7 @@
|
|||
|
||||
namespace App\Actions\Tabulation;
|
||||
|
||||
use App\Models\BonusScore;
|
||||
use App\Models\Entry;
|
||||
use App\Models\EntryTotalScore;
|
||||
use App\Models\ScoreSheet;
|
||||
|
|
@ -75,6 +76,11 @@ class TotalEntryScores
|
|||
$total_advancement_subscores[] = $runningTotal / $scoreSheets->count();
|
||||
}
|
||||
$newTotaledScore->advancement_subscore_totals = $total_advancement_subscores;
|
||||
|
||||
// pull in bonus scores
|
||||
$bonusScores = BonusScore::where('entry_id', $entry->id)->sum('score');
|
||||
$newTotaledScore->bonus_score = $bonusScores;
|
||||
|
||||
$newTotaledScore->save();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,52 @@
|
|||
<?php
|
||||
|
||||
namespace App\Observers;
|
||||
|
||||
use App\Actions\Tabulation\TotalEntryScores;
|
||||
use App\Models\BonusScore;
|
||||
|
||||
class BonusScoreObserver
|
||||
{
|
||||
/**
|
||||
* Handle the ScoreSheet "created" event.
|
||||
*/
|
||||
public function created(BonusScore $bonusScore): void
|
||||
{
|
||||
$calculator = app(TotalEntryScores::class);
|
||||
$calculator($bonusScore->entry, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the ScoreSheet "updated" event.
|
||||
*/
|
||||
public function updated(BonusScore $bonusScore): void
|
||||
{
|
||||
$calculator = app(TotalEntryScores::class);
|
||||
$calculator($bonusScore->entry, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the ScoreSheet "deleted" event.
|
||||
*/
|
||||
public function deleted(BonusScore $bonusScore): void
|
||||
{
|
||||
$calculator = app(TotalEntryScores::class);
|
||||
$calculator($bonusScore->entry, true);
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the ScoreSheet "restored" event.
|
||||
*/
|
||||
public function restored(BonusScore $bonusScore): void
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* Handle the ScoreSheet "force deleted" event.
|
||||
*/
|
||||
public function forceDeleted(BonusScore $bonusScore): void
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
||||
|
|
@ -21,7 +21,8 @@ class ScoreSheetObserver
|
|||
*/
|
||||
public function updated(ScoreSheet $scoreSheet): void
|
||||
{
|
||||
//
|
||||
$calculator = app(TotalEntryScores::class);
|
||||
$calculator($scoreSheet->entry, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -29,7 +30,8 @@ class ScoreSheetObserver
|
|||
*/
|
||||
public function deleted(ScoreSheet $scoreSheet): void
|
||||
{
|
||||
//
|
||||
$calculator = app(TotalEntryScores::class);
|
||||
$calculator($scoreSheet->entry, true);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -18,6 +18,7 @@ use App\Http\Controllers\NominationEnsembles\ScobdaNominationEnsembleController;
|
|||
use App\Http\Controllers\NominationEnsembles\ScobdaNominationEnsembleEntryController;
|
||||
use App\Http\Controllers\NominationEnsembles\ScobdaNominationSeatingController;
|
||||
use App\Models\Audition;
|
||||
use App\Models\BonusScore;
|
||||
use App\Models\Entry;
|
||||
use App\Models\EntryFlag;
|
||||
use App\Models\Room;
|
||||
|
|
@ -30,6 +31,7 @@ use App\Models\Student;
|
|||
use App\Models\SubscoreDefinition;
|
||||
use App\Models\User;
|
||||
use App\Observers\AuditionObserver;
|
||||
use App\Observers\BonusScoreObserver;
|
||||
use App\Observers\EntryFlagObserver;
|
||||
use App\Observers\EntryObserver;
|
||||
use App\Observers\RoomObserver;
|
||||
|
|
@ -83,6 +85,7 @@ class AppServiceProvider extends ServiceProvider
|
|||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
BonusScore::observe(BonusScoreObserver::class);
|
||||
Entry::observe(EntryObserver::class);
|
||||
Audition::observe(AuditionObserver::class);
|
||||
Room::observe(RoomObserver::class);
|
||||
|
|
|
|||
Loading…
Reference in New Issue