osb/app/Traits/ScopeServiceActive.php

37 lines
770 B
PHP
Raw Normal View History

<?php
/**
* Add a ScopeActive to an Eloquent Model to only show active services (including those soon to be active)
*/
namespace App\Traits;
use App\Models\Service;
trait ScopeServiceActive
{
/**
* Only query active service records
*/
public function scopeServiceActive($query)
{
return $query
->where(fn($q)=>
$q->where('services.active',TRUE)
->orWhere(fn($q)=>
$q->whereNotNull('order_status')
->whereNotIn('services.order_status',Service::INACTIVE_STATUS))
);
}
public function scopeServiceInactive($query)
{
return $query
->where(fn($q)=>
$q->where('services.active',FALSE)
->orWhere(fn($q)=>
$q->whereNotNull('order_status')
->whereIn('services.order_status',Service::INACTIVE_STATUS))
);
}
}