File: //home/armgroup/libs/app/Models/OptionProduct.php
<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\Model;
class OptionProduct extends Model
{
public $incrementing = false;
public $timestamps = false;
protected $table = 'option_product';
protected static function boot()
{
parent::boot();
static::addGlobalScope('order', function (Builder $builder) {
$builder->orderByRaw('IF(option_product.stock > 0, 0, 1), CASE WHEN (option_product.special > 0 And option_product.special_started_at <= ? AND option_product.special_ended_at >= ? ) THEN option_product.special ELSE option_product.price END ASC', [now(), now()]);
});
}
public function getSpecialMaskAttribute()
{
if ($this->special && ($this->special_started_at <= now()) && ($this->special_ended_at >= now())) {
return $this->special;
}
return null;
}
}