tippspiel/pfosten/app/Http/Controllers/SeasonsController.php

194 lines
6.1 KiB
PHP
Raw Normal View History

2017-06-20 08:43:36 +02:00
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Season;
use App\Round;
2017-08-16 17:30:32 +02:00
use App\Quota;
2017-09-03 09:03:39 +02:00
use App\User;
use App\Game;
use App\Tipp;
use Carbon;
2017-06-20 08:43:36 +02:00
use DB;
2017-06-26 17:21:30 +02:00
use Auth;
use Log;
2017-06-20 08:43:36 +02:00
class SeasonsController extends Controller
{
public function index() {
2017-06-26 17:21:30 +02:00
if (Auth::guest()) { return redirect("/"); }
2017-10-25 10:42:05 +02:00
if (!Auth::user()->admin) { return redirect("/"); }
2017-10-25 10:42:05 +02:00
$seasons = DB::table('seasons')->get();
$currentSeason=Season::getCurrent();
2017-10-25 10:42:05 +02:00
$active_user_count = sizeof( User::getActives() );
2017-08-16 17:30:32 +02:00
2017-10-25 10:42:05 +02:00
$currentSeasonId=-1;
if ($currentSeason) {
2017-11-10 15:32:54 +01:00
$quotas = Quota::getQuotas();
$payouts = Quota::getPayouts();
}
return view('seasons.index', compact('seasons','currentSeason','active_user_count','quotas','payouts'));
2017-06-20 08:43:36 +02:00
}
public function create() {
2017-06-26 17:21:30 +02:00
if (Auth::guest()) { return redirect("/"); }
if (!Auth::user()->admin) { return redirect("/"); }
2017-06-20 08:43:36 +02:00
return view('seasons.create');
}
public function store() {
2017-06-26 17:21:30 +02:00
if (Auth::guest()) { return redirect("/"); }
if (!Auth::user()->admin) { return redirect("/"); }
2017-06-20 08:43:36 +02:00
// Validate form
$this->validate(request(), [
'name' => 'required',
'roundcount' => 'required'
2017-06-20 08:43:36 +02:00
]);
// Create and save the season
$season = Season::create([
'name' => request('name'),
'rounds' => request('roundcount')
2017-06-20 08:43:36 +02:00
]);
$season->save();
Season::setCurrent($season->id);
Log::info('Setting season id=' .$season->id);
2017-11-10 15:32:54 +01:00
Quota::createDefaultQuota();
$nr=1;
$roundcount=request('roundcount');
$seasonId = Season::getCurrent()->id;
2017-12-19 08:23:22 +01:00
$endOfSeason = Carbon\Carbon::now()->addMonth(7);
while($nr<=$roundcount) {
$roundname="Runde ".$nr;
Log::info("Creating: ".$roundname);
$round = Round::create([
'name' => $roundname,
'season_id' => $seasonId
]);
$round->save();
$round_id = $round->id;
$game1 = Game::create([
'round_id' => $round_id,
'team1' => "Mannschaft 1",
'team2' => "Mannschaft 2",
//'kickoff' => User::toDBDate(request('game1_kickoff'))
2017-12-19 08:23:22 +01:00
'kickoff' => $endOfSeason
]);
$game1->save();
$game2 = Game::create([
'round_id' => $round_id,
'team1' => "Mannschaft 3",
'team2' => "Mannschaft 4",
2017-12-19 08:23:22 +01:00
'kickoff' => $endOfSeason
]);
$game2->save();
$game3 = Game::create([
'round_id' => $round_id,
'team1' => "Mannschaft 5",
'team2' => "Mannschaft 6",
2017-12-19 08:23:22 +01:00
'kickoff' => $endOfSeason
]);
$game3->save();
$game4 = Game::create([
'round_id' => $round_id,
'team1' => "Mannschaft 7",
'team2' => "Mannschaft 8",
2017-12-19 08:23:22 +01:00
'kickoff' => $endOfSeason
]);
$game4->save();
// Sign them in
$nr+=1;
2017-06-20 08:43:36 +02:00
2017-06-26 17:21:30 +02:00
}
Log::info("Round creation completed, now setting Tipps");
2017-06-20 08:43:36 +02:00
Tipp::createAllTips();
2017-06-20 08:43:36 +02:00
// Redirect to the home page
return redirect('/seasons');
}
public function store_quota() {
if (Auth::guest()) { return redirect("/"); }
if (!Auth::user()->admin) { return redirect("/"); }
2017-06-20 08:43:36 +02:00
$currentSeason=Season::getCurrent();
// Validate form
$this->validate(request(), [
'round_count' => 'required',
'season_id' => 'required',
'einsatz' => 'required',
'tagessieg' => 'required',
'pokal' => 'required',
'gruenes_trikot' => 'required',
'cleague' => 'required',
'platzierung' => 'required',
'liga' => 'required',
'liga_platz1' => 'required',
'liga_platz2' => 'required',
'liga_platz3' => 'required',
'platz1' => 'required',
'platz2' => 'required',
'platz3' => 'required',
'platz4' => 'required',
'platz5' => 'required',
'platz6' => 'required',
'platz7' => 'required',
'platz8' => 'required',
'platz9' => 'required',
'platz10' => 'required'
]);
// Create and save the season
2017-11-10 15:32:54 +01:00
Quota::setQuota('Runden', request('round_count'));
Quota::setQuota('Einsatz', request('einsatz'));
Quota::setQuota('Tagessieg', request('tagessieg'));
Quota::setQuota('Gruenes Trikot', request('gruenes_trikot'));
Quota::setQuota('Pokal', request('pokal'));
Quota::setQuota('Champions-League', request('cleague'));
2017-11-10 15:32:54 +01:00
Quota::setQuota('Platzierung', request('platzierung'));
Quota::setQuota('Platz 1', request('platz1'));
Quota::setQuota('Platz 2', request('platz2'));
Quota::setQuota('Platz 3', request('platz3'));
Quota::setQuota('Platz 4', request('platz4'));
Quota::setQuota('Platz 5', request('platz5'));
Quota::setQuota('Platz 6', request('platz6'));
Quota::setQuota('Platz 7', request('platz7'));
Quota::setQuota('Platz 8', request('platz8'));
Quota::setQuota('Platz 9', request('platz9'));
Quota::setQuota('Platz 10', request('platz10'));
Quota::setQuota('Liga-Wertung', request('liga'));
Quota::setQuota('Liga Platz 1', request('liga_platz1'));
Quota::setQuota('Liga Platz 2', request('liga_platz2'));
Quota::setQuota('Liga Platz 3', request('liga_platz3'));
Quota::setQuota('Liga Platz 2_1', request('liga_platz2_1'));
Quota::setQuota('Liga Platz 3_1', request('liga_platz3_1'));
// Redirect to the home page
return redirect('/seasons');
}
2017-06-26 17:21:30 +02:00
public function setcurrent($new_season_id) {
if (Auth::guest()) { return redirect("/"); }
if (!Auth::user()->admin) { return redirect("/"); }
Season::setCurrent($new_season_id);
return redirect("/seasons");
}
2017-08-16 17:30:32 +02:00
}