o1; $odds['away'] = (float) $value->o2; $odds['handicap'] = (float) $value->o3; } if (fmod((float) $odds['handicap'], 1) != 0.5) { return; } $odds['difference'] = abs(1 / $odds['home'] - 1 / $odds['away']); $odds['margin'] = (float) Margin::calculate([$odds['home'], $odds['away']], 1); $res = OddsPointQ1::where('event_id', $odds['event_id']) ->where('bookmaker_id', $odds['bookmaker_id']) ->where('handicap', $odds['handicap']) ->first(); if (! $res) { OddsPointQ1::create($odds); } else { $res->home = $odds['home']; $res->away = $odds['away']; if ($res->isDirty()) { $res->oddchange_at = now(); } $res->checked_at = $odds['checked_at']; $res->margin = $odds['margin']; $res->save(); } ActiveSpread::collect($odds, 'odds_points_q1'); } }