diff --git a/app/Helpers/Helper.php b/app/Helpers/Helper.php index fc5f9d798..af3284317 100644 --- a/app/Helpers/Helper.php +++ b/app/Helpers/Helper.php @@ -1480,7 +1480,7 @@ class Helper $redirect_option = Session::get('redirect_option'); $checkout_to_type = Session::get('checkout_to_type'); - $checkedInBy = Session::get('checkedInBy'); + $checkedInFrom = Session::get('checkedInFrom'); // return to index if ($redirect_option == 'index') { @@ -1522,11 +1522,11 @@ class Helper if ($redirect_option == 'target') { switch ($checkout_to_type) { case 'user': - return route('users.show', $request->assigned_user ?? $checkedInBy); + return route('users.show', $request->assigned_user ?? $checkedInFrom); case 'location': - return route('locations.show', $request->assigned_location); + return route('locations.show', $request->assigned_location ?? $checkedInFrom); case 'asset': - return route('hardware.show', $request->assigned_asset); + return route('hardware.show', $request->assigned_asset ?? $checkedInFrom); } } return redirect()->back()->with('error', trans('admin/hardware/message.checkout.error')); diff --git a/app/Http/Controllers/Accessories/AccessoryCheckinController.php b/app/Http/Controllers/Accessories/AccessoryCheckinController.php index 9666bc135..ab24200d7 100644 --- a/app/Http/Controllers/Accessories/AccessoryCheckinController.php +++ b/app/Http/Controllers/Accessories/AccessoryCheckinController.php @@ -29,9 +29,17 @@ class AccessoryCheckinController extends Controller } $accessory = Accessory::find($accessory_user->accessory_id); + + //based on what the accessory is checked out to the target redirect option will be displayed accordingly. + $target_option = match ($accessory_user->assigned_type) { + 'App\Models\Asset' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.asset')]), + 'App\Models\Location' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.location')]), + default => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.user')]), + }; $this->authorize('checkin', $accessory); - return view('accessories/checkin', compact('accessory'))->with('backto', $backto); + return view('accessories/checkin', compact('accessory', 'target_option'))->with('backto', $backto); + } /** @@ -50,10 +58,12 @@ class AccessoryCheckinController extends Controller $accessory = Accessory::find($accessory_checkout->accessory_id); - if($accessory_checkout->assigned_type === 'App\Models\User') { - session()->put('checkout_to_type', 'user'); - session()->put('checkedInBy', $accessory_checkout->assigned_to); - } + session()->put('checkedInFrom', $accessory_checkout->assigned_to); + session()->put('checkout_to_type', match ($accessory_checkout->assigned_type) { + 'App\Models\User' => 'user', + 'App\Models\Location' => 'location', + 'App\Models\Asset' => 'asset', + }); $this->authorize('checkin', $accessory); $checkin_hours = date('H:i:s'); diff --git a/app/Http/Controllers/Assets/AssetCheckinController.php b/app/Http/Controllers/Assets/AssetCheckinController.php index 9e550c975..cf881b57c 100644 --- a/app/Http/Controllers/Assets/AssetCheckinController.php +++ b/app/Http/Controllers/Assets/AssetCheckinController.php @@ -40,8 +40,12 @@ class AssetCheckinController extends Controller if (!$asset->model) { return redirect()->route('hardware.show', $asset->id)->with('error', trans('admin/hardware/general.model_invalid_fix')); } - - return view('hardware/checkin', compact('asset')) + $target_option = match ($asset->assigned_type) { + 'App\Models\Asset' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.asset_previous')]), + 'App\Models\Location' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.location')]), + default => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.user')]), + }; + return view('hardware/checkin', compact('asset', 'target_option')) ->with('item', $asset) ->with('statusLabel_list', Helper::statusLabelList()) ->with('backto', $backto) @@ -75,10 +79,12 @@ class AssetCheckinController extends Controller $this->authorize('checkin', $asset); - if ($asset->assignedType() == Asset::USER) { - $user = $asset->assignedTo; - session()->put('checkedInBy', $user->id); - } + session()->put('checkedInFrom', $asset->assignedTo->id); + session()->put('checkout_to_type', match ($asset->assigned_type) { + 'App\Models\User' => 'user', + 'App\Models\Location' => 'location', + 'App\Models\Asset' => 'asset', + }); $asset->expected_checkin = null; $asset->last_checkin = now(); diff --git a/app/Http/Controllers/Licenses/LicenseCheckinController.php b/app/Http/Controllers/Licenses/LicenseCheckinController.php index e771ab7fb..72a3d43d5 100644 --- a/app/Http/Controllers/Licenses/LicenseCheckinController.php +++ b/app/Http/Controllers/Licenses/LicenseCheckinController.php @@ -87,7 +87,7 @@ class LicenseCheckinController extends Controller if($licenseSeat->assigned_to != null){ $return_to = User::find($licenseSeat->assigned_to); - session()->put('checkedInBy', $return_to->id); + session()->put('checkedInFrom', $return_to->id); } else { $return_to = Asset::find($licenseSeat->asset_id); } diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index 72d577ff6..6751f2876 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -23,6 +23,7 @@ return [ 'asset_models' => 'Asset Models', 'asset_model' => 'Model', 'asset' => 'Asset', + 'asset_previous' => 'Asset (Previously Assigned)', 'asset_report' => 'Asset Report', 'asset_tag' => 'Asset Tag', 'asset_tags' => 'Asset Tags', diff --git a/resources/views/accessories/checkin.blade.php b/resources/views/accessories/checkin.blade.php index 53a6cbd1e..1a5545f0e 100755 --- a/resources/views/accessories/checkin.blade.php +++ b/resources/views/accessories/checkin.blade.php @@ -77,7 +77,7 @@ :options="[ 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => trans('general.accessories')]), 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.accessory')]), - 'target' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.user')]), + 'target' => $target_option ]" /> diff --git a/resources/views/hardware/checkin.blade.php b/resources/views/hardware/checkin.blade.php index 7f22d4ede..ea5e2c91b 100755 --- a/resources/views/hardware/checkin.blade.php +++ b/resources/views/hardware/checkin.blade.php @@ -171,7 +171,7 @@ :options="[ 'index' => trans('admin/hardware/form.redirect_to_all', ['type' => trans('general.assets')]), 'item' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.asset')]), - 'target' => trans('admin/hardware/form.redirect_to_type', ['type' => trans('general.user')]), + 'target' => $target_option, ]" />