diff --git a/app/Http/Controllers/ViewAssetsController.php b/app/Http/Controllers/ViewAssetsController.php index ee3e4b14c6..c9aafd2c78 100755 --- a/app/Http/Controllers/ViewAssetsController.php +++ b/app/Http/Controllers/ViewAssetsController.php @@ -82,7 +82,7 @@ class ViewAssetsController extends Controller return view('account/requestable-assets', compact('assets', 'models')); } - public function getRequestItem(Request $request, $itemType, $itemId = null) + public function getRequestItem(Request $request, $itemType, $itemId = null, $cancel_by_admin = false, $requestingUser = null) { $item = null; $fullItemType = 'App\\Models\\'.studly_case($itemType); @@ -119,16 +119,16 @@ class ViewAssetsController extends Controller $settings = Setting::getSettings(); - if ($item_request = $item->isRequestedBy($user)) { - $item->cancelRequest(); - $data['item_quantity'] = $item_request->qty; + if (($item_request = $item->isRequestedBy($user)) || $cancel_by_admin) { + $item->cancelRequest($requestingUser); + $data['item_quantity'] = ($item_request) ? $item_request->qty : 1; $logaction->logaction('request_canceled'); if (($settings->alert_email != '') && ($settings->alerts_enabled == '1') && (! config('app.lock_passwords'))) { $settings->notify(new RequestAssetCancelation($data)); } - return redirect()->route('requestable-assets')->with('success')->with('success', trans('admin/hardware/message.requests.canceled')); + return redirect()->back()->with('success')->with('success', trans('admin/hardware/message.requests.canceled')); } else { $item->request(); if (($settings->alert_email != '') && ($settings->alerts_enabled == '1') && (! config('app.lock_passwords'))) { diff --git a/app/Models/Requestable.php b/app/Models/Requestable.php index 3983254e41..bf5c9c427b 100644 --- a/app/Models/Requestable.php +++ b/app/Models/Requestable.php @@ -38,8 +38,12 @@ trait Requestable $this->requests()->where('user_id', Auth::id())->delete(); } - public function cancelRequest() + public function cancelRequest($user_id = null) { - $this->requests()->where('user_id', Auth::id())->update(['canceled_at' => \Carbon\Carbon::now()]); + if (!$user_id){ + $user_id = Auth::id(); + } + + $this->requests()->where('user_id', $user_id)->update(['canceled_at' => \Carbon\Carbon::now()]); } } diff --git a/resources/lang/en/general.php b/resources/lang/en/general.php index f515325b1c..e41f3261c5 100644 --- a/resources/lang/en/general.php +++ b/resources/lang/en/general.php @@ -436,6 +436,7 @@ return [ 'errors_importing' => 'Some Errors occurred while importing: ', 'warning' => 'WARNING: :warning', 'success_redirecting' => '"Success... Redirecting.', + 'cancel_request' => 'Cancel this item request', 'setup_successful_migrations' => 'Your database tables have been created', 'setup_migration_output' => 'Migration output:', 'setup_migration_create_user' => 'Next: Create User', diff --git a/resources/views/hardware/requested.blade.php b/resources/views/hardware/requested.blade.php index 25b2a51e28..da90b3bf28 100644 --- a/resources/views/hardware/requested.blade.php +++ b/resources/views/hardware/requested.blade.php @@ -17,11 +17,6 @@