From 4b18d4aca014f4ad79c0453ced7cc576257ebdd5 Mon Sep 17 00:00:00 2001 From: structix Date: Wed, 6 Jun 2018 21:32:48 +0200 Subject: [PATCH] Calculate score of all tipps --- .../app/Http/Controllers/PagesController.php | 35 +++++++++++++++++++ tippspiel/app/Tipp.php | 10 ++++++ tippspiel/routes/web.php | 1 + 3 files changed, 46 insertions(+) diff --git a/tippspiel/app/Http/Controllers/PagesController.php b/tippspiel/app/Http/Controllers/PagesController.php index 7a65c73..23fe6e8 100644 --- a/tippspiel/app/Http/Controllers/PagesController.php +++ b/tippspiel/app/Http/Controllers/PagesController.php @@ -49,4 +49,39 @@ class PagesController extends Controller return redirect('/dashboard'); } + + function calculateScore() { + //Score: + //2 --> correct winner chosen + //3 --> correct goal difference + //4 --> correct score + + //Get all Tipps + $tipps = Tipp::all(); + + //Get all Matches + $matches = Match::all(); + + //Iterate over all tipps + foreach ($tipps as $tipp) { + $score = 0; + $match = $matches->find($tipp->matchid)->get(); + $diffmatch = abs($match->resualta - $match->resultb); + $difftipp = abs($tipp->resulta - $tipp->resultb); + + if (winTeam($tipp->resulta, $tipp->resultb) == winTeam($match->resulta, $match->resultb)) { + $score = 2; + } + + if ($diffmatch == $difftipp) { + $score = 3; + } + + if ($tipp->resulta == $match->resulta && $tipp->resultb == $match->resultb) { + $score = 4; + } + + $tipp->update(['score' => $score]); + } + } } diff --git a/tippspiel/app/Tipp.php b/tippspiel/app/Tipp.php index f7b7f65..e2764a0 100755 --- a/tippspiel/app/Tipp.php +++ b/tippspiel/app/Tipp.php @@ -36,4 +36,14 @@ class Tipp extends Model protected $hidden = [ // ]; + + public static function winTeam($resulta, $resultb) { + if ($resulta > $resultb) { + return 'a'; + } else { + //if scores are even, b will be returned + //if match and tipp score is even, they'll both will be b + return 'b'; + } + } } diff --git a/tippspiel/routes/web.php b/tippspiel/routes/web.php index cacedac..8b6ccdf 100644 --- a/tippspiel/routes/web.php +++ b/tippspiel/routes/web.php @@ -20,3 +20,4 @@ Auth::routes(); Route::get('/dashboard', 'PagesController@dashboard'); Route::get('/tipp/create/{matchid}', 'PagesController@createTipp'); Route::post('/tipp/store', 'PagesController@storeTipp'); +Route::get('/calculate', 'PagesController@calculateScore');