81 lines
2.8 KiB
PHP
81 lines
2.8 KiB
PHP
<?php
|
|
|
|
namespace App\Filament\Widgets\PlayerProps;
|
|
|
|
use App\Models\StatistikoConfig;
|
|
use App\Models\StatistikoEvent;
|
|
|
|
class Expectations
|
|
{
|
|
public static function load(int $team_id, int $count_player)
|
|
{
|
|
$bettypes = ['gls', 'fls', 'ofs', 'crd', 'snt', 'tsh'];
|
|
$data = StatistikoEvent::where(function ($query) use ($team_id) {
|
|
return $query->orWhere('home_id', $team_id)
|
|
->orWhere('away_id', '=', $team_id);
|
|
})->get();
|
|
|
|
$count_events = $data->count();
|
|
$count_events = ! $count_events ? 1 : $count_events;
|
|
|
|
$config = StatistikoConfig::pluck('value', 'varname')->toArray();
|
|
$work = [];
|
|
foreach ($config as $key => $value) {
|
|
$work[$key] = 0;
|
|
}
|
|
|
|
foreach ($data as $value) {
|
|
foreach ($bettypes as $type) {
|
|
if ($value['home_id'] == $team_id) {
|
|
$work[$type.'_home_made_total'] += $value[$type.'_h'];
|
|
// $work[$type.'_home_made_home'] += $value[$type.'_h'];
|
|
$work[$type.'_home_got_total'] += $value[$type.'_a'];
|
|
// $work[$type.'_home_got_home'] += $value[$type.'_a'];
|
|
} elseif ($value['away_id'] == $team_id) {
|
|
$work[$type.'_away_made_total'] += $value[$type.'_a'];
|
|
// $work[$type.'_away_made_home'] += $value[$type.'_a'];
|
|
$work[$type.'_away_got_total'] += $value[$type.'_h'];
|
|
// $work[$type.'_away_got_home'] += $value[$type.'_h'];
|
|
}
|
|
}
|
|
}
|
|
|
|
$config = StatistikoConfig::pluck('value', 'varname')->toArray();
|
|
foreach ($config as $key => $value) {
|
|
$work[$key] = $work[$key] * $value;
|
|
}
|
|
|
|
$aspettativa = [];
|
|
foreach ($work as $key => $value) {
|
|
if ($value) {
|
|
$aspettativa[$key] = round($value /= $count_events, 1);
|
|
}
|
|
}
|
|
|
|
$finals = [];
|
|
foreach ($bettypes as $type) {
|
|
$finals[$type]['home'] = 0;
|
|
$finals[$type]['away'] = 0;
|
|
}
|
|
foreach ($aspettativa as $key => $value) {
|
|
foreach ($bettypes as $type) {
|
|
if (strpos($key, $type) !== false) {
|
|
if (strpos($key, 'home') !== false) {
|
|
$finals[$type]['home'] += $value;
|
|
}
|
|
if (strpos($key, 'away') !== false) {
|
|
$finals[$type]['away'] += $value;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
foreach ($finals as $key => $value) {
|
|
$finals[$key]['home'] = $value['home'] * $count_player / 10;
|
|
$finals[$key]['away'] = $value['away'] * $count_player / 10;
|
|
}
|
|
|
|
return $finals;
|
|
}
|
|
}
|