From 1905440212271e55b420fce0b658a0b47a2c9cdc Mon Sep 17 00:00:00 2001 From: salam Date: Thu, 9 Jul 2026 17:52:10 +0200 Subject: [PATCH] sql fixes --- .../Resources/Events/Tables/EventsTable.php | 150 ++++++++++-------- app/Livewire/MapperRight.php | 10 +- 2 files changed, 88 insertions(+), 72 deletions(-) diff --git a/app/Filament/Resources/Events/Tables/EventsTable.php b/app/Filament/Resources/Events/Tables/EventsTable.php index 4c7f208f..001af435 100644 --- a/app/Filament/Resources/Events/Tables/EventsTable.php +++ b/app/Filament/Resources/Events/Tables/EventsTable.php @@ -69,106 +69,106 @@ class EventsTable ->columns([ IconColumn::make('sport.icon') ->label('') - ->icon(fn($record) => $record->sport->icon) - ->tooltip(fn($record) => $record->id) + ->icon(fn ($record) => $record->sport->icon) + ->tooltip(fn ($record) => $record->id) ->visibleFrom('lg'), MatchIds::make('ids')->grow(false)->visibleFrom('xl') - ->visible(fn() => auth()->user()->hasRole('super_admin')), + ->visible(fn () => auth()->user()->hasRole('super_admin')), ColumnStarttime::make('start'), TextColumn::make('country.name') ->label('League') ->wrap() - ->hidden(fn() => auth()->user()->sport_id == 5) + ->hidden(fn () => auth()->user()->sport_id == 5) ->color('gray') - ->icon(fn($record) => $record->country?->icon) - ->description(fn($record) => ucwords($record->group?->name)), + ->icon(fn ($record) => $record->country?->icon) + ->description(fn ($record) => ucwords($record->group?->name)), EventColumn::make('event'), - TooltipOdds::make('ml')->bettype('odds_2ways')->label('')->visible(fn() => in_array('odds_2ways', self::$bettype_settings)), + TooltipOdds::make('ml')->bettype('odds_2ways')->label('')->visible(fn () => in_array('odds_2ways', self::$bettype_settings)), ColumnOdds::make('odds_2ways')->bettype('odds_2ways') - ->visible(fn() => in_array('odds_2ways', self::$bettype_settings)) + ->visible(fn () => in_array('odds_2ways', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('ML'), - TooltipOdds::make('mls1')->bettype('odds_2ways_s1')->label('')->visible(fn() => in_array('odds_2ways_s1', self::$bettype_settings)), + TooltipOdds::make('mls1')->bettype('odds_2ways_s1')->label('')->visible(fn () => in_array('odds_2ways_s1', self::$bettype_settings)), ColumnOdds::make('odds_2ways_s1')->bettype('odds_2ways_s1') - ->visible(fn() => in_array('odds_2ways_s1', self::$bettype_settings)) + ->visible(fn () => in_array('odds_2ways_s1', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('ML S1'), - TooltipOdds::make('1x2')->bettype('odds_3ways')->label('')->visible(fn() => in_array('odds_3ways', self::$bettype_settings)), + TooltipOdds::make('1x2')->bettype('odds_3ways')->label('')->visible(fn () => in_array('odds_3ways', self::$bettype_settings)), ColumnOdds::make('odds_3ways') ->bettype('odds_3ways') - ->visible(fn() => in_array('odds_3ways', self::$bettype_settings)) + ->visible(fn () => in_array('odds_3ways', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('1X2'), - TooltipOdds::make('1x2ht')->bettype('odds_3ways_ht')->label('')->visible(fn() => in_array('odds_3ways_ht', self::$bettype_settings)), + TooltipOdds::make('1x2ht')->bettype('odds_3ways_ht')->label('')->visible(fn () => in_array('odds_3ways_ht', self::$bettype_settings)), ColumnOdds::make('odds_3ways_ht')->bettype('odds_3ways_ht') - ->visible(fn() => in_array('odds_3ways_ht', self::$bettype_settings)) + ->visible(fn () => in_array('odds_3ways_ht', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('1X2 HT'), - TooltipOdds::make('total')->bettype('odds_totals')->label('')->visible(fn() => in_array('odds_totals', self::$bettype_settings)), + TooltipOdds::make('total')->bettype('odds_totals')->label('')->visible(fn () => in_array('odds_totals', self::$bettype_settings)), ColumnOdds::make('odds_totals')->bettype('odds_totals') - ->visible(fn() => in_array('odds_totals', self::$bettype_settings)) + ->visible(fn () => in_array('odds_totals', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('Totals'), - TooltipOdds::make('total_ht')->bettype('odds_totals_ht')->label('')->visible(fn() => in_array('odds_totals_ht', self::$bettype_settings)), + TooltipOdds::make('total_ht')->bettype('odds_totals_ht')->label('')->visible(fn () => in_array('odds_totals_ht', self::$bettype_settings)), ColumnOdds::make('odds_totals_ht')->bettype('odds_totals_ht') - ->visible(fn() => in_array('odds_totals_ht', self::$bettype_settings)) + ->visible(fn () => in_array('odds_totals_ht', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('Totals HT'), - TooltipOdds::make('total_q1')->bettype('odds_totals_q1')->label('')->visible(fn() => in_array('odds_totals_q1', self::$bettype_settings)), + TooltipOdds::make('total_q1')->bettype('odds_totals_q1')->label('')->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings)), ColumnOdds::make('odds_totals_q1')->bettype('odds_totals_q1') - ->visible(fn() => in_array('odds_totals_q1', self::$bettype_settings)) + ->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->alignCenter() ->label('Totals Q1'), - TooltipOdds::make('points')->bettype('odds_points')->label('')->visible(fn() => in_array('odds_points', self::$bettype_settings)), + TooltipOdds::make('points')->bettype('odds_points')->label('')->visible(fn () => in_array('odds_points', self::$bettype_settings)), ColumnOdds::make('odds_points')->bettype('odds_points') - ->visible(fn() => in_array('odds_points', self::$bettype_settings)) + ->visible(fn () => in_array('odds_points', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('Points'), - TooltipOdds::make('points_ht')->bettype('odds_points_ht')->label('')->visible(fn() => in_array('odds_points_ht', self::$bettype_settings)), + TooltipOdds::make('points_ht')->bettype('odds_points_ht')->label('')->visible(fn () => in_array('odds_points_ht', self::$bettype_settings)), ColumnOdds::make('odds_points_ht')->bettype('odds_points_ht') - ->visible(fn() => in_array('odds_points_ht', self::$bettype_settings)) + ->visible(fn () => in_array('odds_points_ht', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('Points HT'), - TooltipOdds::make('points_q1')->bettype('odds_points_q1')->label('')->visible(fn() => in_array('odds_points_q1', self::$bettype_settings)), + TooltipOdds::make('points_q1')->bettype('odds_points_q1')->label('')->visible(fn () => in_array('odds_points_q1', self::$bettype_settings)), ColumnOdds::make('odds_points_q1')->bettype('odds_points_q1') - ->visible(fn() => in_array('odds_points_q1', self::$bettype_settings)) + ->visible(fn () => in_array('odds_points_q1', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('Points Q1'), - TooltipOdds::make('ggng')->bettype('odds_ggng')->label('')->visible(fn() => in_array('odds_ggng', self::$bettype_settings)), + TooltipOdds::make('ggng')->bettype('odds_ggng')->label('')->visible(fn () => in_array('odds_ggng', self::$bettype_settings)), ColumnOdds::make('odds_ggng')->bettype('odds_ggng') - ->visible(fn() => \in_array('odds_ggng', self::$bettype_settings)) + ->visible(fn () => \in_array('odds_ggng', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('Goal No Goal'), - TooltipOdds::make('dc')->bettype('odds_dc')->label('')->visible(fn() => in_array('odds_dc', self::$bettype_settings)), + TooltipOdds::make('dc')->bettype('odds_dc')->label('')->visible(fn () => in_array('odds_dc', self::$bettype_settings)), ColumnOdds::make('odds_dc')->bettype('odds_dc') - ->visible(fn() => \in_array('odds_dc', self::$bettype_settings)) + ->visible(fn () => \in_array('odds_dc', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('Double Chance'), - TooltipOdds::make('tq')->bettype('odds_tq')->label('')->visible(fn() => in_array('odds_tq', self::$bettype_settings)), + TooltipOdds::make('tq')->bettype('odds_tq')->label('')->visible(fn () => in_array('odds_tq', self::$bettype_settings)), ColumnOdds::make('odds_tq')->bettype('odds_tq') - ->visible(fn() => \in_array('odds_tq', self::$bettype_settings)) + ->visible(fn () => \in_array('odds_tq', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('To Qualify'), - TooltipOdds::make('dnb')->bettype('odds_dnb')->label('')->visible(fn() => in_array('odds_dnb', self::$bettype_settings)), + TooltipOdds::make('dnb')->bettype('odds_dnb')->label('')->visible(fn () => in_array('odds_dnb', self::$bettype_settings)), ColumnOdds::make('odds_dnb')->bettype('odds_dnb') - ->visible(fn() => \in_array('odds_dnb', self::$bettype_settings)) + ->visible(fn () => \in_array('odds_dnb', self::$bettype_settings)) ->verticalAlignment(VerticalAlignment::Start) ->label('Draw No Bet'), ]) @@ -206,6 +206,19 @@ class EventsTable ->afterStateUpdated(function (callable $set) { $set('competition_group_id', null); }), + + Select::make('client_group_list_id') + ->placeholder('Custom Groups') + ->prefixIcon('phosphor-user-list') + ->searchable() + ->hiddenLabel() + ->label('') + ->preload() + ->options(fn () => ClientGroupList::where('sport_id', auth()->user()->sport_id) + ->where('client_id', auth()->user()->client_id) + ->pluck('name', 'id')) + ->live(), + Select::make('competition_group_id') ->placeholder('League') ->prefixIcon('phosphor-trophy') @@ -214,7 +227,18 @@ class EventsTable ->multiple() ->searchable() ->options(function (Get $get) { - if ($get('country_id')) { + if ($get('client_group_list_id')) { + + $list = ClientGroupList::where('id', $get('client_group_list_id'))->value('client_groups'); + + $res = Event::where('has_markets', 1) + ->with('country') + ->with('competition_group') + ->where('sport_id', auth()->user()->sport_id) + ->where('starttime', '>', Carbon::now()) + ->whereIn('competition_group_id', $list) + ->get(); + } elseif ($get('country_id')) { $res = Event::where('has_markets', 1) ->with('country') ->with('competition_group') @@ -233,15 +257,16 @@ class EventsTable $arr = []; foreach ($res as $val) { - $arr[$val->competition_group_id] = $val->country?->name . ' ' . $val->competition_group?->name; + $arr[$val->competition_group_id] = $val->country?->name.' '.$val->competition_group?->name; } asort($arr); return $arr; }) ->live(), + Select::make('competition_group_id') - ->visible(fn() => auth()->user()->sport_id == 5) + ->visible(fn () => auth()->user()->sport_id == 5) ->placeholder('Tournament') ->prefixIcon('phosphor-trophy') ->columnSpan(2) @@ -254,28 +279,19 @@ class EventsTable ->with('competition_group') ->where('sport_id', auth()->user()->sport_id) ->where('starttime', '>', Carbon::now()) - ->groupBy('competition_group_id') + // ->groupBy('competition_group_id') ->get(); $arr = []; foreach ($res as $val) { - $arr[$val->competition_group_id] = $val->competition_group->name; + if (! isset($arr[$val->competition_group_id])) { + $arr[$val->competition_group_id] = $val->competition_group->name; + } } asort($arr); return $arr; }) ->live(), - Select::make('client_group_list_id') - ->placeholder('Custom Groups') - ->prefixIcon('phosphor-user-list') - ->searchable() - ->hiddenLabel() - ->label('') - ->preload() - ->options(fn() => ClientGroupList::where('sport_id', auth()->user()->sport_id) - ->where('client_id', auth()->user()->client_id) - ->pluck('name', 'id')) - ->live(), DateRangePicker::make('starttime_period') ->columnSpan(2) @@ -301,7 +317,7 @@ class EventsTable ->prefixIcon('phosphor-funnel') ->hiddenLabel() ->allowHtml() - ->options(fn() => CompareOptions::load()), + ->options(fn () => CompareOptions::load()), ]) ->query(function (Builder $query, array $data): Builder { return $query->when( @@ -311,7 +327,7 @@ class EventsTable } )->when( $data['competition_group_id'], - fn(Builder $query, $competition_group_id) => $query->whereIn('competition_group_id', $competition_group_id) + fn (Builder $query, $competition_group_id) => $query->whereIn('competition_group_id', $competition_group_id) )->when( $data['client_group_list_id'], @@ -477,7 +493,7 @@ class EventsTable if ($data['client_group_list_id'] ?? null) { $client_group_list_name = ClientGroupList::where('id', $data['client_group_list_id'])->value('name'); - $indicators[] = Indicator::make('Custom Group: ' . $client_group_list_name)->removeField('client_group_list_id')->color('info'); + $indicators[] = Indicator::make('Custom Group: '.$client_group_list_name)->removeField('client_group_list_id')->color('info'); } if ($data['filter_stars'] ?? null) { @@ -494,17 +510,17 @@ class EventsTable if ($data['filter_alarm_green'] ?? null) { $title = OddsTable::where('name', $data['filter_alarm_green'])->value('title'); - $indicators[] = Indicator::make('Alarms: ' . $title)->removeField('filter_alarm_green')->color('success'); + $indicators[] = Indicator::make('Alarms: '.$title)->removeField('filter_alarm_green')->color('success'); } if ($data['filter_alarm_yellow'] ?? null) { $title = OddsTable::where('name', $data['filter_alarm_yellow'])->value('title'); - $indicators[] = Indicator::make('Alarms: ' . $title)->removeField('filter_alarm_yellow')->color('info'); + $indicators[] = Indicator::make('Alarms: '.$title)->removeField('filter_alarm_yellow')->color('info'); } if ($data['filter_alarm_red'] ?? null) { $title = OddsTable::where('name', $data['filter_alarm_red'])->value('title'); - $indicators[] = Indicator::make('Alarms: ' . $title)->removeField('filter_alarm_red')->color('danger'); + $indicators[] = Indicator::make('Alarms: '.$title)->removeField('filter_alarm_red')->color('danger'); } if ($data['starttime_period'] ?? null) { @@ -514,7 +530,7 @@ class EventsTable $text .= Carbon::parse($span['start'])->format('d. M.'); } if ($span['end'] ?? null) { - $text .= ' - ' . Carbon::parse($span['end'])->format('d. M.'); + $text .= ' - '.Carbon::parse($span['end'])->format('d. M.'); } if ($text) { $indicators[] = Indicator::make($text)->removeField('starttime_period.start')->color('info'); @@ -533,16 +549,16 @@ class EventsTable if ($data['favorit_threshold'] ?? null) { switch (auth()->user()->sport_id) { case 1: - $indicators[] = Indicator::make('1X2 Fav <= ' . $data['favorit_threshold'])->removeField('favorit_threshold')->color('warning'); + $indicators[] = Indicator::make('1X2 Fav <= '.$data['favorit_threshold'])->removeField('favorit_threshold')->color('warning'); break; case 2: - $indicators[] = Indicator::make('1X2 Fav <= ' . $data['favorit_threshold'])->removeField('favorit_threshold')->color('warning'); + $indicators[] = Indicator::make('1X2 Fav <= '.$data['favorit_threshold'])->removeField('favorit_threshold')->color('warning'); break; case 3: - $indicators[] = Indicator::make('HC Fav <= ' . $data['favorit_threshold'])->removeField('favorit_threshold')->color('warning'); + $indicators[] = Indicator::make('HC Fav <= '.$data['favorit_threshold'])->removeField('favorit_threshold')->color('warning'); break; case 5: - $indicators[] = Indicator::make('ML Fav <= ' . $data['favorit_threshold'])->removeField('favorit_threshold')->color('warning'); + $indicators[] = Indicator::make('ML Fav <= '.$data['favorit_threshold'])->removeField('favorit_threshold')->color('warning'); break; } } @@ -617,7 +633,7 @@ class EventsTable ->modalIcon('phosphor-note-pencil-duotone') ->modalWidth(Width::Large) ->modalSubmitActionLabel('Save') - ->extraModalFooterActions(fn(Action $action, $record) => $record->event_user_note->isEmpty() ? [] : [$action->makeModalSubmitAction('Delete', arguments: ['delete' => true])->color('danger')]) + ->extraModalFooterActions(fn (Action $action, $record) => $record->event_user_note->isEmpty() ? [] : [$action->makeModalSubmitAction('Delete', arguments: ['delete' => true])->color('danger')]) ->fillForm(data: function ($record) { foreach ($record->event_user_note as $value) { if ($value->user_id == auth()->user()->id && $value->bookmaker_id == auth()->user()->bookmaker_id) { @@ -638,7 +654,7 @@ class EventsTable ]) ->icon('phosphor-note-pencil-duotone') ->iconButton() - ->tooltip(fn($record) => view('filament.resources.events.tooltip.event-user-note-tooltip', ['notes' => $record->event_user_note])) + ->tooltip(fn ($record) => view('filament.resources.events.tooltip.event-user-note-tooltip', ['notes' => $record->event_user_note])) ->action(function ($record, array $data, $arguments = []) { if ($arguments) { EventUserNote::where('id', $data['event_user_note_id'])->delete(); @@ -659,14 +675,14 @@ class EventsTable ]); } }) - ->color(fn($record) => $record->event_user_note->isEmpty() ? 'gray' : 'info'), + ->color(fn ($record) => $record->event_user_note->isEmpty() ? 'gray' : 'info'), ActionGroup::make([ - DeleteAction::make()->visible(fn() => auth()->user()->hasRole('super_admin')), + DeleteAction::make()->visible(fn () => auth()->user()->hasRole('super_admin')), Action::make('txodds_odds') ->label('TxOdds') - ->disabled(fn() => ! auth()->user()->hasRole('super_admin')) + ->disabled(fn () => ! auth()->user()->hasRole('super_admin')) ->icon('phosphor-arrow-square-out') - ->url(fn($record): string => route('txodds_odds', ['sportid' => $record->sport_id, 'txoddsid' => $record->id])) + ->url(fn ($record): string => route('txodds_odds', ['sportid' => $record->sport_id, 'txoddsid' => $record->id])) ->openUrlInNewTab(), Action::make('swap_elements') ->icon('phosphor-swap') diff --git a/app/Livewire/MapperRight.php b/app/Livewire/MapperRight.php index 9ff3792b..069d89ed 100644 --- a/app/Livewire/MapperRight.php +++ b/app/Livewire/MapperRight.php @@ -113,7 +113,7 @@ class MapperRight extends Component implements HasActions, HasSchemas, HasTable ->preload() ->live() ->options(function (Get $get) { - $query = Mapper::query()->where('sport_id', Auth::user()->sport_id)->where('provider_id', Auth::user()->provider_id)->groupBy('country_id')->orderBy('country'); + $query = Mapper::query()->where('sport_id', Auth::user()->sport_id)->where('provider_id', Auth::user()->provider_id); $timeframe = $get('starttime_period') ?? []; if ($timeframe['start'] || $timeframe['end']) { @@ -148,7 +148,7 @@ class MapperRight extends Component implements HasActions, HasSchemas, HasTable ->preload() ->live() ->options(function (Get $get) { - $query = Mapper::query()->where('sport_id', Auth::user()->sport_id)->where('provider_id', Auth::user()->provider_id)->groupBy('group_cc'); + $query = Mapper::query()->where('sport_id', Auth::user()->sport_id)->where('provider_id', Auth::user()->provider_id); $timeframe = $get('starttime_period') ?? []; @@ -190,11 +190,11 @@ class MapperRight extends Component implements HasActions, HasSchemas, HasTable ->preload() ->options(function (Get $get) { if ($get('country_id')) { - $query = Mapper::query()->where('sport_id', Auth::user()->sport_id)->where('provider_id', Auth::user()->provider_id)->where('country_id', $get('country_id'))->groupBy('group_id'); + $query = Mapper::query()->where('sport_id', Auth::user()->sport_id)->where('provider_id', Auth::user()->provider_id)->where('country_id', $get('country_id')); } elseif ($get('group_cc')) { - $query = Mapper::query()->where('sport_id', Auth::user()->sport_id)->where('provider_id', Auth::user()->provider_id)->where('group_cc', $get('group_cc'))->groupBy('group_id'); + $query = Mapper::query()->where('sport_id', Auth::user()->sport_id)->where('provider_id', Auth::user()->provider_id)->where('group_cc', $get('group_cc')); } else { - $query = Mapper::query()->where('sport_id', Auth::user()->sport_id)->where('provider_id', Auth::user()->provider_id)->groupBy('group_id'); + $query = Mapper::query()->where('sport_id', Auth::user()->sport_id)->where('provider_id', Auth::user()->provider_id); } $timeframe = $get('starttime_period') ?? [];