From 0cf563ae5bd13fa303ff689e0dc1e94ad7490f48 Mon Sep 17 00:00:00 2001 From: snipe Date: Wed, 22 Jun 2016 17:04:47 -0700 Subject: [PATCH] Show admin in maintenances --- .../AssetMaintenancesController.php | 23 ++++++-- app/Models/AssetMaintenance.php | 52 ++++++++++++------- app/Models/User.php | 8 +++ ..._22_160725_add_user_id_to_maintenances.php | 31 +++++++++++ .../views/asset_maintenances/index.blade.php | 1 + resources/views/hardware/view.blade.php | 28 ++++++---- 6 files changed, 111 insertions(+), 32 deletions(-) create mode 100644 database/migrations/2016_06_22_160725_add_user_id_to_maintenances.php diff --git a/app/Http/Controllers/AssetMaintenancesController.php b/app/Http/Controllers/AssetMaintenancesController.php index a390e4a630..7bdefcd991 100644 --- a/app/Http/Controllers/AssetMaintenancesController.php +++ b/app/Http/Controllers/AssetMaintenancesController.php @@ -20,6 +20,7 @@ use View; use App\Models\Setting; use App\Models\Asset; use App\Helpers\Helper; +use Auth; /** * This controller handles all actions related to Asset Maintenance for @@ -74,13 +75,16 @@ class AssetMaintenancesController extends Controller */ public function getDatatable() { - $maintenances = AssetMaintenance::with('asset', 'supplier', 'asset.company') - ->whereNull('deleted_at'); + $maintenances = AssetMaintenance::with('asset', 'supplier', 'asset.company','admin') + ->withTrashed(); if (Input::has('search')) { $maintenances = $maintenances->TextSearch(e(Input::get('search'))); } + + + if (Input::has('offset')) { $offset = e(Input::get('offset')); } else { @@ -93,11 +97,20 @@ class AssetMaintenancesController extends Controller $limit = 50; } - $allowed_columns = ['id','title','asset_maintenance_time','asset_maintenance_type','cost','start_date','completion_date','notes']; + + + $allowed_columns = ['id','title','asset_maintenance_time','asset_maintenance_type','cost','start_date','completion_date','notes','user_id']; $order = Input::get('order') === 'asc' ? 'asc' : 'desc'; $sort = in_array(Input::get('sort'), $allowed_columns) ? e(Input::get('sort')) : 'created_at'; - $maintenances->orderBy($sort, $order); + switch ($sort) { + case 'user_id': + $maintenances = $maintenances->OrderAdmin($order); + break; + default: + $maintenances = $maintenances->orderBy($sort, $order); + break; + } $maintenancesCount = $maintenances->count(); $maintenances = $maintenances->skip($offset)->take($limit)->get(); @@ -128,6 +141,7 @@ class AssetMaintenancesController extends Controller 'start_date' => $maintenance->start_date, 'asset_maintenance_time' => $maintenance->asset_maintenance_time, 'completion_date' => $maintenance->completion_date, + 'user_id' => ($maintenance->admin) ? (string)link_to('/admin/users/'.$maintenance->admin->id.'/view', $maintenance->admin->fullName()) : '', 'actions' => $actions, 'companyName' => is_null($company) ? '' : $company->name ); @@ -224,6 +238,7 @@ class AssetMaintenancesController extends Controller $assetMaintenance->title = e(Input::get('title')); $assetMaintenance->start_date = e(Input::get('start_date')); $assetMaintenance->completion_date = e(Input::get('completion_date')); + $assetMaintenance->user_id = Auth::user()->id; if (( $assetMaintenance->completion_date == "" ) || ( $assetMaintenance->completion_date == "0000-00-00" ) diff --git a/app/Models/AssetMaintenance.php b/app/Models/AssetMaintenance.php index 173d8f631a..b89c7429f4 100644 --- a/app/Models/AssetMaintenance.php +++ b/app/Models/AssetMaintenance.php @@ -71,6 +71,20 @@ class AssetMaintenance extends Model implements ICompanyableChild ->withTrashed(); } + /** + * Get the admin who created the maintenance + * + * @return mixed + * @author A. Gianotto + * @version v3.0 + */ + public function admin() + { + + return $this->belongsTo('\App\Models\User', 'user_id') + ->withTrashed(); + } + public function supplier() { @@ -79,24 +93,11 @@ class AssetMaintenance extends Model implements ICompanyableChild } /** - * ----------------------------------------------- - * BEGIN QUERY SCOPES - * ----------------------------------------------- - **/ - - /** - * Query builder scope for Deleted assets - * - * @param Illuminate\Database\Query\Builder $query Query builder instance - * - * @return Illuminate\Database\Query\Builder Modified query builder - */ - - public function scopeDeleted($query) - { - - return $query->whereNotNull('deleted_at'); - } + * ----------------------------------------------- + * BEGIN QUERY SCOPES + * ----------------------------------------------- + **/ + /** * Query builder scope to search on text @@ -119,4 +120,19 @@ class AssetMaintenance extends Model implements ICompanyableChild ->orWhere('completion_date', 'LIKE', '%'.$search.'%'); }); } + + /** + * Query builder scope to order on admin user + * + * @param Illuminate\Database\Query\Builder $query Query builder instance + * @param text $order Order + * + * @return Illuminate\Database\Query\Builder Modified query builder + */ + public function scopeOrderAdmin($query, $order) + { + return $query->leftJoin('users', 'asset_maintenances.user_id', '=', 'users.id') + ->orderBy('users.first_name', $order) + ->orderBy('users.last_name', $order); + } } diff --git a/app/Models/User.php b/app/Models/User.php index 60fa756d5d..bb22b36dd1 100755 --- a/app/Models/User.php +++ b/app/Models/User.php @@ -165,6 +165,14 @@ class User extends Model implements AuthenticatableContract, CanResetPasswordCon return $this->hasMany('\App\Models\Asset', 'assigned_to')->withTrashed(); } + /** + * Get assets assigned to this user + */ + public function assetmaintenances() + { + return $this->hasMany('\App\Models\AssetMaintenance', 'user_id')->withTrashed(); + } + /** * Get accessories assigned to this user */ diff --git a/database/migrations/2016_06_22_160725_add_user_id_to_maintenances.php b/database/migrations/2016_06_22_160725_add_user_id_to_maintenances.php new file mode 100644 index 0000000000..cdbd128759 --- /dev/null +++ b/database/migrations/2016_06_22_160725_add_user_id_to_maintenances.php @@ -0,0 +1,31 @@ +integer('user_id')->nullable()->default(NULL); + }); + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Schema::table('asset_maintenances', function ($table) { + $table->dropColumn('user_id'); + }); + } +} diff --git a/resources/views/asset_maintenances/index.blade.php b/resources/views/asset_maintenances/index.blade.php index ca01b6be02..56f82d0fc8 100644 --- a/resources/views/asset_maintenances/index.blade.php +++ b/resources/views/asset_maintenances/index.blade.php @@ -43,6 +43,7 @@ {{ trans('admin/asset_maintenances/form.completion_date') }} {{ trans('admin/asset_maintenances/form.asset_maintenance_time') }} {{ trans('admin/asset_maintenances/form.cost') }} + {{ trans('general.admin') }} {{ trans('admin/asset_maintenances/form.notes') }} {{ trans('table.actions') }} diff --git a/resources/views/hardware/view.blade.php b/resources/views/hardware/view.blade.php index 0b8e2fde8d..d1e3d8eb1a 100755 --- a/resources/views/hardware/view.blade.php +++ b/resources/views/hardware/view.blade.php @@ -398,14 +398,15 @@ - - - - - - - - + + + + + + + + + @@ -420,7 +421,14 @@ - + + cost; ?> @@ -430,7 +438,7 @@ - +
{{ trans('admin/asset_maintenances/table.supplier_name') }}{{ trans('admin/asset_maintenances/form.title') }}{{ trans('admin/asset_maintenances/form.asset_maintenance_type') }}{{ trans('admin/asset_maintenances/form.start_date') }}{{ trans('admin/asset_maintenances/form.completion_date') }}{{ trans('admin/asset_maintenances/table.is_warranty') }}{{ trans('admin/asset_maintenances/form.cost') }}{{ trans('table.actions') }}{{ trans('admin/asset_maintenances/table.supplier_name') }}{{ trans('admin/asset_maintenances/form.title') }}{{ trans('admin/asset_maintenances/form.asset_maintenance_type') }}{{ trans('admin/asset_maintenances/form.start_date') }}{{ trans('admin/asset_maintenances/form.completion_date') }}{{ trans('admin/asset_maintenances/table.is_warranty') }}{{ trans('admin/asset_maintenances/form.cost') }}{{ trans('general.admin') }}{{ trans('table.actions') }}
{{ $assetMaintenance->start_date }} {{ $assetMaintenance->completion_date }} {{ $assetMaintenance->is_warranty ? trans('admin/asset_maintenances/message.warranty') : trans('admin/asset_maintenances/message.not_warranty') }}{{ $use_currency.$assetMaintenance->cost }}{{ $use_currency.$assetMaintenance->cost }} + + @if ($assetMaintenance->admin) + {{ $assetMaintenance->admin->fullName() }} + @endif + +
{{ $use_currency.$totalCost }}{{ $use_currency.number_format($totalCost, 2) }}