OwnerSundryFeeDetailFilters.php 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Filters;
  3. use App\Order;
  4. use App\Services\UserService;
  5. use Illuminate\Http\Request;
  6. use Illuminate\Support\Carbon;
  7. use Illuminate\Support\Str;
  8. use phpDocumentor\Reflection\Types\Boolean;
  9. class OwnerSundryFeeDetailFilters
  10. {
  11. protected $request;
  12. protected $queryBuilder;
  13. protected $filters = ['owners'];
  14. public function __construct(Request $request)
  15. {
  16. $this->request = $request;
  17. }
  18. public function apply($builder)
  19. {
  20. $this->queryBuilder = $builder;
  21. $filters = array_filter($this->request->only($this->filters));
  22. foreach ($filters as $filter => $value) {
  23. if (method_exists($this, $filter)) {
  24. $this->$filter($value, $this->queryBuilder);
  25. }
  26. }
  27. return $this->queryBuilder;
  28. }
  29. private function owners($owner_id)
  30. {
  31. if (strpos($owner_id, ',') || strpos($owner_id, ',') || strpos($owner_id, ' ')) {
  32. $arr = array_filter(preg_split('/[,, ]+/is', $owner_id));
  33. $this->queryBuilder->whereIn('owner_id',$arr);
  34. } else {
  35. $this->queryBuilder->where('owner_id','like',$owner_id."%");
  36. }
  37. }
  38. }