This commit is contained in:
salam committed 2026-01-25 08:45:42 +01:00
1 parent da7d4092ac
commit 0cf815c00f
39 files changed
+582 -1760

No files matched your search

+18 -2
View File
@@ -114,7 +114,7 @@ class Odds
$_calls[] = $url.$markets.$id;
} elseif (Nuh::$options['g']) {
} elseif (Nuh::$options['gid']) {
/*************************************************
* BY GROUP ID
@@ -125,11 +125,27 @@ class Odds
$from_to = '&days='.Nuh::$options['days_from'].','.Nuh::$options['days_to'];
$events = Event::where('starttime', '>', Carbon::now()->toDateTimeString())->where('group_id', Nuh::$options['g'])->pluck('id');
$events = Event::where('starttime', '>', Carbon::now()->toDateTimeString())->where('group_id', Nuh::$options['gid'])->pluck('id');
foreach ($events as $event_id) {
$_calls[] = $url.$markets.$from_to.'&peid='.$event_id;
}
} elseif (Nuh::$options['g']) {
/*************************************************
* ALL BY GROUP ID for last changes
*************************************************/
if ($debug) {
Notice::note("GROUP_ID \nsport_id: ".Nuh::$options['sport_id'], 'p');
}
$from_to = '&days='.Nuh::$options['days_from'].','.Nuh::$options['days_to'];
$groupids = Event::where('starttime', '>', Carbon::now()->toDateTimeString())->groupBy('group_id')->pluck('group_id');
foreach ($groupids as $groupid) {
$_calls[] = $url.$markets.$from_to.'&pgid='.$groupid;
}
} elseif (Nuh::$options['t']) {
+2 -2
View File
@@ -21,7 +21,7 @@ class Nuh extends Command
public static $id = 0;
protected $signature = 'nuh {process=help} {--id=0} {--fn=} {--g=} {--p} {--d} {--x} {--t} {--w} {--a} {--r} {--s} {--t} {--q} {--f}';
protected $signature = 'nuh {process=help} {--id=0} {--fn=} {--gid=} {--p} {--d} {--x} {--t} {--w} {--a} {--r} {--s} {--g} {--t} {--q} {--f}';
public function handle()
{
@@ -37,7 +37,7 @@ class Nuh extends Command
$txt .= 'process [id] (required)'.PHP_EOL;
$txt .= '--id=matchid (optional) calling spezific id'.PHP_EOL;
$txt .= '--fn=name (optional) [bkms, markets]'.PHP_EOL;
$txt .= '--g=groupid (optional) [bkms, groupid]'.PHP_EOL;
$txt .= '--gid=groupid (optional) [bkms, groupid]'.PHP_EOL;
$txt .= '----------------------------------------------'.PHP_EOL.PHP_EOL;
$txt .= 'Options'.PHP_EOL;
$txt .= '----------------------------------------------'.PHP_EOL;
@@ -3,20 +3,8 @@
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\Column3wayHt;
use App\Filament\Tables\Columns\ColumnDc;
use App\Filament\Tables\Columns\ColumnDnb;
use App\Filament\Tables\Columns\ColumnGgng;
use App\Filament\Tables\Columns\ColumnMl;
use App\Filament\Tables\Columns\ColumnMlS1;
use App\Filament\Tables\Columns\ColumnPoint;
use App\Filament\Tables\Columns\ColumnPointQ1;
use App\Filament\Tables\Columns\ColumnTotal;
use App\Filament\Tables\Columns\ColumnTotalHt;
use App\Filament\Tables\Columns\ColumnTotalQ1;
use App\Filament\Tables\Columns\ColumnTq;
use App\Filament\Resources\Events\Tables\Tools\LoadMultiline;
use App\Filament\Tables\Columns\ColumnOdds;
use App\Filament\Tables\Columns\EventColumn;
use App\Filament\Tables\Columns\MatchIds;
use App\Filament\Tables\Columns\TooltipOdds;
@@ -52,18 +40,20 @@ class EventsTable
public static $bettype_settings;
public static $multiline_bookmaker;
public static $slots;
public static $filter;
public static function configure(Table $table): Table
{
self::$user = User::getUser();
self::$bettype_settings = LoadBettypeSettings::load();
LoadBettypeSettings::load();
self::$multiline_bookmaker = LoadMultilineBookmaker::load();
LoadMultiline::load();
return $table
->poll('10s')
// ->poll('10s')
->striped()
->deferLoading()
->defaultPaginationPageOption(5)
@@ -93,94 +83,83 @@ class EventsTable
EventColumn::make('event'),
TooltipOdds::make('ml')->bettype('odds_2ways')->label('')->visible(fn () => in_array('odds_2ways', self::$bettype_settings)),
ColumnMl::make('odds_2ways')->bookmakers(self::$multiline_bookmaker['odds_2ways'] ?? [])
ColumnOdds::make('odds_2ways')->bettype('odds_2ways')
->visible(fn () => in_array('odds_2ways', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('ML'),
TooltipOdds::make('mls1')->bettype('odds_2ways_s1')->label('')->visible(fn () => in_array('odds_2ways_s1', self::$bettype_settings)),
ColumnMlS1::make('odds_2ways_s1')->bookmakers(self::$multiline_bookmaker['odds_2ways'] ?? [])
ColumnOdds::make('odds_2ways_s1')->bettype('odds_2ways_s1')
->visible(fn () => in_array('odds_2ways_s1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('ML S1'),
TooltipOdds::make('1x2')->bettype('odds_3ways')->label('')->visible(fn () => in_array('odds_3ways', self::$bettype_settings)),
Column3way::make('odds_3ways')->bookmakers(self::$multiline_bookmaker['odds_3ways'] ?? [])
ColumnOdds::make('odds_3ways')->bettype('odds_3ways')
->visible(fn () => in_array('odds_3ways', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('1X2'),
TooltipOdds::make('total')->bettype('odds_totals')->label('')->visible(fn () => in_array('odds_totals', self::$bettype_settings)),
ColumnTotal::make('odds_totals')->bookmakers(self::$multiline_bookmaker['odds_totals'] ?? [])
ColumnOdds::make('odds_totals')->bettype('odds_totals')
->visible(fn () => in_array('odds_totals', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('Totals'),
TooltipOdds::make('1x2ht')->bettype('odds_3ways_ht')->label('')->visible(fn () => in_array('odds_3ways_ht', self::$bettype_settings)),
Column3wayHt::make('odds_3ways_ht')->bookmakers(self::$multiline_bookmaker['odds_3ways_ht'] ?? [])
ColumnOdds::make('odds_3ways_ht')->bettype('odds_3ways_ht')
->visible(fn () => in_array('odds_3ways_ht', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('1X2 HT'),
TooltipOdds::make('total_ht')->bettype('odds_totals_ht')->label('')->visible(fn () => in_array('odds_totals_ht', self::$bettype_settings)),
ColumnTotalHt::make('odds_totals_ht')->bookmakers(self::$multiline_bookmaker['odds_totals_ht'] ?? [])
ColumnOdds::make('odds_totals_ht')->bettype('odds_totals_ht')
->visible(fn () => in_array('odds_totals_ht', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('Totals HT'),
TooltipOdds::make('ggng')->bettype('odds_ggng')->label('')->visible(fn () => in_array('odds_ggng', self::$bettype_settings)),
ColumnGgng::make('odds_ggng')->bookmakers(self::$multiline_bookmaker['odds_ggng'] ?? [])
ColumnOdds::make('odds_ggng')->bettype('odds_ggng')
->visible(fn () => \in_array('odds_ggng', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('Goal No Goal'),
TooltipOdds::make('points')->bettype('odds_points')->label('')->visible(fn () => in_array('odds_points', self::$bettype_settings)),
ColumnPoint::make('odds_points')->bookmakers(self::$multiline_bookmaker['odds_points'] ?? [])
ColumnOdds::make('odds_points')->bettype('odds_points')
->width(240)
->visible(fn () => in_array('odds_points', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('Points'),
TooltipOdds::make('total_q1')->bettype('odds_totals_q1')->label('')->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings)),
ColumnTotalQ1::make('odds_totals_q1')->bookmakers(self::$multiline_bookmaker['odds_totals_q1'] ?? [])
ColumnOdds::make('odds_totals_q1')->bettype('odds_totals_q1')
->visible(fn () => in_array('odds_totals_q1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('Totals Q1'),
TooltipOdds::make('points_q1')->bettype('odds_points_q1')->label('')->visible(fn () => in_array('odds_points_q1', self::$bettype_settings)),
ColumnPointQ1::make('odds_points_q1')->bookmakers(self::$multiline_bookmaker['odds_points_q1'] ?? [])
ColumnOdds::make('odds_points_q1')->bettype('odds_points_q1')
->visible(fn () => in_array('odds_points_q1', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('Points Q1'),
TooltipOdds::make('dc')->bettype('odds_dc')->label('')->visible(fn () => in_array('odds_dc', self::$bettype_settings)),
ColumnDc::make('odds_dc')->bookmakers(self::$multiline_bookmaker['odds_dc'] ?? [])
ColumnOdds::make('odds_dc')->bettype('odds_dc')
->visible(fn () => \in_array('odds_dc', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('Double Chance'),
TooltipOdds::make('tq')->bettype('odds_tq')->label('')->visible(fn () => in_array('odds_tq', self::$bettype_settings)),
ColumnTq::make('odds_tq')->bookmakers(self::$multiline_bookmaker['odds_tq'] ?? [])
ColumnOdds::make('odds_tq')->bettype('odds_tq')
->visible(fn () => \in_array('odds_tq', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->label('To Qualify'),
TooltipOdds::make('dnb')->bettype('odds_dnb')->label('')->visible(fn () => in_array('odds_dnb', self::$bettype_settings)),
ColumnDnb::make('odds_dnb')->bookmakers(self::$multiline_bookmaker['odds_dnb'] ?? [])
ColumnOdds::make('odds_dnb')->bettype('odds_dnb')
->visible(fn () => \in_array('odds_dnb', self::$bettype_settings))
->verticalAlignment(VerticalAlignment::Start)
->alignCenter()
->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'])
@@ -2,6 +2,7 @@
namespace App\Filament\Resources\Events\Tables\Tools;
use App\Filament\Resources\Events\Tables\EventsTable;
use App\Models\BettypeUser;
class LoadBettypeSettings
@@ -18,6 +19,6 @@ class LoadBettypeSettings
$arr[] = $value->multiline_setting->table;
}
return $arr;
EventsTable::$bettype_settings = $arr;
}
}
@@ -0,0 +1,61 @@
<?php
namespace App\Filament\Resources\Events\Tables\Tools;
use App\Filament\Resources\Events\Tables\EventsTable;
use App\Models\ComparingBookmaker;
use App\Models\MultilineClient;
use App\Models\MultilineSetting;
class LoadMultiline
{
public static $user;
public static function load()
{
// if (EventsTable::$user->sport_id == 1) {
// $cb = ComparingBookmaker::where('sport_id', 1)->where('client_bookmaker_id', EventsTable::$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', EventsTable::$user->bookmaker_id)->orderBy('sorting')->select('bookmaker_id', 'time_lastcheck', 'margin_threshold', 'is_active')->get()->toArray();
// }
$cb = ComparingBookmaker::where('sport_id', EventsTable::$user->sport_id)->where('client_bookmaker_id', EventsTable::$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', EventsTable::$user->sport_id)->get();
foreach ($res as $value) {
EventsTable::$filter[$value->table] = $filter;
if (EventsTable::$user->is_multiline_direct) {
EventsTable::$slots[$value->table] = $bookmakers;
array_unshift(EventsTable::$slots[$value->table], EventsTable::$user->bookmaker_id);
}
}
if (! EventsTable::$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;
if (! isset(EventsTable::$slots[$table])) {
EventsTable::$slots[$table][] = (int) EventsTable::$user->bookmaker_id;
}
EventsTable::$slots[$table][] = (int) $value->bookmaker_id;
}
}
}
}
@@ -1,66 +0,0 @@
<?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;
}
}
@@ -1,78 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class Column3way extends Column
{
protected string $view = 'filament.tables.columns.column_3way';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_3ways);
$this->act = $record->odds_3ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['h3w'] = $record->odds_3ways->max('h3w');
$this->max['d3w'] = $record->odds_3ways->max('d3w');
$this->max['a3w'] = $record->odds_3ways->max('a3w');
$this->min['h3w'] = $record->odds_3ways->min('h3w');
$this->min['d3w'] = $record->odds_3ways->min('d3w');
$this->min['a3w'] = $record->odds_3ways->min('a3w');
$record->odds_3ways = FilterOdds::filter($record->odds_3ways, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -1,78 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class Column3wayHt extends Column
{
protected string $view = 'filament.tables.columns.column_3way_ht';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_3ways_ht);
$this->act = $record->odds_3ways_ht->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['h3w'] = $record->odds_3ways_ht->max('h3w');
$this->max['d3w'] = $record->odds_3ways_ht->max('d3w');
$this->max['a3w'] = $record->odds_3ways_ht->max('a3w');
$this->min['h3w'] = $record->odds_3ways_ht->min('h3w');
$this->min['d3w'] = $record->odds_3ways_ht->min('d3w');
$this->min['a3w'] = $record->odds_3ways_ht->min('a3w');
$record->odds_3ways_ht = FilterOdds::filter($record->odds_3ways_ht, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
-78
View File
@@ -1,78 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnDc extends Column
{
protected string $view = 'filament.tables.columns.column-dc';
protected $max;
protected $min;
protected $act;
protected ?array $bookmakers;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_dc);
$this->act = $record->odds_dc->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['dc1x'] = $record->odds_dc->max('dc1x');
$this->max['dc12'] = $record->odds_dc->max('dc12');
$this->max['dcx2'] = $record->odds_dc->max('dcx2');
$this->min['dc1x'] = $record->odds_dc->min('dc1x');
$this->min['dc12'] = $record->odds_dc->min('dc12');
$this->min['dcx2'] = $record->odds_dc->min('dcx2');
$record->odds_dc = FilterOdds::filter($record->odds_dc, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
-75
View File
@@ -1,75 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnDnb extends Column
{
protected string $view = 'filament.tables.columns.column-dnb';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_dnb);
$this->act = $record->odds_dnb->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['dnb1'] = $record->odds_dnb->max('dnb1');
$this->max['dnb2'] = $record->odds_dnb->max('dnb2');
$this->min['dnb1'] = $record->odds_dnb->min('dnb1');
$this->min['dnb2'] = $record->odds_dnb->min('dnb2');
$record->odds_dnb = FilterOdds::filter($record->odds_dnb, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -1,74 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnGgng extends Column
{
protected string $view = 'filament.tables.columns.column-ggng';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_ggng);
$this->act = $record->odds_ggng->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['gg'] = $record->odds_ggng->max('gg');
$this->max['ng'] = $record->odds_ggng->max('ng');
$this->min['gg'] = $record->odds_ggng->min('gg');
$this->min['ng'] = $record->odds_ggng->min('ng');
$record->odds_ggng = FilterOdds::filter($record->odds_ggng, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
-74
View File
@@ -1,74 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnMl extends Column
{
protected string $view = 'filament.tables.columns.column-ml';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_2ways);
$this->act = $record->odds_2ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['h2w'] = $record->odds_2ways->max('h2w');
$this->max['a2w'] = $record->odds_2ways->max('a2w');
$this->min['h2w'] = $record->odds_2ways->min('h2w');
$this->min['a2w'] = $record->odds_2ways->min('a2w');
$record->odds_2ways = FilterOdds::filter($record->odds_2ways, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -1,75 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnMlS1 extends Column
{
protected string $view = 'filament.tables.columns.column-ml-s1';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_2ways_s1);
$this->act = $record->odds_2ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['h2w'] = $record->odds_2ways->max('h2w');
$this->max['a2w'] = $record->odds_2ways->max('a2w');
$this->min['h2w'] = $record->odds_2ways->min('h2w');
$this->min['a2w'] = $record->odds_2ways->min('a2w');
$record->odds_2ways_s1 = FilterOdds::filter($record->odds_2ways_s1, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
+290
View File
@@ -0,0 +1,290 @@
<?php
namespace App\Filament\Tables\Columns;
use App\Filament\Resources\Events\Tables\EventsTable;
use Filament\Tables\Columns\Column;
class ColumnOdds extends Column
{
protected string $view = 'filament.tables.columns.column-odds';
public $data;
protected ?array $filter;
protected ?array $slots;
protected $bettype;
protected $columns;
protected $client;
protected ?array $odds_labels;
protected ?int $has_data;
public function loadData($record)
{
// $this->setMinMax($record);
$this->setSlots();
$this->getData($record);
if (! $this->data) {
$this->has_data = 0;
return;
}
$this->has_data = count($this->data);
$order = EventsTable::$slots ?? [];
$this->data->sortBy(function ($model) use ($order) {
return array_search($model->bookmaker_id, $order);
});
return $this->data;
}
public function bettype(string $bettype): static
{
$this->bettype = $bettype;
return $this;
}
public function getBettype()
{
return $this->bettype;
}
public function getColumns()
{
return $this->columns;
}
public function setSlots(): void
{
$this->slots = EventsTable::$slots[$this->bettype];
}
public function getSlots(): ?array
{
return $this->slots;
}
public function hasData()
{
return $this->has_data;
}
public function getClient()
{
return $this->client;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function getData($record)
{
switch ($this->bettype) {
case 'odds_2ways':
$this->data = $record->odds_2ways;
$this->client = $record->odds_2ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_2ways_s1':
$this->data = $record->odds_2ways_s1;
$this->client = $record->odds_2ways_s1->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_3ways':
$this->data = $record->odds_3ways;
$this->client = $record->odds_3ways->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_3ways_ht':
$this->data = $record->odds_3ways_ht;
$this->client = $record->odds_3ways_ht->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_dc':
$this->data = $record->odds_dc;
$this->client = $record->odds_dc->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_dnb':
$this->data = $record->odds_dnb;
$this->client = $record->odds_dnb->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_ggng':
$this->data = $record->odds_ggng;
$this->client = $record->odds_ggng->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_points':
$this->data = $record->odds_points;
$this->client = $record->odds_points->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_points_ht':
$this->data = $record->odds_points_ht;
$this->client = $record->odds_points_ht->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_points_q1':
$this->data = $record->odds_points_q1;
$this->client = $record->odds_points_q1->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_totals':
$this->data = $record->odds_totals;
$this->client = $record->odds_totals->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_totals_ht':
$this->data = $record->odds_totals_ht;
$this->client = $record->odds_totals_ht->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_totals_q1':
$this->data = $record->odds_totals_q1;
$this->client = $record->odds_totals_q1->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
case 'odds_tq':
$this->data = $record->odds_tq;
$this->client = $record->odds_tq->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
break;
}
}
public function getOddsLabels()
{
switch ($this->bettype) {
case 'odds_tq':
case 'odds_2ways':
case 'odds_2ways_s1':
case 'odds_dnb':
$this->columns = 2;
$this->odds_labels = ['1', '2'];
break;
case 'odds_3ways':
case 'odds_3ways_ht':
$this->columns = 3;
$this->odds_labels = ['1', 'X', '2'];
break;
case 'odds_dc':
$this->columns = 3;
$this->odds_labels = ['1X', '12', 'X2'];
break;
case 'odds_ggng':
$this->columns = 2;
$this->odds_labels = ['GG', 'NG'];
break;
case 'odds_points':
case 'odds_points_ht':
case 'odds_points_q1':
$this->columns = 3;
$this->odds_labels = ['H', 'A', 'HC'];
break;
case 'odds_totals':
case 'odds_totals_ht':
case 'odds_totals_q1':
$this->columns = 3;
$this->odds_labels = ['O', 'U', 'T'];
break;
}
return $this->odds_labels;
}
public function setMinMax($record)
{
switch ($this->bettype) {
case 'odds_2ways':
case 'odds_2ways_s1':
$this->max['h2w'] = $record->odds_2ways->max('h2w');
$this->max['a2w'] = $record->odds_2ways->max('a2w');
$this->min['h2w'] = $record->odds_2ways->min('h2w');
$this->min['h2w'] = $record->odds_2ways->min('h2w');
break;
case 'odds_3ways':
case 'odds_3ways_ht':
$this->max['h3w'] = $record->odds_3ways_ht->max('h3w');
$this->max['d3w'] = $record->odds_3ways_ht->max('d3w');
$this->max['a3w'] = $record->odds_3ways_ht->max('a3w');
$this->min['h3w'] = $record->odds_3ways_ht->min('h3w');
$this->min['d3w'] = $record->odds_3ways_ht->min('d3w');
$this->min['a3w'] = $record->odds_3ways_ht->min('a3w');
break;
case 'odds_dc':
$this->max['dc1x'] = $record->odds_dc->max('dc1x');
$this->max['dc12'] = $record->odds_dc->max('dc12');
$this->max['dcx2'] = $record->odds_dc->max('dcx2');
$this->min['dc1x'] = $record->odds_dc->min('dc1x');
$this->min['dc12'] = $record->odds_dc->min('dc12');
$this->min['dcx2'] = $record->odds_dc->min('dcx2');
break;
case 'odds_dnb':
$this->max['dnb1'] = $record->odds_dnb->max('dnb1');
$this->max['dnb2'] = $record->odds_dnb->max('dnb2');
$this->min['dnb1'] = $record->odds_dnb->min('dnb1');
$this->min['dnb2'] = $record->odds_dnb->min('dnb2');
break;
case 'odds_ggng':
$this->max['gg'] = $record->odds_ggng->max('gg');
$this->max['ng'] = $record->odds_ggng->max('ng');
$this->min['gg'] = $record->odds_ggng->min('gg');
$this->min['ng'] = $record->odds_ggng->min('ng');
break;
case 'odds_points':
case 'odds_points_ht':
case 'odds_points_q1':
$this->max['home'] = $record->odds_points->max('home');
$this->max['away'] = $record->odds_points->max('away');
$this->min['home'] = $record->odds_points->min('home');
$this->min['away'] = $record->odds_points->min('away');
break;
case 'odds_totals':
case 'odds_totals_ht':
case 'odds_totals_q1':
$this->max['over'] = $record->odds_totals->max('over');
$this->max['under'] = $record->odds_totals->max('under');
$this->min['over'] = $record->odds_totals->min('over');
$this->min['under'] = $record->odds_totals->min('under');
break;
case 'odds_tq':
$this->max['htq'] = $record->odds_tq->max('htq');
$this->max['atq'] = $record->odds_tq->max('atq');
$this->min['htq'] = $record->odds_tq->min('htq');
$this->min['atq'] = $record->odds_tq->min('atq');
break;
}
}
}
@@ -1,75 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnPoint extends Column
{
protected string $view = 'filament.tables.columns.column-point';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_points);
$this->act = $record->odds_points->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['home'] = $record->odds_points->max('home');
$this->max['away'] = $record->odds_points->max('away');
$this->min['home'] = $record->odds_points->min('home');
$this->min['away'] = $record->odds_points->min('away');
$record->odds_points = FilterOdds::filter($record->odds_points, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -1,75 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnPointQ1 extends Column
{
protected string $view = 'filament.tables.columns.column-point-q1';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_points_q1);
$this->act = $record->odds_points_q1->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['home'] = $record->odds_points_q1->max('home');
$this->max['away'] = $record->odds_points_q1->max('away');
$this->min['home'] = $record->odds_points_q1->min('home');
$this->min['away'] = $record->odds_points_q1->min('away');
$record->odds_points_q1 = FilterOdds::filter($record->odds_points_q1, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -1,75 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnTotal extends Column
{
protected string $view = 'filament.tables.columns.column-total';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_totals);
$this->act = $record->odds_totals->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['over'] = $record->odds_totals->max('over');
$this->max['under'] = $record->odds_totals->max('under');
$this->min['over'] = $record->odds_totals->min('over');
$this->min['under'] = $record->odds_totals->min('under');
$record->odds_totals = FilterOdds::filter($record->odds_totals, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -1,75 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnTotalHt extends Column
{
protected string $view = 'filament.tables.columns.column-total-ht';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_totals_ht);
$this->act = $record->odds_totals_ht->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['over'] = $record->odds_totals_ht->max('over');
$this->max['under'] = $record->odds_totals_ht->max('under');
$this->min['over'] = $record->odds_totals_ht->min('over');
$this->min['under'] = $record->odds_totals_ht->min('under');
$record->odds_totals_ht = FilterOdds::filter($record->odds_totals_ht, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
@@ -1,75 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnTotalQ1 extends Column
{
protected string $view = 'filament.tables.columns.column-total-q1';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_totals_q1);
$this->act = $record->odds_totals_q1->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['over'] = $record->odds_totals_q1->max('over');
$this->max['under'] = $record->odds_totals_q1->max('under');
$this->min['over'] = $record->odds_totals_q1->min('over');
$this->min['under'] = $record->odds_totals_q1->min('under');
$record->odds_totals_q1 = FilterOdds::filter($record->odds_totals_q1, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
-75
View File
@@ -1,75 +0,0 @@
<?php
namespace App\Filament\Tables\Columns;
use Filament\Tables\Columns\Column;
class ColumnTq extends Column
{
protected string $view = 'filament.tables.columns.column-tq';
protected ?array $bookmakers;
protected $max;
protected $min;
protected $act;
protected ?int $has_data;
public function bookmakers(?array $bookmakers): static
{
$this->bookmakers = $bookmakers;
return $this;
}
public function getBookmaker(): ?array
{
return $this->bookmakers['bookmaker'] ?? [];
}
public function getSlots(): ?array
{
return $this->bookmakers['slots'] ?? [];
}
public function loadData($record)
{
$this->has_data = count($record->odds_tq);
$this->act = $record->odds_tq->where('bookmaker_id', auth()->user()->bookmaker_id)->first();
$this->max['htq'] = $record->odds_tq->max('htq');
$this->max['atq'] = $record->odds_tq->max('atq');
$this->min['htq'] = $record->odds_tq->min('htq');
$this->min['atq'] = $record->odds_tq->min('atq');
$record->odds_tq = FilterOdds::filter($record->odds_tq, $this->bookmakers);
}
public function getAct()
{
return $this->act;
}
public function getMax()
{
return $this->max;
}
public function getMin()
{
return $this->min;
}
public function hasData()
{
return $this->has_data;
}
}
+30 -35
View File
@@ -2,12 +2,13 @@
namespace App\Filament\Tables\Columns;
namespace App\Filament\Tables\Columns;
use Carbon\Carbon;
use Illuminate\Database\Eloquent\Collection;
class FilterOdds
{
public static function filter($data, $bookmakers): Collection
public static function filter(&$bookmakers)
{
if (auth()->user()->is_multiline_direct) {
/**
@@ -15,43 +16,37 @@ class FilterOdds
*/
$order = $bookmakers['bookmaker'] ?? [];
$data->sortBy(function ($model) use ($order) {
ColumnOdds::$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'])) {
// Bookmakers::updateOrCreate(['id' => (int) $model->bookmaker_id], ['need_check' => 1]);
// }
// if ($model->margin <= $filter['margin'] && $checked_at > time() - $filter['time_lastcheck']) {
// return true;
// }
// return false;
// });
// }
// }
}
return $data;
/**
* SET SLOT
*/
// $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'])) {
// Bookmakers::updateOrCreate(['id' => (int) $model->bookmaker_id], ['need_check' => 1]);
// }
// if ($model->margin <= $filter['margin'] && $checked_at > time() - $filter['time_lastcheck']) {
// return true;
// }
// return false;
// });
// }
}
}
+3 -1
View File
@@ -164,7 +164,9 @@ class TooltipOdds extends Column
public function getOdd($odd, $name)
{
if ($odd == $this->max[$name]) {
if (in_array($name, ['handicap', 'total'])) {
$str = '<div class="mb-0.5 ml-0.5">';
} elseif ($odd == $this->max[$name]) {
$str = '<div class="mb-0.5 ml-0.5 bg-green-600/25 rounded shadow">';
} elseif ($odd == $this->min[$name]) {
$str = '<div class="mb-0.5 ml-0.5 bg-blue-600/25 rounded shadow">';
@@ -1,50 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['1X', '12', 'X2']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_dc as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@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,
'hig' => isset($act['dc1x']) && $item->dc1x >= $act['dc1x'] ? 1 : 0,
'has' => isset($act['dc1x']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->dc12,
'dec' => 2,
'hig' => isset($act['dc12']) && $item->dc12 >= $act['dc12'] ? 1 : 0,
'has' => isset($act['dc12']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->dcx2,
'dec' => 2,
'hig' => isset($act['dcx2']) && $item->dcx2 >= $act['dcx2'] ? 1 : 0,
'has' => isset($act['dcx2']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -1,43 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-4 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['DNB1', 'DNB2']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_dnb as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->dnb1,
'dec' => 2,
'hig' => isset($act['dnb1']) && $item->dnb1 >= $act['dnb1'] ? 1 : 0,
'has' => isset($act['dnb1']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->dnb2,
'dec' => 2,
'hig' => isset($act['dnb2']) && $item->dnb2 >= $act['dnb2'] ? 1 : 0,
'has' => isset($act['dnb2']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -1,43 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-4 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['GG', 'NG']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_ggng as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->gg,
'dec' => 2,
'hig' => isset($act['gg']) && $item->gg >= $act['gg'] ? 1 : 0,
'has' => isset($act['gg']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->ng,
'dec' => 2,
'hig' => isset($act['ng']) && $item->ng >= $act['ng'] ? 1 : 0,
'has' => isset($act['ng']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -1,43 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-4 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['1', '2']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_2ways_s1 as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->h2w,
'dec' => 2,
'hig' => isset($act['h2w']) && $item->h2w >= $act[''] ? 1 : 0,
'has' => isset($act['h2w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->a2w,
'dec' => 2,
'hig' => isset($act['a2w']) && $item->a2w >= $act['a2w'] ? 1 : 0,
'has' => isset($act['a2w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -1,43 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-4 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['1', '2']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_2ways as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->h2w,
'dec' => 2,
'hig' => isset($act['h2w']) && $item->h2w >= $act[''] ? 1 : 0,
'has' => isset($act['h2w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->a2w,
'dec' => 2,
'hig' => isset($act['a2w']) && $item->a2w >= $act['a2w'] ? 1 : 0,
'has' => isset($act['a2w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -0,0 +1,137 @@
@php
$data = $loadData($record);
@endphp
@if ($hasData())
@php
$client = $getClient();
$label = $getOddsLabels();
@endphp
@if ($getColumns() == 2)
<div class="grid grid-cols-4 gap-1" style="font-size: 10.5px; text-align:center; width:200px;">
@else
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5 gap-1"
style="font-size: 10.5px; text-align:center; width:250px;">
@endif
@include('filament.tables.columns.multiline.label', ['labels' => $label])
@foreach ($data as $item)
@if (in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@switch ($getBettype())
@case ('odds_tq')
@case ('odds_2ways')
@case ('odds_2ways_s1')
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->h2w,
'client' => $client?->h2w,
])
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->a2w,
'client' => $client?->a2w,
])
@break;
@case ('odds_3ways')
@case ('odds_3ways_ht')
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->h3w,
'client' => $client?->h3w,
])
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->d3w,
'client' => $client?->d3w,
])
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->a3w,
'client' => $client?->a3w,
])
@break;
@case ('odds_dc')
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->dc1x,
'client' => $client?->dc1x,
])
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->dc12,
'client' => $client?->dc12,
])
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->dcx2,
'client' => $client?->dcx2,
])
@break;
@case ('odds_dnb')
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->dnb1,
'client' => $client?->dnb1,
])
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->dnb2,
'client' => $client?->dnb2,
])
@break;
@case ('odds_ggng')
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->gg,
'client' => $client?->gg,
])
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->ng,
'client' => $client?->ng,
])
@break;
@case ('odds_points')
@case ('odds_points_ht')
@case ('odds_points_q1')
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->home,
'client' => $client?->home,
])
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->away,
'client' => $client?->away,
])
@include('filament.tables.columns.multiline.spread', [
'odd' => $item->handicap,
])
@break;
@case ('odds_totals')
@case ('odds_totals_ht')
@case ('odds_totals_q1')
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->over,
'client' => $client?->over,
])
@include('filament.tables.columns.multiline.odd', [
'odd' => $item->under,
'client' => $client?->under,
])
@include('filament.tables.columns.multiline.spread', [
'odd' => $item->total,
])
@break;
@endswitch
@include('filament.tables.columns.multiline.spread', [
'odd' => $item->margin,
])
@endif
@endforeach
</div>
@endif
@@ -1,49 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['O', 'U', 'T']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_points_q1 as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->home,
'dec' => 2,
'hig' => isset($act['home']) && $item->home >= $act['home'] ? 1 : 0,
'has' => isset($act['home']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->away,
'dec' => 2,
'hig' => isset($act['away']) && $item->away >= $act['away'] ? 1 : 0,
'has' => isset($act['away']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->handicap,
'dec' => 1,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -1,49 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['O', 'U', 'T']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_points as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->home,
'dec' => 2,
'hig' => isset($act['home']) && $item->home >= $act['home'] ? 1 : 0,
'has' => isset($act['home']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->away,
'dec' => 2,
'hig' => isset($act['away']) && $item->away >= $act['away'] ? 1 : 0,
'has' => isset($act['away']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->handicap,
'dec' => 1,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -1,49 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['O', 'U', 'T']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_totals_ht as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->over,
'dec' => 2,
'hig' => isset($act['over']) && $item->over >= $act['over'] ? 1 : 0,
'has' => isset($act['over']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->under,
'dec' => 2,
'hig' => isset($act['under']) && $item->under >= $act['under'] ? 1 : 0,
'has' => isset($act['under']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->total,
'dec' => 1,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -1,49 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['O', 'U', 'T']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_totals_q1 as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->over,
'dec' => 2,
'hig' => isset($act['over']) && $item->over >= $act['over'] ? 1 : 0,
'has' => isset($act['over']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->under,
'dec' => 2,
'hig' => isset($act['under']) && $item->under >= $act['under'] ? 1 : 0,
'has' => isset($act['under']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->total,
'dec' => 1,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -1,49 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['O', 'U', 'T']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_totals as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@include('filament.tables.columns.multiline.bkm', [
'bookmaker_id' => $item->bookmaker_id,
'icon' => $item->bookmaker->icon ?? '',
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->over,
'dec' => 2,
'hig' => isset($act['over']) && $item->over >= $act['over'] ? 1 : 0,
'has' => isset($act['over']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->under,
'dec' => 2,
'hig' => isset($act['under']) && $item->under >= $act['under'] ? 1 : 0,
'has' => isset($act['under']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->total,
'dec' => 1,
'has' => false,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -1,42 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-4 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['H', 'A']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_tq as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@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,
'hig' => isset($act['htq']) && $item->htq >= $act['htq'] ? 1 : 0,
'has' => isset($act['htq']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->atq,
'dec' => 2,
'hig' => isset($act['atq']) && $item->atq >= $act['atq'] ? 1 : 0,
'has' => isset($act['atq']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -1,55 +0,0 @@
@php
$loadData($record);
$act = $getAct();
$max = $getMax();
$min = $getMin();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5 gap-1">
@include('filament.tables.columns.multiline.label', [
'labels' => ['1', 'X', '2'],
'twice' => false,
])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_3ways as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@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,
'hig' => isset($act['h3w']) && $item->h3w >= $act['h3w'] ? 1 : 0,
'has' => isset($act['h3w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->d3w,
'dec' => 2,
'hig' => isset($act['d3w']) && $item->d3w >= $act['d3w'] ? 1 : 0,
'has' => isset($act['d3w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->a3w,
'dec' => 2,
'hig' => isset($act['a3w']) && $item->a3w >= $act['a3w'] ? 1 : 0,
'has' => isset($act['a3w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -1,50 +0,0 @@
@php
$loadData($record);
$act = $getAct();
@endphp
@if ($hasData())
<div {{ $getExtraAttributeBag() }} class="grid grid-cols-5 gap-1">
@include('filament.tables.columns.multiline.label', ['labels' => ['1', 'X', '2']])
@foreach ($getBookmaker() as $bookmaker_id)
@foreach ($record->odds_3ways_ht as $item)
@if ($item->bookmaker_id == $bookmaker_id && in_array($item->bookmaker_id, $getSlots()))
@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,
'hig' => isset($act['h3w']) && $item->h3w >= $act['h3w'] ? 1 : 0,
'has' => isset($act['h3w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->d3w,
'dec' => 2,
'hig' => isset($act['d3w']) && $item->d3w >= $act['d3w'] ? 1 : 0,
'has' => isset($act['d3w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->a3w,
'dec' => 2,
'hig' => isset($act['a3w']) && $item->a3w >= $act['a3w'] ? 1 : 0,
'has' => isset($act['a3w']) && $item->bookmaker_id != auth()->user()->bookmaker_id,
])
@include('filament.tables.columns.multiline.odds', [
'odd' => $item->margin,
'dec' => 1,
'has' => false,
])
@endif
@endforeach
@endforeach
</div>
@endif
@@ -0,0 +1,10 @@
@if ($client > 1 && $odd >= $client)
<div class="bg-gray-400/25 rounded">
@else
<div>
@endif
&nbsp;
@if (isset($odd))
{{ number_format($odd, 2) }}
@endif
</div>
@@ -1,14 +0,0 @@
<div style="font-size: 10.5px; text-align:center;" class="m-0 p-0
@if($has && $hig)
bg-gray-400/25 rounded
@endif
">
&nbsp;
@if (isset($odd))
{{ number_format($odd, $dec) }}
@endif
&nbsp;
</div>
@@ -0,0 +1,7 @@
<div>
&nbsp;
@if (isset($odd))
{{ number_format($odd, 1) }}
@endif
&nbsp;
</div>