From c614c44d4cf6b9129f3380196da84f9c1a73aa69 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Mon, 22 Sep 2025 16:04:29 -0700 Subject: [PATCH 1/4] Remove assigned assets from bulk checkout --- .../Assets/BulkAssetsController.php | 18 +++++++++++++++++- .../views/hardware/bulk-checkout.blade.php | 16 ++++++++++++++++ 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/app/Http/Controllers/Assets/BulkAssetsController.php b/app/Http/Controllers/Assets/BulkAssetsController.php index cb4fa5fa5b32..a966b0d28c95 100644 --- a/app/Http/Controllers/Assets/BulkAssetsController.php +++ b/app/Http/Controllers/Assets/BulkAssetsController.php @@ -621,9 +621,25 @@ public function showCheckout() : View { $this->authorize('checkout', Asset::class); + $alreadyAssigned = collect(); + + if (old('selected_assets') && is_array(old('selected_assets'))) { + $assets = Asset::findMany(old('selected_assets')); + + [$assignable, $alreadyAssigned] = $assets->partition(function (Asset $asset) { + return !$asset->assigned_to; + }); + + session()->flashInput(['selected_assets' => $assignable->pluck('id')]); + } + $do_not_change = ['' => trans('general.do_not_change')]; $status_label_list = $do_not_change + Helper::deployableStatusLabelList(); - return view('hardware/bulk-checkout')->with('statusLabel_list', $status_label_list); + + return view('hardware/bulk-checkout', [ + 'statusLabel_list' => $status_label_list, + 'removed_assets' => $alreadyAssigned, + ]); } /** diff --git a/resources/views/hardware/bulk-checkout.blade.php b/resources/views/hardware/bulk-checkout.blade.php index 4b6d26b02741..8471eef43a54 100644 --- a/resources/views/hardware/bulk-checkout.blade.php +++ b/resources/views/hardware/bulk-checkout.blade.php @@ -27,6 +27,22 @@
{{ csrf_field() }} + @if ($removed_assets->isNotEmpty()) +
+
+ Warning +
+
+

The following were removed from the selected assets because they are already checked out:

+
    + @foreach($removed_assets as $asset) +
  • {{ $asset->present()->fullName }}
  • + @endforeach +
+
+
+ @endif + @include ('partials.forms.edit.asset-select', [ 'translated_name' => trans('general.assets'), 'fieldname' => 'selected_assets[]', From be848598e32157453c624f3288ba504c2db10ae0 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 24 Sep 2025 14:32:25 -0700 Subject: [PATCH 2/4] Keep removed asset out of scope of partial --- app/Http/Controllers/Assets/BulkAssetsController.php | 2 +- resources/views/hardware/bulk-checkout.blade.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Assets/BulkAssetsController.php b/app/Http/Controllers/Assets/BulkAssetsController.php index a966b0d28c95..e5446477cf4f 100644 --- a/app/Http/Controllers/Assets/BulkAssetsController.php +++ b/app/Http/Controllers/Assets/BulkAssetsController.php @@ -630,7 +630,7 @@ public function showCheckout() : View return !$asset->assigned_to; }); - session()->flashInput(['selected_assets' => $assignable->pluck('id')]); + session()->flashInput(['selected_assets' => $assignable->pluck('id')->values()->toArray()]); } $do_not_change = ['' => trans('general.do_not_change')]; diff --git a/resources/views/hardware/bulk-checkout.blade.php b/resources/views/hardware/bulk-checkout.blade.php index 8471eef43a54..17538bc71da2 100644 --- a/resources/views/hardware/bulk-checkout.blade.php +++ b/resources/views/hardware/bulk-checkout.blade.php @@ -35,9 +35,9 @@

The following were removed from the selected assets because they are already checked out:

    - @foreach($removed_assets as $asset) -
  • {{ $asset->present()->fullName }}
  • - @endforeach + @foreach($removed_assets as $removed_asset) +
  • {{ $removed_asset->present()->fullName }}
  • + @endforeach
From 8461b147de57801cd4fe60e89933d43c25811fb1 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Wed, 24 Sep 2025 16:38:48 -0700 Subject: [PATCH 3/4] Link to removed assets --- resources/views/hardware/bulk-checkout.blade.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/resources/views/hardware/bulk-checkout.blade.php b/resources/views/hardware/bulk-checkout.blade.php index 17538bc71da2..360d259975a2 100644 --- a/resources/views/hardware/bulk-checkout.blade.php +++ b/resources/views/hardware/bulk-checkout.blade.php @@ -36,7 +36,11 @@

The following were removed from the selected assets because they are already checked out:

From 9edec9e2122efb7c7b8b344b0a3c5b2e96f5f6f5 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Thu, 25 Sep 2025 11:09:27 -0700 Subject: [PATCH 4/4] Extract translation --- resources/lang/en-US/general.php | 1 + resources/views/hardware/bulk-checkout.blade.php | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/resources/lang/en-US/general.php b/resources/lang/en-US/general.php index 3d7b8ca6bf82..630442c90fff 100644 --- a/resources/lang/en-US/general.php +++ b/resources/lang/en-US/general.php @@ -522,6 +522,7 @@ 'error_user_company_multiple' => 'One or more of the checkout target company and asset company do not match', 'error_user_company_accept_view' => 'An Asset assigned to you belongs to a different company so you can\'t accept nor deny it, please check with your manager', 'error_assets_already_checked_out' => 'One or more of the assets are already checked out', + 'assigned_assets_removed' => 'The following were removed from the selected assets because they are already checked out', 'importer' => [ 'checked_out_to_fullname' => 'Checked Out to: Full Name', 'checked_out_to_first_name' => 'Checked Out to: First Name', diff --git a/resources/views/hardware/bulk-checkout.blade.php b/resources/views/hardware/bulk-checkout.blade.php index 360d259975a2..7fbcbee39b36 100644 --- a/resources/views/hardware/bulk-checkout.blade.php +++ b/resources/views/hardware/bulk-checkout.blade.php @@ -33,7 +33,7 @@ Warning
-

The following were removed from the selected assets because they are already checked out:

+

{{ trans('general.assigned_assets_removed') }}

    @foreach($removed_assets as $removed_asset)