Show admin in maintenances

This commit is contained in:
snipe 2016-06-22 17:04:47 -07:00
parent 95beddf613
commit 0cf563ae5b
6 changed files with 111 additions and 32 deletions

View file

@ -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" )

View file

@ -71,6 +71,20 @@ class AssetMaintenance extends Model implements ICompanyableChild
->withTrashed();
}
/**
* Get the admin who created the maintenance
*
* @return mixed
* @author A. Gianotto <snipe@snipe.net>
* @version v3.0
*/
public function admin()
{
return $this->belongsTo('\App\Models\User', 'user_id')
->withTrashed();
}
public function supplier()
{
@ -84,19 +98,6 @@ class AssetMaintenance extends Model implements ICompanyableChild
* -----------------------------------------------
**/
/**
* 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');
}
/**
* 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);
}
}

View file

@ -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
*/

View file

@ -0,0 +1,31 @@
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class AddUserIdToMaintenances extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::table('asset_maintenances', function (Blueprint $table) {
$table->integer('user_id')->nullable()->default(NULL);
});
}
/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::table('asset_maintenances', function ($table) {
$table->dropColumn('user_id');
});
}
}

View file

@ -43,6 +43,7 @@
<th data-searchable="true" data-sortable="true" data-field="completion_date">{{ trans('admin/asset_maintenances/form.completion_date') }}</th>
<th data-searchable="true" data-sortable="true" data-field="asset_maintenance_time">{{ trans('admin/asset_maintenances/form.asset_maintenance_time') }}</th>
<th data-searchable="true" data-sortable="true" data-field="cost" class="text-right">{{ trans('admin/asset_maintenances/form.cost') }}</th>
<th data-searchable="true" data-sortable="true" data-field="user_id">{{ trans('general.admin') }}</th>
<th data-searchable="true" data-sortable="true" data-field="notes" data-visible="false">{{ trans('admin/asset_maintenances/form.notes') }}</th>
<th data-switchable="false" data-searchable="false" data-sortable="false" data-field="actions">{{ trans('table.actions') }}</th>
</tr>

View file

@ -398,14 +398,15 @@
<table class="table table-striped">
<thead>
<tr>
<th class="col-md-2">{{ trans('admin/asset_maintenances/table.supplier_name') }}</th>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/form.title') }}</th>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/form.asset_maintenance_type') }}</th>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/form.start_date') }}</th>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/form.completion_date') }}</th>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/table.is_warranty') }}</th>
<th class="col-md-2"><span class="line"></span>{{ trans('admin/asset_maintenances/form.cost') }}</th>
<th class="col-md-1"><span class="line"></span>{{ trans('table.actions') }}</th>
<th>{{ trans('admin/asset_maintenances/table.supplier_name') }}</th>
<th>{{ trans('admin/asset_maintenances/form.title') }}</th>
<th>{{ trans('admin/asset_maintenances/form.asset_maintenance_type') }}</th>
<th>{{ trans('admin/asset_maintenances/form.start_date') }}</th>
<th>{{ trans('admin/asset_maintenances/form.completion_date') }}</th>
<th>{{ trans('admin/asset_maintenances/table.is_warranty') }}</th>
<th>{{ trans('admin/asset_maintenances/form.cost') }}</th>
<th>{{ trans('general.admin') }}</th>
<th>{{ trans('table.actions') }}</th>
</tr>
</thead>
<tbody>
@ -420,7 +421,14 @@
<td>{{ $assetMaintenance->start_date }}</td>
<td>{{ $assetMaintenance->completion_date }}</td>
<td>{{ $assetMaintenance->is_warranty ? trans('admin/asset_maintenances/message.warranty') : trans('admin/asset_maintenances/message.not_warranty') }}</td>
<td><nobr>{{ $use_currency.$assetMaintenance->cost }}</nobr></td>
<td class="text-right"><nobr>{{ $use_currency.$assetMaintenance->cost }}</nobr></td>
<td>
@if ($assetMaintenance->admin)
<a href="{{ config('app.url') }}/admin/users/{{ $assetMaintenance->admin->id }}/view">{{ $assetMaintenance->admin->fullName() }}</a>
@endif
</td>
<?php $totalCost += $assetMaintenance->cost; ?>
<td><a href="{{ route('update/asset_maintenance', $assetMaintenance->id) }}" class="btn btn-warning btn-sm"><i class="fa fa-pencil icon-white"></i></a>
</td>
@ -430,7 +438,7 @@
</tbody>
<tfoot>
<tr>
<td colspan="7" class="text-right">{{ $use_currency.$totalCost }}</td>
<td colspan="7" class="text-right">{{ $use_currency.number_format($totalCost, 2) }}</td>
</tr>
</tfoot>
</table>