42 private static function getInsufficientPermissionsRedirect()
44 return redirect()->route(
'asset_maintenances')
45 ->with(
'error', trans(
'general.insufficient_permissions'));
62 return View::make(
'asset_maintenances/index');
77 $maintenances = AssetMaintenance::with(
'asset',
'supplier',
'asset.company')
78 ->whereNull(
'deleted_at');
80 if (Input::has(
'search')) {
81 $maintenances = $maintenances->TextSearch(e(Input::get(
'search')));
84 if (Input::has(
'offset')) {
85 $offset = e(Input::get(
'offset'));
90 if (Input::has(
'limit')) {
91 $limit = e(Input::get(
'limit'));
96 $allowed_columns = [
'id',
'title',
'asset_maintenance_time',
'asset_maintenance_type',
'cost',
'start_date',
'completion_date',
'notes'];
97 $order = Input::get(
'order') ===
'asc' ?
'asc' :
'desc';
98 $sort = in_array(Input::get(
'sort'), $allowed_columns) ? e(Input::get(
'sort')) :
'created_at';
100 $maintenances->orderBy($sort, $order);
102 $maintenancesCount = $maintenances->count();
103 $maintenances = $maintenances->skip($offset)->take($limit)->get();
108 foreach ($maintenances as $maintenance) {
110 $actions =
'<nobr><a href="'.route(
'update/asset_maintenance', $maintenance->id).
'" class="btn btn-warning btn-sm" style="margin-right:5px;"><i class="fa fa-pencil icon-white"></i></a><a data-html="false" class="btn delete-asset btn-danger btn-sm" data-toggle="modal" href="'.route(
'delete/asset_maintenance', $maintenance->id).
'" data-content="'.trans(
'admin/asset_maintenances/message.delete.confirm').
'" data-title="'.trans(
'general.delete').
' '.htmlspecialchars($maintenance->title).
'?" onClick="return false;"><i class="fa fa-trash icon-white"></i></a></nobr>';
112 if (($maintenance->cost) && ($maintenance->asset->assetloc) && ($maintenance->asset->assetloc->currency!=
'')) {
113 $maintenance_cost = $maintenance->asset->assetloc->currency.$maintenance->cost;
115 $maintenance_cost = $settings->default_currency.$maintenance->cost;
118 $company = $maintenance->asset->company;
121 'id' => $maintenance->id,
122 'asset_name' => (
string)link_to(
'/hardware/'.$maintenance->asset->id.
'/view', $maintenance->asset->showAssetName()) ,
123 'title' => $maintenance->title,
124 'notes' => $maintenance->notes,
125 'supplier' => $maintenance->supplier->name,
126 'cost' => $maintenance_cost,
127 'asset_maintenance_type' => e($maintenance->asset_maintenance_type),
128 'start_date' => $maintenance->start_date,
129 'asset_maintenance_time' => $maintenance->asset_maintenance_time,
130 'completion_date' => $maintenance->completion_date,
131 'actions' => $actions,
132 'companyName' => is_null($company) ?
'' : $company->name
136 $data = array(
'total' => $maintenancesCount,
'rows' => $rows);
153 $assetMaintenanceType = [
154 '' =>
'Select an asset maintenance type',
157 $selectedAsset = $assetId;
160 ->leftJoin(
'users',
'users.id',
'=',
'assets.assigned_to')
161 ->leftJoin(
'models',
'assets.model_id',
'=',
'models.id')
168 DB::raw(
'concat(first_name," ",last_name) as full_name, assets.id as id, models.name as modelname')
170 ->whereNull(
'assets.deleted_at')
172 $asset_array = json_decode(json_encode($asset),
true);
173 $asset_element[
'' ] =
'Please select an asset';
176 for ($x = 0; $x < count($asset_array); $x++) {
178 if ($asset_array[ $x ][
'full_name' ] !=
'') {
179 $full_name =
' (' . $asset_array[ $x ][
'full_name' ] .
') ' . $asset_array[ $x ][
'modelname' ];
181 $full_name =
' (Unassigned) ' . $asset_array[ $x ][
'modelname' ];
183 $asset_element[ $asset_array[ $x ][
'id' ] ] =
184 $asset_array[ $x ][
'asset_tag' ] .
' - ' . $asset_array[ $x ][
'name' ] . $full_name;
191 return View::make(
'asset_maintenances/edit')
192 ->with(
'asset_list', $asset_element)
193 ->with(
'selectedAsset', $selectedAsset)
194 ->with(
'supplier_list', $supplier_list)
195 ->with(
'assetMaintenanceType', $assetMaintenanceType)
218 if (e(Input::get(
'supplier_id')) ==
'') {
219 $assetMaintenance->supplier_id = null;
221 $assetMaintenance->supplier_id = e(Input::get(
'supplier_id'));
224 if (e(Input::get(
'is_warranty')) ==
'') {
225 $assetMaintenance->is_warranty = 0;
227 $assetMaintenance->is_warranty = e(Input::get(
'is_warranty'));
230 if (e(Input::get(
'cost')) ==
'') {
231 $assetMaintenance->cost =
'';
233 $assetMaintenance->cost = e(Input::get(
'cost'));
236 if (e(Input::get(
'notes')) ==
'') {
237 $assetMaintenance->notes = null;
239 $assetMaintenance->notes = e(Input::get(
'notes'));
242 $asset = Asset::find(e(Input::get(
'asset_id')));
245 return static::getInsufficientPermissionsRedirect();
249 $assetMaintenance->asset_id = e(Input::get(
'asset_id'));
250 $assetMaintenance->asset_maintenance_type = e(Input::get(
'asset_maintenance_type'));
251 $assetMaintenance->title = e(Input::get(
'title'));
252 $assetMaintenance->start_date = e(Input::get(
'start_date'));
253 $assetMaintenance->completion_date = e(Input::get(
'completion_date'));
255 if (( $assetMaintenance->completion_date ==
"" )
256 || ( $assetMaintenance->completion_date ==
"0000-00-00" )
258 $assetMaintenance->completion_date = null;
261 if (( $assetMaintenance->completion_date !==
"" )
262 && ( $assetMaintenance->completion_date !==
"0000-00-00" )
263 && ( $assetMaintenance->start_date !==
"" )
264 && ( $assetMaintenance->start_date !==
"0000-00-00" )
266 $startDate = Carbon::parse($assetMaintenance->start_date);
267 $completionDate = Carbon::parse($assetMaintenance->completion_date);
268 $assetMaintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
272 if ($assetMaintenance->save()) {
275 return Redirect::to(
"admin/asset_maintenances")
276 ->with(
'success', trans(
'admin/asset_maintenances/message.create.success'));
279 return redirect()->back()->withInput()->withErrors($assetMaintenance->getErrors());
296 public function getEdit($assetMaintenanceId = null)
299 if (is_null($assetMaintenance = AssetMaintenance::find($assetMaintenanceId))) {
301 return Redirect::to(
'admin/asset_maintenances')
302 ->with(
'error', trans(
'admin/asset_maintenances/message.not_found'));
304 return static::getInsufficientPermissionsRedirect();
307 if ($assetMaintenance->completion_date ==
'0000-00-00') {
308 $assetMaintenance->completion_date = null;
311 if ($assetMaintenance->start_date ==
'0000-00-00') {
312 $assetMaintenance->start_date = null;
315 if ($assetMaintenance->cost ==
'0.00') {
316 $assetMaintenance->cost = null;
320 $assetMaintenanceType = [
321 '' =>
'Select an improvement type',
326 ->leftJoin(
'users',
'users.id',
'=',
'assets.assigned_to')
327 ->leftJoin(
'models',
'assets.model_id',
'=',
'models.id')
334 DB::raw(
'concat(first_name," ",last_name) as full_name, assets.id as id, models.name as modelname')
336 ->whereNull(
'assets.deleted_at')
338 $asset_array = json_decode(json_encode($asset),
true);
339 $asset_element[
'' ] =
'Please select an asset';
342 for ($x = 0; $x < count($asset_array); $x++) {
344 if ($asset_array[ $x ][
'full_name' ] !=
'') {
345 $full_name =
' (' . $asset_array[ $x ][
'full_name' ] .
') ' . $asset_array[ $x ][
'modelname' ];
347 $full_name =
' (Unassigned) ' . $asset_array[ $x ][
'modelname' ];
349 $asset_element[ $asset_array[ $x ][
'id' ] ] =
350 $asset_array[ $x ][
'asset_tag' ] .
' - ' . $asset_array[ $x ][
'name' ] . $full_name;
356 return View::make(
'asset_maintenances/edit')
357 ->with(
'asset_list', $asset_element)
358 ->with(
'selectedAsset', null)
359 ->with(
'supplier_list', $supplier_list)
360 ->with(
'assetMaintenanceType', $assetMaintenanceType)
361 ->with(
'assetMaintenance', $assetMaintenance);
375 public function postEdit($assetMaintenanceId = null)
382 if (is_null($assetMaintenance = AssetMaintenance::find($assetMaintenanceId))) {
384 return Redirect::to(
'admin/asset_maintenances')
385 ->with(
'error', trans(
'admin/asset_maintenances/message.not_found'));
387 return static::getInsufficientPermissionsRedirect();
392 if (e(Input::get(
'supplier_id')) ==
'') {
393 $assetMaintenance->supplier_id = null;
395 $assetMaintenance->supplier_id = e(Input::get(
'supplier_id'));
398 if (e(Input::get(
'is_warranty')) ==
'') {
399 $assetMaintenance->is_warranty = 0;
401 $assetMaintenance->is_warranty = e(Input::get(
'is_warranty'));
404 if (e(Input::get(
'cost')) ==
'') {
405 $assetMaintenance->cost =
'';
407 $assetMaintenance->cost = e(Input::get(
'cost'));
410 if (e(Input::get(
'notes')) ==
'') {
411 $assetMaintenance->notes = null;
413 $assetMaintenance->notes = e(Input::get(
'notes'));
416 $asset = Asset::find(e(Input::get(
'asset_id')));
419 return static::getInsufficientPermissionsRedirect();
423 $assetMaintenance->asset_id = e(Input::get(
'asset_id'));
424 $assetMaintenance->asset_maintenance_type = e(Input::get(
'asset_maintenance_type'));
425 $assetMaintenance->title = e(Input::get(
'title'));
426 $assetMaintenance->start_date = e(Input::get(
'start_date'));
427 $assetMaintenance->completion_date = e(Input::get(
'completion_date'));
429 if (( $assetMaintenance->completion_date ==
"" )
430 || ( $assetMaintenance->completion_date ==
"0000-00-00" )
432 $assetMaintenance->completion_date = null;
433 if (( $assetMaintenance->asset_maintenance_time !== 0 )
434 || ( !is_null($assetMaintenance->asset_maintenance_time) )
436 $assetMaintenance->asset_maintenance_time = null;
440 if (( $assetMaintenance->completion_date !==
"" )
441 && ( $assetMaintenance->completion_date !==
"0000-00-00" )
442 && ( $assetMaintenance->start_date !==
"" )
443 && ( $assetMaintenance->start_date !==
"0000-00-00" )
445 $startDate = Carbon::parse($assetMaintenance->start_date);
446 $completionDate = Carbon::parse($assetMaintenance->completion_date);
447 $assetMaintenance->asset_maintenance_time = $completionDate->diffInDays($startDate);
451 if ($assetMaintenance->save()) {
454 return Redirect::to(
"admin/asset_maintenances")
455 ->with(
'success', trans(
'admin/asset_maintenances/message.create.success'));
457 return Redirect::back() ->withInput()->withErrors($assetMaintenance->getErrors());
474 if (is_null($assetMaintenance = AssetMaintenance::find($assetMaintenanceId))) {
476 return Redirect::to(
'admin/asset_maintenances')
477 ->with(
'error', trans(
'admin/asset_maintenances/message.not_found'));
479 return static::getInsufficientPermissionsRedirect();
483 $assetMaintenance->delete();
486 return Redirect::to(
'admin/asset_maintenances')
487 ->with(
'success', trans(
'admin/asset_maintenances/message.delete.success'));
502 if (is_null($assetMaintenance = AssetMaintenance::find($assetMaintenanceId))) {
504 return Redirect::to(
'admin/asset_maintenances')
505 ->with(
'error', trans(
'admin/asset_maintenances/message.not_found'));
507 return static::getInsufficientPermissionsRedirect();
510 return View::make(
'asset_maintenances/view')->with(
'assetMaintenance', $assetMaintenance);
getDatatable()
Generates the JSON response for asset maintenances listing view.
getView($assetMaintenanceId)
View an asset maintenance.
getIndex()
Returns a view that invokes the ajax tables which actually contains the content for the asset mainten...
postCreate()
Validates and stores the new asset maintenance.
static getImprovementOptions()
getImprovementOptions
Model for Asset Maintenances.
This controller handles all actions related to Asset Maintenance for the Snipe-IT Asset Management ap...
getCreate($assetId=null)
Returns a form view to create a new asset maintenance.
getEdit($assetMaintenanceId=null)
Returns a form view to edit a selected asset maintenance.
static isCurrentUserHasAccess($companyable)
static scopeCompanyables($query, $column= 'company_id')
getDelete($assetMaintenanceId)
Delete an asset maintenance.
postEdit($assetMaintenanceId=null)
Validates and stores an update to an asset maintenance.