From bb013d5c3c670e121d81565bef4a49ecabcbb71f Mon Sep 17 00:00:00 2001 From: ak-piracha Date: Sun, 21 May 2023 22:49:00 +0930 Subject: [PATCH 1/2] Bulk Consumable Checkout --- .../Consumables/ConsumableCheckoutController.php | 5 +++-- resources/views/consumables/checkout.blade.php | 12 ++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Consumables/ConsumableCheckoutController.php b/app/Http/Controllers/Consumables/ConsumableCheckoutController.php index 6585624d82..2eae0b9d22 100644 --- a/app/Http/Controllers/Consumables/ConsumableCheckoutController.php +++ b/app/Http/Controllers/Consumables/ConsumableCheckoutController.php @@ -58,7 +58,7 @@ class ConsumableCheckoutController extends Controller $this->authorize('checkout', $consumable); // Make sure there is at least one available to checkout - if ($consumable->numRemaining() <= 0) { + if ($consumable->numRemaining() <= 0 || $request->qty > $consumable->numRemaining()) { return redirect()->route('consumables.index')->with('error', trans('admin/consumables/message.checkout.unavailable')); } @@ -75,13 +75,14 @@ class ConsumableCheckoutController extends Controller // Update the consumable data $consumable->assigned_to = e($request->input('assigned_to')); + for($i = 0; $i < $request->qty; $i++){ $consumable->users()->attach($consumable->id, [ 'consumable_id' => $consumable->id, 'user_id' => $admin_user->id, 'assigned_to' => e($request->input('assigned_to')), 'note' => $request->input('note'), ]); - + } event(new CheckoutableCheckedOut($consumable, $user, Auth::user(), $request->input('note'))); // Redirect to the new consumable page diff --git a/resources/views/consumables/checkout.blade.php b/resources/views/consumables/checkout.blade.php index bc17e893a1..29f8056c85 100644 --- a/resources/views/consumables/checkout.blade.php +++ b/resources/views/consumables/checkout.blade.php @@ -66,6 +66,18 @@ @endif + + +
+ +
+
+ +
+
+ {!! $errors->first('qty', '
') !!} +
+
From 457f4c410a2c51ce4a93038535ac0d284498f394 Mon Sep 17 00:00:00 2001 From: ak-piracha Date: Sun, 21 May 2023 23:11:03 +0930 Subject: [PATCH 2/2] add check for default consumable qty --- .../Consumables/ConsumableCheckoutController.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/app/Http/Controllers/Consumables/ConsumableCheckoutController.php b/app/Http/Controllers/Consumables/ConsumableCheckoutController.php index 2eae0b9d22..0840b52b84 100644 --- a/app/Http/Controllers/Consumables/ConsumableCheckoutController.php +++ b/app/Http/Controllers/Consumables/ConsumableCheckoutController.php @@ -57,8 +57,14 @@ class ConsumableCheckoutController extends Controller $this->authorize('checkout', $consumable); + // If the quantity is not present in the request or is not a positive integer, set it to 1 + $quantity = $request->input('qty'); + if (!isset($quantity) || !ctype_digit((string)$quantity) || $quantity <= 0) { + $quantity = 1; + } + // Make sure there is at least one available to checkout - if ($consumable->numRemaining() <= 0 || $request->qty > $consumable->numRemaining()) { + if ($consumable->numRemaining() <= 0 || $quantity > $consumable->numRemaining()) { return redirect()->route('consumables.index')->with('error', trans('admin/consumables/message.checkout.unavailable')); } @@ -75,7 +81,7 @@ class ConsumableCheckoutController extends Controller // Update the consumable data $consumable->assigned_to = e($request->input('assigned_to')); - for($i = 0; $i < $request->qty; $i++){ + for($i = 0; $i < $quantity; $i++){ $consumable->users()->attach($consumable->id, [ 'consumable_id' => $consumable->id, 'user_id' => $admin_user->id,