From 7e30e93f90acce8c17af359b82c66a9d3f28015d Mon Sep 17 00:00:00 2001 From: salam Date: Mon, 31 Aug 2026 07:03:58 +0200 Subject: [PATCH] fix season --- .../Pages/Selections/Helper/GetSeason.php | 29 +++++++-------- app/Filament/Pages/Selections/LoadSeasons.php | 35 ++++++++++--------- app/Filament/Pages/Statistic.php | 9 +++-- app/Filament/Widgets/Data/LoadEvents.php | 25 +++++++------ .../Data/LoadEvents/LoadEventsQuery.php | 6 ++-- 5 files changed, 56 insertions(+), 48 deletions(-) diff --git a/app/Filament/Pages/Selections/Helper/GetSeason.php b/app/Filament/Pages/Selections/Helper/GetSeason.php index 0145efc1..b1780787 100644 --- a/app/Filament/Pages/Selections/Helper/GetSeason.php +++ b/app/Filament/Pages/Selections/Helper/GetSeason.php @@ -2,24 +2,25 @@ namespace App\Filament\Pages\Selections\Helper; -use App\Models\SofaScoreCategory; +use Illuminate\Support\Carbon; class GetSeason { - public static function load(array $season, int|null $sofascore_category_id) + public static function load(array|null $season, string|null $seasonmode) { - if (!is_array($season) || !count($season)) { - if ($sofascore_category_id) { - $season_mode = SofaScoreCategory::where('id', $sofascore_category_id)->value('season_mode'); - if ($season_mode == 'halfyear') { - if ((int) date('m') > 7) - $season[] = date('y') . '/' . date('y', strtotime('+1 year')); - else - $season[] = date('y', strtotime('-1 year')) . '/' . date('y'); - } - else { - $season[] = date('Y'); - } + if (!\is_array($season) || !\count($season)) { + + $date = Carbon::now(); + + $season = []; + if ($seasonmode == 'halfyear') { + if ((int) date('m') > 7) + $tmp = $date->format('y') . '/' . $date->format('y') + 1; + else + $tmp = $date->format('y') - 1 . '/' . $date->format('y'); + $season[$tmp] = $tmp; + } else { + $season[$date->year] = $date->year; } } diff --git a/app/Filament/Pages/Selections/LoadSeasons.php b/app/Filament/Pages/Selections/LoadSeasons.php index c12ef7c0..6b6c8da8 100644 --- a/app/Filament/Pages/Selections/LoadSeasons.php +++ b/app/Filament/Pages/Selections/LoadSeasons.php @@ -2,30 +2,33 @@ namespace App\Filament\Pages\Selections; -use App\Models\SofaScoreCategory; -use App\Models\StatistikoEvent; +use Carbon\CarbonPeriod; +use Illuminate\Support\Carbon; class LoadSeasons { - public static function load($sofascore_category_id) + public static function load($seasonmode) { - if(!$sofascore_category_id){ + if (!$seasonmode) { return []; } - - $season_mode = SofaScoreCategory::where('id', $sofascore_category_id)->value('season_mode'); - $arr = []; - if($season_mode == 'fullyear') { - $arr[2024] = 2024; - $arr[2025] = 2025; - $arr[2026] = 2026; - }else { - $arr['24/25'] = '24/25'; - $arr['25/26'] = '25/26'; - $arr['26/27'] = '26/27'; + $season = []; + $period = CarbonPeriod::create(Carbon::now()->year(2024), '1 year', Carbon::now()); + foreach ($period as $date) { + if ($seasonmode == 'halfyear') { + if ((int) date('m') > 7) + $tmp = $date->format('y') . '/' . $date->format('y') + 1; + else + $tmp = $date->format('y') - 1 . '/' . $date->format('y'); + $season[$tmp] = $tmp; + } else { + $season[$date->year] = $date->year; + } } - return $arr; + $season = array_reverse($season); + + return $season; } } diff --git a/app/Filament/Pages/Statistic.php b/app/Filament/Pages/Statistic.php index f1e56730..3dac41ec 100644 --- a/app/Filament/Pages/Statistic.php +++ b/app/Filament/Pages/Statistic.php @@ -7,12 +7,14 @@ use App\Actions\LoadStatisticFixturesLeaguesOptions; use App\Actions\LoadStatisticFixturesMatchOptions; use App\Filament\Pages\Selections\LoadPlayer; use App\Filament\Pages\Selections\LoadSeasons; +use App\Models\SofaScoreCategory; use App\Models\SofaScoreRosa; use App\Models\StatisticFixtures; use BackedEnum; use BezhanSalleh\FilamentShield\Traits\HasPageShield; use Filament\Actions\Action; use Filament\Forms\Components\DatePicker; +use Filament\Forms\Components\Hidden; use Filament\Forms\Components\Radio; use Filament\Forms\Components\Select; use Filament\Forms\Components\Slider; @@ -104,6 +106,7 @@ class Statistic extends BaseDashboard ]) ->columnSpanFull() ->schema([ + Hidden::make('seasonmode'), Select::make('sofascore_category_id') ->live() ->preload() @@ -113,7 +116,8 @@ class Statistic extends BaseDashboard ->hiddenLabel() ->options(fn() => LoadSofaScoreCategory::load()) ->placeholder('Country') - ->afterStateUpdated(function (callable $set) { + ->afterStateUpdated(function (callable $set, $state) { + $set('seasonmode', SofaScoreCategory::where('id', $state)->value('season_mode')); $set('league_id', null); $set('match_id', null); $set('team_id', null); @@ -133,7 +137,6 @@ class Statistic extends BaseDashboard $set('match_id', null); $set('team_id', null); $set('ss_player_id', null); - $set('season', null); }), Select::make('match_id') ->live() @@ -355,7 +358,7 @@ class Statistic extends BaseDashboard ->hidden(fn(Get $get) => $get('season_or_date') == 'date' || $get('similar_past_matches') != 'none') ->prefixIcon('phosphor-calendar-star-fill') ->options(function (Get $get) { - return LoadSeasons::load($get('sofascore_category_id')); + return LoadSeasons::load($get('seasonmode')); }) ->afterStateUpdated(function (callable $set) { $set('ss_player_id', null); diff --git a/app/Filament/Widgets/Data/LoadEvents.php b/app/Filament/Widgets/Data/LoadEvents.php index 2dfd3643..4838fdb5 100644 --- a/app/Filament/Widgets/Data/LoadEvents.php +++ b/app/Filament/Widgets/Data/LoadEvents.php @@ -17,6 +17,7 @@ class LoadEvents $team_id = (int) $filter['team_id'] ?? 0; $statistic_type = $filter['statistic_type'] ?? 'gls'; $team_position = $filter['team_position']; + $seasonmode = $filter['seasonmode']; $accuracy = (float) $filter['accuracy'] ?? 0.5; $similar_past_matches = $filter['similar_past_matches']; @@ -52,7 +53,7 @@ class LoadEvents if ($similar_past_matches != 'none') { $team_id = 0; - + $team_position = ''; $exp_handicap = $match->exp_away - $match->exp_home; @@ -75,8 +76,10 @@ class LoadEvents /** * STATTISTIC DATA */ + $res = LoadEventsQuery::load($filter, $handicap_range, $total_range, $match); + $dataset_home = []; $dataset_away = []; $dataset_exp_home = []; @@ -104,7 +107,7 @@ class LoadEvents $playing_date[] = $value['starttime']->format('Y-m-d H:i'); - $results_per_event[] = $value['val_home'].' : '.$value['val_away']; + $results_per_event[] = $value['val_home'] . ' : ' . $value['val_away']; $val_home = (int) $value['val_home']; $val_away = (int) $value['val_away']; @@ -203,7 +206,7 @@ class LoadEvents } } if (isset($val_home) && isset($val_away)) { - $events[] = $value['home'].' vs '.$value['away']; + $events[] = $value['home'] . ' vs ' . $value['away']; if ($team_id == $value['home_id']) { $dataset_home[] = $val_home; @@ -223,16 +226,16 @@ class LoadEvents } else { if ($team_id == $match->home->ss_team_id) { $label1 = $match->home->ss_team_name; - }else { + } else { $label1 = $match->away->ss_team_name; } $label2 = 'Opponent'; } } else { - $label1 = $match->home->ss_team_name.' +'; - $label2 = $match->home->ss_team_name.' -'; - $label3 = $match->away->ss_team_name.' +'; - $label4 = $match->away->ss_team_name.' -'; + $label1 = $match->home->ss_team_name . ' +'; + $label2 = $match->home->ss_team_name . ' -'; + $label3 = $match->away->ss_team_name . ' +'; + $label4 = $match->away->ss_team_name . ' -'; $dataset_home2 = []; $dataset_away2 = []; @@ -272,7 +275,7 @@ class LoadEvents } } $n = max(count($dataset_home), count($dataset_away), count($dataset_away2), count($dataset_home2)); - if($n){ + if ($n) { $f = array_first($labels); $step = round($f / $n); $labels = []; @@ -330,7 +333,7 @@ class LoadEvents ]; if ($team_id && $statistic_type == 'gls') { $data['datasets'][] = [ - 'label' => 'Goals '.$label1, + 'label' => 'Goals ' . $label1, 'events' => $events, 'playing_date' => $playing_date, 'results_per_event' => $results_per_event, @@ -342,7 +345,7 @@ class LoadEvents 'hidden' => true, ]; $data['datasets'][] = [ - 'label' => 'Goals '.$label2, + 'label' => 'Goals ' . $label2, 'events' => $events, 'playing_date' => $playing_date, 'results_per_event' => $results_per_event, diff --git a/app/Filament/Widgets/Data/LoadEvents/LoadEventsQuery.php b/app/Filament/Widgets/Data/LoadEvents/LoadEventsQuery.php index 2763ecaf..a377c7cd 100644 --- a/app/Filament/Widgets/Data/LoadEvents/LoadEventsQuery.php +++ b/app/Filament/Widgets/Data/LoadEvents/LoadEventsQuery.php @@ -13,7 +13,7 @@ class LoadEventsQuery $league_id = (int) $filter['league_id'] ?? 0; $team_id = (int) $filter['team_id'] ?? 0; $season = $filter['season']; - $sofascore_category_id = $filter['sofascore_category_id'] ?? 0; + $seasonmode = $filter['seasonmode']; $season_or_date = $filter['season_or_date']; $start = $filter['start_date'] ?? 0; $end = $filter['end_date'] ?? 0; @@ -37,9 +37,7 @@ class LoadEventsQuery // $team_id = 0; // } - $season = GetSeason::load($season, $sofascore_category_id); - - // dd($season); + $season = GetSeason::load($season, $seasonmode); /** * IF WITH PLAYER