This commit is contained in:
salam committed 2026-01-26 18:26:02 +01:00
1 parent 9ca5657827
commit 6f3d608704
47 files changed
+1005 -145

No files matched your search

-12
View File
@@ -1,12 +0,0 @@
<?php
namespace App\Actions;
class AlarmGenerator
{
public static function run($record)
{
dd($record);
}
}
@@ -72,6 +72,7 @@ class Bet365
EventBookmaker::updateOrCreate([ EventBookmaker::updateOrCreate([
'event_id' => $event->id, 'event_id' => $event->id,
'sport_id' => $event->sport_id,
'bookmaker_id' => $bookmaker_id, 'bookmaker_id' => $bookmaker_id,
], ['starttime' => $event->starttime, 'in_feed' => 1, 'bmoid' => $event->bet365_id]); ], ['starttime' => $event->starttime, 'in_feed' => 1, 'bmoid' => $event->bet365_id]);
@@ -52,22 +52,30 @@ class FindFixture
case 3: case 3:
// MAGLOO KENIA // MAGLOO KENIA
$res = EventBookmaker::where('bookmaker_id', 10)->where('event_id', $event_id)->first(); $res = EventBookmaker::where('bookmaker_id', 10)->where('event_id', $event_id)->first();
$match = Event::where('id', $res->event_id)->first(); if ($res) {
$match = Event::where('id', $res->event_id)->first();
}
break; break;
case 4: case 4:
// MAGLOO NIGERIA // MAGLOO NIGERIA
$res = EventBookmaker::where('bookmaker_id', 16)->where('event_id', $event_id)->first(); $res = EventBookmaker::where('bookmaker_id', 16)->where('event_id', $event_id)->first();
$match = Event::where('id', $res->event_id)->first(); if ($res) {
$match = Event::where('id', $res->event_id)->first();
}
break; break;
case 5: case 5:
// LOGIFUTUR NIGERA // LOGIFUTUR NIGERA
$res = EventBookmaker::where('bookmaker_id', 35)->where('event_id', $event_id)->first(); $res = EventBookmaker::where('bookmaker_id', 35)->where('event_id', $event_id)->first();
$match = Event::where('id', $res->event_id)->first(); if ($res) {
$match = Event::where('id', $res->event_id)->first();
}
break; break;
case 6: case 6:
// LOGIFUTUR COLOMBIA // LOGIFUTUR COLOMBIA
$res = EventBookmaker::where('bookmaker_id', 36)->where('event_id', $event_id)->first(); $res = EventBookmaker::where('bookmaker_id', 36)->where('event_id', $event_id)->first();
$match = Event::where('id', $res->event_id)->first(); if ($res) {
$match = Event::where('id', $res->event_id)->first();
}
break; break;
} }
} }
@@ -59,6 +59,7 @@ class Logifuture
EventBookmaker::updateOrCreate([ EventBookmaker::updateOrCreate([
'event_id' => $event['id'], 'event_id' => $event['id'],
'sport_id' => $sport_id,
'bookmaker_id' => Nuh::$options['bookmaker_id'], 'bookmaker_id' => Nuh::$options['bookmaker_id'],
], ['in_feed' => 1, 'bmoid' => $event['event_id'], 'startime' => $event['starttime']]); ], ['in_feed' => 1, 'bmoid' => $event['event_id'], 'startime' => $event['starttime']]);
@@ -106,8 +106,9 @@ class Fixtures
EventBookmaker::updateOrCreate([ EventBookmaker::updateOrCreate([
'event_id' => $event['id'], 'event_id' => $event['id'],
'sport_id' => $sport_id,
'bookmaker_id' => Nuh::$options['bookmaker_id'], 'bookmaker_id' => Nuh::$options['bookmaker_id'],
], ['in_feed' => 1, 'bmoid' => $event['event_id']]); ], ['in_feed' => 1, 'bmoid' => $event['event_id'], 'starttime' => $event['starttime']]);
} }
} }
} }
+1 -2
View File
@@ -57,8 +57,6 @@ class Odds
$betradar_id = (int) preg_replace('/\D/', '', $match['p']); $betradar_id = (int) preg_replace('/\D/', '', $match['p']);
$bmoid = preg_replace('/\D/', '', $match['i']);
$starttime = Carbon::parse($match['dt'])->toDateTimeString(); $starttime = Carbon::parse($match['dt'])->toDateTimeString();
$event_id = Event::where('betradar_id', $betradar_id)->value('id'); $event_id = Event::where('betradar_id', $betradar_id)->value('id');
@@ -77,6 +75,7 @@ class Odds
EventBookmaker::updateOrCreate([ EventBookmaker::updateOrCreate([
'event_id' => $event_id, 'event_id' => $event_id,
'sport_id' => $sport_id,
'bookmaker_id' => Nuh::$options['bookmaker_id'], 'bookmaker_id' => Nuh::$options['bookmaker_id'],
], ['starttime' => $starttime, 'in_feed' => 1, 'bmoid' => $base['bmoid']]); ], ['starttime' => $starttime, 'in_feed' => 1, 'bmoid' => $base['bmoid']]);
@@ -8,10 +8,19 @@ class FilterTotals
{ {
$_totals = []; $_totals = [];
foreach ($_array as $total => $value) { foreach ($_array as $total => $value) {
if (fmod(abs($total), 1) == 0.5) { if ($sport_id == 1) {
if ($value[12] > 1 and $value[13] > 1) { if ($total == 2.5) {
$_totals[$total]['over'] = number_format($value[12], 2); if ($value[12] > 1 and $value[13] > 1) {
$_totals[$total]['under'] = number_format($value[13], 2); $_totals[$total]['over'] = number_format($value[12], 2);
$_totals[$total]['under'] = number_format($value[13], 2);
}
}
} else {
if (fmod(abs($total), 1) == 0.5) {
if ($value[12] > 1 and $value[13] > 1) {
$_totals[$total]['over'] = number_format($value[12], 2);
$_totals[$total]['under'] = number_format($value[13], 2);
}
} }
} }
} }
@@ -14,6 +14,7 @@ class MaglooStore1x2
$odds['d3w'] = number_format($value['static'][2], 2) ?? 1; $odds['d3w'] = number_format($value['static'][2], 2) ?? 1;
$odds['a3w'] = number_format($value['static'][3], 2) ?? 1; $odds['a3w'] = number_format($value['static'][3], 2) ?? 1;
$odds['margin'] = (float) Margin::calculate($odds, 1); $odds['margin'] = (float) Margin::calculate($odds, 1);
$odds['flags'] = 1;
$odds = array_merge($odds, $base); $odds = array_merge($odds, $base);
$res = Odds3way::where('event_id', $base['event_id'])->where('bookmaker_id', $base['bookmaker_id'])->first(); $res = Odds3way::where('event_id', $base['event_id'])->where('bookmaker_id', $base['bookmaker_id'])->first();
@@ -23,6 +24,7 @@ class MaglooStore1x2
$res->h3w = $odds['h3w']; $res->h3w = $odds['h3w'];
$res->a3w = $odds['d3w']; $res->a3w = $odds['d3w'];
$res->d3w = $odds['a3w']; $res->d3w = $odds['a3w'];
$res->flags = 1;
if ($res->isDirty()) { if ($res->isDirty()) {
$res->oddchange_at = now(); $res->oddchange_at = now();
} }
@@ -14,6 +14,7 @@ class MaglooStoreDc
$odds['dc12'] = number_format($value['static'][10], 2) ?? 1; $odds['dc12'] = number_format($value['static'][10], 2) ?? 1;
$odds['dcx2'] = number_format($value['static'][11], 2) ?? 1; $odds['dcx2'] = number_format($value['static'][11], 2) ?? 1;
$odds['margin'] = (float) Margin::calculate($odds, 1); $odds['margin'] = (float) Margin::calculate($odds, 1);
$odds['flags'] = 1;
$odds = array_merge($odds, $base); $odds = array_merge($odds, $base);
$res = OddsDc::where('event_id', $base['event_id'])->where('bookmaker_id', $base['bookmaker_id'])->first(); $res = OddsDc::where('event_id', $base['event_id'])->where('bookmaker_id', $base['bookmaker_id'])->first();
@@ -24,6 +25,7 @@ class MaglooStoreDc
$res->dc1x = $odds['dc1x']; $res->dc1x = $odds['dc1x'];
$res->dc12 = $odds['dc12']; $res->dc12 = $odds['dc12'];
$res->dcx2 = $odds['dcx2']; $res->dcx2 = $odds['dcx2'];
$res->flags = 1;
if ($res->isDirty()) { if ($res->isDirty()) {
$res->oddchange_at = now(); $res->oddchange_at = now();
} }
@@ -13,6 +13,7 @@ class MaglooStoreGgng
$odds['gg'] = number_format($value['static'][74], 2) ?? 1; $odds['gg'] = number_format($value['static'][74], 2) ?? 1;
$odds['ng'] = number_format($value['static'][76], 2) ?? 1; $odds['ng'] = number_format($value['static'][76], 2) ?? 1;
$odds['margin'] = (float) Margin::calculate($odds, 1); $odds['margin'] = (float) Margin::calculate($odds, 1);
$odds['flags'] = 1;
$odds = array_merge($odds, $base); $odds = array_merge($odds, $base);
$res = OddsGgng::where('event_id', $base['event_id'])->where('bookmaker_id', $base['bookmaker_id'])->first(); $res = OddsGgng::where('event_id', $base['event_id'])->where('bookmaker_id', $base['bookmaker_id'])->first();
@@ -22,6 +23,7 @@ class MaglooStoreGgng
} else { } else {
$res->gg = $odds['gg']; $res->gg = $odds['gg'];
$res->ng = $odds['ng']; $res->ng = $odds['ng'];
$res->flags = 1;
if ($res->isDirty()) { if ($res->isDirty()) {
$res->oddchange_at = now(); $res->oddchange_at = now();
} }
@@ -17,6 +17,7 @@ class MaglooStorePoints
$odds['active_spread'] = $value['active_spread']; $odds['active_spread'] = $value['active_spread'];
$odds['handicap'] = $handicap; $odds['handicap'] = $handicap;
$odds['difference'] = abs(1 / $odds['home'] - 1 / $odds['away']); $odds['difference'] = abs(1 / $odds['home'] - 1 / $odds['away']);
$odds['flags'] = 1;
$odds = array_merge($odds, $base); $odds = array_merge($odds, $base);
@@ -28,6 +29,7 @@ class MaglooStorePoints
if (! $res) { if (! $res) {
OddsPoint::create($odds); OddsPoint::create($odds);
} else { } else {
$res->flags = 1;
$res->home = number_format($odds['home'], 2); $res->home = number_format($odds['home'], 2);
$res->away = number_format($odds['away'], 2); $res->away = number_format($odds['away'], 2);
$res->handicap = number_format($odds['handicap'], 2); $res->handicap = number_format($odds['handicap'], 2);
@@ -17,6 +17,7 @@ class MaglooStorePointsQ1
$odds['active_spread'] = $value['active_spread']; $odds['active_spread'] = $value['active_spread'];
$odds['handicap'] = $handicap; $odds['handicap'] = $handicap;
$odds['difference'] = abs(1 / $odds['home'] - 1 / $odds['away']); $odds['difference'] = abs(1 / $odds['home'] - 1 / $odds['away']);
$odds['flags'] = 1;
$odds = array_merge($odds, $base); $odds = array_merge($odds, $base);
@@ -28,6 +29,7 @@ class MaglooStorePointsQ1
if (! $res) { if (! $res) {
OddsPointQ1::create($odds); OddsPointQ1::create($odds);
} else { } else {
$res->flags = 1;
$res->home = number_format($odds['home'], 2); $res->home = number_format($odds['home'], 2);
$res->away = number_format($odds['away'], 2); $res->away = number_format($odds['away'], 2);
$res->handicap = number_format($odds['handicap'], 2); $res->handicap = number_format($odds['handicap'], 2);
@@ -17,6 +17,7 @@ class MaglooStoreTotals
$odds['active_spread'] = $value['active_spread']; $odds['active_spread'] = $value['active_spread'];
$odds['total'] = $total; $odds['total'] = $total;
$odds['difference'] = abs(1 / $odds['over'] - 1 / $odds['under']); $odds['difference'] = abs(1 / $odds['over'] - 1 / $odds['under']);
$odds['flags'] = 1;
$odds = array_merge($odds, $base); $odds = array_merge($odds, $base);
@@ -28,6 +29,7 @@ class MaglooStoreTotals
if (! $res) { if (! $res) {
OddsTotal::create($odds); OddsTotal::create($odds);
} else { } else {
$res->flags = 1;
$res->over = number_format($odds['over'], 2); $res->over = number_format($odds['over'], 2);
$res->under = number_format($odds['under'], 2); $res->under = number_format($odds['under'], 2);
$res->total = number_format($odds['total'], 2); $res->total = number_format($odds['total'], 2);
@@ -17,6 +17,7 @@ class MaglooStoreTotalsQ1
$odds['active_spread'] = $value['active_spread']; $odds['active_spread'] = $value['active_spread'];
$odds['total'] = $total; $odds['total'] = $total;
$odds['difference'] = abs(1 / $odds['over'] - 1 / $odds['under']); $odds['difference'] = abs(1 / $odds['over'] - 1 / $odds['under']);
$odds['flags'] = 1;
$odds = array_merge($odds, $base); $odds = array_merge($odds, $base);
@@ -28,6 +29,7 @@ class MaglooStoreTotalsQ1
if (! $res) { if (! $res) {
OddsTotalQ1::create($odds); OddsTotalQ1::create($odds);
} else { } else {
$res->flags = 1;
$res->over = number_format($odds['over'], 2); $res->over = number_format($odds['over'], 2);
$res->under = number_format($odds['under'], 2); $res->under = number_format($odds['under'], 2);
$res->total = number_format($odds['total'], 2); $res->total = number_format($odds['total'], 2);
@@ -14,12 +14,14 @@ class MaglooStoreTq
$odds['atq'] = number_format($value['static'][5], 2) ?? 1; $odds['atq'] = number_format($value['static'][5], 2) ?? 1;
$odds['margin'] = (float) Margin::calculate($odds, 1); $odds['margin'] = (float) Margin::calculate($odds, 1);
$odds = array_merge($odds, $base); $odds = array_merge($odds, $base);
$odds['flags'] = 1;
$res = OddsTq::where('event_id', $base['event_id'])->where('bookmaker_id', $base['bookmaker_id'])->first(); $res = OddsTq::where('event_id', $base['event_id'])->where('bookmaker_id', $base['bookmaker_id'])->first();
if (! $res) { if (! $res) {
OddsTq::create($odds); OddsTq::create($odds);
} else { } else {
$res->flags = 1;
$res->htq = $odds['htq']; $res->htq = $odds['htq'];
$res->atq = $odds['atq']; $res->atq = $odds['atq'];
if ($res->isDirty()) { if ($res->isDirty()) {
@@ -319,6 +319,7 @@ class Odds
case 'starting_time': case 'starting_time':
EventBookmaker::updateOrInsert([ EventBookmaker::updateOrInsert([
'event_id' => $event_id, 'event_id' => $event_id,
'sport_id' => $sport_id,
'bookmaker_id' => $bookmaker_id, 'bookmaker_id' => $bookmaker_id,
], ['starttime' => $attributeValue]); ], ['starttime' => $attributeValue]);
break; break;
@@ -333,6 +334,7 @@ class Odds
case 'starting_time': case 'starting_time':
EventBookmaker::updateOrInsert([ EventBookmaker::updateOrInsert([
'event_id' => $event_id, 'event_id' => $event_id,
'sport_id' => $sport_id,
'bookmaker_id' => $bookmaker_id, 'bookmaker_id' => $bookmaker_id,
], ['starttime' => $attributeValue]); ], ['starttime' => $attributeValue]);
break; break;
@@ -347,6 +349,7 @@ class Odds
case 'starting_time': case 'starting_time':
EventBookmaker::updateOrInsert([ EventBookmaker::updateOrInsert([
'event_id' => $event_id, 'event_id' => $event_id,
'sport_id' => $sport_id,
'bookmaker_id' => $bookmaker_id, 'bookmaker_id' => $bookmaker_id,
], ['starttime' => $attributeValue]); ], ['starttime' => $attributeValue]);
break; break;
@@ -3,6 +3,7 @@
namespace App\Console\Commands\Services; namespace App\Console\Commands\Services;
use App\Console\Commands\Nuh; use App\Console\Commands\Nuh;
use App\Console\Commands\Services\Tasks\AlarmGenerator;
use App\Console\Commands\Services\Tasks\CallTxoddsMarkets; use App\Console\Commands\Services\Tasks\CallTxoddsMarkets;
use App\Console\Commands\Services\Tasks\DBMapper; use App\Console\Commands\Services\Tasks\DBMapper;
use App\Console\Commands\Services\Tasks\GenerateDefaultSetting; use App\Console\Commands\Services\Tasks\GenerateDefaultSetting;
@@ -21,6 +22,9 @@ class Services
case 'Generate Default Setting': case 'Generate Default Setting':
GenerateDefaultSetting::run(); GenerateDefaultSetting::run();
break; break;
case 'Alarm Generator':
AlarmGenerator::run();
break;
} }
} }
@@ -0,0 +1,30 @@
<?php
namespace App\Console\Commands\Services\Tasks\Alarm;
use App\Console\Commands\Nuh;
use App\Models\ComparingBookmaker;
class AlarmBookmakerFilter
{
public static function get($client_bookmaker_id)
{
$res = ComparingBookmaker::where('sport_id', Nuh::$options['sport_id'])
->where('client_bookmaker_id', $client_bookmaker_id)
->where('is_active', 1)
->orderBy('sorting', 'asc')
->select('bookmaker_id', 'time_lastcheck', 'margin_threshold', 'sorting')
->get();
$arr = [];
foreach ($res as $value) {
$arr[$value->bookmaker_id] = [
'sorting' => $value->sorting,
'time_lastcheck' => $value->time_lastcheck,
'margin_threshold' => $value->margin_threshold,
];
}
return $arr;
}
}
@@ -0,0 +1,16 @@
<?php
namespace App\Console\Commands\Services\Tasks\Alarm;
class AlarmFilterClient
{
public static function get($odds, $client_bookmaker_id)
{
if (isset($odds[$client_bookmaker_id])) {
return $odds[$client_bookmaker_id];
}
return [];
}
}
@@ -0,0 +1,23 @@
<?php
namespace App\Console\Commands\Services\Tasks\Alarm;
class AlarmFilterCompare
{
public static function get($odds, $filter)
{
foreach ($filter as $bookmaker_id => $value) {
if (isset($odds[$bookmaker_id])) {
$data = $odds[$bookmaker_id];
if ($data['margin'] <= $value['margin_threshold']) {
$data['bookmaker_id'] = $bookmaker_id;
return $data;
}
}
}
return [];
}
}
@@ -0,0 +1,29 @@
<?php
namespace App\Console\Commands\Services\Tasks\Alarm;
use Illuminate\Support\Facades\DB;
class AlarmLoadOdds
{
public static function get($event_id, $table, $oddnames)
{
$res = DB::table($table)->where('flags', 1)->where('event_id', $event_id)->get();
$odds = explode(',', $oddnames);
$arr = [];
foreach ($res as $value) {
if ($table == 'odds_dc') {
$arr[(int) $value->bookmaker_id]['margin'] = (float) $value->margin * 2;
} else {
$arr[(int) $value->bookmaker_id]['margin'] = (float) $value->margin;
}
foreach ($odds as $odd) {
$arr[(int) $value->bookmaker_id][$odd] = (float) $value->$odd;
}
}
return $arr;
}
}
@@ -0,0 +1,28 @@
<?php
namespace App\Console\Commands\Services\Tasks\Alarm;
class AlarmMap
{
public static function get($table)
{
$map = [
'odds_2ways' => ['alarm_2w_h2w' => 'h3w', 'alarm_2w_a2w' => 'a2w'],
'odds_2ways_s1' => ['alarm_2ws1_h2w' => 'h3w', 'alarm_2ws1_a2w' => 'a2w'],
'odds_3ways' => ['alarm_3w_h3w' => 'h3w', 'alarm_3w_d3w' => 'd3w', 'alarm_3w_a3w' => 'a3w'],
'odds_3ways_ht' => ['alarm_3wht_h3w' => 'h3w', 'alarm_3wht_d3w' => 'd3w', 'alarm_3wht_a3w' => 'a3w'],
'odds_dc' => ['alarm_dc_dc1x' => 'dc1x', 'alarm_dc_dc12' => 'dc12', 'alarm_dc_dcx2' => 'dcx2'],
'odds_dnb' => ['alarm_dbn_dnb1' => 'dnb1', 'alarm_dbn_dnb2' => 'dnb2'],
'odds_ggng' => ['alarm_ggng_gg' => 'gg', 'alarm_ggng_ng' => 'ng'],
'odds_points' => ['alarm_po_home' => 'home', 'alarm_po_away' => 'away'],
'odds_points_ht' => ['alarm_poht_home' => 'home', 'alarm_poht_away' => 'away'],
'odds_points_q1' => ['alarm_poq1_home' => 'home', 'alarm_poq1_away' => 'away'],
'odds_totals' => ['alarm_to_over' => 'over', 'alarm_to_under' => 'under'],
'odds_totals_ht' => ['alarm_toht_over' => 'over', 'alarm_toht_under' => 'under'],
'odds_totals_q1' => ['alarm_toq1_over' => 'over', 'alarm_toq1_under' => 'under'],
'odds_tq' => ['alarm_tq_htq' => 'htq', 'alarm_tq_atq' => 'atq'],
];
return $map[$table];
}
}
@@ -0,0 +1,24 @@
<?php
namespace App\Console\Commands\Services\Tasks\Alarm;
use App\Console\Commands\Nuh;
use App\Models\MultilineSetting;
class AlarmMultilineSetting
{
public static function get()
{
$res = MultilineSetting::where('sport_id', Nuh::$options['sport_id'])->get();
$arr = [];
foreach ($res as $value) {
$arr[$value->id] = [
'table' => $value->table,
'oddnames' => $value->oddnames,
];
}
return $arr;
}
}
@@ -0,0 +1,25 @@
<?php
namespace App\Console\Commands\Services\Tasks\Alarm;
use App\Console\Commands\Nuh;
use App\Models\AlarmSetting;
class AlarmSettings
{
public static function get($client_bookmaker_id)
{
$res = AlarmSetting::where('sport_id', Nuh::$options['sport_id'])
->where('client_bookmaker_id', $client_bookmaker_id)
->where('disabled', 0)
->select('multiline_setting_id', 'level_id', 'alarm_threshold')
->get();
$arr = [];
foreach ($res as $value) {
$arr[$value->multiline_setting_id][$value->level_id] = $value->alarm_threshold;
}
return $arr;
}
}
@@ -0,0 +1,42 @@
<?php
namespace App\Console\Commands\Services\Tasks\Alarm;
use App\Models\EventBookmaker;
class AlarmStore
{
public static function get($event_id, $table, $client_bookmaker_id, $alarm_threshold, $compare_odds, $client_odds)
{
$oddnames = AlarmMap::get($table);
if (! $compare_odds) {
return;
}
if (! $client_odds) {
return;
}
$update_array = [];
foreach ($oddnames as $fieldname => $oddname) {
$threshold = $client_odds[$oddname] - $compare_odds[$oddname];
if ($threshold > $alarm_threshold[3]) {
// ROT
$update_array[$fieldname] = 3;
} elseif ($threshold > $alarm_threshold[2]) {
// ORANGE
$update_array[$fieldname] = 2;
} elseif ($threshold > $alarm_threshold[1]) {
// GRÜNE
$update_array[$fieldname] = 1;
} else {
// Rset Alarm
$update_array[$fieldname] = 0;
}
}
EventBookmaker::where('event_id', $event_id)->where('bookmaker_id', $client_bookmaker_id)->update($update_array);
}
}
@@ -0,0 +1,57 @@
<?php
namespace App\Console\Commands\Services\Tasks;
use App\Console\Commands\Nuh;
use App\Console\Commands\Services\Tasks\Alarm\AlarmBookmakerFilter;
use App\Console\Commands\Services\Tasks\Alarm\AlarmFilterClient;
use App\Console\Commands\Services\Tasks\Alarm\AlarmFilterCompare;
use App\Console\Commands\Services\Tasks\Alarm\AlarmLoadOdds;
use App\Console\Commands\Services\Tasks\Alarm\AlarmMultilineSetting;
use App\Console\Commands\Services\Tasks\Alarm\AlarmSettings;
use App\Console\Commands\Services\Tasks\Alarm\AlarmStore;
use App\Models\Client;
use App\Models\EventBookmaker;
use App\Utilities\Notice;
class AlarmGenerator
{
public static function run()
{
$debug = Nuh::$options['d'] ?? 0;
if ($debug) {
Notice::note('ALARM GENERATOR', 'b');
}
$clients = Client::get();
$multilines = AlarmMultilineSetting::get();
foreach ($clients as $client) {
foreach ($client->bookmaker as $client_bookmaker_id) {
$alarm_threshold = AlarmSettings::get($client_bookmaker_id);
$filter = AlarmBookmakerFilter::get($client_bookmaker_id);
$res = EventBookmaker::where('bookmaker_id', $client_bookmaker_id)->where('sport_id', Nuh::$options['sport_id'])->get();
foreach ($res as $event) {
foreach ($multilines as $multiline_id => $multiline) {
$odds = AlarmLoadOdds::get($event->event_id, $multiline['table'], $multiline['oddnames']);
$compare_odds = AlarmFilterCompare::get($odds, $filter);
$client_odds = AlarmFilterClient::get($odds, $client_bookmaker_id);
AlarmStore::get($event->event_id, $multiline['table'], $client_bookmaker_id, $alarm_threshold[$multiline_id], $compare_odds, $client_odds);
}
}
}
}
}
}
@@ -3,6 +3,7 @@
namespace App\Console\Commands\Services\Tasks; namespace App\Console\Commands\Services\Tasks;
use App\Console\Commands\Nuh; use App\Console\Commands\Nuh;
use App\Models\AlarmSetting;
use App\Models\BettypeUser; use App\Models\BettypeUser;
use App\Models\Bookmaker; use App\Models\Bookmaker;
use App\Models\Client; use App\Models\Client;
@@ -24,11 +25,45 @@ class GenerateDefaultSetting
} }
/************************************************** /**************************************************
* MULTILINE SLOTS * 1) ALARM BOOKMAKER
**************************************************/ **************************************************/
if ($debug) { if ($debug) {
Notice::note('1) MULTILINE SLOTS', 'p'); Notice::note('1) ALARM BOOKMAKER', 'p');
}
$alarm_thresholds = [1 => 0.01, 2 => 0.2, 3 => 0.3];
$clients = Client::get();
foreach ($clients as $client) {
foreach ($client->sport as $sport_id) {
foreach ($client->bookmaker as $client_bookmaker_id) {
$multilines = MultilineSetting::where('sport_id', $sport_id)->get()->pluck('id');
foreach ($multilines as $multiline_id) {
foreach ($alarm_thresholds as $level_id => $alarm_threshold) {
AlarmSetting::firstOrCreate(
['client_bookmaker_id' => $client_bookmaker_id, 'sport_id' => $sport_id, 'multiline_setting_id' => $multiline_id, 'level_id' => $level_id],
['name' => "LEVEL $level_id", 'alarm_threshold' => $alarm_threshold]
);
}
}
}
}
}
/**************************************************
* 2) MULTILINE SLOTS
**************************************************/
if ($debug) {
Notice::note('2) MULTILINE SLOTS', 'p');
} }
$bookmaker_slots = [1 => 6, 2 => 30, 3 => 649, 4 => 126]; $bookmaker_slots = [1 => 6, 2 => 30, 3 => 649, 4 => 126];
@@ -58,11 +93,11 @@ class GenerateDefaultSetting
} }
/************************************************** /**************************************************
* BETTYPES for USER in MONITOR * 3) BETTYPES for USER in MONITOR
**************************************************/ **************************************************/
if ($debug) { if ($debug) {
Notice::note('2) GENERATOR BETTYPES IM COMPARATORE FOR USERS', 'p'); Notice::note('3) GENERATOR BETTYPES IM COMPARATORE FOR USERS', 'p');
} }
$users = User::get(); $users = User::get();
@@ -83,11 +118,11 @@ class GenerateDefaultSetting
} }
/************************************************** /**************************************************
* COMPARING BOOKMAKER * 4) COMPARING BOOKMAKER
**************************************************/ **************************************************/
if ($debug) { if ($debug) {
Notice::note('3) COMPARING BOOKMAKER', 'p'); Notice::note('4) COMPARING BOOKMAKER', 'p');
} }
$res = Client::get(); $res = Client::get();
@@ -104,13 +139,12 @@ class GenerateDefaultSetting
$i = 1; $i = 1;
foreach ($bookmakers_soccer as $bookmaker_id) { foreach ($bookmakers_soccer as $bookmaker_id) {
$margin_threshold = $bookmaker_id == 110 ? 103 : 115;
ComparingBookmaker::updateOrCreate( ComparingBookmaker::updateOrCreate(
['method_id' => 1, 'sport_id' => 1, 'client_bookmaker_id' => $client_bookmaker_id, 'bookmaker_id' => $bookmaker_id], ['method_id' => 1, 'sport_id' => 1, 'client_bookmaker_id' => $client_bookmaker_id, 'bookmaker_id' => $bookmaker_id],
['is_active' => 1, 'time_lastcheck' => 600, 'margin_threshold' => 110, 'sorting' => $i] ['is_active' => 1, 'time_lastcheck' => 600, 'margin_threshold' => $margin_threshold, 'sorting' => $i]
); );
$i++; $i++;
} }
} }
} }
@@ -184,6 +184,11 @@ class EventsTable
User::where('id', self::$user->id)->update(['sport_id' => (int) $state]); User::where('id', self::$user->id)->update(['sport_id' => (int) $state]);
$livewire->dispatch('refreshBettypeMenu'); $livewire->dispatch('refreshBettypeMenu');
$livewire->dispatch('reload_bookmaker_multiline');
$livewire->dispatch('reload_alarm_bookmaker');
$livewire->dispatch('refresh_comparing_bookmaker');
$livewire->dispatch('reload_data_left');
$livewire->dispatch('reload_data_right');
$set('country_id', null); $set('country_id', null);
$set('competition_group_id', null); $set('competition_group_id', null);
@@ -76,6 +76,7 @@ class SupervisorsTable
'Txodds Markets' => 'Txodds Markets', 'Txodds Markets' => 'Txodds Markets',
'DB Mapper' => 'DB Mapper', 'DB Mapper' => 'DB Mapper',
'Generate Default Setting' => 'Generate Default Setting', 'Generate Default Setting' => 'Generate Default Setting',
'Alarm Generator' => 'Alarm Generator',
]; ];
case 9: case 9:
case 10: case 10:
@@ -316,6 +316,7 @@ class ColumnOdds extends Column
public function setCompare($record) public function setCompare($record)
{ {
$this->compare = null; $this->compare = null;
$this->data->filter(function ($model) { $this->data->filter(function ($model) {
if ($model->bookmaker_id != auth()->user()->bookmaker_id) { if ($model->bookmaker_id != auth()->user()->bookmaker_id) {
+111
View File
@@ -0,0 +1,111 @@
<?php
namespace App\Livewire;
use App\Models\AlarmSetting;
use App\Models\MultilineSetting;
use Filament\Actions\Concerns\InteractsWithActions;
use Filament\Actions\Contracts\HasActions;
use Filament\Forms\Components\Radio;
use Filament\Schemas\Concerns\InteractsWithSchemas;
use Filament\Schemas\Contracts\HasSchemas;
use Filament\Tables\Columns\IconColumn;
use Filament\Tables\Columns\TextColumn;
use Filament\Tables\Columns\TextInputColumn;
use Filament\Tables\Columns\ToggleColumn;
use Filament\Tables\Concerns\InteractsWithTable;
use Filament\Tables\Contracts\HasTable;
use Filament\Tables\Enums\FiltersLayout;
use Filament\Tables\Filters\Filter;
use Filament\Tables\Table;
use Illuminate\Contracts\View\View;
use Illuminate\Database\Eloquent\Builder;
use Livewire\Component;
class AlarmBookmaker extends Component implements HasActions, HasSchemas, HasTable
{
use InteractsWithActions;
use InteractsWithSchemas;
use InteractsWithTable;
protected $listeners = [
'reload_alarm_bookmaker' => '$refresh',
];
public static $default_filter;
public static function load_filter($sport_id)
{
self::$default_filter = MultilineSetting::where('sport_id', $sport_id)
->orderBy('id')->pluck('id')->first();
}
public function table(Table $table): Table
{
self::load_filter(auth()->user()->sport_id);
return $table
->query(AlarmSetting::query()
->where('client_bookmaker_id', auth()->user()->bookmaker_id)
->where('sport_id', auth()->user()->sport_id))
->paginated(false)
->columns([
IconColumn::make('sport.icon')
->label('')
->width('1rem')
->icon(function ($record): string {
return $record->sport->icon;
})
->color(fn ($record): string => match ($record->level_id) {
1 => 'success',
2 => 'warning',
3 => 'danger',
}),
TextColumn::make('sport.name'),
TextColumn::make('multiline_setting.name')->label('Bettype'),
TextColumn::make('name')
->color(fn ($record): string => match ($record->level_id) {
1 => 'success',
2 => 'warning',
3 => 'danger',
}),
TextInputColumn::make('alarm_threshold')
->tooltip('Between 0.01 - 2.00')
->width('2rem')
->prefix('Threshold:')
->rules(['required', 'decimal:2', 'between:0,2']),
ToggleColumn::make('disabled')
->label('Status')
->offColor('success')
->onColor('danger'),
])
->defaultSort('level_id')
->deferFilters(false)
->filters([
Filter::make('multiline_setting_id')
->schema([
Radio::make('multiline_setting_id')
->inline()
->columnSpan(6)
->default(self::$default_filter)
->columnSpanFull()
->hiddenLabel()
->options(fn () => MultilineSetting::where('sport_id', auth()->user()->sport_id)->orderBy('name')->pluck('name', 'id')),
])
->query(function (Builder $query, array $data): Builder {
return $query
->when(
$data['multiline_setting_id'],
fn (Builder $query, $multiline_setting_id): Builder => $query->where('multiline_setting_id', $multiline_setting_id),
);
})
->columns(6)->columnSpan(6),
], layout: FiltersLayout::AboveContent)
->hiddenFilterIndicators();
}
public function render(): View
{
return view('livewire.alarm-bookmaker');
}
}
+1 -1
View File
@@ -34,7 +34,7 @@ class ComparingBookmakerMenu extends Component implements HasActions, HasSchemas
public $user; public $user;
protected $listeners = [ protected $listeners = [
'refresh' => '$refresh', 'refresh_comparing_bookmaker' => '$refresh',
]; ];
public function table(Table $table): Table public function table(Table $table): Table
+4
View File
@@ -83,6 +83,7 @@ class StoreMapped
// MAGLOO KENIA // MAGLOO KENIA
EventBookmaker::updateOrCreate([ EventBookmaker::updateOrCreate([
'event_id' => $arguments['id'], 'event_id' => $arguments['id'],
'sport_id' => $event->sport_id,
'bookmaker_id' => 16, 'bookmaker_id' => 16,
], ['starttime' => $mapper->starttime, 'in_feed' => 1, 'bmoid' => $mapper->event_id, 'is_swopped' => $swopped]); ], ['starttime' => $mapper->starttime, 'in_feed' => 1, 'bmoid' => $mapper->event_id, 'is_swopped' => $swopped]);
break; break;
@@ -90,6 +91,7 @@ class StoreMapped
// MAGLOO NIGERIA // MAGLOO NIGERIA
EventBookmaker::updateOrCreate([ EventBookmaker::updateOrCreate([
'event_id' => $arguments['id'], 'event_id' => $arguments['id'],
'sport_id' => $event->sport_id,
'bookmaker_id' => 10, 'bookmaker_id' => 10,
], ['starttime' => $mapper->starttime, 'in_feed' => 1, 'bmoid' => $mapper->event_id, 'is_swopped' => $swopped]); ], ['starttime' => $mapper->starttime, 'in_feed' => 1, 'bmoid' => $mapper->event_id, 'is_swopped' => $swopped]);
break; break;
@@ -97,6 +99,7 @@ class StoreMapped
// LOGIFUTUR NIGERA // LOGIFUTUR NIGERA
EventBookmaker::updateOrCreate([ EventBookmaker::updateOrCreate([
'event_id' => $arguments['id'], 'event_id' => $arguments['id'],
'sport_id' => $event->sport_id,
'bookmaker_id' => 35, 'bookmaker_id' => 35,
], ['starttime' => $mapper->starttime, 'in_feed' => 1, 'bmoid' => $mapper->event_id, 'is_swopped' => $swopped]); ], ['starttime' => $mapper->starttime, 'in_feed' => 1, 'bmoid' => $mapper->event_id, 'is_swopped' => $swopped]);
break; break;
@@ -104,6 +107,7 @@ class StoreMapped
// LOGIFUTUR COLOMBIA // LOGIFUTUR COLOMBIA
EventBookmaker::updateOrCreate([ EventBookmaker::updateOrCreate([
'event_id' => $arguments['id'], 'event_id' => $arguments['id'],
'sport_id' => $event->sport_id,
'bookmaker_id' => 36, 'bookmaker_id' => 36,
], ['starttime' => $mapper->starttime, 'in_feed' => 1, 'bmoid' => $mapper->event_id, 'is_swopped' => $swopped]); ], ['starttime' => $mapper->starttime, 'in_feed' => 1, 'bmoid' => $mapper->event_id, 'is_swopped' => $swopped]);
break; break;
+5 -11
View File
@@ -31,25 +31,19 @@ class MultilineBookmaker extends Component implements HasActions, HasSchemas, Ha
use InteractsWithSchemas; use InteractsWithSchemas;
use InteractsWithTable; use InteractsWithTable;
public static $default_filter; protected $listeners = [
'reload_bookmaker_multiline' => '$refresh',
];
public $user; public $user;
public static function load_filter($sport_id)
{
self::$default_filter = MultilineSetting::where('sport_id', $sport_id)
->orderBy('id')->pluck('id')->first();
}
public function table(Table $table): Table public function table(Table $table): Table
{ {
$this->user = User::getUser(); $this->user = User::getUser();
self::load_filter($this->user->sport_id);
return $table return $table
->query(MultilineClient::query()->where('client_bookmaker_id', auth()->user()->bookmaker_id)->where('sport_id', $this->user->sport_id)) ->query(MultilineClient::query()->where('client_bookmaker_id', $this->user->bookmaker_id)->where('sport_id', $this->user->sport_id))
->paginated(false) ->paginated(false)
->columns([ ->columns([
IconColumn::make('sport.icon') IconColumn::make('sport.icon')
@@ -88,7 +82,7 @@ class MultilineBookmaker extends Component implements HasActions, HasSchemas, Ha
->schema([ ->schema([
Radio::make('multiline_setting_id') Radio::make('multiline_setting_id')
->inline() ->inline()
->default(self::$default_filter) ->default(1)
->columnSpan(6) ->columnSpan(6)
->columnSpanFull() ->columnSpanFull()
->hiddenLabel() ->hiddenLabel()
+19 -1
View File
@@ -6,5 +6,23 @@ use Illuminate\Database\Eloquent\Model;
class AlarmSetting extends Model class AlarmSetting extends Model
{ {
// protected $fillable = [
'client_bookmaker_id',
'sport_id',
'disabled',
'multiline_setting_id',
'name',
'level_id',
'alarm_threshold',
];
public function multiline_setting()
{
return $this->belongsTo(MultilineSetting::class);
}
public function sport()
{
return $this->belongsTo(Sport::class);
}
} }
+46 -14
View File
@@ -8,6 +8,7 @@ class EventBookmaker extends Model
{ {
protected $fillable = [ protected $fillable = [
'event_id', 'event_id',
'sport_id',
'bookmaker_id', 'bookmaker_id',
'starttime', 'starttime',
'bmoid', 'bmoid',
@@ -15,20 +16,51 @@ class EventBookmaker extends Model
'is_swopped', 'is_swopped',
'send_status', 'send_status',
'has_to_qualify', 'has_to_qualify',
'alarm_2w',
'alarm_2ws1', 'alarm_2w_h2w',
'alarm_3w', 'alarm_2w_a2w',
'alarm_3wht',
'alarm_dc', 'alarm_2ws1_h2w',
'alarm_dbn', 'alarm_2ws1_a2w',
'alarm_ggng',
'alarm_po', 'alarm_3w_h3w',
'alarm_poht', 'alarm_3w_d3w',
'alarm_poq1', 'alarm_3w_a3w',
'alarm_to',
'alarm_toht', 'alarm_3wht_h3w',
'alarm_toq1', 'alarm_3wht_d3w',
'alarm_tq', 'alarm_3wht_a3w',
'alarm_dc_dc1x',
'alarm_dc_dc12',
'alarm_dc_dcx2',
'alarm_dbn_dnb1',
'alarm_dbn_dnb2',
'alarm_ggng_gg',
'alarm_ggng_ng',
'alarm_po_home',
'alarm_po_away',
'alarm_poht_home',
'alarm_poht_away',
'alarm_poq1_home',
'alarm_poq1_away',
'alarm_to_over',
'alarm_to_under',
'alarm_toht_over',
'alarm_toht_under',
'alarm_toq1_over',
'alarm_toq1_under',
'alarm_tq_htq',
'alarm_tq_atq',
]; ];
public function event() public function event()
@@ -15,32 +15,58 @@ return new class extends Migration
$table->id(); $table->id();
$table->foreignId('event_id')->index()->constrained()->cascadeOnDelete()->references('id')->on('events'); $table->foreignId('event_id')->index()->constrained()->cascadeOnDelete()->references('id')->on('events');
$table->integer('bookmaker_id')->index()->references('id')->on('bookmakers'); $table->integer('bookmaker_id')->index()->references('id')->on('bookmakers');
$table->integer('sport_id')->index()->references('id')->on('sports');
$table->timestamp('starttime')->nullable(); $table->timestamp('starttime')->nullable();
$table->string('bmoid')->nullable(); $table->string('bmoid')->nullable();
$table->boolean('is_swopped')->default(0); $table->boolean('is_swopped')->default(0);
$table->boolean('in_feed')->default(0); $table->boolean('in_feed')->default(0);
$table->boolean('send_status')->default(0); $table->boolean('send_status')->default(0);
$table->boolean('has_to_qualify')->index()->default(0); $table->boolean('has_to_qualify')->index()->default(0);
/**
* favorit client is lower then favorit from method $table->integer('alarm_2w_h2w')->nullable()->default(0);
* 0.01 $table->integer('alarm_2w_a2w')->nullable()->default(0);
* 0.3
* 0.5 $table->integer('alarm_2ws1_h2w')->nullable()->default(0);
*/ $table->integer('alarm_2ws1_a2w')->nullable()->default(0);
$table->integer('alarm_2w')->nullable()->default(0);
$table->integer('alarm_2ws1')->nullable()->default(0); $table->integer('alarm_3w_h3w')->nullable()->default(0);
$table->integer('alarm_3w')->nullable()->default(0); $table->integer('alarm_3w_d3w')->nullable()->default(0);
$table->integer('alarm_3wht')->nullable()->default(0); $table->integer('alarm_3w_a3w')->nullable()->default(0);
$table->integer('alarm_dc')->nullable()->default(0);
$table->integer('alarm_dbn')->nullable()->default(0); $table->integer('alarm_3wht_h3w')->nullable()->default(0);
$table->integer('alarm_ggng')->nullable()->default(0); $table->integer('alarm_3wht_d3w')->nullable()->default(0);
$table->integer('alarm_po')->nullable()->default(0); $table->integer('alarm_3wht_a3w')->nullable()->default(0);
$table->integer('alarm_poht')->nullable()->default(0);
$table->integer('alarm_poq1')->nullable()->default(0); $table->integer('alarm_dc_dc1x')->nullable()->default(0);
$table->integer('alarm_to')->nullable()->default(0); $table->integer('alarm_dc_dc12')->nullable()->default(0);
$table->integer('alarm_toht')->nullable()->default(0); $table->integer('alarm_dc_dcx2')->nullable()->default(0);
$table->integer('alarm_toq1')->nullable()->default(0);
$table->integer('alarm_tq')->nullable()->default(0); $table->integer('alarm_dbn_dnb1')->nullable()->default(0);
$table->integer('alarm_dbn_dnb2')->nullable()->default(0);
$table->integer('alarm_ggng_gg')->nullable()->default(0);
$table->integer('alarm_ggng_ng')->nullable()->default(0);
$table->integer('alarm_po_home')->nullable()->default(0);
$table->integer('alarm_po_away')->nullable()->default(0);
$table->integer('alarm_poht_home')->nullable()->default(0);
$table->integer('alarm_poht_away')->nullable()->default(0);
$table->integer('alarm_poq1_home')->nullable()->default(0);
$table->integer('alarm_poq1_away')->nullable()->default(0);
$table->integer('alarm_to_over')->nullable()->default(0);
$table->integer('alarm_to_under')->nullable()->default(0);
$table->integer('alarm_toht_over')->nullable()->default(0);
$table->integer('alarm_toht_under')->nullable()->default(0);
$table->integer('alarm_toq1_over')->nullable()->default(0);
$table->integer('alarm_toq1_under')->nullable()->default(0);
$table->integer('alarm_tq_htq')->nullable()->default(0);
$table->integer('alarm_tq_atq')->nullable()->default(0);
$table->timestamps(); $table->timestamps();
}); });
@@ -17,8 +17,9 @@ return new class extends Migration
$table->integer('sport_id')->index()->references('id')->on('sports'); $table->integer('sport_id')->index()->references('id')->on('sports');
$table->boolean('disabled')->default(0); $table->boolean('disabled')->default(0);
$table->integer('multiline_setting_id')->default(1)->references('id')->on('multiline_settings'); $table->integer('multiline_setting_id')->default(1)->references('id')->on('multiline_settings');
$table->integer('level_id')->default(0); $table->integer('bookmaker_id')->index()->references('id')->on('bookmakers');
$table->decimal('alarm_threshold', 3, 2)->default(0); $table->integer('position')->default(0);
$table->integer('sort')->default(0);
$table->timestamps(); $table->timestamps();
}); });
} }
@@ -17,6 +17,7 @@ return new class extends Migration
$table->string('name'); $table->string('name');
$table->string('short'); $table->string('short');
$table->string('table'); $table->string('table');
$table->string('oddnames');
$table->string('matchpart'); $table->string('matchpart');
$table->integer('rows')->default(4); $table->integer('rows')->default(4);
$table->integer('has_3_columns')->default(0); $table->integer('has_3_columns')->default(0);
@@ -17,9 +17,9 @@ return new class extends Migration
$table->integer('sport_id')->index()->references('id')->on('sports'); $table->integer('sport_id')->index()->references('id')->on('sports');
$table->boolean('disabled')->default(0); $table->boolean('disabled')->default(0);
$table->integer('multiline_setting_id')->default(1)->references('id')->on('multiline_settings'); $table->integer('multiline_setting_id')->default(1)->references('id')->on('multiline_settings');
$table->integer('bookmaker_id')->index()->references('id')->on('bookmakers'); $table->string('name')->nullable();
$table->integer('position')->default(0); $table->integer('level_id')->default(0);
$table->integer('sort')->default(0); $table->decimal('alarm_threshold', 3, 2)->default(0);
$table->timestamps(); $table->timestamps();
}); });
} }
+26 -29
View File
@@ -12,36 +12,33 @@ class MultilineSettingSeeder extends Seeder
/** /**
* Clients * Clients
*/ */
$sql = "INSERT INTO `multiline_settings` (`sport_id`, `name`, `short`, `table`, `rows`, `has_3_columns`, `created_at`, `updated_at`) $sql = "INSERT INTO `multiline_settings` (`id`, `sport_id`, `name`, `short`, `table`, `oddnames`, `matchpart`, `rows`, `has_3_columns`, `created_at`, `updated_at`)
VALUES VALUES
(1, '1X2', '1X2', 'odds_3ways', 4, 1, '2025-12-14 09:25:48', '2025-12-14 09:25:48'), (1, 1, '1X2', '1X2', 'odds_3ways', 'h3w,d3w,a3w', '', 4, 1, '2025-12-14 09:25:48', '2025-12-14 09:25:48'),
(1, 'TOTALS', 'OU', 'odds_totals', 4, 1, '2025-12-14 09:32:38', '2025-12-14 09:32:38'), (2, 1, 'TOTALS', 'OU', 'odds_totals', 'over,under', '', 4, 1, '2025-12-14 09:32:38', '2025-12-14 09:32:38'),
(1, '1X2 HALF TIME', '1X2 HT', 'odds_3ways_ht', 4, 1, '2025-12-14 09:25:48', '2025-12-14 09:25:48'), (3, 1, '1X2 HALF TIME', '1X2 HT', 'odds_3ways_ht', 'h3w,d3w,a3w', '', 4, 1, '2025-12-14 09:25:48', '2025-12-14 09:25:48'),
(1, 'TOTALS HALF TIME', 'OU HT', 'odds_totals_ht', 4, 1, '2025-12-14 09:32:38', '2025-12-14 09:32:38'), (4, 1, 'TOTALS HALF TIME', 'OU HT', 'odds_totals_ht', 'over,under', '', 4, 1, '2025-12-14 09:32:38', '2025-12-14 09:32:38'),
(1, 'GOAL NO GOAL', 'GGNG', 'odds_ggng', 4, 0, '2025-12-14 09:31:56', '2025-12-14 09:31:56'), (5, 1, 'GOAL NO GOAL', 'GGNG', 'odds_ggng', 'gg,ng', '', 4, 0, '2025-12-14 09:31:56', '2025-12-14 09:31:56'),
(1, 'DOUBLE CHANCE', 'DC', 'odds_dc', 4, 1, '2025-12-14 09:31:22', '2025-12-14 09:32:55'), (6, 1, 'DOUBLE CHANCE', 'DC', 'odds_dc', 'dc1x,dc12,dcx2', '', 4, 1, '2025-12-14 09:31:22', '2025-12-14 09:32:55'),
(1, 'TO QUALIFY', 'TQ', 'odds_tq', 4, 0, '2025-12-14 09:32:19', '2025-12-14 09:32:19'), (7, 1, 'TO QUALIFY', 'TQ', 'odds_tq', 'htq,atq', '', 4, 0, '2025-12-14 09:32:19', '2025-12-14 09:32:19'),
(1, 'DRAW NO BET', 'DNB', 'odds_dnb', 4, 0, '2025-12-14 09:31:42', '2025-12-14 09:31:42'), (8, 1, 'DRAW NO BET', 'DNB', 'odds_dnb', 'dnb1,dnb2', '', 4, 0, '2025-12-14 09:31:42', '2025-12-14 09:31:42'),
(9, 2, '1X2', '1X2', 'odds_3ways', 'h3w,d3w,a3w', '', 4, 1, '2025-12-14 09:41:34', '2025-12-14 09:41:34'),
(2, '1X2', '1X2', 'odds_3ways', 4, 1, '2025-12-14 09:41:34', '2025-12-14 09:41:34'), (10, 2, 'MONEY LINE', 'ML', 'odds_2ways', 'h2w,a2w', '', 4, 0, '2025-12-14 09:41:21', '2025-12-14 09:41:21'),
(2, 'MONEY LINE', 'ML', 'odds_2ways', 4, 0, '2025-12-14 09:41:21', '2025-12-14 09:41:21'), (11, 2, 'POINTS', 'HC', 'odds_points', 'home,away', '', 4, 1, '2025-12-14 09:41:56', '2025-12-14 09:41:56'),
(2, 'POINTS', 'HC', 'odds_points', 4, 1, '2025-12-14 09:41:56', '2025-12-14 09:41:56'), (12, 2, 'TOTALS', 'OU', 'odds_totals', 'over,under', '', 4, 1, '2025-12-14 09:42:13', '2025-12-14 09:42:13'),
(2, 'TOTALS', 'OU', 'odds_totals', 4, 1, '2025-12-14 09:42:13', '2025-12-14 09:42:13'), (13, 2, 'POINTS FIRST QUARTER', 'HC Q1', 'odds_points_q1', 'home,away', '', 4, 1, '2025-12-14 09:41:56', '2025-12-14 09:41:56'),
(2, 'POINTS FIRST QUARTER', 'HC Q1', 'odds_points_q1', 4, 1, '2025-12-14 09:41:56', '2025-12-14 09:41:56'), (14, 2, 'TOTALS FIRST QUARTER', 'OU Q1', 'odds_totals_q1', 'over,under', '', 4, 1, '2025-12-14 09:42:13', '2025-12-14 09:42:13'),
(2, 'TOTALS FIRST QUARTER', 'OU Q1', 'odds_totals_q1', 4, 1, '2025-12-14 09:42:13', '2025-12-14 09:42:13'), (15, 3, 'MONEY LINE', 'ML', 'odds_2ways', 'h2w,a2w', '', 4, 0, '2025-12-14 09:37:32', '2025-12-14 09:37:32'),
(16, 3, 'POINTS', 'HC', 'odds_points', 'home,away', '', 4, 1, '2025-12-14 09:38:05', '2025-12-14 09:38:05'),
(3, 'MONEY LINE', 'ML', 'odds_2ways', 4, 0, '2025-12-14 09:37:32', '2025-12-14 09:37:32'), (17, 3, 'TOTALS', 'OU', 'odds_totals', 'over,under', '', 4, 1, '2025-12-14 09:38:44', '2025-12-14 09:38:44'),
(3, 'POINTS', 'HC', 'odds_points', 4, 1, '2025-12-14 09:38:05', '2025-12-14 09:38:05'), (18, 3, 'POINTS FIRST QUARTER', 'HC Q1', 'odds_points_q1', 'home,away', '', 4, 1, '2025-12-14 09:38:26', '2025-12-14 09:39:54'),
(3, 'TOTALS', 'OU', 'odds_totals', 4, 1, '2025-12-14 09:38:44', '2025-12-14 09:38:44'), (19, 3, 'TOTALS FIRST QUARTER', 'OU Q1', 'odds_totals_q1', 'over,under', '', 4, 1, '2025-12-14 09:39:12', '2025-12-14 09:39:59'),
(3, 'POINTS FIRST QUARTER', 'HC Q1', 'odds_points_q1', 4, 1, '2025-12-14 09:38:26', '2025-12-14 09:39:54'), (20, 3, 'POINTS HALF TIME', 'HC HT', 'odds_points_ht', 'home,away', '', 4, 1, '2025-12-14 09:38:26', '2025-12-14 09:39:54'),
(3, 'TOTALS FIRST QUARTER', 'OU Q1', 'odds_totals_q1', 4, 1, '2025-12-14 09:39:12', '2025-12-14 09:39:59'), (21, 3, 'TOTALS HALF TIME', 'OU HT', 'odds_totals_ht', 'over,under', '', 4, 1, '2025-12-14 09:39:12', '2025-12-14 09:39:59'),
(3, 'POINTS HALF TIME', 'HC HT', 'odds_points_ht', 4, 1, '2025-12-14 09:38:26', '2025-12-14 09:39:54'), (22, 5, 'MONEY LINE', 'ML', 'odds_2ways', 'h2w,a2w', '', 4, 0, '2025-12-14 09:43:52', '2025-12-14 09:43:52'),
(3, 'TOTALS HALF TIME', 'OU HT', 'odds_totals_ht', 4, 1, '2025-12-14 09:39:12', '2025-12-14 09:39:59'), (23, 5, 'MONEY LINE SET 1', 'ML S1', 'odds_2ways_s1', 'h2w,a2w', '', 4, 0, '2025-12-14 09:44:13', '2025-12-14 09:44:13'),
(24, 5, 'TOTALS', 'OU', 'odds_totals', 'over,under', '', 4, 1, '2025-12-14 09:44:26', '2025-12-14 09:44:26'),
(5, 'MONEY LINE', 'ML', 'odds_2ways', 4, 0, '2025-12-14 09:43:52', '2025-12-14 09:43:52'), (25, 5, 'POINTS', 'HC', 'odds_points', 'home,away', '', 4, 1, '2025-12-14 09:44:26', '2025-12-14 09:44:26');
(5, 'MONEY LINE SET 1', 'ML S1', 'odds_2ways_s1', 4, 0, '2025-12-14 09:44:13', '2025-12-14 09:44:13'),
(5, 'TOTALS', 'OU', 'odds_totals', 4, 1, '2025-12-14 09:44:26', '2025-12-14 09:44:26'),
(5, 'POINTS', 'HC', 'odds_points', 4, 1, '2025-12-14 09:44:26', '2025-12-14 09:44:26');
"; ";
DB::unprepared($sql); DB::unprepared($sql);
+3 -2
View File
@@ -66,8 +66,9 @@ class SupervisorSeeder extends Seeder
(50, '', 8, 5, 131073, 30, 0, NULL, NULL, 30, 0, 0, 0, 0, 10, 10, '2026-01-14 17:41:16', '2026-01-14 17:41:25'), (50, '', 8, 5, 131073, 30, 0, NULL, NULL, 30, 0, 0, 0, 0, 10, 10, '2026-01-14 17:41:16', '2026-01-14 17:41:25'),
(51, '', 9, 1, NULL, 30, 0, NULL, NULL, 30, 0, 0, 0, 0, 10, 10, '2026-01-16 12:05:14', '2026-01-16 12:05:14'), (51, '', 9, 1, NULL, 30, 0, NULL, NULL, 30, 0, 0, 0, 0, 10, 10, '2026-01-16 12:05:14', '2026-01-16 12:05:14'),
(52, '', 10, 0, NULL, 30, 0, NULL, NULL, 30, 0, 0, 0, 0, 10, 10, '2026-01-16 12:05:14', '2026-01-16 12:05:14'), (52, '', 10, 0, NULL, 30, 0, NULL, NULL, 30, 0, 0, 0, 0, 10, 10, '2026-01-16 12:05:14', '2026-01-16 12:05:14'),
(53, 'Generate Default Setting', 7, 0, NULL, 30, 0, NULL, NULL, 30, 0, 0, 0, 0, 10, 10, '2026-01-16 12:05:14', '2026-01-16 12:05:14'); (53, 'Generate Default Setting', 7, 0, NULL, 30, 0, NULL, NULL, 30, 0, 0, 0, 0, 10, 10, '2026-01-16 12:05:14', '2026-01-16 12:05:14'),
"; (54, 'Alarm Generator', 7, 1, NULL, 30, 0, NULL, NULL, 30, 0, 0, 0, 0, 10, 10, '2026-01-16 12:05:14', '2026-01-16 12:05:14');";
DB::unprepared($sql); DB::unprepared($sql);
} }
} }
@@ -9,95 +9,135 @@
]) ])
@switch ($getBettype()) @switch ($getBettype())
@case ('odds_tq') @case ('odds_tq')
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->htq,
'alarm' => $record->event_bookmaker->alarm_tq_htq,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->atq,
'alarm' => $record->event_bookmaker->alarm_tq_htq,
'd' => 2,
])
@break;
@case ('odds_2ways') @case ('odds_2ways')
@case ('odds_2ways_s1')
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->h2w, 'odd' => $client->h2w,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_2w_h2w,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->a2w, 'odd' => $client->a2w,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_2w_a2w,
'd' => 2, 'd' => 2,
]) ])
@break; @break;
@case ('odds_3ways')
@case ('odds_3ways_ht') @case ('odds_2ways_s1')
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->h2w,
'alarm' => $record->event_bookmaker->alarm_2ws1_h2w,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->a2w,
'alarm' => $record->event_bookmaker->alarm_2ws1_h2w,
'd' => 2,
])
@break;
@case ('odds_3ways')
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->h3w, 'odd' => $client->h3w,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_3w_h3w,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->d3w, 'odd' => $client->d3w,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_3w_d3w,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->a3w, 'odd' => $client->a3w,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_3w_a3w,
'd' => 2, 'd' => 2,
]) ])
@break; @break;
@case ('odds_3ways_ht')
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->h3w,
'alarm' => $record->event_bookmaker->alarm_3wht_h3w,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->d3w,
'alarm' => $record->event_bookmaker->alarm_3wht_d3w,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->a3w,
'alarm' => $record->event_bookmaker->alarm_3wht_a3w,
'd' => 2,
])
@break;
@case ('odds_dc') @case ('odds_dc')
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->dc1x, 'odd' => $client->dc1x,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_dc_dc1x,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->dc12, 'odd' => $client->dc12,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_dc_dc12,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->dcx2, 'odd' => $client->dcx2,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_dc_dcx2,
'd' => 2, 'd' => 2,
]) ])
@break; @break;
@case ('odds_dnb') @case ('odds_dnb')
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->dnb1, 'odd' => $client->dnb1,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_dbn_dnb1,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->dnb2, 'odd' => $client->dnb2,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_dbn_dnb2,
'd' => 2, 'd' => 2,
]) ])
@break; @break;
@case ('odds_ggng') @case ('odds_ggng')
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->gg, 'odd' => $client->gg,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_ggng_gg,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->ng, 'odd' => $client->ng,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_ggng_ng,
'd' => 2, 'd' => 2,
]) ])
@break; @break;
@case ('odds_points') @case ('odds_points')
@case ('odds_points_ht')
@case ('odds_points_q1')
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->home, 'odd' => $client->home,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_po_home,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->away, 'odd' => $client->away,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_po_away,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
@@ -106,19 +146,52 @@
'd' => 1, 'd' => 1,
]) ])
@break; @break;
@case ('odds_points_ht')
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->home,
'alarm' => $record->event_bookmaker->alarm_poht_home,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->away,
'alarm' => $record->event_bookmaker->alarm_poht_away,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->handicap,
'alarm' => 0,
'd' => 1,
])
@break;
@case ('odds_points_q1')
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->home,
'alarm' => $record->event_bookmaker->alarm_poq1_home,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->away,
'alarm' => $record->event_bookmaker->alarm_poq1_away,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->handicap,
'alarm' => 0,
'd' => 1,
])
@break;
@case ('odds_totals') @case ('odds_totals')
@case ('odds_totals_ht')
@case ('odds_totals_q1')
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->over, 'odd' => $client->over,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_to_over,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->under, 'odd' => $client->under,
'alarm' => 0, 'alarm' => $record->event_bookmaker->alarm_to_under,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
@@ -127,6 +200,43 @@
'd' => 1, 'd' => 1,
]) ])
@break; @break;
@case ('odds_totals_ht')
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->over,
'alarm' => $record->event_bookmaker->alarm_toht_over,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->under,
'alarm' => $record->event_bookmaker->alarm_toht_under,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->total,
'alarm' => 0,
'd' => 1,
])
@break;
@case ('odds_totals_q1')
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->over,
'alarm' => $record->event_bookmaker->alarm_toq1_over,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->under,
'alarm' => $record->event_bookmaker->alarm_toq1_under,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $client->total,
'alarm' => 0,
'd' => 1,
])
@break;
@endswitch @endswitch
@@ -9,7 +9,19 @@
]) ])
@switch ($getBettype()) @switch ($getBettype())
@case ('odds_tq') @case ('odds_tq')
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $compare->htq,
'alarm' => 0,
'd' => 2,
])
@include('filament.tables.columns.multiline.odd-compare', [
'odd' => $compare->atq,
'alarm' => 0,
'd' => 2,
])
@break;
@case ('odds_2ways') @case ('odds_2ways')
@@ -64,11 +76,12 @@
@case ('odds_dnb') @case ('odds_dnb')
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $compare->dnb1, 'odd' => $compare->dnb1,
'alarm' => 0,
'd' => 2, 'd' => 2,
]) ])
@include('filament.tables.columns.multiline.odd-compare', [ @include('filament.tables.columns.multiline.odd-compare', [
'odd' => $compare->dnb2, 'odd' => $compare->dnb2,
'alarm' => 0,
'd' => 2, 'd' => 2,
]) ])
@break; @break;
@@ -0,0 +1,3 @@
<div>
{{ $this->table }}
</div>
@@ -185,7 +185,7 @@
Alarm Settings Alarm Settings
</x-slot> </x-slot>
Alarm Settings Content @livewire('alarm-bookmaker')
</x-filament::modal> </x-filament::modal>
{{-- Calculation --}} {{-- Calculation --}}
+204
View File
@@ -0,0 +1,204 @@
define([
'dojo/_base/array',
'dojo/dom-class',
'nuhjs/comparatore/main/columset/nuh_columnsets',
'dojo/domReady!'
], function (arrayUtil, domClass, nuh_columnsets) {
return {
alarm_label_red: function () {
let bg = 1 == LOCALSCOPE.alarm_level_active ? ' bg-black' : ''
let label =
'<span class="tab-icon-space"><i class="fas fa-exclamation-triangle nuhred"></i></span><span class="alarm-label-space"> (' +
LOCALSCOPE.alarms.a +
') Red</span> <span class="float-right border-box-market snuf-g-small ' +
bg +
'">' +
LOCALSCOPE.alarm_a +
'</span>'
if (dijit.byId('alarm_color_1'))
dijit.byId('alarm_color_1').set('label', label)
},
alarm_label_orange: function () {
if (LOCALSCOPE.alarm_b < LOCALSCOPE.alarm_a) {
let bg = 2 == LOCALSCOPE.alarm_level_active ? ' bg-black' : ''
let label =
'<span class="tab-icon-space"><i class="fas fa-exclamation-triangle nuhorange"></i></span><span class="alarm-label-space"> (' +
LOCALSCOPE.alarms.b +
') Orange</span> <span class="float-right border-box-market snuf-g-small ' +
bg +
'">' +
LOCALSCOPE.alarm_b +
'</span>'
if (dijit.byId('alarm_color_2'))
dijit.byId('alarm_color_2').set('label', label)
}
},
alarm_label_yellow: function () {
if (LOCALSCOPE.alarm_c < LOCALSCOPE.alarm_b) {
let bg = 3 == LOCALSCOPE.alarm_level_active ? ' bg-black' : ''
let label =
'<span class="tab-icon-space"><i class="fas fa-exclamation-triangle nuhgelb"></i></span><span class="alarm-label-space"> (' +
LOCALSCOPE.alarms.c +
') Yellow</span> <span class="float-right border-box-market snuf-g-small ' +
bg +
'">' +
LOCALSCOPE.alarm_c +
'</span>'
if (dijit.byId('alarm_color_3'))
dijit.byId('alarm_color_3').set('label', label)
}
},
alarm_label_green: function () {
if (LOCALSCOPE.alarm_d < LOCALSCOPE.alarm_c) {
let bg = 4 == LOCALSCOPE.alarm_level_active ? ' bg-black' : ''
let label =
'<span class="tab-icon-space"><i class="fas fa-exclamation-triangle nuhgreen"></i></span><span class="alarm-label-space"> (' +
LOCALSCOPE.alarms.d +
') Green</span> <span class="float-right border-box-market snuf-g-small ' +
bg +
'">' +
LOCALSCOPE.alarm_d +
'</span>'
if (dijit.byId('alarm_color_4'))
dijit.byId('alarm_color_4').set('label', label)
}
},
alarm_label_top: function () {
let color, num, str
switch (LOCALSCOPE.alarm_level_active) {
case 1:
str = 'Red '
color = 'nuhrot'
num = LOCALSCOPE.alarms.a
break
case 2:
str = 'Orange '
color = 'nuhorange'
num = LOCALSCOPE.alarms.b
break
case 3:
str = 'Yellow '
color = 'nuhgelb'
num = LOCALSCOPE.alarms.c
break
case 4:
str = 'Green '
color = 'nuhgreen'
num = LOCALSCOPE.alarms.d
break
}
let label =
'<i class="fas fa-exclamation-triangle ' +
color +
'"></i>' +
str +
LOCALSCOPE.alarm_market_active.toUpperCase() +
' (' +
num +
')'
if (LOCALSCOPE.filter_switch == 'alarm') {
domClass.add('popup_alarm', 'set-active')
} else {
domClass.remove('popup_alarm', 'set-active')
}
// topmenu
dijit.byId('popup_alarm').set('label', label)
//in Managment Menu force alarms
if (LOCALSCOPE.hasfeed == 1) {
dijit
.byId('force_alarms_menu')
.set(
'label',
'<i class="fa fa-arrow-right"></i> Force ' + label
)
}
},
market_label: function (item) {
if (dijit.byId('market_' + item.market) != undefined) {
let activebg =
LOCALSCOPE.alarm_market_active == item.market ? ' bg-black' : ''
let label =
'Market</span><span class="float-right alarm-label-space border-box-market ' +
activebg +
'">' +
item.market.toUpperCase() +
'</span>'
dijit.byId('market_' + item.market).set('label', label)
}
},
compare_odds: function (
id,
disabled,
smart,
market_odd,
client_odd,
market_all,
client_all
) {
if (
disabled ||
market_odd == undefined ||
market_odd == 0 ||
client_odd == undefined ||
client_odd == 0
) {
return false
}
// if (
// (LOCALSCOPE.alarm_proportional_or_direct == 0 || smart) &&
// market_all > 0 &&
// client_all > 0
// ) {
// market_odd = (market_odd * market_all) / (client_all - 3)
// }
// if (LOCALSCOPE.alarm_proportional_or_direct == 0) {
// // proportional
// p = 1 / market_odd - 1 / client_odd
// } else {
// // direct
// p = client_odd - market_odd
// }
p = client_odd - market_odd
if (p >= LOCALSCOPE.alarm_a) {
LOCALSCOPE.alarms.a++
if (LOCALSCOPE.alarm_level_active == 1) return 1
} else if (p < LOCALSCOPE.alarm_a && p >= LOCALSCOPE.alarm_b) {
LOCALSCOPE.alarms.b++
if (LOCALSCOPE.alarm_level_active == 2) return 1
} else if (p < LOCALSCOPE.alarm_b && p >= LOCALSCOPE.alarm_c) {
LOCALSCOPE.alarms.c++
if (LOCALSCOPE.alarm_level_active == 3) return 1
} else if (p < LOCALSCOPE.alarm_c && p >= LOCALSCOPE.alarm_d) {
LOCALSCOPE.alarms.d++
if (LOCALSCOPE.alarm_level_active == 4) return 1
}
return 0
},
go_to_set: function () {
if (LOCALSCOPE.sportid >= 100) {
return
}
var set = 1
arrayUtil.forEach(LOCALSCOPE.columnsets.data, function (item, i) {
if (item.market == LOCALSCOPE.alarm_market_active) {
if (i >= 2) {
set = 2
}
}
})
if (set == 1) {
dijit.byId('gridset1').set('class', 'set-active')
dijit.byId('gridset2').set('class', 'set-light')
matches_grid.set('columnSets', nuh_columnsets.init(1))
} else {
dijit.byId('gridset1').set('class', 'set-light')
dijit.byId('gridset2').set('class', 'set-active')
matches_grid.set('columnSets', nuh_columnsets.init(2))
}
}
}
})