@@ -62,17 +62,26 @@ class AssetMaintenance extends Model implements ICompanyableChild
6262 *
6363 * @var array
6464 */
65- protected $ searchableAttributes = ['title ' , 'notes ' , 'asset_maintenance_type ' , 'cost ' , 'start_date ' , 'completion_date ' ];
65+ protected $ searchableAttributes =
66+ [
67+ 'title ' ,
68+ 'notes ' ,
69+ 'asset_maintenance_type ' ,
70+ 'cost ' ,
71+ 'start_date ' ,
72+ 'completion_date '
73+ ];
6674
6775 /**
6876 * The relations and their attributes that should be included when searching the model.
6977 *
7078 * @var array
7179 */
7280 protected $ searchableRelations = [
73- 'asset ' => ['name ' , 'asset_tag ' ],
81+ 'asset ' => ['name ' , 'asset_tag ' , ' serial ' ],
7482 'asset.model ' => ['name ' , 'model_number ' ],
7583 'asset.supplier ' => ['name ' ],
84+ 'asset.assetstatus ' => ['name ' ],
7685 'supplier ' => ['name ' ],
7786 ];
7887
@@ -197,6 +206,7 @@ public function scopeOrderBySupplier($query, $order)
197206 ->orderBy ('suppliers_maintenances.name ' , $ order );
198207 }
199208
209+
200210 /**
201211 * Query builder scope to order on admin user
202212 *
@@ -239,4 +249,33 @@ public function scopeOrderByAssetName($query, $order)
239249 return $ query ->leftJoin ('assets ' , 'asset_maintenances.asset_id ' , '= ' , 'assets.id ' )
240250 ->orderBy ('assets.name ' , $ order );
241251 }
252+
253+ /**
254+ * Query builder scope to order on serial
255+ *
256+ * @param \Illuminate\Database\Query\Builder $query Query builder instance
257+ * @param string $order Order
258+ *
259+ * @return \Illuminate\Database\Query\Builder Modified query builder
260+ */
261+ public function scopeOrderByAssetSerial ($ query , $ order )
262+ {
263+ return $ query ->leftJoin ('assets ' , 'asset_maintenances.asset_id ' , '= ' , 'assets.id ' )
264+ ->orderBy ('assets.serial ' , $ order );
265+ }
266+
267+ /**
268+ * Query builder scope to order on status label name
269+ *
270+ * @param \Illuminate\Database\Query\Builder $query Query builder instance
271+ * @param text $order Order
272+ *
273+ * @return \Illuminate\Database\Query\Builder Modified query builder
274+ */
275+ public function scopeOrderStatusName ($ query , $ order )
276+ {
277+ return $ query ->join ('assets as maintained_asset ' , 'asset_maintenances.asset_id ' , '= ' , 'maintained_asset.id ' )
278+ ->leftjoin ('status_labels as maintained_asset_status ' , 'maintained_asset_status.id ' , '= ' , 'maintained_asset.status_id ' )
279+ ->orderBy ('maintained_asset_status.name ' , $ order );
280+ }
242281}
0 commit comments