GSHirt Payout Anzeige in Geldrangliste eingebaut

This commit is contained in:
Torsten 2018-01-31 09:12:56 +01:00
parent 3bdb32ae75
commit 52aacdc76f
3 changed files with 87 additions and 22 deletions

View file

@ -9,6 +9,28 @@ use App\ManualPayout;
class Quota extends Model class Quota extends Model
{ {
/*
* "tagessieg"
"platz1" =>
"platz2" =>
"platz3" =>
"platz4" =>
"platz5" =>
"platz6" =>
"platz7" =>
"platz8" =>
"platz9" =>
"platz10" =
"liga_platz
"liga_platz
"liga_platz
"liga_platz
"liga_platz
"gshirt" =>
"pokal" =>
*/
public static function getPayouts() { public static function getPayouts() {
$season_id = Season::getCurrent()->id; $season_id = Season::getCurrent()->id;
@ -313,6 +335,7 @@ class Quota extends Model
$response = Tipp::getRoundTipps(); $response = Tipp::getRoundTipps();
$roundtipps = $response['roundtipps']; $roundtipps = $response['roundtipps'];
$round_ids = $response['round_ids']; $round_ids = $response['round_ids'];
$user_ids = $response['user_ids'];
$payouts = array(); $payouts = array();
$cnt=0; $cnt=0;
@ -338,14 +361,46 @@ class Quota extends Model
} }
} }
// Manuelle Payouts hinzufügen // Gshirt START
if (Season::hasGreenShirtGame() ) {
$gshirtTotalPayout = Quota::getPayouts()['gshirt'];
$leaderCount = 0;
$leaderIds = array();
foreach ($user_ids as $uid) {
Log::info(Round::getLastRoundId());
$key = Round::getLastRoundId() . "_" . $uid;
Log::info("ok");
if ($roundtipps[$key]['gshirt_leader'] == 1) {
$leaderCount += 1;
array_push($leaderIds,$uid);
}
}
$payoutPerLeader = round($gshirtTotalPayout / $leaderCount, 2);
foreach($leaderIds as $leaderId) {
if ($userId == $leaderId) {
$item = array();
$item['roundname']="Grünes Trikot";
$item['payout']=$payoutPerLeader;
array_push($payouts,$item);
}
}
}
// GSHirt End
// Manuelle Payouts hinzufügen
$names = ["pokal" => "Pokal", "liga_platz1"=>"Liga 1, Platz 1",
"liga_platz2"=>"Liga 1, Platz 2 ", "liga_platz3" => "Liga 1, Platz 3",
"liga_platz2_1" =>"Liga 2, Platz 1", "liga_platz3_1"=>"Liga 3, Platz 1"
];
$_payouts = Quota::getPayouts(); $_payouts = Quota::getPayouts();
$winners = ManualPayout::getWinners(); $winners = ManualPayout::getWinners();
foreach ($winners as $quota => $userId) { foreach ($winners as $quota => $uId) {
if (!array_key_exists($quota, $_payouts)) continue; if ($uId != $userId) continue;
$item = array(); $item = array();
$item['roundname']=$quota; $item['roundname']=$names[$quota];
$item['payout']=$_payouts[$quota]; $item['payout']=$_payouts[$quota];
array_push($payouts,$item); array_push($payouts,$item);
} }
@ -365,6 +420,7 @@ class Quota extends Model
$payoutTotal = array(); $payoutTotal = array();
$cnt = 0; $cnt = 0;
foreach ($round_ids as $round_id) { foreach ($round_ids as $round_id) {
foreach ($user_ids as $user_id) { foreach ($user_ids as $user_id) {
$key = $round_id . "_" . $user_id; $key = $round_id . "_" . $user_id;
@ -387,7 +443,24 @@ class Quota extends Model
} }
} }
// Gshirt START
if (Season::hasGreenShirtGame() ) {
$gshirtTotalPayout = Quota::getPayouts()['gshirt'];
$leaderCount = 0;
$leaderIds = array();
foreach ($user_ids as $userId) {
$key = Round::getLastRoundId() . "_" . $userId;
if ($roundtipps[$key]['gshirt_leader'] == 1) {
$leaderCount += 1;
array_push($leaderIds,$userId);
}
}
$payoutPerLeader = round($gshirtTotalPayout / $leaderCount, 2);
foreach($leaderIds as $leaderId) {
$payoutTotal[$leaderId]['amount'] += $payoutPerLeader;
}
}
// GSHirt End
// Manuelle Payouts hinzufügen // Manuelle Payouts hinzufügen
$payouts = Quota::getPayouts(); $payouts = Quota::getPayouts();
@ -395,16 +468,8 @@ class Quota extends Model
Log::info("Winners content:"); Log::info("Winners content:");
foreach ($winners as $quota => $userId) { foreach ($winners as $quota => $userId) {
Log::info($quota." => ".$userId); Log::Info("Manual Payout: quota=".$quota.", Amount=".$payouts[$quota].", userId=".$userId);
if ($userId) $payoutTotal[$userId]['amount'] += $payouts[$quota];
if (!array_key_exists($userId, $winners)) {
Log::info("Key not found: ".$quota);
continue;
}
Log::Info("Manual Payout: quota=".$quota.", Amount=".$payout[$quota].", userId=".$userId);
$payoutTotal[$userId]['amount'] += $payouts[$quota];
} }
$sortedPayout = array(); $sortedPayout = array();
@ -416,10 +481,6 @@ class Quota extends Model
array_push($sortedPayout, $payment); array_push($sortedPayout, $payment);
} }
usort($sortedPayout,array('App\Quota','cmpPayment')); usort($sortedPayout,array('App\Quota','cmpPayment'));
return $sortedPayout; return $sortedPayout;

View file

@ -220,8 +220,11 @@ class Round extends Model
return $roundnames; return $roundnames;
} }
public static function getLastRoundId($seasonId) { public static function getLastRoundId($seasonId=-1) {
$round = Round::where('season_id', '=', $seasonId)->orderBy('id','desc')->first(); // get last entry $season= Season::getCurrent();
if ($seasonId!=-1) { $season = Season::where('id','=',$seasonId)->first(); }
$round = Round::where('season_id', '=', $season->id)->orderBy('id','desc')->first(); // get last entry
return $round->id; return $round->id;
} }

View file

@ -542,7 +542,8 @@ class Tipp extends Model
} }
} }
// C) Set gscore_leader // C) Set gscore_leader for each round
foreach ($round_ids as $round_id) { foreach ($round_ids as $round_id) {
foreach($user_ids as $user_id) { foreach($user_ids as $user_id) {
$key = $round_id . "_" . $user_id; $key = $round_id . "_" . $user_id;