From ddc0e03abdd37e65510a9f4021332f991dd482bb Mon Sep 17 00:00:00 2001 From: salam Date: Wed, 12 Aug 2026 13:54:04 +0200 Subject: [PATCH] wip --- app/Actions/PlayerPerSeason.php | 62 +++++++++++++++++++ app/Filament/Imports/Helper/ImportDetails.php | 4 ++ app/Filament/Imports/Helper/ImportPlayer.php | 4 ++ app/Filament/Pages/Selections/LoadPlayer.php | 4 ++ 4 files changed, 74 insertions(+) create mode 100644 app/Actions/PlayerPerSeason.php diff --git a/app/Actions/PlayerPerSeason.php b/app/Actions/PlayerPerSeason.php new file mode 100644 index 00000000..341bef5a --- /dev/null +++ b/app/Actions/PlayerPerSeason.php @@ -0,0 +1,62 @@ +select('ss_player_id', 'ss_team_id')->get(); + + foreach ($res as $val) { + + $collection = []; + + $res2 = StatistikoPlayer::with('event')->where('ss_player_id', $val->ss_player_id)->get(); + + foreach ($res2 as $val2) { + + if (!isset($collection[$val2->event->season])) { + $collection[$val2->event->season]['events_played_home'] = 0; + $collection[$val2->event->season]['events_played_away'] = 0; + $collection[$val2->event->season]['minutes_played_home'] = 0; + $collection[$val2->event->season]['minutes_played_away'] = 0; + } + + if ((int) $val2->minutes_played > 0) { + if ($val2->activeteam_id == $val2->event->home_id) { + + $collection[$val2->event->season]['events_played_home'] += 1; + $collection[$val2->event->season]['minutes_played_home'] += $val2->minutes_played; + } else if ($val2->activeteam_id == $val2->event->away_id) { + + $collection[$val2->event->season]['events_played_away'] += 1; + $collection[$val2->event->season]['minutes_played_away'] += $val2->minutes_played; + } + } + } + + foreach ($collection as $season => $row) { + if ($val->ss_team_id && $val->ss_player_id) { + SofaScorePlayerPerSeason::updateOrCreate( + [ + 'ss_player_id' => $val->ss_player_id, + 'ss_team_id' => $val->ss_team_id, + 'season' => $season + ], + [ + 'events_played_home' => $row['events_played_home'], + 'events_played_away' => $row['events_played_away'], + 'minutes_played_home' => $row['minutes_played_home'], + 'minutes_played_away' => $row['minutes_played_away'], + ] + ); + } + } + } + } +} diff --git a/app/Filament/Imports/Helper/ImportDetails.php b/app/Filament/Imports/Helper/ImportDetails.php index 4703dd67..64ba6d1a 100644 --- a/app/Filament/Imports/Helper/ImportDetails.php +++ b/app/Filament/Imports/Helper/ImportDetails.php @@ -2,6 +2,7 @@ namespace App\Filament\Imports\Helper; +use App\Actions\PlayerPerSeason; use App\Models\StatistikoDetail; use Illuminate\Support\Carbon; use Illuminate\Support\LazyCollection; @@ -58,5 +59,8 @@ class ImportDetails } } }); + + /**update statistic player tabel */ + PlayerPerSeason::run(); } } diff --git a/app/Filament/Imports/Helper/ImportPlayer.php b/app/Filament/Imports/Helper/ImportPlayer.php index 3f8b7579..8ed10957 100644 --- a/app/Filament/Imports/Helper/ImportPlayer.php +++ b/app/Filament/Imports/Helper/ImportPlayer.php @@ -2,6 +2,7 @@ namespace App\Filament\Imports\Helper; +use App\Actions\PlayerPerSeason; use App\Models\StatistikoPlayer; use Illuminate\Support\LazyCollection; use Spatie\SimpleExcel\SimpleExcelReader; @@ -111,5 +112,8 @@ class ImportPlayer ); } }); + + /**update statistic player tabel */ + PlayerPerSeason::run(); } } diff --git a/app/Filament/Pages/Selections/LoadPlayer.php b/app/Filament/Pages/Selections/LoadPlayer.php index 313db50d..ac98cbbc 100644 --- a/app/Filament/Pages/Selections/LoadPlayer.php +++ b/app/Filament/Pages/Selections/LoadPlayer.php @@ -37,6 +37,9 @@ class LoadPlayer $matches_count = count($matches); + // dd($matches_count); + + $positions_map = LoadPositions::load(); // needs to run daily for pre-calculaton @@ -63,6 +66,7 @@ class LoadPlayer $colorlevel = round($matches_count / 3); $preferred_foot = $val->details->preferred_foot; + $player_position = ' (Role ' . $val->details->position . ')'; if (in_array($val->details->position, $positions_map['MIDFIELD'])) {