1234567891011121314151617181920212223242526272829303132 |
- <?php
- namespace App\Scopes;
- use App\Model\Employee;
- use App\Model\SalesOrderInfo;
- use Illuminate\Database\Eloquent\Builder;
- use Illuminate\Database\Eloquent\Model;
- use Illuminate\Database\Eloquent\Scope;
- class SalesOrderScope implements Scope
- {
- public $user = [];
- public function __construct($user = [])
- {
- $this->user = $user;
- }
- public function apply(Builder $builder, Model $model)
- {
- if($this->user['id'] != Employee::SPECIAL_ADMIN) {
- $sales_order_id = SalesOrderInfo::where('del_time',0)
- ->where('employee_id',$this->user['id'])
- ->select('sales_order_id')
- ->get()->toArray();
- $sales_order_id = array_unique(array_column($sales_order_id,'sales_order_id'));
- $builder->orWhere(function ($query) use ($sales_order_id){
- $query->whereIn('id',$sales_order_id);
- });
- }
- }
- }
|