/** * Query builder scope to search on text * * @param Illuminate\Database\Query\Builder $query Query builder instance * @param text $search Search term * * @return Illuminate\Database\Query\Builder Modified query builder */ public function scopeTextsearch($query, $search) { return $query->where('name', 'LIKE', "%{$search}%")->orWhere('address', 'LIKE', "%{$search}%")->orWhere('city', 'LIKE', "%{$search}%")->orWhere('state', 'LIKE', "%{$search}%")->orWhere('zip', 'LIKE', "%{$search}%")->orWhere(function ($query) use($search) { $query->whereHas('parent', function ($query) use($search) { $query->where(function ($query) use($search) { $query->where('name', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereRaw("parent_id IN (select id from locations where name LIKE '%" . $search . "%') "); }); }); }
/** * filter * * @param array $filters filters * @return Database\CollectionDelegator */ public function filter($filters = null) { if ($filters) { $this->query->where(function ($query) use($filters) { foreach ($filters as $where) { // Use 'and' as default boolean method if (!isset($where[3])) { $where[3] = 'and'; } // Sugar for 'IN' operations if ($where[1] == '=' && gettype($where[2]) == 'array') { $where[1] = 'in'; } else { if ($where[1] == '!=' && $where[2] == null) { // Workaround to support whereNotNull $where[1] = 'not_null'; $where[2] = 'and'; } } if (preg_match('/^[a-z_]+$/', $where[1]) !== 0 && strtolower($where[1]) !== 'like') { $method = 'where' . ucfirst(\Illuminate\Support\Str::camel($where[1])); $query->{$method}($where[0], $where[2], $where[3]); } else { $query->where($where[0], $where[1], $where[2], $where[3]); } } }); } return $this; }
/** * Query builder scope to search on text * * @param Illuminate\Database\Query\Builder $query Query builder instance * @param text $search Search term * * @return Illuminate\Database\Query\Builder Modified query builder */ public function scopeTextSearch($query, $search) { return $query->where('name', 'LIKE', "%{$search}%")->orWhere('modelno', 'LIKE', "%{$search}%")->orWhere(function ($query) use($search) { $query->whereHas('depreciation', function ($query) use($search) { $query->where('name', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereHas('category', function ($query) use($search) { $query->where('name', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereHas('manufacturer', function ($query) use($search) { $query->where('name', 'LIKE', '%' . $search . '%'); }); }); }
/** * Query builder scope to search on text * * @param Illuminate\Database\Query\Builder $query Query builder instance * @param text $search Search term * * @return Illuminate\Database\Query\Builder Modified query builder */ public function scopeTextSearch($query, $search) { $search = explode('+', $search); return $query->where(function ($query) use($search) { foreach ($search as $search) { $query->whereHas('category', function ($query) use($search) { $query->where('categories.name', 'LIKE', '%' . $search . '%'); })->orWhere(function ($query) use($search) { $query->whereHas('company', function ($query) use($search) { $query->where('companies.name', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereHas('assetlog', function ($query) use($search) { $query->where('action_type', '=', 'checkout')->where('created_at', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereHas('location', function ($query) use($search) { $query->where('locations.name', 'LIKE', '%' . $search . '%'); }); })->orWhere('accessories.name', 'LIKE', '%' . $search . '%')->orWhere('accessories.order_number', 'LIKE', '%' . $search . '%')->orWhere('accessories.purchase_cost', 'LIKE', '%' . $search . '%')->orWhere('accessories.purchase_date', 'LIKE', '%' . $search . '%'); } }); }
/** * Query builder scope to search on text * * @param Illuminate\Database\Query\Builder $query Query builder instance * @param text $search Search term * * @return Illuminate\Database\Query\Builder Modified query builder */ public function scopeTextsearch($query, $search) { return $query->where(function ($query) use($search) { $query->where('users.first_name', 'LIKE', "%{$search}%")->orWhere('users.last_name', 'LIKE', "%{$search}%")->orWhere('users.email', 'LIKE', "%{$search}%")->orWhere('users.username', 'LIKE', "%{$search}%")->orWhere('users.notes', 'LIKE', "%{$search}%")->orWhere('users.employee_num', 'LIKE', "%{$search}%")->orWhere(function ($query) use($search) { $query->whereHas('userloc', function ($query) use($search) { $query->where('locations.name', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereRaw("users.manager_id IN (select id from users where first_name LIKE '%" . $search . "%' OR last_name LIKE '%" . $search . "%') "); }); }); }
/** * Query builder scope to search on text * * @param Illuminate\Database\Query\Builder $query Query builder instance * @param text $search Search term * * @return Illuminate\Database\Query\Builder Modified query builder */ public function scopeTextSearch($query, $search) { return $query->where(function ($query) use($search) { $query->where('name', 'LIKE', '%' . $search . '%'); }); }
/** * Query builder scope for Requestable assets * * @param Illuminate\Database\Query\Builder $query Query builder instance * * @return Illuminate\Database\Query\Builder Modified query builder */ public function scopeRequestableAssets($query) { return $query->where('requestable', '=', 1)->whereHas('assetstatus', function ($query) { $query->where('deployable', '=', 1)->where('pending', '=', 0)->where('archived', '=', 0); }); }
/** * Get the unread notifications for a user. * * @param Illuminate\Database\Query\Builder $query * @param int $userId (Default: null) * * @return Illuminate\Database\Query\Builder */ public function scopeUnreadReceiver($query, $userId = null) { if (empty($userId)) { $userId = \Sentry::getUser()->id; } return $query->where(function (\Illuminate\Database\Query\Builder $query) use($userId) { $query->where('read', '=', 0)->where('to_user_id', $userId); }); }
/** * Query builder scope to search on text for complex Bootstrap Tables API * * @param Illuminate\Database\Query\Builder $query Query builder instance * @param text $search Search term * * @return Illuminate\Database\Query\Builder Modified query builder */ public function scopeTextSearch($query, $search) { $search = explode('+', $search); return $query->where(function ($query) use($search) { foreach ($search as $search) { $query->whereHas('model', function ($query) use($search) { $query->whereHas('category', function ($query) use($search) { $query->where(function ($query) use($search) { $query->where('categories.name', 'LIKE', '%' . $search . '%')->orWhere('models.name', 'LIKE', '%' . $search . '%'); }); }); })->orWhere(function ($query) use($search) { $query->whereHas('assetstatus', function ($query) use($search) { $query->where('name', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereHas('defaultLoc', function ($query) use($search) { $query->where('name', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereHas('assigneduser', function ($query) use($search) { $query->where(function ($query) use($search) { $query->where('users.first_name', 'LIKE', '%' . $search . '%')->orWhere('users.last_name', 'LIKE', '%' . $search . '%')->orWhere(function ($query) use($search) { $query->whereHas('userloc', function ($query) use($search) { $query->where('locations.name', 'LIKE', '%' . $search . '%'); }); }); }); }); })->orWhere(function ($query) use($search) { $query->whereHas('assetlog', function ($query) use($search) { $query->where('action_type', '=', 'checkout')->where('created_at', 'LIKE', '%' . $search . '%'); }); })->orWhere('name', 'LIKE', '%' . $search . '%')->orWhere('asset_tag', 'LIKE', '%' . $search . '%')->orWhere('serial', 'LIKE', '%' . $search . '%')->orWhere('order_number', 'LIKE', '%' . $search . '%')->orWhere('notes', 'LIKE', '%' . $search . ''); } }); }
/** * Scope for all not activated users. * * @param Illuminate\Database\Query\Builder $query * * @return Illuminate\Database\Query\Builder */ public function scopeNotActivated($query) { return $query->where('activated', '=', 0); }
/** * Scope for unread notifications. * * @param Illuminate\Database\Query\Builder $query * * @return Illuminate\Database\Query\Builder */ public function scopeUnread($query) { return $query->where('read', '=', '0'); }
/** * Query builder scope to search on text * * @param Illuminate\Database\Query\Builder $query Query builder instance * @param text $search Search term * * @return Illuminate\Database\Query\Builder Modified query builder */ public function scopeTextSearch($query, $search) { return $query->where(function ($query) use($search) { $query->where('title', 'LIKE', '%' . $search . '%')->orWhere('notes', 'LIKE', '%' . $search . '%')->orWhere('asset_maintenance_type', 'LIKE', '%' . $search . '%')->orWhere('cost', 'LIKE', '%' . $search . '%')->orWhere('start_date', 'LIKE', '%' . $search . '%')->orWhere('completion_date', 'LIKE', '%' . $search . '%'); }); }
/** * Filter the main table of the query by the value passed in $filters * * @author Luca Brognara * @date December 2015 * * @param Illuminate\Database\Query\Builder $query * @param array $filters * @param string $table * * @return array */ public function scopeFilter($query, $filters, $table) { if (count($filters) == 0) { return $query; } return $query->where(function ($query) use($filters, $table) { try { $this->filter($query, $filters, $this->get_table_columns($table)); } catch (\Exception $e) { throw new \Exception($e->getMessage(), $e->getCode()); } }); }
/** * Query builder scope to search on text for complex Bootstrap Tables API * * @param Illuminate\Database\Query\Builder $query Query builder instance * @param text $search Search term * * @return Illuminate\Database\Query\Builder Modified query builder */ public function scopeTextSearch($query, $search) { $search = explode(' OR ', $search); return $query->where(function ($query) use($search) { foreach ($search as $search) { $query->whereHas('model', function ($query) use($search) { $query->whereHas('category', function ($query) use($search) { $query->where(function ($query) use($search) { $query->where('categories.name', 'LIKE', '%' . $search . '%')->orWhere('models.name', 'LIKE', '%' . $search . '%')->orWhere('models.modelno', 'LIKE', '%' . $search . '%'); }); }); })->orWhereHas('model', function ($query) use($search) { $query->whereHas('manufacturer', function ($query) use($search) { $query->where(function ($query) use($search) { $query->where('manufacturers.name', 'LIKE', '%' . $search . '%'); }); }); })->orWhere(function ($query) use($search) { $query->whereHas('assetstatus', function ($query) use($search) { $query->where('status_labels.name', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereHas('company', function ($query) use($search) { $query->where('companies.name', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereHas('defaultLoc', function ($query) use($search) { $query->where('locations.name', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereHas('assigneduser', function ($query) use($search) { $query->where(function ($query) use($search) { $query->where('users.first_name', 'LIKE', '%' . $search . '%')->orWhere('users.last_name', 'LIKE', '%' . $search . '%')->orWhere(function ($query) use($search) { $query->whereHas('userloc', function ($query) use($search) { $query->where('locations.name', 'LIKE', '%' . $search . '%'); }); }); }); }); })->orWhere('assets.name', 'LIKE', '%' . $search . '%')->orWhere('assets.asset_tag', 'LIKE', '%' . $search . '%')->orWhere('assets.serial', 'LIKE', '%' . $search . '%')->orWhere('assets.order_number', 'LIKE', '%' . $search . '%')->orWhere('assets.notes', 'LIKE', '%' . $search . '%'); } foreach (CustomField::all() as $field) { $query->orWhere($field->db_column_name(), 'LIKE', "%{$search}%"); } }); }
/** * Query builder scope to search on text * * @param Illuminate\Database\Query\Builder $query Query builder instance * @param text $search Search term * * @return Illuminate\Database\Query\Builder Modified query builder */ public function scopeTextSearch($query, $search) { return $query->where(function ($query) use($search) { $query->where('name', 'LIKE', '%' . $search . '%')->orWhere('serial', 'LIKE', '%' . $search . '%')->orWhere('notes', 'LIKE', '%' . $search . '%')->orWhere('order_number', 'LIKE', '%' . $search . '%')->orWhere('purchase_date', 'LIKE', '%' . $search . '%')->orWhere('purchase_cost', 'LIKE', '%' . $search . '%'); }); }
/** * Query builder scope to search on text * * @param Illuminate\Database\Query\Builder $query Query builder instance * @param text $search Search term * * @return Illuminate\Database\Query\Builder Modified query builder */ public function scopeTextSearch($query, $search) { $search = explode(' ', $search); return $query->where(function ($query) use($search) { foreach ($search as $search) { $query->whereHas('category', function ($query) use($search) { $query->where('categories.name', 'LIKE', '%' . $search . '%'); })->orWhere(function ($query) use($search) { $query->whereHas('company', function ($query) use($search) { $query->where('companies.name', 'LIKE', '%' . $search . '%'); }); })->orWhere(function ($query) use($search) { $query->whereHas('location', function ($query) use($search) { $query->where('locations.name', 'LIKE', '%' . $search . '%'); }); })->orWhere('consumables.name', 'LIKE', '%' . $search . '%')->orWhere('consumables.order_number', 'LIKE', '%' . $search . '%')->orWhere('consumables.purchase_cost', 'LIKE', '%' . $search . '%')->orWhere('consumables.purchase_date', 'LIKE', '%' . $search . '%'); } }); }
/** * Scope of all not completed tasks. * * @param Illuminate\Database\Query\Builder $query * * @return Illuminate\Database\Query\Builder */ public function scopeNotCompleted($query) { return $query->where('completed', '=', '0'); }