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 @@
- {{ Form::open([ - 'method' => 'POST', - 'route' => ['hardware/bulkedit'], - 'class' => 'form-inline', - 'id' => 'bulkForm']) }}
@@ -51,7 +46,7 @@ {{ trans('admin/hardware/form.expected_checkin') }} {{ trans('admin/hardware/table.requesting_user') }} {{ trans('admin/hardware/table.requested_date') }} - {{ trans('general.checkin').'/'.trans('general.checkout') }} + {{ trans('button.actions') }} @@ -103,6 +98,14 @@ @endif {{ App\Helpers\Helper::getFormattedDateObject($request->created_at, 'datetime', false) }} + + {{ Form::open([ + 'method' => 'POST', + 'route' => ['account/request-item', $request->itemType(), $request->requestable->id, true, $request->requestingUser()->id], + ]) }} + + {{ Form::close() }} + @if ($request->itemType() == "asset") @if ($request->requestable->assigned_to=='') diff --git a/routes/web.php b/routes/web.php index 49998f43fc..5de6ef9025 100644 --- a/routes/web.php +++ b/routes/web.php @@ -281,7 +281,7 @@ Route::group(['prefix' => 'account', 'middleware' => ['auth']], function () { )->name('account/request-asset'); Route::post( - 'request/{itemType}/{itemId}', + 'request/{itemType}/{itemId}/{cancel_by_admin?}/{requestingUser?}', [ViewAssetsController::class, 'getRequestItem'] )->name('account/request-item');