diff --git a/app/Filament/Resources/Events/Tables/EventsTable.php b/app/Filament/Resources/Events/Tables/EventsTable.php index 88989185..b49e7528 100644 --- a/app/Filament/Resources/Events/Tables/EventsTable.php +++ b/app/Filament/Resources/Events/Tables/EventsTable.php @@ -223,7 +223,7 @@ class EventsTable ->searchable() ->preload() ->options(function () { - $res = Event::query()->where('starttime', '>', Carbon::now())->groupBy('country_id')->pluck('country_id')->toArray(); + $res = Event::query()->whereDate('starttime', '>', Carbon::now())->groupBy('country_id')->pluck('country_id')->toArray(); return Country::query()->whereIn('id', $res)->pluck('name', 'id'); }) @@ -289,18 +289,18 @@ class EventsTable $end = Carbon::createFromDate($starttime_period['end']); return $query - ->where('starttime', '>=', $from->format('Y-m-d 00:00:00')) - ->where('starttime', '<=', $end->format('Y-m-d 00:00:00')); + ->whereDate('starttime', '>=', $from->format('Y-m-d 00:00:00')) + ->whereDate('starttime', '<=', $end->format('Y-m-d 00:00:00')); } elseif (isset($starttime_period['start'])) { $from = Carbon::createFromDate($starttime_period['start']); return $query - ->where('starttime', '>=', $from->format('Y-m-d 00:00:00')); + ->whereDate('starttime', '>=', $from->format('Y-m-d 00:00:00')); } elseif (isset($starttime_period['end'])) { $end = Carbon::createFromDate($starttime_period['end']); return $query - ->where('starttime', '<=', $end->format('Y-m-d 00:00:00')); + ->whereDate('starttime', '<=', $end->format('Y-m-d 00:00:00')); } } ); diff --git a/app/Filament/Tables/Columns/BookmakerIcon.php b/app/Filament/Tables/Columns/BookmakerIcon.php index 7772a91f..f48fc3ed 100644 --- a/app/Filament/Tables/Columns/BookmakerIcon.php +++ b/app/Filament/Tables/Columns/BookmakerIcon.php @@ -7,4 +7,25 @@ use Filament\Tables\Columns\Column; class BookmakerIcon extends Column { protected string $view = 'filament.tables.columns.bookmaker-icon'; + + protected ?string $size = null; + + public function size(?string $size): static + { + $this->size = $size; + + return $this; + } + + public function getSize(): ?string + { + switch ($this->size) { + case 'xl': + return 'h-6 w-30'; + case 'lg': + return 'h-5 w-20'; + default: + return 'h-4 w-16'; + } + } } diff --git a/app/Filament/Tables/Columns/ColumnMl.php b/app/Filament/Tables/Columns/ColumnMl.php index 3d5bf587..2e8dde36 100644 --- a/app/Filament/Tables/Columns/ColumnMl.php +++ b/app/Filament/Tables/Columns/ColumnMl.php @@ -2,7 +2,6 @@ namespace App\Filament\Tables\Columns; -use App\Models\BookmakerSport; use Filament\Tables\Columns\Column; class ColumnMl extends Column @@ -33,14 +32,6 @@ class ColumnMl extends Column return $this->bookmakers; } - public function getActivBookmaker() - { - return BookmakerSport::with('bookmaker') - ->whereNotIn('bookmaker_id', $this->having) - ->where('sport_id', auth()->user()->sport_id) - ->get(); - } - public function loadData($record) { $this->has_data = count($record->odds_2ways) ? true : false; diff --git a/app/Livewire/MultilineBookmaker.php b/app/Livewire/MultilineBookmaker.php index 7188d6c1..31e38c25 100644 --- a/app/Livewire/MultilineBookmaker.php +++ b/app/Livewire/MultilineBookmaker.php @@ -3,8 +3,9 @@ namespace App\Livewire; use App\Filament\Tables\Columns\BookmakerIcon; -use App\Models\Bookmaker; +use App\Models\BookmakerSport; use App\Models\MultilineClient; +use App\Models\MultilineSetting; use Filament\Actions\Concerns\InteractsWithActions; use Filament\Actions\Contracts\HasActions; use Filament\Forms\Components\Radio; @@ -17,7 +18,6 @@ use Filament\Tables\Concerns\InteractsWithTable; use Filament\Tables\Contracts\HasTable; use Filament\Tables\Enums\FiltersLayout; use Filament\Tables\Filters\Filter; -use Filament\Tables\Filters\SelectFilter; use Filament\Tables\Table; use Illuminate\Contracts\View\View; use Illuminate\Database\Eloquent\Builder; @@ -29,8 +29,17 @@ class MultilineBookmaker extends Component implements HasActions, HasSchemas, Ha use InteractsWithSchemas; use InteractsWithTable; + public static $default_filter; + + public static function load_filter() + { + self::$default_filter = MultilineSetting::where('sport_id', auth()->user()->sport_id)->orderBy('id')->pluck('id')->first(); + } + public function table(Table $table): Table { + self::load_filter(); + return $table ->query(MultilineClient::query()->where('sport_id', auth()->user()->sport_id)) ->paginated(false) @@ -43,42 +52,45 @@ class MultilineBookmaker extends Component implements HasActions, HasSchemas, Ha }), TextColumn::make('sport.name'), TextColumn::make('multiline_setting.name')->label('Bettype'), - BookmakerIcon::make('bookmaker.icon')->label('Icon'), + BookmakerIcon::make('bookmaker.icon')->size('xl')->label('Icon'), SelectColumn::make('bookmaker_id') ->label('Bookmaker') ->width('2rem') ->options(function () { - $books = Bookmaker::where('is_active', 1)->orderBy('name')->pluck('name', 'id'); - foreach ($books as $key => $value) { - $books[$key] = $key.' - '.$value; - } - return $books; + $res = BookmakerSport::with('bookmaker') + ->where('sport_id', auth()->user()->sport_id) + ->get(); + $arr = []; + foreach ($res as $value) { + $arr[$value->bookmaker_id] = $value->bookmaker->name; + } + asort($arr); + + return $arr; }), ]) ->defaultSort('sort') ->deferFilters(false) ->filters([ - Filter::make('created_at') + Filter::make('multiline_setting_id') ->schema([ Radio::make('multiline_setting_id') ->inline() - ->options([ - 'draft' => 'Draft', - 'scheduled' => 'Scheduled', - 'published' => 'Published', - ]), + ->default(self::$default_filter) + ->columnSpan(6) + ->columnSpanFull() + ->hiddenLabel() + ->options(fn () => MultilineSetting::where('sport_id', auth()->user()->sport_id)->orderBy('name')->pluck('name', 'id')), ]) ->query(function (Builder $query, array $data): Builder { return $query ->when( $data['multiline_setting_id'], - fn (Builder $query, $date): Builder => $query->whereDate('created_at', '<=', $date), + fn (Builder $query, $multiline_setting_id): Builder => $query->where('multiline_setting_id', $multiline_setting_id), ); - }), - // SelectFilter::make('multiline_setting_id') - // ->label('Bettype') - // ->relationship('multiline_setting', 'name'), + }) + ->columns(6)->columnSpan(6), ], layout: FiltersLayout::AboveContent) ->hiddenFilterIndicators(); } diff --git a/resources/views/filament/tables/columns/bookmaker-icon.blade.php b/resources/views/filament/tables/columns/bookmaker-icon.blade.php index df534156..a3bba0bc 100644 --- a/resources/views/filament/tables/columns/bookmaker-icon.blade.php +++ b/resources/views/filament/tables/columns/bookmaker-icon.blade.php @@ -1,4 +1,4 @@ -
diff --git a/resources/views/filament/tables/columns/parts/move-botton.blade.php b/resources/views/filament/tables/columns/parts/move-botton.blade.php index 566806d9..9d713124 100644 --- a/resources/views/filament/tables/columns/parts/move-botton.blade.php +++ b/resources/views/filament/tables/columns/parts/move-botton.blade.php @@ -1,3 +1,3 @@
- +