From 36cd63836e66c104b5453d87f38b9d5dfbf2ea33 Mon Sep 17 00:00:00 2001 From: snipe Date: Mon, 5 Mar 2018 16:26:40 -0800 Subject: [PATCH] Fixed #5151 - added asset tag to maintenances --- .../Api/AssetMaintenancesController.php | 8 ++++++ .../AssetMaintenancesTransformer.php | 13 ++++++++- app/Models/AssetMaintenance.php | 28 +++++++++++++++++++ .../views/asset_maintenances/index.blade.php | 6 ++-- .../views/partials/bootstrap-table.blade.php | 11 ++++++++ 5 files changed, 63 insertions(+), 3 deletions(-) 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 @@ {{ trans('general.id') }} {{ trans('admin/companies/table.title') }} - {{ trans('admin/asset_maintenances/table.asset_name') }} - {{ trans('general.supplier') }} + {{ trans('admin/asset_maintenances/table.asset_name') }} + {{ trans('admin/hardware/table.asset_tag') }} + {{ trans('admin/hardware/table.location') }} + {{ trans('general.supplier') }} {{ trans('admin/asset_maintenances/form.asset_maintenance_type') }} {{ trans('admin/asset_maintenances/form.title') }} {{ trans('admin/asset_maintenances/form.start_date') }} diff --git a/resources/views/partials/bootstrap-table.blade.php b/resources/views/partials/bootstrap-table.blade.php index e5cc07b23b..82fc53050a 100644 --- a/resources/views/partials/bootstrap-table.blade.php +++ b/resources/views/partials/bootstrap-table.blade.php @@ -413,6 +413,17 @@ return ' ' + value + ''; } + function assetTagLinkFormatter(value, row) { + return ' ' + row.asset.asset_tag + ''; + } + + function assetNameLinkFormatter(value, row) { + if ((row.asset) && (row.asset.name)) { + return ' ' + row.asset.name + ''; + } + + } + function trueFalseFormatter(value, row) { if ((value) && ((value == 'true') || (value == '1'))) { return '';