filter comparatore wip

This commit is contained in:
salam committed 2026-01-21 19:49:28 +01:00
1 parent 7a9eeb8aad
commit 937c5908d2
40 files changed
+362 -306

No files matched your search

@@ -69,7 +69,6 @@ class EventResource extends Resource
} }
if (in_array('odds_3ways', EventsTable::$bettype_settings)) { if (in_array('odds_3ways', EventsTable::$bettype_settings)) {
$query->with('odds_3ways.bookmaker'); $query->with('odds_3ways.bookmaker');
// $query->with('odds_3ways.comparing_bookmaker');
} }
if (in_array('odds_3ways_ht', EventsTable::$bettype_settings)) { if (in_array('odds_3ways_ht', EventsTable::$bettype_settings)) {
$query->with('odds_3ways_ht.bookmaker'); $query->with('odds_3ways_ht.bookmaker');
@@ -2,6 +2,8 @@
namespace App\Filament\Resources\Events\Tables; namespace App\Filament\Resources\Events\Tables;
use App\Filament\Resources\Events\Tables\Tools\LoadBettypeSettings;
use App\Filament\Resources\Events\Tables\Tools\LoadMultilineBookmaker;
use App\Filament\Tables\Columns\Column3way; use App\Filament\Tables\Columns\Column3way;
use App\Filament\Tables\Columns\Column3wayHt; use App\Filament\Tables\Columns\Column3wayHt;
use App\Filament\Tables\Columns\ColumnDc; use App\Filament\Tables\Columns\ColumnDc;
@@ -17,15 +19,11 @@ use App\Filament\Tables\Columns\ColumnTotalQ1;
use App\Filament\Tables\Columns\ColumnTq; use App\Filament\Tables\Columns\ColumnTq;
use App\Filament\Tables\Columns\EventColumn; use App\Filament\Tables\Columns\EventColumn;
use App\Filament\Tables\Columns\MatchIds; use App\Filament\Tables\Columns\MatchIds;
use App\Models\BettypeUser;
use App\Models\ComparingBookmaker;
use App\Models\CompetitionGroup; use App\Models\CompetitionGroup;
use App\Models\Country; use App\Models\Country;
use App\Models\Event; use App\Models\Event;
use App\Models\EventUserStar; use App\Models\EventUserStar;
use App\Models\Group; use App\Models\Group;
use App\Models\MultilineClient;
use App\Models\MultilineSetting;
use App\Models\Sport; use App\Models\Sport;
use App\Models\User; use App\Models\User;
use CodeWithKyrian\FilamentDateRange\Forms\Components\DateRangePicker; use CodeWithKyrian\FilamentDateRange\Forms\Components\DateRangePicker;
@@ -50,68 +48,19 @@ use Illuminate\Support\Carbon;
class EventsTable class EventsTable
{ {
public static $bettype_settings = [];
public static $multiline_bookmaker = [];
public static $multiline_gettype = [];
public static $user; public static $user;
public static function load_multiline_bookmaker() public static $bettype_settings;
{
if (self::$user->is_multiline_direct) {
if (self::$user->sport_id == 1) { public static $multiline_bookmaker;
$cb = ComparingBookmaker::where('sport_id', 1)->where('client_bookmaker_id', self::$user->bookmaker_id)->select('sorting', 'bookmaker_id', 'time_lastcheck', 'margin_threshold', 'is_active')->get();
} else {
$cb = ComparingBookmaker::where('sport_id', '!=', 1)->where('client_bookmaker_id', self::$user->bookmaker_id)->select('sorting', 'bookmaker_id', 'time_lastcheck', 'margin_threshold', 'is_active')->get();
}
$bookmakers = [];
foreach ($cb as $value) {
$bookmakers[] = $value->bookmaker_id;
}
$res = MultilineSetting::where('sport_id', self::$user->sport_id)->get();
foreach ($res as $value) {
self::$multiline_gettype[$value->table]['filter'] = $cb;
self::$multiline_gettype[$value->table]['bookmaker'] = $bookmakers;
}
} else {
$res = MultilineClient::with('multiline_setting')
->select('bookmaker_id', 'multiline_setting_id')
->orderBy('sort')
->get();
foreach ($res as $value) {
$table = $value->multiline_setting->table;
self::$multiline_gettype[$table]['bookmaker'][] = (int) $value->bookmaker_id;
}
}
}
public static function load_bettype_settings()
{
$res = BettypeUser::with('multiline_setting')
->orderBy('multiline_setting_id')
->where('is_active', 1)
->get();
foreach ($res as $value) {
self::$bettype_settings[] = $value->multiline_setting->table;
}
}
public static function configure(Table $table): Table public static function configure(Table $table): Table
{ {
self::$user = User::getUser(); self::$user = User::getUser();
self::load_bettype_settings(); self::$bettype_settings = LoadBettypeSettings::load();
self::load_multiline_bookmaker(); self::$multiline_bookmaker = LoadMultilineBookmaker::load();
return $table return $table
->poll('10s') ->poll('10s')
@@ -143,97 +92,97 @@ class EventsTable
EventColumn::make('event'), EventColumn::make('event'),
ColumnMl::make('odds_2ways')->bookmakers(self::$multiline_gettype['odds_2ways'] ?? []) ColumnMl::make('odds_2ways')->bookmakers(self::$multiline_bookmaker['odds_2ways'] ?? [])
->visible(fn () => in_array('odds_2ways', self::$bettype_settings)) ->visible(fn () => in_array('odds_2ways', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start) ->verticalAlignment(VerticalAlignment::Start)
->width(225) ->width(225)
->alignCenter() ->alignCenter()
->label('ML'), ->label('ML'),
ColumnMlS1::make('odds_2ways_s1')->bookmakers(self::$multiline_gettype['odds_2ways'] ?? []) Column3way::make('odds_3ways')->bookmakers(self::$multiline_bookmaker['odds_3ways'] ?? [])
->visible(fn () => in_array('odds_2ways_s1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('ML S1'),
Column3way::make('odds_3ways')->bookmakers(self::$multiline_gettype['odds_3ways'] ?? [])
->visible(fn () => in_array('odds_3ways', self::$bettype_settings)) ->visible(fn () => in_array('odds_3ways', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start) ->verticalAlignment(VerticalAlignment::Start)
->width(225) ->width(225)
->alignCenter() ->alignCenter()
->label('1X2'), ->label('1X2'),
Column3wayHt::make('odds_3ways_ht')->bookmakers(self::$multiline_gettype['odds_3ways_ht'] ?? []) ColumnTotal::make('odds_totals')->bookmakers(self::$multiline_bookmaker['odds_totals'] ?? [])
->visible(fn () => in_array('odds_3ways_ht', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('1X2 HT'),
ColumnTotal::make('odds_totals')->bookmakers(self::$multiline_gettype['odds_totals'] ?? [])
->visible(fn () => in_array('odds_totals', self::$bettype_settings)) ->visible(fn () => in_array('odds_totals', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start) ->verticalAlignment(VerticalAlignment::Start)
->alignCenter() ->alignCenter()
->width(225) ->width(225)
->label('Totals'), ->label('Totals'),
ColumnTotalHt::make('odds_totals_ht')->bookmakers(self::$multiline_gettype['odds_totals_ht'] ?? []) Column3wayHt::make('odds_3ways_ht')->bookmakers(self::$multiline_bookmaker['odds_3ways_ht'] ?? [])
->visible(fn () => in_array('odds_3ways_ht', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('1X2 HT'),
ColumnTotalHt::make('odds_totals_ht')->bookmakers(self::$multiline_bookmaker['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) ->verticalAlignment(VerticalAlignment::Start)
->alignCenter() ->alignCenter()
->width(225) ->width(225)
->label('Totals HT'), ->label('Totals HT'),
ColumnTotalQ1::make('odds_totals_q1')->bookmakers(self::$multiline_gettype['odds_totals_q1'] ?? []) ColumnGgng::make('odds_ggng')->bookmakers(self::$multiline_bookmaker['odds_ggng'] ?? [])
->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings)) ->visible(fn () => \in_array('odds_ggng', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start) ->verticalAlignment(VerticalAlignment::Start)
->alignCenter() ->alignCenter()
->width(225) ->width(190)
->label('Totals Q1'), ->label('Goal No Goal'),
ColumnPoint::make('odds_points')->bookmakers(self::$multiline_gettype['odds_points'] ?? []) ColumnPoint::make('odds_points')->bookmakers(self::$multiline_bookmaker['odds_points'] ?? [])
->visible(fn () => in_array('odds_points', self::$bettype_settings)) ->visible(fn () => in_array('odds_points', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start) ->verticalAlignment(VerticalAlignment::Start)
->alignCenter() ->alignCenter()
->width(225) ->width(225)
->label('Points'), ->label('Points'),
ColumnPointQ1::make('odds_points_q1')->bookmakers(self::$multiline_gettype['odds_points_q1'] ?? []) ColumnTotalQ1::make('odds_totals_q1')->bookmakers(self::$multiline_bookmaker['odds_totals_q1'] ?? [])
->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('Totals Q1'),
ColumnPointQ1::make('odds_points_q1')->bookmakers(self::$multiline_bookmaker['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) ->verticalAlignment(VerticalAlignment::Start)
->alignCenter() ->alignCenter()
->width(225) ->width(225)
->label('Points Q1'), ->label('Points Q1'),
ColumnDc::make('odds_dc')->bookmakers(self::$multiline_gettype['odds_dc'] ?? []) ColumnMlS1::make('odds_2ways_s1')->bookmakers(self::$multiline_bookmaker['odds_2ways'] ?? [])
->visible(fn () => in_array('odds_dc', self::$bettype_settings)) ->visible(fn () => in_array('odds_2ways_s1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(225)
->label('ML S1'),
ColumnDc::make('odds_dc')->bookmakers(self::$multiline_bookmaker['odds_dc'] ?? [])
->visible(fn () => \in_array('odds_dc', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start) ->verticalAlignment(VerticalAlignment::Start)
->alignCenter() ->alignCenter()
->width(225) ->width(225)
->label('Double Chance'), ->label('Double Chance'),
ColumnDnb::make('odds_dnb')->bookmakers(self::$multiline_gettype['odds_dnb'] ?? []) ColumnTq::make('odds_tq')->bookmakers(self::$multiline_bookmaker['odds_tq'] ?? [])
->visible(fn () => in_array('odds_dnb', self::$bettype_settings)) ->visible(fn () => \in_array('odds_tq', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(190)
->label('Draw No Bet'),
ColumnGgng::make('odds_ggng')->bookmakers(self::$multiline_gettype['odds_ggng'] ?? [])
->visible(fn () => in_array('odds_ggng', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(190)
->label('Goal No Goal'),
ColumnTq::make('odds_tq')->bookmakers(self::$bettype_settings['odds_tq'] ?? [])
->visible(fn () => in_array('odds_tq', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start) ->verticalAlignment(VerticalAlignment::Start)
->alignCenter() ->alignCenter()
->width(190) ->width(190)
->label('To Qualify'), ->label('To Qualify'),
ColumnDnb::make('odds_dnb')->bookmakers(self::$multiline_bookmaker['odds_dnb'] ?? [])
->visible(fn () => \in_array('odds_dnb', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->width(190)
->label('Draw No Bet'),
])->searchable(['id', 'home.name', 'away.name', 'betsapi_id', 'betradar_id', 'bet365_id', 'bwin_id', 'magnig_id', 'magken_id', 'lognig_id', 'logcol_id']) ])->searchable(['id', 'home.name', 'away.name', 'betsapi_id', 'betradar_id', 'bet365_id', 'bwin_id', 'magnig_id', 'magken_id', 'lognig_id', 'logcol_id'])
->defaultSort('starttime', 'ASC') ->defaultSort('starttime', 'ASC')
->extremePaginationLinks() ->extremePaginationLinks()
@@ -0,0 +1,23 @@
<?php
namespace App\Filament\Resources\Events\Tables\Tools;
use App\Models\BettypeUser;
class LoadBettypeSettings
{
public static function load()
{
$res = BettypeUser::with('multiline_setting')
->orderBy('multiline_setting_id')
->where('is_active', 1)
->get();
$arr = [];
foreach ($res as $value) {
$arr[] = $value->multiline_setting->table;
}
return $arr;
}
}
@@ -0,0 +1,66 @@
<?php
namespace App\Filament\Resources\Events\Tables\Tools;
use App\Models\ComparingBookmaker;
use App\Models\MultilineClient;
use App\Models\MultilineSetting;
use App\Models\User;
class LoadMultilineBookmaker
{
public static $user;
public static function load()
{
self::$user = User::getUser();
$arr = [];
// if (self::$user->sport_id == 1) {
// $cb = ComparingBookmaker::where('sport_id', 1)->where('client_bookmaker_id', self::$user->bookmaker_id)->orderBy('sorting')->select('bookmaker_id', 'time_lastcheck', 'margin_threshold', 'is_active')->get()->toArray();
// } else {
// $cb = ComparingBookmaker::where('sport_id', '!=', 1)->where('client_bookmaker_id', self::$user->bookmaker_id)->orderBy('sorting')->select('bookmaker_id', 'time_lastcheck', 'margin_threshold', 'is_active')->get()->toArray();
// }
$cb = ComparingBookmaker::where('sport_id', self::$user->sport_id)->where('client_bookmaker_id', self::$user->bookmaker_id)->orderBy('sorting')->select('bookmaker_id', 'time_lastcheck', 'margin_threshold', 'is_active')->get()->toArray();
$bookmakers = [];
$filter = [];
foreach ($cb as $value) {
$bookmakers[] = $value['bookmaker_id'];
$filter[$value['bookmaker_id']] = [
'time_lastcheck' => $value['time_lastcheck'],
'margin' => $value['margin_threshold'],
];
}
$res = MultilineSetting::where('sport_id', self::$user->sport_id)->get();
foreach ($res as $value) {
$arr[$value->table]['filter'] = $filter;
$arr[$value->table]['bookmaker'] = $bookmakers;
if (auth()->user()->is_multiline_direct) {
$arr[$value->table]['slots'] = $bookmakers;
}
}
if (! auth()->user()->is_multiline_direct) {
$res = MultilineClient::with('multiline_setting')
->select('bookmaker_id', 'multiline_setting_id')
->orderBy('sort')
->get();
foreach ($res as $value) {
$table = $value->multiline_setting->table;
$arr[$table]['slots'][] = (int) self::$user->bookmaker_id;
}
foreach ($res as $value) {
$table = $value->multiline_setting->table;
$arr[$table]['slots'][] = (int) $value->bookmaker_id;
}
}
return $arr;
}
}
+6 -7
View File
@@ -30,9 +30,13 @@ class Column3way extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_3ways) ? true : false; $this->has_data = count($record->odds_3ways) ? true : false;
$this->act = $record->odds_3ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first(); $this->act = $record->odds_3ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
@@ -49,12 +53,7 @@ class Column3way extends Column
$this->min['a3w'] = $record->odds_3ways->min('a3w'); $this->min['a3w'] = $record->odds_3ways->min('a3w');
// $record->odds_3ways = $record->odds_3ways->filter(function (int $value, int $key) { $record->odds_3ways = FilterOdds::filter($record->odds_3ways, $this->bookmakers);
// return in_array($this->bookmakers['bookmaker'], $value['bookmaker_id']);
// });
} }
public function getAct() public function getAct()
@@ -30,6 +30,11 @@ class Column3wayHt extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_3ways_ht) ? true : false; $this->has_data = count($record->odds_3ways_ht) ? true : false;
@@ -47,6 +52,8 @@ class Column3wayHt extends Column
$this->min['d3w'] = $record->odds_3ways_ht->min('d3w'); $this->min['d3w'] = $record->odds_3ways_ht->min('d3w');
$this->min['a3w'] = $record->odds_3ways_ht->min('a3w'); $this->min['a3w'] = $record->odds_3ways_ht->min('a3w');
$record->odds_3ways_ht = FilterOdds::filter($record->odds_3ways_ht, $this->bookmakers);
} }
public function getAct() public function getAct()
+7
View File
@@ -30,6 +30,11 @@ class ColumnDc extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_dc) ? true : false; $this->has_data = count($record->odds_dc) ? true : false;
@@ -47,6 +52,8 @@ class ColumnDc extends Column
$this->min['dc12'] = $record->odds_dc->min('dc12'); $this->min['dc12'] = $record->odds_dc->min('dc12');
$this->min['dcx2'] = $record->odds_dc->min('dcx2'); $this->min['dcx2'] = $record->odds_dc->min('dcx2');
$record->odds_dc = FilterOdds::filter($record->odds_dc, $this->bookmakers);
} }
public function getAct() public function getAct()
@@ -30,6 +30,11 @@ class ColumnDnb extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_dnb) ? true : false; $this->has_data = count($record->odds_dnb) ? true : false;
@@ -44,6 +49,8 @@ class ColumnDnb extends Column
$this->min['dnb2'] = $record->odds_dnb->min('dnb2'); $this->min['dnb2'] = $record->odds_dnb->min('dnb2');
$record->odds_dnb = FilterOdds::filter($record->odds_dnb, $this->bookmakers);
} }
public function getAct() public function getAct()
@@ -30,6 +30,11 @@ class ColumnGgng extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_ggng) ? true : false; $this->has_data = count($record->odds_ggng) ? true : false;
@@ -44,6 +49,7 @@ class ColumnGgng extends Column
$this->min['ng'] = $record->odds_ggng->min('ng'); $this->min['ng'] = $record->odds_ggng->min('ng');
$record->odds_ggng = FilterOdds::filter($record->odds_ggng, $this->bookmakers);
} }
public function getAct() public function getAct()
+6
View File
@@ -30,6 +30,11 @@ class ColumnMl extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_2ways) ? true : false; $this->has_data = count($record->odds_2ways) ? true : false;
@@ -44,6 +49,7 @@ class ColumnMl extends Column
$this->min['a2w'] = $record->odds_2ways->min('a2w'); $this->min['a2w'] = $record->odds_2ways->min('a2w');
$record->odds_2ways = FilterOdds::filter($record->odds_2ways, $this->bookmakers);
} }
public function getAct() public function getAct()
@@ -30,6 +30,11 @@ class ColumnMlS1 extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_2ways_s1) ? true : false; $this->has_data = count($record->odds_2ways_s1) ? true : false;
@@ -44,6 +49,8 @@ class ColumnMlS1 extends Column
$this->min['a2w'] = $record->odds_2ways->min('a2w'); $this->min['a2w'] = $record->odds_2ways->min('a2w');
$record->odds_2ways_s1 = FilterOdds::filter($record->odds_2ways_s1, $this->bookmakers);
} }
public function getAct() public function getAct()
@@ -30,6 +30,11 @@ class ColumnPoint extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_points) ? true : false; $this->has_data = count($record->odds_points) ? true : false;
@@ -44,6 +49,8 @@ class ColumnPoint extends Column
$this->min['away'] = $record->odds_points->min('away'); $this->min['away'] = $record->odds_points->min('away');
$record->odds_points = FilterOdds::filter($record->odds_points, $this->bookmakers);
} }
public function getAct() public function getAct()
@@ -30,6 +30,11 @@ class ColumnPointQ1 extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_points_q1) ? true : false; $this->has_data = count($record->odds_points_q1) ? true : false;
@@ -44,6 +49,8 @@ class ColumnPointQ1 extends Column
$this->min['away'] = $record->odds_points_q1->min('away'); $this->min['away'] = $record->odds_points_q1->min('away');
$record->odds_points_q1 = FilterOdds::filter($record->odds_points_q1, $this->bookmakers);
} }
public function getAct() public function getAct()
@@ -30,6 +30,11 @@ class ColumnTotal extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_totals) ? true : false; $this->has_data = count($record->odds_totals) ? true : false;
@@ -44,6 +49,8 @@ class ColumnTotal extends Column
$this->min['under'] = $record->odds_totals->min('under'); $this->min['under'] = $record->odds_totals->min('under');
$record->odds_totals = FilterOdds::filter($record->odds_totals, $this->bookmakers);
} }
public function getAct() public function getAct()
@@ -30,6 +30,11 @@ class ColumnTotalHt extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_totals_ht) ? true : false; $this->has_data = count($record->odds_totals_ht) ? true : false;
@@ -44,6 +49,8 @@ class ColumnTotalHt extends Column
$this->min['under'] = $record->odds_totals_ht->min('under'); $this->min['under'] = $record->odds_totals_ht->min('under');
$record->odds_totals_ht = FilterOdds::filter($record->odds_totals_ht, $this->bookmakers);
} }
public function getAct() public function getAct()
@@ -30,6 +30,11 @@ class ColumnTotalQ1 extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_totals_q1) ? true : false; $this->has_data = count($record->odds_totals_q1) ? true : false;
@@ -44,6 +49,8 @@ class ColumnTotalQ1 extends Column
$this->min['under'] = $record->odds_totals_q1->min('under'); $this->min['under'] = $record->odds_totals_q1->min('under');
$record->odds_totals_q1 = FilterOdds::filter($record->odds_totals_q1, $this->bookmakers);
} }
public function getAct() public function getAct()
+7
View File
@@ -30,6 +30,11 @@ class ColumnTq extends Column
return $this->bookmakers['bookmaker'] ?? []; return $this->bookmakers['bookmaker'] ?? [];
} }
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record) public function loadData($record)
{ {
$this->has_data = count($record->odds_tq) ? true : false; $this->has_data = count($record->odds_tq) ? true : false;
@@ -44,6 +49,8 @@ class ColumnTq extends Column
$this->min['atq'] = $record->odds_tq->min('atq'); $this->min['atq'] = $record->odds_tq->min('atq');
$record->odds_tq = FilterOdds::filter($record->odds_tq, $this->bookmakers);
} }
public function getAct() public function getAct()
@@ -0,0 +1,57 @@
<?php
namespace App\Filament\Tables\Columns;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
class FilterOdds
{
public static function filter($data, $bookmakers): Collection
{
if (auth()->user()->is_multiline_direct) {
/**
* ORDER
*/
$order = $bookmakers['bookmaker'] ?? [];
$data->sortBy(function ($model) use ($order) {
return array_search($model->bookmaker_id, $order);
});
/**
* FILTER
*/
if (! auth()->user()->no_filter) {
$filter = $bookmakers['filter'] ?? [];
if ($filter) {
$data = $data->filter(function ($model) use ($filter) {
if ($model->bookmaker_id == auth()->user()->bookmaker_id) {
return true;
}
$filter = $filter[$model->bookmaker_id] ?? 0;
$checked_at = Carbon::createFromDate($model->checked_at)->timestamp;
if (! isset($filter['margin'])) {
dd($model->bookmaker_id);
}
if ($model->margin <= $filter['margin'] && $checked_at > time() - $filter['time_lastcheck']) {
return true;
}
return false;
});
}
}
}
return $data;
}
}
@@ -1,25 +0,0 @@
<?php
namespace App\Filament\Tables\Columns\Tools;
class Compare3way
{
public static function run($odds_3ways, $bookmakers)
{
return;
$maxrows = 4;
$count = 1;
$tmp = [];
dd($bookmakers);
foreach ($bookmakers as $bookmaker) {
$odds_3ways = $odds_3ways->filter(function ($odds_3ways, $bookmaker) {
if ($odds_3ways->contains('bookmaker_id', $bookmaker['bookmaker_id'])) {
return true;
}
return false;
});
}
}
}
+7
View File
@@ -59,4 +59,11 @@ class BettypeToggle extends Component
$this->dispatch('refreshBettypeMenu'); $this->dispatch('refreshBettypeMenu');
} }
public function toggleFilter()
{
User::where('id', auth()->user()->id)->update(['no_filter' => DB::raw('!no_filter')]);
$this->dispatch('refreshBettypeMenu');
}
} }
+1
View File
@@ -36,6 +36,7 @@ class User extends Authenticatable implements FilamentUser, HasAppAuthentication
'sport_id', 'sport_id',
'star', 'star',
'is_multiline_direct', 'is_multiline_direct',
'no_filter',
'bookmaker_id', 'bookmaker_id',
'provider_id', 'provider_id',
]; ];
Generated
+20 -20
View File
@@ -3873,16 +3873,16 @@
}, },
{ {
"name": "livewire/livewire", "name": "livewire/livewire",
"version": "v3.7.4", "version": "v3.7.5",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/livewire/livewire.git", "url": "https://github.com/livewire/livewire.git",
"reference": "5a8dffd4c0ab357ff7ed5b39e7c2453d962a68e0" "reference": "b48b1e5ecb6c4740f49e18b1c2bc14ed33f8ebff"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/livewire/livewire/zipball/5a8dffd4c0ab357ff7ed5b39e7c2453d962a68e0", "url": "https://api.github.com/repos/livewire/livewire/zipball/b48b1e5ecb6c4740f49e18b1c2bc14ed33f8ebff",
"reference": "5a8dffd4c0ab357ff7ed5b39e7c2453d962a68e0", "reference": "b48b1e5ecb6c4740f49e18b1c2bc14ed33f8ebff",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -3937,7 +3937,7 @@
"description": "A front-end framework for Laravel.", "description": "A front-end framework for Laravel.",
"support": { "support": {
"issues": "https://github.com/livewire/livewire/issues", "issues": "https://github.com/livewire/livewire/issues",
"source": "https://github.com/livewire/livewire/tree/v3.7.4" "source": "https://github.com/livewire/livewire/tree/v3.7.5"
}, },
"funding": [ "funding": [
{ {
@@ -3945,7 +3945,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-01-13T09:37:21+00:00" "time": "2026-01-21T08:08:00+00:00"
}, },
{ {
"name": "masterminds/html5", "name": "masterminds/html5",
@@ -10971,11 +10971,11 @@
}, },
{ {
"name": "phpstan/phpstan", "name": "phpstan/phpstan",
"version": "2.1.35", "version": "2.1.34",
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/phpstan/phpstan/zipball/72f843c7f59d3aac0b7510f5e70913a9b72a8e88", "url": "https://api.github.com/repos/phpstan/phpstan/zipball/070ba754a949fcade788e16e8dc5a5935b7cf2ee",
"reference": "72f843c7f59d3aac0b7510f5e70913a9b72a8e88", "reference": "070ba754a949fcade788e16e8dc5a5935b7cf2ee",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
@@ -11020,7 +11020,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-01-20T17:33:48+00:00" "time": "2026-01-19T19:52:16+00:00"
}, },
{ {
"name": "phpunit/php-code-coverage", "name": "phpunit/php-code-coverage",
@@ -11468,21 +11468,21 @@
}, },
{ {
"name": "rector/rector", "name": "rector/rector",
"version": "2.3.2", "version": "2.3.3",
"source": { "source": {
"type": "git", "type": "git",
"url": "https://github.com/rectorphp/rector.git", "url": "https://github.com/rectorphp/rector.git",
"reference": "07cbbe28bd60251b96b18d42e514779b0e2faa83" "reference": "7d09105f868491828891239462eb5b13ffdf2643"
}, },
"dist": { "dist": {
"type": "zip", "type": "zip",
"url": "https://api.github.com/repos/rectorphp/rector/zipball/07cbbe28bd60251b96b18d42e514779b0e2faa83", "url": "https://api.github.com/repos/rectorphp/rector/zipball/7d09105f868491828891239462eb5b13ffdf2643",
"reference": "07cbbe28bd60251b96b18d42e514779b0e2faa83", "reference": "7d09105f868491828891239462eb5b13ffdf2643",
"shasum": "" "shasum": ""
}, },
"require": { "require": {
"php": "^7.4|^8.0", "php": "^7.4|^8.0",
"phpstan/phpstan": "^2.1.34" "phpstan/phpstan": "2.1.34"
}, },
"conflict": { "conflict": {
"rector/rector-doctrine": "*", "rector/rector-doctrine": "*",
@@ -11516,7 +11516,7 @@
], ],
"support": { "support": {
"issues": "https://github.com/rectorphp/rector/issues", "issues": "https://github.com/rectorphp/rector/issues",
"source": "https://github.com/rectorphp/rector/tree/2.3.2" "source": "https://github.com/rectorphp/rector/tree/2.3.3"
}, },
"funding": [ "funding": [
{ {
@@ -11524,7 +11524,7 @@
"type": "github" "type": "github"
} }
], ],
"time": "2026-01-20T01:11:51+00:00" "time": "2026-01-21T10:54:49+00:00"
}, },
{ {
"name": "sebastian/cli-parser", "name": "sebastian/cli-parser",
@@ -12814,12 +12814,12 @@
], ],
"aliases": [], "aliases": [],
"minimum-stability": "stable", "minimum-stability": "stable",
"stability-flags": {}, "stability-flags": [],
"prefer-stable": true, "prefer-stable": true,
"prefer-lowest": false, "prefer-lowest": false,
"platform": { "platform": {
"php": "^8.3" "php": "^8.3"
}, },
"platform-dev": {}, "platform-dev": [],
"plugin-api-version": "2.9.0" "plugin-api-version": "2.6.0"
} }
@@ -27,6 +27,7 @@ return new class extends Migration
$table->boolean('has_email_authentication')->default(false); $table->boolean('has_email_authentication')->default(false);
$table->boolean('stars')->default(false); $table->boolean('stars')->default(false);
$table->boolean('is_multiline_direct')->default(false); $table->boolean('is_multiline_direct')->default(false);
$table->boolean('no_filter')->default(false);
$table->timestamp('app_verified_at')->nullable(); $table->timestamp('app_verified_at')->nullable();
$table->rememberToken(); $table->rememberToken();
+5 -4
View File
@@ -25,7 +25,7 @@ class BookmakerSeeder extends Seeder
(35, 'Logifuture Nigeria', 'logifuture-nig', NULL, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, NULL, '2026-01-21 08:05:31'), (35, 'Logifuture Nigeria', 'logifuture-nig', NULL, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, NULL, '2026-01-21 08:05:31'),
(36, 'Logifuture Colombia', 'logifuture-col', NULL, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, NULL, '2026-01-21 08:05:30'), (36, 'Logifuture Colombia', 'logifuture-col', NULL, 0, 0, 0, 0, 1, 1, 1, 1, 0, 0, NULL, '2026-01-21 08:05:30'),
(42, 'William Hill', 'willhill', NULL, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, NULL, '2026-01-21 08:18:14'), (42, 'William Hill', 'willhill', NULL, 0, 1, 1, 1, 0, 1, 1, 1, 0, 0, NULL, '2026-01-21 08:18:14'),
(49, 'Bet At Home', 'betathome', NULL, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, NULL, '2026-01-21 08:20:50'), (49, 'Bet At Home', 'betathome', NULL, 0, 1, 1, 0, 0, 0, 1, 1, 1, 0, NULL, '2026-01-21 19:41:51'),
(83, 'Pinnacle', 'pinnacle', NULL, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, NULL, '2026-01-21 08:21:02'), (83, 'Pinnacle', 'pinnacle', NULL, 0, 0, 1, 1, 0, 1, 0, 1, 1, 0, NULL, '2026-01-21 08:21:02'),
(110, 'BetFair', 'betfair', NULL, 4, 1, 0, 1, 0, 1, 1, 0, 1, 0, NULL, '2026-01-21 08:21:12'), (110, 'BetFair', 'betfair', NULL, 4, 1, 0, 1, 0, 1, 1, 0, 1, 0, NULL, '2026-01-21 08:21:12'),
(117, 'SNAI', 'snai', NULL, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, NULL, '2026-01-21 08:08:28'), (117, 'SNAI', 'snai', NULL, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, NULL, '2026-01-21 08:08:28'),
@@ -47,10 +47,10 @@ class BookmakerSeeder extends Seeder
(577, 'Sisal', 'sisal', NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, '2026-01-21 08:03:55'), (577, 'Sisal', 'sisal', NULL, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, '2026-01-21 08:03:55'),
(625, 'Betaland', 'betaland', NULL, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, NULL, '2026-01-21 08:01:05'), (625, 'Betaland', 'betaland', NULL, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, NULL, '2026-01-21 08:01:05'),
(627, 'PlanetWin365', 'planetwin365', NULL, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL), (627, 'PlanetWin365', 'planetwin365', NULL, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL),
(649, '1XBet', '1xbet', NULL, 18, 1, 0, 0, 0, 1, 1, 0, 2, 0, NULL, '2026-01-21 08:13:48'), (649, '1XBet', '1xbet', NULL, 18, 1, 1, 0, 0, 1, 1, 1, 2, 0, NULL, '2026-01-21 19:38:24'),
(658, 'Bet9ja', 'bet9ja', NULL, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, NULL, '2026-01-21 08:08:03'), (658, 'Bet9ja', 'bet9ja', NULL, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, NULL, '2026-01-21 08:08:03'),
(668, 'SportPesa', 'sportpesa', NULL, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, NULL, '2026-01-21 08:08:33'), (668, 'SportPesa', 'sportpesa', NULL, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, NULL, '2026-01-21 08:08:33'),
(823, 'BetKing', 'betking', NULL, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, NULL, '2026-01-21 08:16:03'), (823, 'BetKing', 'betking', NULL, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, NULL, '2026-01-21 19:36:10'),
(824, 'BetPlay', 'betplay', NULL, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, NULL, '2026-01-21 08:02:37'), (824, 'BetPlay', 'betplay', NULL, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, NULL, '2026-01-21 08:02:37'),
(825, 'SportyBet', 'sportybet', NULL, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, NULL, '2026-01-21 08:08:44'), (825, 'SportyBet', 'sportybet', NULL, 0, 1, 1, 0, 0, 1, 1, 1, 0, 0, NULL, '2026-01-21 08:08:44'),
(827, 'WPlay', 'wplay', NULL, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, NULL, '2026-01-21 08:08:51'), (827, 'WPlay', 'wplay', NULL, 0, 1, 0, 0, 0, 1, 1, 0, 0, 0, NULL, '2026-01-21 08:08:51'),
@@ -59,7 +59,8 @@ class BookmakerSeeder extends Seeder
(1001, 'Betsson', 'betsson', NULL, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL), (1001, 'Betsson', 'betsson', NULL, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, NULL, NULL),
(1002, 'DafaBet', 'dafabet', NULL, 16, 0, 0, 0, 0, 0, 0, 0, 0, 1, NULL, NULL), (1002, 'DafaBet', 'dafabet', NULL, 16, 0, 0, 0, 0, 0, 0, 0, 0, 1, NULL, NULL),
(1003, 'BetVictor', 'betvictor', NULL, 17, 0, 0, 0, 0, 0, 0, 0, 0, 1, NULL, NULL), (1003, 'BetVictor', 'betvictor', NULL, 17, 0, 0, 0, 0, 0, 0, 0, 0, 1, NULL, NULL),
(1004, 'TitanBet', 'titanbet', NULL, 15, 0, 0, 0, 0, 0, 0, 0, 0, 1, NULL, NULL);"; (1004, 'TitanBet', 'titanbet', NULL, 15, 0, 0, 0, 0, 0, 0, 0, 0, 1, NULL, NULL);
";
DB::unprepared($sql); DB::unprepared($sql);
} }
@@ -11,42 +11,9 @@
@include('filament.tables.columns.multiline.label', ['labels' => ['1X', '12', 'X2']]) @include('filament.tables.columns.multiline.label', ['labels' => ['1X', '12', 'X2']])
@foreach ($record->odds_dc as $item)
@if ($item->bookmaker_id == auth()->user()->bookmaker_id)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->dc1x,
'dec' => 2,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->dc12,
'dec' => 2,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->dcx2,
'dec' => 2,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_dc as $item) @foreach ($record->odds_dc as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '', 'icon' => $item->bookmaker->icon ?? '',
@@ -13,7 +13,7 @@
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_dnb as $item) @foreach ($record->odds_dnb as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
@@ -13,7 +13,7 @@
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_ggng as $item) @foreach ($record->odds_ggng as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
@@ -13,7 +13,7 @@
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_2ways_s1 as $item) @foreach ($record->odds_2ways_s1 as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
@@ -13,7 +13,7 @@
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_2ways as $item) @foreach ($record->odds_2ways as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
@@ -13,7 +13,7 @@
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_points_q1 as $item) @foreach ($record->odds_points_q1 as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
@@ -13,7 +13,7 @@
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_points as $item) @foreach ($record->odds_points as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
@@ -13,7 +13,7 @@
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_totals_ht as $item) @foreach ($record->odds_totals_ht as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
@@ -13,7 +13,7 @@
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_totals_q1 as $item) @foreach ($record->odds_totals_q1 as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
@@ -13,7 +13,7 @@
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_totals as $item) @foreach ($record->odds_totals as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '', 'icon' => $item->bookmaker->icon ?? '',
@@ -10,37 +10,9 @@
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-4 gap-1" style="width: 190px;"> <div {{ $getExtraAttributeBag() }} class="grid grid-cols-4 gap-1" style="width: 190px;">
@include('filament.tables.columns.multiline.label', ['labels' => ['H', 'A']]) @include('filament.tables.columns.multiline.label', ['labels' => ['H', 'A']])
@foreach ($record->odds_tq as $item)
@if ($item->bookmaker_id == auth()->user()->bookmaker_id)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->htq,
'dec' => 2,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->atq,
'dec' => 2,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_tq as $item) @foreach ($record->odds_tq as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '', 'icon' => $item->bookmaker->icon ?? '',
@@ -11,42 +11,10 @@
@include('filament.tables.columns.multiline.label', ['labels' => ['1', 'X', '2']]) @include('filament.tables.columns.multiline.label', ['labels' => ['1', 'X', '2']])
@foreach ($record->odds_3ways as $item)
@if ($item->bookmaker_id == auth()->user()->bookmaker_id)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->h3w,
'dec' => 2,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->d3w,
'dec' => 2,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->a3w,
'dec' => 2,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_3ways as $item) @foreach ($record->odds_3ways as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '', 'icon' => $item->bookmaker->icon ?? '',
@@ -11,42 +11,10 @@
@include('filament.tables.columns.multiline.label', ['labels' => ['1', 'X', '2']]) @include('filament.tables.columns.multiline.label', ['labels' => ['1', 'X', '2']])
@foreach ($record->odds_3ways_ht as $item)
@if ($item->bookmaker_id == auth()->user()->bookmaker_id)
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->h3w,
'dec' => 2,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->d3w,
'dec' => 2,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->a3w,
'dec' => 2,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@foreach ($getBookmaker() as $bookmaker_id) @foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_3ways_ht as $item) @foreach ($record->odds_3ways_ht as $item)
@if ($item->bookmaker_id == $bookmaker_id) @if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [ @include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id, 'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '', 'icon' => $item->bookmaker->icon ?? '',
@@ -1,16 +1,35 @@
<div class="flex flex-row gap-3"> <div class="flex flex-row gap-3">
<x-filament::button size="xs"
wire:click="toggleFilter"
:hidden="auth()->user()->is_multiline_direct ? false : true"
:tooltip="auth()->user()->no_filter ? 'Comparing filters are disabled' : 'Comparing filters are active'"
:color="auth()->user()->no_filter ? 'primary' : 'gray'"
:icon="auth()->user()->no_filter ? 'phosphor-funnel-x' : 'phosphor-funnel'">
</x-filament::button>
<x-filament::button size="xs"
wire:click="toggleMultiline"
:tooltip="auth()->user()->is_multiline_direct ? 'Multiline slots are disabled' : 'Multiline slots are active'"
:color="auth()->user()->is_multiline_direct ? 'primary' : 'gray'"
:icon="auth()->user()->is_multiline_direct ? 'phosphor-not-equals' : 'phosphor-equals'">
</x-filament::button>
<x-filament::button size="xs"
tooltip="Toggle favorits"
wire:click="toggleStar"
:color="auth()->user()->stars ? 'primary' : 'gray'"
:icon="auth()->user()->stars ? 'phosphor-star-fill' : 'phosphor-star'">
</x-filament::button>
<div></div>
<div></div>
<div></div>
@foreach ($bettype_toggles as $toggle) @foreach ($bettype_toggles as $toggle)
<x-filament::button size="xs" class="flex flex-col justify-center gap-0" tooltip="{{ $toggle['name'] }}" <x-filament::button size="xs" class="flex flex-col justify-center gap-0" tooltip="{{ $toggle['name'] }}"
wire:click="toggleBettype({{ $toggle['id'] }})" :color="!$toggle['is_active'] ? 'gray' : 'primary'"> wire:click="toggleBettype({{ $toggle['id'] }})" :color="!$toggle['is_active'] ? 'gray' : 'primary'">
<div class="m-0 p-0">{{ $toggle['short'] }}</div> <div class="m-0 p-0">{{ $toggle['short'] }}</div>
</x-filament::button> </x-filament::button>
@endforeach @endforeach
<x-filament::button size="xs"
tooltip="
Toggle multiline between 'Comparing Bookmaker List' or 'Fixed Bookmaker'"
wire:click="toggleMultiline" :color="auth()->user()->is_multiline_direct ? 'primary' : 'gray'" icon='phosphor-list'>
</x-filament::button>
<x-filament::button size="xs" wire:click="toggleStar" :color="auth()->user()->stars ? 'primary' : 'gray'" :icon="auth()->user()->stars ? 'phosphor-star-fill' : 'phosphor-star'">
</x-filament::button>
</div> </div>
@@ -157,10 +157,10 @@
</x-filament::modal> </x-filament::modal>
{{-- Multiline --}} {{-- Multiline --}}
<x-filament::modal slide-over width="4xl" icon="phosphor-list" :close-by-clicking-away="false" :close-by-escaping="true" <x-filament::modal slide-over width="4xl" icon="phosphor-equals" :close-by-clicking-away="false" :close-by-escaping="true"
:close-button="true"> :close-button="true">
<x-slot name="trigger"> <x-slot name="trigger">
<x-filament::icon-button outlined icon="phosphor-list" color="gray" class="my-auto" <x-filament::icon-button outlined icon="phosphor-equals" color="gray" class="my-auto"
title="Multiline Settings"> title="Multiline Settings">
</x-filament::icon-button> </x-filament::icon-button>
</x-slot> </x-slot>
+2
View File
@@ -64,6 +64,7 @@ case "$1" in
php artisan nuh --d --f 17 php artisan nuh --d --f 17
php artisan nuh --d --f 18 php artisan nuh --d --f 18
php artisan nuh --d --f 19 php artisan nuh --d --f 19
php artisan nuh --d --f 53
;; ;;
"10") "10")
php artisan nuh --d --t --f 1 php artisan nuh --d --t --f 1
@@ -87,6 +88,7 @@ case "$1" in
php artisan nuh --d --f --p 17 php artisan nuh --d --f --p 17
php artisan nuh --d --f --p 18 php artisan nuh --d --f --p 18
php artisan nuh --d --f --p 19 php artisan nuh --d --f --p 19
php artisan nuh --d --f 53
;; ;;
*) *)
echo "" echo ""