From 0ed0a7f9f39b574c3ed2d92d67604c2d3a6d0cd3 Mon Sep 17 00:00:00 2001 From: Marcus Moore Date: Thu, 20 Mar 2025 14:01:48 -0700 Subject: [PATCH] Avoid sending emails for asset checkouts that failed --- app/Http/Controllers/Assets/BulkAssetsController.php | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/Http/Controllers/Assets/BulkAssetsController.php b/app/Http/Controllers/Assets/BulkAssetsController.php index c0591a2a84..79673834e5 100644 --- a/app/Http/Controllers/Assets/BulkAssetsController.php +++ b/app/Http/Controllers/Assets/BulkAssetsController.php @@ -570,7 +570,6 @@ class BulkAssetsController extends Controller */ public function storeCheckout(AssetCheckoutRequest $request) : RedirectResponse | ModelNotFoundException { - $this->authorize('checkout', Asset::class); try { @@ -584,6 +583,8 @@ class BulkAssetsController extends Controller $asset_ids = array_filter($request->get('selected_assets')); + $assets = Asset::findOrFail($asset_ids); + if (request('checkout_to_type') == 'asset') { foreach ($asset_ids as $asset_id) { if ($target->id == $asset_id) { @@ -603,9 +604,8 @@ class BulkAssetsController extends Controller } $errors = []; - DB::transaction(function () use ($target, $admin, $checkout_at, $expected_checkin, &$errors, $asset_ids, $request) { //NOTE: $errors is passsed by reference! - foreach ($asset_ids as $asset_id) { - $asset = Asset::findOrFail($asset_id); + DB::transaction(function () use ($target, $admin, $checkout_at, $expected_checkin, &$errors, $assets, $request) { //NOTE: $errors is passsed by reference! + foreach ($assets as $asset) { $this->authorize('checkout', $asset); $checkout_success = $asset->checkOut($target, $admin, $checkout_at, $expected_checkin, e($request->get('note')), $asset->name, null);