SalesOrderScope.php 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. <?php
  2. namespace App\Scopes;
  3. use App\Model\Employee;
  4. use App\Model\SalesOrder;
  5. use App\Model\SalesOrderInfo;
  6. use App\Service\SalesOrderService;
  7. use Illuminate\Database\Eloquent\Builder;
  8. use Illuminate\Database\Eloquent\Model;
  9. use Illuminate\Database\Eloquent\Scope;
  10. class SalesOrderScope implements Scope
  11. {
  12. public $user = [];
  13. public $search = [];
  14. public function __construct($user = [],$search = [])
  15. {
  16. $this->user = $user;
  17. $this->search = $search;
  18. }
  19. public function apply(Builder $builder, Model $model)
  20. {
  21. if($this->user['id'] != Employee::SPECIAL_ADMIN) {
  22. $depart_id = $this->user['depart_range'];
  23. $user_id = $this->user['id'];
  24. $data = $this->search;
  25. $builder->orwhere(function ($query) use ($depart_id,$user_id,$data){
  26. $query->where(function ($query_sub) use ($depart_id,$user_id){
  27. $query_sub->whereIn('depart_id', $depart_id)
  28. ->orWhereIn('top_depart_id',$depart_id)
  29. ->orWhere('crt_id', $user_id);
  30. });
  31. });
  32. }
  33. }
  34. }