diff --git a/app/Http/Controllers/Api/AssetMaintenancesController.php b/app/Http/Controllers/Api/AssetMaintenancesController.php index 2bf5b290c8..682d3d2db0 100644 --- a/app/Http/Controllers/Api/AssetMaintenancesController.php +++ b/app/Http/Controllers/Api/AssetMaintenancesController.php @@ -56,6 +56,8 @@ class AssetMaintenancesController extends Controller 'start_date', 'completion_date', 'notes', + 'asset_tag', + 'asset_name', 'user_id' ]; $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; @@ -65,6 +67,12 @@ class AssetMaintenancesController extends Controller case 'user_id': $maintenances = $maintenances->OrderAdmin($order); break; + case 'asset_tag': + $maintenances = $maintenances->OrderByTag($order); + break; + case 'asset_name': + $maintenances = $maintenances->OrderByAssetName($order); + break; default: $maintenances = $maintenances->orderBy($sort, $order); break; diff --git a/app/Http/Transformers/AssetMaintenancesTransformer.php b/app/Http/Transformers/AssetMaintenancesTransformer.php index 875d882e82..bd4afe8fc8 100644 --- a/app/Http/Transformers/AssetMaintenancesTransformer.php +++ b/app/Http/Transformers/AssetMaintenancesTransformer.php @@ -22,8 +22,19 @@ class AssetMaintenancesTransformer { $array = [ 'id' => (int) $assetmaintenance->id, - 'asset_name' => ($assetmaintenance->asset) ? ['id' => $assetmaintenance->asset->id,'name'=> e($assetmaintenance->asset->name)] : null, + + 'asset' => ($assetmaintenance->asset) ? [ + 'id' => (int) $assetmaintenance->asset->id, + 'name'=> ($assetmaintenance->asset->name) ? e($assetmaintenance->asset->name) : null, + 'asset_tag'=> e($assetmaintenance->asset->asset_tag) + + ] : null, 'title' => ($assetmaintenance->title) ? e($assetmaintenance->title) : null, + 'location' => ($assetmaintenance->asset->location) ? [ + 'id' => (int) $assetmaintenance->asset->location->id, + 'name'=> e($assetmaintenance->asset->location->name), + + ] : null, 'notes' => ($assetmaintenance->notes) ? e($assetmaintenance->notes) : null, 'supplier' => ($assetmaintenance->supplier) ? ['id' => $assetmaintenance->supplier->id,'name'=> e($assetmaintenance->supplier->name)] : null, 'cost' => Helper::formatCurrencyOutput($assetmaintenance->cost), diff --git a/app/Models/AssetMaintenance.php b/app/Models/AssetMaintenance.php index 13029a4322..8a07ec0dbf 100644 --- a/app/Models/AssetMaintenance.php +++ b/app/Models/AssetMaintenance.php @@ -177,4 +177,32 @@ class AssetMaintenance extends Model implements ICompanyableChild ->orderBy('users.first_name', $order) ->orderBy('users.last_name', $order); } + + /** + * Query builder scope to order on asset tag + * + * @param Illuminate\Database\Query\Builder $query Query builder instance + * @param text $order Order + * + * @return Illuminate\Database\Query\Builder Modified query builder + */ + public function scopeOrderByTag($query, $order) + { + return $query->leftJoin('assets', 'asset_maintenances.asset_id', '=', 'assets.id') + ->orderBy('assets.asset_tag', $order); + } + + /** + * Query builder scope to order on asset tag + * + * @param Illuminate\Database\Query\Builder $query Query builder instance + * @param text $order Order + * + * @return Illuminate\Database\Query\Builder Modified query builder + */ + public function scopeOrderByAssetName($query, $order) + { + return $query->leftJoin('assets', 'asset_maintenances.asset_id', '=', 'assets.id') + ->orderBy('assets.name', $order); + } } diff --git a/resources/views/asset_maintenances/index.blade.php b/resources/views/asset_maintenances/index.blade.php index d80e267229..21aa938643 100644 --- a/resources/views/asset_maintenances/index.blade.php +++ b/resources/views/asset_maintenances/index.blade.php @@ -42,8 +42,10 @@