diff --git a/app/Http/Controllers/Accessories/AccessoryCheckoutController.php b/app/Http/Controllers/Accessories/AccessoryCheckoutController.php index 05d60fcbfe..9ed8c0fe45 100644 --- a/app/Http/Controllers/Accessories/AccessoryCheckoutController.php +++ b/app/Http/Controllers/Accessories/AccessoryCheckoutController.php @@ -71,6 +71,7 @@ class AccessoryCheckoutController extends Controller $this->authorize('checkout', $accessory); $target = $this->determineCheckoutTarget(); + session()->put(['checkout_to_type' => $target]); $accessory->checkout_qty = $request->input('checkout_qty', 1); diff --git a/app/Http/Controllers/Assets/AssetCheckoutController.php b/app/Http/Controllers/Assets/AssetCheckoutController.php index 0ea9b36418..bfbbbfcad4 100644 --- a/app/Http/Controllers/Assets/AssetCheckoutController.php +++ b/app/Http/Controllers/Assets/AssetCheckoutController.php @@ -65,6 +65,8 @@ class AssetCheckoutController extends Controller */ public function store(AssetCheckoutRequest $request, $assetId) : RedirectResponse { + + try { // Check if the asset exists if (! $asset = Asset::find($assetId)) { @@ -81,6 +83,7 @@ class AssetCheckoutController extends Controller $admin = auth()->user(); $target = $this->determineCheckoutTarget(); + session()->put(['checkout_to_type' => $target]); $asset = $this->updateAssetLocation($asset, $target); diff --git a/app/Http/Controllers/Assets/BulkAssetsController.php b/app/Http/Controllers/Assets/BulkAssetsController.php index 9f9f06c2ba..6c75ae06db 100644 --- a/app/Http/Controllers/Assets/BulkAssetsController.php +++ b/app/Http/Controllers/Assets/BulkAssetsController.php @@ -637,6 +637,7 @@ class BulkAssetsController extends Controller $admin = auth()->user(); $target = $this->determineCheckoutTarget(); + session()->put(['checkout_to_type' => $target]); if (! is_array($request->get('selected_assets'))) { return redirect()->route('hardware.bulkcheckout.show')->withInput()->with('error', trans('admin/hardware/message.checkout.no_assets_selected')); diff --git a/app/Http/Controllers/Licenses/LicenseCheckoutController.php b/app/Http/Controllers/Licenses/LicenseCheckoutController.php index e2225442b3..5b2d344ba5 100644 --- a/app/Http/Controllers/Licenses/LicenseCheckoutController.php +++ b/app/Http/Controllers/Licenses/LicenseCheckoutController.php @@ -39,6 +39,11 @@ class LicenseCheckoutController extends Controller return redirect()->route('licenses.index')->with('error', trans('admin/licenses/message.checkout.not_enough_seats')); } + // We don't currently allow checking out licenses to locations, so we'll reset that to user if needed + if (session()->get('checkout_to_type') == 'location') { + session()->put(['checkout_to_type' => 'user']); + } + // Return the checkout view return view('licenses/checkout', compact('license')); } @@ -70,17 +75,15 @@ class LicenseCheckoutController extends Controller $licenseSeat = $this->findLicenseSeatToCheckout($license, $seatId); $licenseSeat->created_by = auth()->id(); $licenseSeat->notes = $request->input('notes'); - - - $checkoutMethod = 'checkoutTo'.ucwords(request('checkout_to_type')); if ($request->filled('asset_id')) { - + session()->put(['checkout_to_type' => 'asset']); $checkoutTarget = $this->checkoutToAsset($licenseSeat); $request->request->add(['assigned_asset' => $checkoutTarget->id]); session()->put(['redirect_option' => $request->get('redirect_option'), 'checkout_to_type' => 'asset']); } elseif ($request->filled('assigned_to')) { + session()->put(['checkout_to_type' => 'user']); $checkoutTarget = $this->checkoutToUser($licenseSeat); $request->request->add(['assigned_user' => $checkoutTarget->id]); session()->put(['redirect_option' => $request->get('redirect_option'), 'checkout_to_type' => 'user']); @@ -89,6 +92,7 @@ class LicenseCheckoutController extends Controller if ($checkoutTarget) { + return Helper::getRedirectOption($request, $license->id, 'Licenses') ->with('success', trans('admin/licenses/message.checkout.success')); } diff --git a/resources/views/partials/forms/checkout-selector.blade.php b/resources/views/partials/forms/checkout-selector.blade.php index 4fb4ccbd8c..f516433ab9 100644 --- a/resources/views/partials/forms/checkout-selector.blade.php +++ b/resources/views/partials/forms/checkout-selector.blade.php @@ -1,20 +1,27 @@
+
@if ((isset($user_select)) && ($user_select!='false')) -