tippspiel/pfosten/app/User.php
2017-06-26 17:21:30 +02:00

132 lines
3.7 KiB
PHP

<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
use App\Season;
use App\Payment;
use App\Round;
use App\Game;
use Log;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'name', 'fullname', 'email', 'password',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password', 'remember_token',
];
// Only the current season.
public static function is_season_paid($user_id) {
$retval="Ja";
if (User::payment_date($user_id, Season::getCurrent()->id)==null) { $retval="Nein"; }
return $retval;
}
public static function payment_date($user_id,$season_id) {
$season = Season::getCurrent();
if ($season) {
$payment = Payment::where([
['user_id', '=', $user_id],
['season_id', '=', $season->id]
])->first();
if ($payment) {
if ($payment->paid_date) {
return $payment->paid_date;
}
} else {
$payment= Payment::create([
'user_id' => $user_id,
'season_id'=> $season->id,
'paid_date'=> null
]);
$payment->save();
}
}
return null;
}
// Aufgerechnete Summe. wird $maxround_id mit übergeben, dann wird nur
// bis zur entsprechenden Runde aufsummiert. Das setzt voraus, dass die
// Runden in Reihenfolge eingegeben wurden...
public static function getTotalScore($user_id,$maxround_id=1000000) {
$season = Season::getCurrent();
$rounds = Round::where('season_id','=',$season->id)->get();
$totalScore=0;
foreach($rounds as $round) {
if ($round->id <= $maxround_id) {
$totalScore += User::getRoundScore($user_id, $round->id);
}
}
return $totalScore;
}
public static function getRoundScore($user_id, $round_id) {
$games = Game::where('round_id','=',$round_id)->get();
$totalScore=0;
foreach ($games as $game) {
$tipp = Tipp::getTipp($user_id,$game->id);
$score = Tipp::getScore($tipp->id);
$totalScore+=$score;
}
return $totalScore;
}
// This totally does not belong here. But i am too afraid to put it into
// a separate php file that gets smashed by autoregenerate.
public static function toGermanDate($engDate)
{
$values = explode("-", $engDate);
$year = $values[0];
$month = $values[1];
$day = explode(" ", $values[2])[0];
$timeval = explode(" ", $engDate)[1];
$hour = explode(":", $timeval)[0];
$minute = explode(":", $timeval)[1];
return $day.".".$month.".".$year." ".$hour.":".$minute;
}
public static function toDBDate($deDate)
{
$values = explode(" ", $deDate);
$year = explode(".",$values[0])[2];
$month = explode(".",$values[0])[1];
$day = explode(".", $values[0])[0];
Log::info("values[0]=".$values[0]." day=".$day."count=". count($values));
$hour="00";
$minute="00";
if (count($values)>1) {
$hour = explode(":", $values[1])[0];
$minute = explode(":", $values[1])[1];
}
$dbDate=$year . "-" . $month . "-" . $day . " " . $hour . ":" . $minute . ":00";
Log::info("deDate=".$deDate." converted to:".$dbDate);
return $dbDate;
}
}