public function scopeFilteredBySearch($query)
{
if (request()->search) {
$query
->orWhere(function ($q) {
$columns = Schema::getColumnListing('orders');
foreach ($columns as $column) {
$q->orWhere($column, 'LIKE', '%' . request()->search . '%');
}
})
->orWhereHas('removals', function ($r) {
return $r->where('reference_number', 'LIKE', '%' . request()->search . '%');
});
return $query;
}
return $query;
}
public function scopeFilteredByPStatus($query)
{
if (request()->pstatus) {
return $query
->leftJoin('logs as lg', function ($qqq) {
return $qqq
->on('orders.id', '=', 'lg.entity_id');
})
->orderBy('lg.created_at', 'desc')
->where('payment_status', request()->pstatus)
->groupBy('orders.id')
->select('orders.*');
}
return $query;
}