SalesOrderScope.php 933 B

1234567891011121314151617181920212223242526272829303132
  1. <?php
  2. namespace App\Scopes;
  3. use App\Model\Employee;
  4. use App\Model\SalesOrderInfo;
  5. use Illuminate\Database\Eloquent\Builder;
  6. use Illuminate\Database\Eloquent\Model;
  7. use Illuminate\Database\Eloquent\Scope;
  8. class SalesOrderScope implements Scope
  9. {
  10. public $user = [];
  11. public function __construct($user = [])
  12. {
  13. $this->user = $user;
  14. }
  15. public function apply(Builder $builder, Model $model)
  16. {
  17. if($this->user['id'] != Employee::SPECIAL_ADMIN) {
  18. $sales_order_id = SalesOrderInfo::where('del_time',0)
  19. ->where('employee_id',$this->user['id'])
  20. ->select('sales_order_id')
  21. ->get()->toArray();
  22. $sales_order_id = array_unique(array_column($sales_order_id,'sales_order_id'));
  23. $builder->orWhere(function ($query) use ($sales_order_id){
  24. $query->whereIn('id',$sales_order_id);
  25. });
  26. }
  27. }
  28. }