Exemplo n.º 1
0
 /**
  * Allow to filter results by the search form
  *
  * @param  Illuminate\Database\Query  $query  [description]
  * @param  string $string The search query
  * @return lluminate\Database\Query          [description]
  */
 public function scopeSearchByInput($query, $string = '')
 {
     if ($string) {
         $searchable = self::getSearchableColums();
         $query->where(function ($query) use($searchable, $string) {
             $string_parts = explode(" ", $string);
             foreach ($string_parts as $part) {
                 $query->where(function ($query) use($searchable, $part) {
                     foreach ($searchable as $column => $value) {
                         $query->orWhere($column, 'like', '%' . $part . '%');
                     }
                 });
             }
         });
     }
     return $query;
 }
Exemplo n.º 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();
 }
Exemplo n.º 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);
 }
Exemplo n.º 4
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'));
         });
     });
 }
Exemplo n.º 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);
 }
Exemplo n.º 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'));
 }