alarms finsihed

This commit is contained in:
salam committed 2026-01-28 16:21:15 +01:00
1 parent 99b657eb3a
commit ca58eba530
8 files changed
+200 -96

No files matched your search

@@ -14,6 +14,7 @@ use App\Models\Event;
use App\Models\EventBookmaker;
use App\Models\EventUserStar;
use App\Models\Group;
use App\Models\OddsTable;
use App\Models\Sport;
use App\Models\User;
use CodeWithKyrian\FilamentDateRange\Forms\Components\DateRangePicker;
@@ -22,6 +23,7 @@ use Filament\Actions\ActionGroup;
use Filament\Actions\BulkActionGroup;
use Filament\Actions\DeleteAction;
use Filament\Actions\DeleteBulkAction;
use Filament\Forms\Components\Hidden;
use Filament\Forms\Components\Select;
use Filament\Schemas\Components\Utilities\Get;
use Filament\Support\Enums\FontWeight;
@@ -173,6 +175,9 @@ class EventsTable
Filter::make('events')
->columns(5)->columnSpan(5)
->schema([
Hidden::make('filter_alarm_green'),
Hidden::make('filter_alarm_yellow'),
Hidden::make('filter_alarm_red'),
Select::make(name: 'sport_id')
->options(fn () => Sport::getSportForClient())
->default(self::$user->sport_id)
@@ -299,6 +304,51 @@ class EventsTable
->whereDate('starttime', '<=', $end->format('Y-m-d 00:00:00'));
}
}
)->when(
$data['filter_alarm_green'],
function (Builder $query, $filter_alarm_green) {
$res = OddsTable::where('name', $filter_alarm_green)->value('fieldnames');
$fieldnames = explode(',', $res);
return $query->whereHas('event_bookmaker', function ($query) use ($fieldnames) {
$query->where('bookmaker_id', auth()->user()->bookmaker_id)
->where(function ($query) use ($fieldnames) {
foreach ($fieldnames as $field) {
$query->orWhere($field, 1);
}
});
});
}
)->when(
$data['filter_alarm_yellow'],
function (Builder $query, $filter_alarm_yellow) {
$res = OddsTable::where('name', $filter_alarm_yellow)->value('fieldnames');
$fieldnames = explode(',', $res);
return $query->whereHas('event_bookmaker', function ($query) use ($fieldnames) {
$query->where('bookmaker_id', auth()->user()->bookmaker_id)
->where(function ($query) use ($fieldnames) {
foreach ($fieldnames as $field) {
$query->orWhere($field, 2);
}
});
});
}
)->when(
$data['filter_alarm_red'],
function (Builder $query, $filter_alarm_red) {
$res = OddsTable::where('name', $filter_alarm_red)->value('fieldnames');
$fieldnames = explode(',', $res);
return $query->whereHas('event_bookmaker', function ($query) use ($fieldnames) {
$query->where('bookmaker_id', auth()->user()->bookmaker_id)
->where(function ($query) use ($fieldnames) {
foreach ($fieldnames as $field) {
$query->orWhere($field, 3);
}
});
});
}
);
})->indicateUsing(function (array $data): array {
$indicators = [];
@@ -320,13 +370,19 @@ class EventsTable
}
}
if ($data['competition_group_id'] ?? null) {
$competition_groups = CompetitionGroup::whereIn('id', $data['competition_group_id'])->pluck('name')->toArray();
if (count($competition_groups) > 1) {
$indicators[] = Indicator::make('Leagues: '.implode(', ', $competition_groups))->removeField('competition_group_id')->color('info');
} else {
$indicators[] = Indicator::make('League: '.$competition_groups[0])->removeField('competition_group_id')->color('info')->color('info');
}
if ($data['filter_alarm_green'] ?? null) {
$title = OddsTable::where('name', $data['filter_alarm_green'])->value('title');
$indicators[] = Indicator::make('Alarm: '.$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('Alarm: '.$title)->removeField('filter_alarm_yellow')->color('warning');
}
if ($data['filter_alarm_red'] ?? null) {
$title = OddsTable::where('name', $data['filter_alarm_red'])->value('title');
$indicators[] = Indicator::make('Alarm: '.$title)->removeField('filter_alarm_red')->color('danger');
}
if ($data['starttime_period'] ?? null) {
@@ -343,6 +399,15 @@ class EventsTable
}
}
if ($data['competition_group_id'] ?? null) {
$competition_groups = CompetitionGroup::whereIn('id', $data['competition_group_id'])->pluck('name')->toArray();
if (count($competition_groups) > 1) {
$indicators[] = Indicator::make('Leagues: '.implode(', ', $competition_groups))->removeField('competition_group_id')->color('info');
} else {
$indicators[] = Indicator::make('League: '.$competition_groups[0])->removeField('competition_group_id')->color('info')->color('info');
}
}
if ($data['stars_status'] ?? null) {
$indicators[] = Indicator::make('Favorits')->removeField('stars_status')->color('info');
}