Example #1
0
 /**
  * Sort the results by the order form input
  *
  * @param  Illuminate\Database\Query $query
  * @param  array  $sortBy      Order by columns
  * @param  array  $sortByOrder Order by sort colums
  * @return Illuminate\Database\Query\Builder
  */
 public function scopeSortByInput($query, $sortBy = array(), $sortByOrder = array())
 {
     if (is_array($sortBy) && count($sortBy)) {
         foreach ($sortBy as $column) {
             $query->orderBy($column, $sortByOrder && in_array($column, $sortByOrder) ? 'desc' : 'asc');
         }
     }
     return $query;
 }
Example #2
0
 /**
  * Scope Slug.
  *
  * @param Illuminate\Database\Query $query
  * @param string                    $slug  Slug of the desired Service
  *
  * @return Illuminate\Database\Query Scoped query
  */
 public function scopeSlug($query, $slug)
 {
     return $query->where('slug', '=', $slug)->get();
 }
Example #3
0
 /**
  * Scope For Service
  *
  * @param  Illuminate\Database\Query $query
  * @param  Service $service Inquired Service to filter
  * @return Illuminate\Database\Query Scoped query
  */
 public function scopeForService($query, Service $service)
 {
     return $query->where('service_id', '=', $service->id);
 }
Example #4
0
 /**
  * Sort oldest first.
  *
  * @param Illuminate\Database\Query $query
  *
  * @return Illuminate\Database\Query
  */
 public function scopeOldest($query)
 {
     return $query->orderBy('start_at', 'ASC');
 }
Example #5
0
 /**
  * Scope Affecting Humanresource.
  *
  * @param Illuminate\Database\Query $query
  *
  * @return Illuminate\Database\Query
  */
 public function scopeAffectingHumanresource($query, $humanresourceId)
 {
     if (is_null($humanresourceId)) {
         return $query;
     }
     return $query->where('humanresource_id', $humanresourceId);
 }
Example #6
0
 /**
  * Scope only till date.
  *
  * @param Illuminate\Database\Query $query
  * @param Carbon                    $date  Inquired range end date
  *
  * @return Illuminate\Database\Query Scoped appointments up to the inquired date
  */
 public function scopeTillDate($query, Carbon $date)
 {
     return $query->where('start_at', '<=', $date->timezone('UTC'));
 }
Example #7
0
 /**
  * Between Dates.
  *
  * @param Illuminate\Database\Query $query
  * @param Carbon                    $startAt
  * @param Carbon                    $finishAt
  *
  * @return Illuminate\Database\Query
  */
 public function scopeAffectingInterval($query, Carbon $startAt, Carbon $finishAt)
 {
     return $query->where(function ($query) use($startAt, $finishAt) {
         $query->where(function ($query) use($startAt, $finishAt) {
             $query->where('finish_at', '>=', $finishAt->timezone('UTC'))->where('start_at', '<=', $startAt->timezone('UTC'));
         })->orWhere(function ($query) use($startAt, $finishAt) {
             $query->where('finish_at', '<', $finishAt->timezone('UTC'))->where('finish_at', '>', $startAt->timezone('UTC'));
         })->orWhere(function ($query) use($startAt, $finishAt) {
             $query->where('start_at', '>', $startAt->timezone('UTC'))->where('start_at', '<', $finishAt->timezone('UTC'));
         })->orWhere(function ($query) use($startAt, $finishAt) {
             $query->where('start_at', '>', $startAt->timezone('UTC'))->where('finish_at', '<', $finishAt->timezone('UTC'));
         });
     });
 }