comparatore bettypes wip
This commit is contained in:
1 parent
26bf5359bc
commit
28032520b4
28 files changed
+446
-149
No files matched your search
@@ -2,8 +2,7 @@
|
||||
|
||||
namespace App\Filament\Resources\Events\Tables;
|
||||
|
||||
use App\Filament\Tables\Columns\Odds3Way;
|
||||
use App\Filament\Tables\Columns\OddsTotals;
|
||||
use App\Filament\Tables\Columns\MultilineClient;
|
||||
use Carbon\Carbon;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\EditAction;
|
||||
@@ -27,7 +26,8 @@ class EventsTable
|
||||
->size(IconSize::ExtraLarge)
|
||||
->icon(fn ($record) => $record->sport->icon)
|
||||
->tooltip(fn ($record) => $record->id),
|
||||
TextColumn::make('txodds_id')->label('Match Id')->badge()->copyable()->searchable(),
|
||||
// TextColumn::make('id'),
|
||||
TextColumn::make('txodds_id')->label('Id')->badge()->copyable()->searchable(),
|
||||
TextColumn::make('starttime')
|
||||
->label('Start')
|
||||
->alignCenter()
|
||||
@@ -42,8 +42,8 @@ class EventsTable
|
||||
TextColumn::make('home.name')->alignRight()->searchable(),
|
||||
TextColumn::make('away.name')->searchable(),
|
||||
|
||||
Odds3Way::make('odds_3way.bookmaker')->label('1X2')->visible(auth()->user()->multiline_setting_id == 1),
|
||||
OddsTotals::make('odds_totals.bookmaker')->label('Totals')->visible(auth()->user()->multiline_setting_id == 6),
|
||||
MultilineClient::make('id')->label(fn ($record) => view('filament.tables.columns.multiline-labels')),
|
||||
|
||||
])
|
||||
->defaultSort('starttime', 'ASC')
|
||||
->deferFilters(false)
|
||||
|
||||
@@ -0,0 +1,113 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Tables\Columns;
|
||||
|
||||
use App\Models\MultilineSetting;
|
||||
use Filament\Tables\Columns\Column;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use stdClass;
|
||||
|
||||
class MultilineClient extends Column
|
||||
{
|
||||
protected string $view = 'filament.tables.columns.multiline-client';
|
||||
|
||||
protected ?array $slots;
|
||||
|
||||
protected ?array $settings;
|
||||
|
||||
public function loadSlots($event_id, $bookmakers)
|
||||
{
|
||||
$this->settings = MultilineSetting::where('id', auth()->user()->multiline_setting_id)->select('table', 'has_3_columns')->first()->toArray();
|
||||
|
||||
$odds = DB::table($this->settings['table'])->where('event_id', $event_id)->get();
|
||||
|
||||
$this->makeSlots($odds, $bookmakers);
|
||||
|
||||
}
|
||||
|
||||
public function has3Columns(): ?int
|
||||
{
|
||||
return $this->settings['has_3_columns'];
|
||||
}
|
||||
|
||||
public function getSlots(): ?array
|
||||
{
|
||||
return $this->slots;
|
||||
}
|
||||
|
||||
public function makeSlots(&$odds, $bookmakers)
|
||||
{
|
||||
|
||||
$multilines = [];
|
||||
|
||||
foreach ($bookmakers as $slot => $bookmaker) {
|
||||
|
||||
$open = true;
|
||||
|
||||
foreach ($odds as $item) {
|
||||
if ($item->bookmaker_id == $bookmaker->bookmaker_id) {
|
||||
$item->icon = $bookmaker->bookmaker->icon;
|
||||
$item->table = $this->settings['table'];
|
||||
switch ($this->settings['table']) {
|
||||
case 'odds_2ways':
|
||||
case 'odds_2ways_s1':
|
||||
$item->a = $item->h3w;
|
||||
$item->c = $item->a3w;
|
||||
break;
|
||||
case 'odds_3ways':
|
||||
$item->a = $item->h3w;
|
||||
$item->b = $item->d3w;
|
||||
$item->c = $item->a3w;
|
||||
break;
|
||||
case 'odds_dc':
|
||||
$item->a = $item->dc1x;
|
||||
$item->b = $item->dc12;
|
||||
$item->c = $item->dc2x;
|
||||
break;
|
||||
case 'odds_dnb':
|
||||
$item->a = $item->dnb1;
|
||||
$item->c = $item->dnb2;
|
||||
break;
|
||||
case 'odds_ggng':
|
||||
$item->a = $item->gg;
|
||||
$item->c = $item->ng;
|
||||
break;
|
||||
case 'odds_handicaps':
|
||||
case 'odds_handicaps_q1':
|
||||
$item->a = $item->home;
|
||||
$item->b = $item->away;
|
||||
$item->c = $item->handicap;
|
||||
break;
|
||||
case 'odds_qualify':
|
||||
$item->a = $item->htq;
|
||||
$item->c = $item->atq;
|
||||
break;
|
||||
case 'odds_totals':
|
||||
case 'odds_totals_q1':
|
||||
$item->a = $item->over;
|
||||
$item->b = $item->under;
|
||||
$item->c = $item->total;
|
||||
break;
|
||||
default:
|
||||
// code...
|
||||
break;
|
||||
}
|
||||
$multilines[$slot] = $item;
|
||||
$open = false;
|
||||
}
|
||||
}
|
||||
if ($open) {
|
||||
$item = new stdClass;
|
||||
$item->bookmaker_id = $bookmaker->bookmaker_id;
|
||||
$item->icon = $bookmaker->bookmaker->icon;
|
||||
$item->a = 0;
|
||||
$item->b = 0;
|
||||
$item->c = 0;
|
||||
$item->marging = 0;
|
||||
$multilines[$slot] = $item;
|
||||
}
|
||||
}
|
||||
|
||||
$this->slots = $multilines;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Tables\Columns;
|
||||
|
||||
use App\Actions\MultilineSlots;
|
||||
use Filament\Tables\Columns\Column;
|
||||
|
||||
class Odds3Way extends Column
|
||||
{
|
||||
protected string $view = 'filament.tables.columns.odds3-way';
|
||||
|
||||
protected ?array $slots = [];
|
||||
|
||||
public function loadSlots(&$data)
|
||||
{
|
||||
$this->slots = MultilineSlots::addSlots($data);
|
||||
}
|
||||
|
||||
public function getSlots(): ?array
|
||||
{
|
||||
return $this->slots;
|
||||
}
|
||||
}
|
||||
@@ -1,23 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Tables\Columns;
|
||||
|
||||
use App\Actions\MultilineSlots;
|
||||
use Filament\Tables\Columns\Column;
|
||||
|
||||
class OddsTotals extends Column
|
||||
{
|
||||
protected string $view = 'filament.tables.columns.odds-totals';
|
||||
|
||||
protected ?array $slots = [];
|
||||
|
||||
public function loadSlots(&$data)
|
||||
{
|
||||
$this->slots = MultilineSlots::addSlots($data);
|
||||
}
|
||||
|
||||
public function getSlots(): ?array
|
||||
{
|
||||
return $this->slots;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user