Working on manual payouts

This commit is contained in:
Torsten 2018-01-08 10:09:44 +01:00
parent d15d10a022
commit a9efcc8e15
3 changed files with 99 additions and 64 deletions

View file

@ -515,46 +515,8 @@ class UsersController extends Controller
}
$response = Tipp::getRoundTipps();
$roundtipps = $response['roundtipps'];
$roundData = $response['roundData'];
$user_ids = $response['user_ids'];
$round_ids = $response['round_ids'];
$sortedPayout = Quota::getPayoutPerUser();
$payoutTotal = array();
$cnt=0;
foreach($round_ids as $round_id) {
foreach($user_ids as $user_id) {
$key=$round_id."_".$user_id;
$payout = str_replace(",",".",$roundtipps[$key]['payout']);
if (strlen($payout)==0) { $payout=0; }
if (!array_key_exists($user_id, $payoutTotal)) {
$payoutTotal[$user_id]['amount']=0;
$payoutTotal[$user_id]['name']=$roundtipps[$key]['user_name'];
$payoutTotal[$user_id]['user_id']=$roundtipps[$key]['user_id'];
}
$payoutTotal[$user_id]['amount'] += $payout;
$payout_ranking = $roundtipps[$key]['ranking_payout'];
$payoutTotal[$user_id]['amount'] += $payout_ranking;
}
}
$sortedPayout=array();
foreach($payoutTotal as $payout) {
$payment=array();
$payment['user_id']=$payout['user_id'];
$payment['name']=$payout['name'];
$payment['amount']=$payout['amount'];
array_push($sortedPayout,$payment);
}
usort($sortedPayout,array($this,'cmpPayment'));
//dd($sortedPayout);
return view ('users.payout_ranking_index',compact('sortedPayout'));
}
@ -641,41 +603,19 @@ class UsersController extends Controller
return view('users.no_payment');
}
$response = Tipp::getRoundTipps();
$roundtipps = $response['roundtipps'];
//$roundData = $response['roundData'];
//$user_ids = $response['user_ids'];
$round_ids = $response['round_ids'];
$payouts = array();
$cnt=0;
foreach($round_ids as $round_id) {
$key=$round_id."_".$user_id;
$payout = $roundtipps[$key]['payout'];
$payouts = Quota::getPayoutPerUserDetails($user_id);
if (strlen( $payout )>0) {
$round = Round::where('id','=',$round_id)->first();
$item=array();
$item['roundname']=$round->name . " (Tagessieg)";
$item['payout'] =$payout;
array_push($payouts,$item);
}
if ($roundtipps[$key]['ranking_payout']>0) {
$item=array();
$item['roundname']="Platzierungssieg Rang ".$roundtipps[$key]['rank'];
$item['payout']=$roundtipps[$key]['ranking_payout'];
array_push($payouts,$item);
}
}
$user = User::where('id','=',$user_id)->first();
return view ('users.payout_ranking_detail',compact('payouts','user'));
}
public function gshirt_ranking() {
if (Auth::guest()) { return redirect("/"); }

View file

@ -313,4 +313,92 @@ class Quota extends Model
return $number;
}
public static function getPayoutPerUserDetails($userId) {
$response = Tipp::getRoundTipps();
$roundtipps = $response['roundtipps'];
$round_ids = $response['round_ids'];
$payouts = array();
$cnt=0;
foreach($round_ids as $round_id) {
$key=$round_id."_".$userId;
$payout = $roundtipps[$key]['payout'];
if (strlen( $payout )>0) {
$round = Round::where('id','=',$round_id)->first();
$item=array();
$item['roundname']=$round->name . " (Tagessieg)";
$item['payout'] =$payout;
array_push($payouts,$item);
}
if ($roundtipps[$key]['ranking_payout']>0) {
$item=array();
$item['roundname']="Platzierungssieg Rang ".$roundtipps[$key]['rank'];
$item['payout']=$roundtipps[$key]['ranking_payout'];
array_push($payouts,$item);
}
}
//TODO: Manuelle Payouts hinzufügen
return $payouts;
}
public static function getPayoutPerUser($seasonId=-1)
{
$season = Season::get($seasonId);
$response = Tipp::getRoundTipps();
$roundtipps = $response['roundtipps'];
$user_ids = $response['user_ids'];
$round_ids = $response['round_ids'];
$payoutTotal = array();
$cnt = 0;
foreach ($round_ids as $round_id) {
foreach ($user_ids as $user_id) {
$key = $round_id . "_" . $user_id;
$payout = str_replace(",", ".", $roundtipps[$key]['payout']);
if (strlen($payout) == 0) {
$payout = 0;
}
if (!array_key_exists($user_id, $payoutTotal)) {
$payoutTotal[$user_id]['amount'] = 0;
$payoutTotal[$user_id]['name'] = $roundtipps[$key]['user_name'];
$payoutTotal[$user_id]['user_id'] = $roundtipps[$key]['user_id'];
}
$payoutTotal[$user_id]['amount'] += $payout;
$payout_ranking = $roundtipps[$key]['ranking_payout'];
$payoutTotal[$user_id]['amount'] += $payout_ranking;
}
}
$sortedPayout = array();
foreach ($payoutTotal as $payout) {
$payment = array();
$payment['user_id'] = $payout['user_id'];
$payment['name'] = $payout['name'];
$payment['amount'] = $payout['amount'];
array_push($sortedPayout, $payment);
}
usort($sortedPayout,array('App\Quota','cmpPayment'));
//TODO: Manuelle Payouts hinzufügen
return $sortedPayout;
}
public static function cmpPayment($payment1, $payment2) {
return ($payment1['amount'] < $payment2['amount']);
}
}

View file

@ -49,6 +49,13 @@ class Season extends Model
return $seasons[1];
}
public static function get($seasonId) {
if ($seasonId==-1) return Season::getCurrent();
$season=Season::where('id','=',$seasonId)->first();
return $season;
}
public static function hasQualifications($seasonId=-1) {
return Season::hasLeagueType($seasonId,League::RANK_QUALIFICATION);
}