278 lines
9.3 KiB
PHP
278 lines
9.3 KiB
PHP
<?php
|
|
|
|
namespace App;
|
|
|
|
use Illuminate\Database\Eloquent\Model;
|
|
use Log;
|
|
use DB;
|
|
|
|
class Quota extends Model
|
|
{
|
|
public static function getPayouts() {
|
|
$season_id = Season::getCurrent()->id;
|
|
|
|
$quotas = Quota::getQuotas();
|
|
|
|
$roundCount=Round::getCount();
|
|
|
|
//Quotas fuer Season wegwerfen falls vorhanden und default Wert reinschreiben
|
|
if (sizeof($quotas)==0) {
|
|
Quota::createDefaultQuota();
|
|
$quotas = Quota::getQuotas();
|
|
}
|
|
|
|
$active_user_count = sizeof(User::getActives());
|
|
$euro_pott = $active_user_count * $quotas["Einsatz"];
|
|
|
|
$euro_tagessieg_sum = intval ($euro_pott * ( $quotas["Tagessieg"] / 100 ) );
|
|
|
|
$euro_tagessieg = Quota::get6Divisor( intval($euro_tagessieg_sum / $roundCount));
|
|
|
|
$euro_gruenes_trikot = intval($euro_pott * (($quotas["Gruenes Trikot"] / 100)));
|
|
$euro_gruenes_trikot = Quota::get6Divisor($euro_gruenes_trikot);
|
|
$euro_pokal= intval ($euro_pott * (($quotas["Pokal"] / 100)));
|
|
$euro_pokal= Quota::get6Divisor($euro_pokal);
|
|
|
|
$euro_platzierung = intval ( $euro_pott * (($quotas["Platzierung"] / 100)));
|
|
$tagessieg_rest = $euro_tagessieg_sum - ($euro_tagessieg * $roundCount);
|
|
|
|
//Log::info("Tagessieg Rest=".$tagessieg_rest." €");
|
|
$euro_platzierung += $tagessieg_rest;
|
|
|
|
$euro_platz1 = Quota::get6Divisor(intval( $euro_platzierung * (( $quotas["Platz 1"] / 100))));
|
|
//Log::info("Platz 1=".$euro_platz1);
|
|
$euro_platz2 = Quota::get6Divisor(intval( $euro_platzierung * (( $quotas["Platz 2"] / 100))));
|
|
$euro_platz3 = Quota::get6Divisor(intval( $euro_platzierung * (( $quotas["Platz 3"] / 100))));
|
|
$euro_platz4 = Quota::get6Divisor(intval( $euro_platzierung * (( $quotas["Platz 4"] / 100))));
|
|
$euro_platz5 = Quota::get6Divisor(intval( $euro_platzierung * (( $quotas["Platz 5"] / 100))));
|
|
$euro_platz6 = Quota::get6Divisor(intval( $euro_platzierung * (( $quotas["Platz 6"] / 100))));
|
|
$euro_platz7 = Quota::get6Divisor(intval( $euro_platzierung * (( $quotas["Platz 7"] / 100))));
|
|
$euro_platz8 = Quota::get6Divisor(intval( $euro_platzierung * (( $quotas["Platz 8"] / 100))));
|
|
$euro_platz9 = Quota::get6Divisor(intval( $euro_platzierung * (( $quotas["Platz 9"] / 100))));
|
|
$euro_platz10= Quota::get6Divisor(intval( $euro_platzierung * (( $quotas["Platz 10"] / 100))));
|
|
|
|
$euro_liga=intval($euro_pott *(($quotas["Liga-Wertung"] / 100)));
|
|
$euro_liga_platz1 = Quota::get6Divisor(intval($euro_liga*(($quotas["Liga Platz 1"] / 100))));
|
|
$euro_liga_platz2 = Quota::get6Divisor(intval($euro_liga*(($quotas["Liga Platz 2"] / 100))));
|
|
$euro_liga_platz3 = Quota::get6Divisor(intval($euro_liga*(($quotas["Liga Platz 3"] / 100))));
|
|
|
|
$finaler_rest = $euro_pott - ( $roundCount*$euro_tagessieg + $euro_gruenes_trikot + $euro_pokal + $euro_platz1
|
|
+ $euro_platz2 + $euro_platz3+ $euro_platz4 + $euro_platz5
|
|
+ $euro_platz6 + $euro_platz7 + $euro_platz8 + $euro_platz9 + $euro_platz10
|
|
+ $euro_liga_platz1 + $euro_liga_platz2 + $euro_liga_platz3);
|
|
|
|
$euro_platz1 = $euro_platz1 + $finaler_rest;
|
|
//Log::info("PLatz 1 mit Rest(".$finaler_rest.") = ".$euro_platz1);
|
|
|
|
$payouts=array();
|
|
$payouts['tagessieg'] = $euro_tagessieg;
|
|
$payouts['platz1'] = $euro_platz1;
|
|
$payouts['platz2'] = $euro_platz2;
|
|
$payouts['platz3'] = $euro_platz3;
|
|
$payouts['platz4'] = $euro_platz4;
|
|
$payouts['platz5'] = $euro_platz5;
|
|
$payouts['platz6'] = $euro_platz6;
|
|
$payouts['platz7'] = $euro_platz7;
|
|
$payouts['platz8'] = $euro_platz8;
|
|
$payouts['platz9'] = $euro_platz9;
|
|
$payouts['platz10'] = $euro_platz10;
|
|
$payouts['liga_platz1'] = $euro_liga_platz1;
|
|
$payouts['liga_platz2'] = $euro_liga_platz2;
|
|
$payouts['liga_platz3'] = $euro_liga_platz3;
|
|
$payouts['gruenes_trikot'] = $euro_gruenes_trikot;
|
|
$payouts['pokal'] = $euro_pokal;
|
|
|
|
return $payouts;
|
|
|
|
}
|
|
|
|
// Subfunction of setQuotas
|
|
public static function setQuota($name, $value) {
|
|
$season_id = Season::getCurrent()->id;
|
|
$quota = Quota::all()->where('season_id','=',$season_id)->where('name','=',$name)->first();
|
|
if (!$quota) {
|
|
$quota = new Quota();
|
|
}
|
|
$quota->season_id = $season_id;
|
|
$quota->name = $name;
|
|
$quota->prc = $value;
|
|
|
|
$quota->save();
|
|
}
|
|
/*
|
|
public static function getQuota($quota_name) {
|
|
$quota=Quota::all()->where('season_id','=', $season_id)->where('name','=', $quota_name)->first();
|
|
return $quota['prc'];
|
|
}
|
|
*/
|
|
public static function getQuotas() {
|
|
$season_id = Season::getCurrent()->id;
|
|
$quotas=Quota::all()->where('season_id','=', $season_id);
|
|
$arr=array();
|
|
foreach($quotas as $quota) {
|
|
$arr[$quota['name']]=$quota['prc'];
|
|
}
|
|
return $arr;
|
|
}
|
|
|
|
|
|
public static function setQuotas($quotas) {
|
|
$season_id = Season::getCurrent()->id;
|
|
foreach ($quotas as $key => $quota) {
|
|
setQuota($key, $quota, $season_id);
|
|
}
|
|
}
|
|
|
|
|
|
public static function createDefaultQuota()
|
|
{
|
|
$season_id = Season::getCurrent()->id;
|
|
Log::info('Creating default quotas');
|
|
DB::table('quotas')->where('season_id', '=', $season_id)->delete();
|
|
|
|
|
|
$roundCount=Season::getCurrent()->rounds;
|
|
Log::info("Creating new Quota");
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Einsatz";
|
|
$quota->prc = 40;
|
|
$quota->save();
|
|
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Tagessieg";
|
|
$quota->prc = 50;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Platzierung";
|
|
$quota->prc = 50;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Gruenes Trikot";
|
|
$quota->prc = 0;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Liga-Wertung";
|
|
$quota->prc = 0;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Pokal";
|
|
$quota->prc = 0;
|
|
$quota->save();
|
|
|
|
/// #######################################
|
|
|
|
// Sub-Quotas für den Spielmodus 'Tagessieg'
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Platz 1";
|
|
$quota->order = 1;
|
|
$quota->prc = 21;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Platz 2";
|
|
$quota->order = 2;
|
|
$quota->prc = 17;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Platz 3";
|
|
$quota->order = 3;
|
|
$quota->prc = 13;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Platz 4";
|
|
$quota->order = 4;
|
|
$quota->prc = 10;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Platz 5";
|
|
$quota->order = 5;
|
|
$quota->prc = 9;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Platz 6";
|
|
$quota->order = 6;
|
|
$quota->prc = 8;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Platz 7";
|
|
$quota->order = 7;
|
|
$quota->prc = 7;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Platz 8";
|
|
$quota->order = 8;
|
|
$quota->prc = 6;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Platz 9";
|
|
$quota->order = 9;
|
|
$quota->prc = 5;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Platz 10";
|
|
$quota->order = 10;
|
|
$quota->prc = 4;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Liga Platz 1";
|
|
$quota->order = 10;
|
|
$quota->prc = 60;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Liga Platz 2";
|
|
$quota->order = 10;
|
|
$quota->prc = 25;
|
|
$quota->save();
|
|
|
|
$quota = new Quota;
|
|
$quota->season_id = $season_id;
|
|
$quota->name = "Liga Platz 3";
|
|
$quota->order = 10;
|
|
$quota->prc = 15;
|
|
$quota->save();
|
|
}
|
|
|
|
// Senkt die Zahl solange, bis sie durch 6 teilbar ist,
|
|
// Abrundungsvorgabe für Ausschüttungs-Grundbeträge.
|
|
public static function get6Divisor($number) {
|
|
// Eine Zahl ist durch 6 teilbar, wenn sie durch 2 und 3 teilbar ist.
|
|
while ($number % 2 or $number %3 ) { $number--; }
|
|
return $number;
|
|
}
|
|
|
|
}
|