From 3452fc83d8b44f080c1faf7b809d88b10e75cbbc Mon Sep 17 00:00:00 2001 From: salam Date: Thu, 21 May 2026 10:59:27 +0200 Subject: [PATCH] player import add sport_id and activeteam_id --- .../Schemas/StatistikoPlayerForm.php | 1 + app/Filament/Imports/Helper/ImportPlayer.php | 196 ++++++++++++------ app/Models/StatistikoPlayer.php | 1 + 3 files changed, 134 insertions(+), 64 deletions(-) diff --git a/app/Filament/Clusters/StaticData/Resources/StatistikoPlayers/Schemas/StatistikoPlayerForm.php b/app/Filament/Clusters/StaticData/Resources/StatistikoPlayers/Schemas/StatistikoPlayerForm.php index 74e57424..0c3bb747 100644 --- a/app/Filament/Clusters/StaticData/Resources/StatistikoPlayers/Schemas/StatistikoPlayerForm.php +++ b/app/Filament/Clusters/StaticData/Resources/StatistikoPlayers/Schemas/StatistikoPlayerForm.php @@ -18,6 +18,7 @@ class StatistikoPlayerForm ])->schema([ TextInput::make('match_id'), TextInput::make('player_id'), + TextInput::make('activeteam_id'), TextInput::make('playersubstitute_id'), TextInput::make('goals'), TextInput::make('assists'), diff --git a/app/Filament/Imports/Helper/ImportPlayer.php b/app/Filament/Imports/Helper/ImportPlayer.php index 9e2b1bd6..0fd6f36c 100644 --- a/app/Filament/Imports/Helper/ImportPlayer.php +++ b/app/Filament/Imports/Helper/ImportPlayer.php @@ -8,8 +8,11 @@ use Spatie\SimpleExcel\SimpleExcelReader; class ImportPlayer { + public static $vars = ['activeteam_id', 'playersubstitute_id', 'goals', 'assists', 'own_goals', 'shots_on_target', 'shots_off_target', 'shots_blocked', 'fouls', 'was_fouled', 'offsides', 'possessions_lost', 'total_tackles', 'touches', 'total_cross', 'cross_done', 'total_dribbles', 'dribbles_won', 'total_ground_duels', 'total_ground_duels_won', 'total_aerial_duels', 'total_duels_aerial_won', 'total_pass', 'pass', 'total_long_balls', 'long_balls', 'blocked_shots', 'clearances', 'dribbled_past', 'hit_woodwork', 'interceptions', 'key_pass', 'last_man_tackle', 'dispossessed', 'clearance_off_line', 'bcc', 'bcm', 'errors_lead_to_a_goal', 'errors_lead_to_a_shot', 'penalty_committed', 'penalty_miss', 'penalty_save', 'penalty_won', 'saves', 'saves_from_in_box', 'total_runs_out', 'runs_out', 'punches', 'good_high_claim', 'minutes_played', 'lineup', 'minute_event_during_the_match', 'type_event_during_the_match', 'description_event_during_the_match', 'subtype_event_during_the_match', 'player_position', 'playerrating_value', 'tm_player_id']; + public static function run(string $filePath): void { + SimpleExcelReader::create(storage_path('app/public/'.$filePath)) ->getRows() ->chunk(1000) @@ -19,72 +22,137 @@ class ImportPlayer $row = array_values($row); - StatistikoPlayer::where('match_id', $row[0]) - ->where('player_id', $row[1]) - ->update( - [ - 'playersubstitute_id' => $row[2], - 'goals' => $row[3], - 'assists' => $row[4], - 'own_goals' => $row[5], - 'shots_on_target' => $row[6], - 'shots_off_target' => $row[7], - 'shots_blocked' => $row[8], - 'fouls' => $row[9], - 'was_fouled' => $row[10], - 'offsides' => $row[11], - 'possessions_lost' => $row[12], - 'total_tackles' => $row[13], - 'touches' => $row[14], - 'total_cross' => $row[15], - 'cross_done' => $row[16], - 'total_dribbles' => $row[17], - 'dribbles_won' => $row[18], - 'total_ground_duels' => $row[19], - 'total_ground_duels_won' => $row[20], - 'total_aerial_duels' => $row[21], - 'total_duels_aerial_won' => $row[22], - 'total_pass' => $row[23], - 'pass' => $row[24], - 'total_long_balls' => $row[25], - 'long_balls' => $row[26], - 'blocked_shots' => $row[27], - 'clearances' => $row[28], - 'dribbled_past' => $row[29], - 'hit_woodwork' => $row[30], - 'interceptions' => $row[31], - 'key_pass' => $row[32], - 'last_man_tackle' => $row[33], - 'dispossessed' => $row[34], - 'clearance_off_line' => $row[35], - 'bcc' => $row[36], - 'bcm' => $row[37], - 'errors_lead_to_a_goal' => $row[38], - 'errors_lead_to_a_shot' => $row[39], - 'penalty_committed' => $row[40], - 'penalty_miss' => $row[41], - 'penalty_save' => $row[42], - 'penalty_won' => $row[43], - 'saves' => $row[44], - 'saves_from_in_box' => $row[45], - 'total_runs_out' => $row[46], - 'runs_out' => $row[47], - 'punches' => $row[48], - 'good_high_claim' => $row[49], - 'minutes_played' => $row[50], - 'lineup' => $row[51], - 'minute_event_during_the_match' => $row[52], - 'type_event_during_the_match' => $row[53], - 'description_event_during_the_match' => $row[54], - 'subtype_event_during_the_match' => $row[55], - 'player_position' => $row[56], - 'playerrating_value' => $row[57], - 'tm_player_id' => $row[58], - ], - ['upsert' => true], - ); + $update_array = []; + foreach ($this->vars as $key => $name) { + $offset = $key + 3; + $update_array[$name] = $row[$offset]; + } + StatistikoPlayer::where('sport_id', $row[0]) + ->where('match_id', $row[1]) + ->where('player_id', $row[2]) + ->update($update_array, ['upsert' => true]); } }); } } +// sport_id, +// ss_match_id, +// ss_player_id +// activeteam_id, +// ss_playersubstitute_id, +// goals, +// assists, +// own_goals, +// shots_on_target, +// shots_off_target, +// shots_blocked, +// fouls, +// was_fouled, +// offsides, +// possessions_lost, +// total_tackles, +// touches, +// total_cross, +// cross_done, +// total_dribbles, +// dribbles_won, +// total_ground_duels, +// total_ground_duels_won, +// total_aerial_duels, +// total_duels_aerial_won, +// total_pass, +// pass, +// total_long_balls, +// long_balls, +// blocked_shots, +// clearances, +// dribbled_past, +// hit_woodwork, +// interceptions, +// key_pass, +// last_man_tackle, +// dispossessed, +// clearance_off_line, +// bcc, +// bcm, +// errors_lead_to_a_goal, +// errors_lead_to_a_shot, +// penalty_committed, +// penalty_miss, +// penalty_save, +// penalty_won, +// saves, +// saves_from_in_box, +// total_runs_out, +// runs_out, +// punches, +// good_high_claim, +// minutes_played, +// lineup, +// minute_event_during_the_match, +// type_event_during_the_match, +// description_event_during_the_match, +// subtype_event_during_the_match, +// ss_player_position, +// ss_playerrating_value, +// tm_player_id + +// 'activeteam_id' => $row[2], +// 'playersubstitute_id' => $row[3], +// 'goals' => $row[4], +// 'assists' => $row[5], +// 'own_goals' => $row[5], +// 'shots_on_target' => $row[6], +// 'shots_off_target' => $row[7], +// 'shots_blocked' => $row[8], +// 'fouls' => $row[9], +// 'was_fouled' => $row[10], +// 'offsides' => $row[11], +// 'possessions_lost' => $row[12], +// 'total_tackles' => $row[13], +// 'touches' => $row[14], +// 'total_cross' => $row[15], +// 'cross_done' => $row[16], +// 'total_dribbles' => $row[17], +// 'dribbles_won' => $row[18], +// 'total_ground_duels' => $row[19], +// 'total_ground_duels_won' => $row[20], +// 'total_aerial_duels' => $row[21], +// 'total_duels_aerial_won' => $row[22], +// 'total_pass' => $row[23], +// 'pass' => $row[24], +// 'total_long_balls' => $row[25], +// 'long_balls' => $row[26], +// 'blocked_shots' => $row[27], +// 'clearances' => $row[28], +// 'dribbled_past' => $row[29], +// 'hit_woodwork' => $row[30], +// 'interceptions' => $row[31], +// 'key_pass' => $row[32], +// 'last_man_tackle' => $row[33], +// 'dispossessed' => $row[34], +// 'clearance_off_line' => $row[35], +// 'bcc' => $row[36], +// 'bcm' => $row[37], +// 'errors_lead_to_a_goal' => $row[38], +// 'errors_lead_to_a_shot' => $row[39], +// 'penalty_committed' => $row[40], +// 'penalty_miss' => $row[41], +// 'penalty_save' => $row[42], +// 'penalty_won' => $row[43], +// 'saves' => $row[44], +// 'saves_from_in_box' => $row[45], +// 'total_runs_out' => $row[46], +// 'runs_out' => $row[47], +// 'punches' => $row[48], +// 'good_high_claim' => $row[49], +// 'minutes_played' => $row[50], +// 'lineup' => $row[51], +// 'minute_event_during_the_match' => $row[52], +// 'type_event_during_the_match' => $row[53], +// 'description_event_during_the_match' => $row[54], +// 'subtype_event_during_the_match' => $row[55], +// 'player_position' => $row[56], +// 'playerrating_value' => $row[57], +// 'tm_player_id' => $row[58], diff --git a/app/Models/StatistikoPlayer.php b/app/Models/StatistikoPlayer.php index ce10a37e..3f70427f 100644 --- a/app/Models/StatistikoPlayer.php +++ b/app/Models/StatistikoPlayer.php @@ -13,6 +13,7 @@ class StatistikoPlayer extends Model protected $fillable = [ 'match_id', 'player_id', + 'activeteam_id', 'playersubstitute_id', 'goals', 'assists',