mirror of
https://github.com/snipe/snipe-it.git
synced 2024-12-31 16:37:27 -08:00
Merge remote-tracking branch 'origin/develop'
Some checks are pending
CodeQL Security Scan / CodeQL Security Scan (javascript) (push) Waiting to run
Codacy Security Scan / Codacy Security Scan (push) Waiting to run
Docker images (Alpine) / docker (push) Waiting to run
Docker images / docker (push) Waiting to run
Tests in MySQL / PHP ${{ matrix.php-version }} (8.1) (push) Waiting to run
Tests in MySQL / PHP ${{ matrix.php-version }} (8.2) (push) Waiting to run
Tests in MySQL / PHP ${{ matrix.php-version }} (8.3) (push) Waiting to run
Tests in SQLite / PHP ${{ matrix.php-version }} (8.1.1) (push) Waiting to run
Some checks are pending
CodeQL Security Scan / CodeQL Security Scan (javascript) (push) Waiting to run
Codacy Security Scan / Codacy Security Scan (push) Waiting to run
Docker images (Alpine) / docker (push) Waiting to run
Docker images / docker (push) Waiting to run
Tests in MySQL / PHP ${{ matrix.php-version }} (8.1) (push) Waiting to run
Tests in MySQL / PHP ${{ matrix.php-version }} (8.2) (push) Waiting to run
Tests in MySQL / PHP ${{ matrix.php-version }} (8.3) (push) Waiting to run
Tests in SQLite / PHP ${{ matrix.php-version }} (8.1.1) (push) Waiting to run
This commit is contained in:
commit
e15e33b648
|
@ -258,6 +258,8 @@ class ConsumablesController extends Controller
|
||||||
|
|
||||||
$this->authorize('checkout', $consumable);
|
$this->authorize('checkout', $consumable);
|
||||||
|
|
||||||
|
$consumable->checkout_qty = $request->input('checkout_qty', 1);
|
||||||
|
|
||||||
// Make sure there is at least one available to checkout
|
// Make sure there is at least one available to checkout
|
||||||
if ($consumable->numRemaining() <= 0) {
|
if ($consumable->numRemaining() <= 0) {
|
||||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/consumables/message.checkout.unavailable')));
|
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/consumables/message.checkout.unavailable')));
|
||||||
|
@ -268,6 +270,12 @@ class ConsumablesController extends Controller
|
||||||
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.invalid_item_category_single', ['type' => trans('general.consumable')])));
|
return response()->json(Helper::formatStandardApiResponse('error', null, trans('general.invalid_item_category_single', ['type' => trans('general.consumable')])));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Make sure there is at least one available to checkout
|
||||||
|
if ($consumable->numRemaining() <= 0 || $consumable->checkout_qty > $consumable->numRemaining()) {
|
||||||
|
return response()->json(Helper::formatStandardApiResponse('error', null, trans('admin/consumables/message.checkout.unavailable', ['requested' => $consumable->checkout_qty, 'remaining' => $consumable->numRemaining() ])));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Check if the user exists - @TODO: this should probably be handled via validation, not here??
|
// Check if the user exists - @TODO: this should probably be handled via validation, not here??
|
||||||
if (!$user = User::find($request->input('assigned_to'))) {
|
if (!$user = User::find($request->input('assigned_to'))) {
|
||||||
|
@ -278,7 +286,8 @@ class ConsumablesController extends Controller
|
||||||
// Update the consumable data
|
// Update the consumable data
|
||||||
$consumable->assigned_to = $request->input('assigned_to');
|
$consumable->assigned_to = $request->input('assigned_to');
|
||||||
|
|
||||||
$consumable->users()->attach($consumable->id,
|
for ($i = 0; $i < $consumable->checkout_qty; $i++) {
|
||||||
|
$consumable->users()->attach($consumable->id,
|
||||||
[
|
[
|
||||||
'consumable_id' => $consumable->id,
|
'consumable_id' => $consumable->id,
|
||||||
'created_by' => $user->id,
|
'created_by' => $user->id,
|
||||||
|
@ -286,6 +295,8 @@ class ConsumablesController extends Controller
|
||||||
'note' => $request->input('note'),
|
'note' => $request->input('note'),
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
event(new CheckoutableCheckedOut($consumable, $user, auth()->user(), $request->input('note')));
|
event(new CheckoutableCheckedOut($consumable, $user, auth()->user(), $request->input('note')));
|
||||||
|
|
||||||
|
|
|
@ -70,7 +70,7 @@ class ConsumableCheckoutController extends Controller
|
||||||
$this->authorize('checkout', $consumable);
|
$this->authorize('checkout', $consumable);
|
||||||
|
|
||||||
// If the quantity is not present in the request or is not a positive integer, set it to 1
|
// If the quantity is not present in the request or is not a positive integer, set it to 1
|
||||||
$quantity = $request->input('qty');
|
$quantity = $request->input('checkout_qty');
|
||||||
if (!isset($quantity) || !ctype_digit((string)$quantity) || $quantity <= 0) {
|
if (!isset($quantity) || !ctype_digit((string)$quantity) || $quantity <= 0) {
|
||||||
$quantity = 1;
|
$quantity = 1;
|
||||||
}
|
}
|
||||||
|
@ -92,7 +92,7 @@ class ConsumableCheckoutController extends Controller
|
||||||
// Update the consumable data
|
// Update the consumable data
|
||||||
$consumable->assigned_to = e($request->input('assigned_to'));
|
$consumable->assigned_to = e($request->input('assigned_to'));
|
||||||
|
|
||||||
for($i = 0; $i < $quantity; $i++){
|
for ($i = 0; $i < $quantity; $i++){
|
||||||
$consumable->users()->attach($consumable->id, [
|
$consumable->users()->attach($consumable->id, [
|
||||||
'consumable_id' => $consumable->id,
|
'consumable_id' => $consumable->id,
|
||||||
'created_by' => $admin_user->id,
|
'created_by' => $admin_user->id,
|
||||||
|
@ -100,6 +100,8 @@ class ConsumableCheckoutController extends Controller
|
||||||
'note' => $request->input('note'),
|
'note' => $request->input('note'),
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$consumable->checkout_qty = $quantity;
|
||||||
event(new CheckoutableCheckedOut($consumable, $user, auth()->user(), $request->input('note')));
|
event(new CheckoutableCheckedOut($consumable, $user, auth()->user(), $request->input('note')));
|
||||||
|
|
||||||
$request->request->add(['checkout_to_type' => 'user']);
|
$request->request->add(['checkout_to_type' => 'user']);
|
||||||
|
|
|
@ -38,6 +38,7 @@ class CheckoutConsumableNotification extends Notification
|
||||||
$this->note = $note;
|
$this->note = $note;
|
||||||
$this->target = $checkedOutTo;
|
$this->target = $checkedOutTo;
|
||||||
$this->acceptance = $acceptance;
|
$this->acceptance = $acceptance;
|
||||||
|
$this->qty = $consumable->checkout_qty;
|
||||||
|
|
||||||
$this->settings = Setting::getSettings();
|
$this->settings = Setting::getSettings();
|
||||||
}
|
}
|
||||||
|
@ -173,7 +174,6 @@ class CheckoutConsumableNotification extends Notification
|
||||||
*/
|
*/
|
||||||
public function toMail()
|
public function toMail()
|
||||||
{
|
{
|
||||||
Log::debug($this->item->getImageUrl());
|
|
||||||
$eula = $this->item->getEula();
|
$eula = $this->item->getEula();
|
||||||
$req_accept = $this->item->requireAcceptance();
|
$req_accept = $this->item->requireAcceptance();
|
||||||
|
|
||||||
|
@ -188,6 +188,7 @@ class CheckoutConsumableNotification extends Notification
|
||||||
'eula' => $eula,
|
'eula' => $eula,
|
||||||
'req_accept' => $req_accept,
|
'req_accept' => $req_accept,
|
||||||
'accept_url' => $accept_url,
|
'accept_url' => $accept_url,
|
||||||
|
'qty' => $this->qty,
|
||||||
])
|
])
|
||||||
->subject(trans('mail.Confirm_consumable_delivery'));
|
->subject(trans('mail.Confirm_consumable_delivery'));
|
||||||
}
|
}
|
||||||
|
|
|
@ -91,7 +91,7 @@
|
||||||
<label for="qty" class="col-md-3 control-label">{{ trans('general.qty') }}</label>
|
<label for="qty" class="col-md-3 control-label">{{ trans('general.qty') }}</label>
|
||||||
<div class="col-md-7 col-sm-12 required">
|
<div class="col-md-7 col-sm-12 required">
|
||||||
<div class="col-md-2" style="padding-left:0px">
|
<div class="col-md-2" style="padding-left:0px">
|
||||||
<input class="form-control" type="number" name="qty" id="qty" value="1" min="1" max="{{$consumable->numRemaining()}}" maxlength="999999" />
|
<input class="form-control" type="number" name="checkout_qty" id="checkout_qty" value="1" min="1" max="{{$consumable->numRemaining()}}" maxlength="999999" />
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
{!! $errors->first('qty', '<div class="col-md-8 col-md-offset-3"><span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span></div>') !!}
|
{!! $errors->first('qty', '<div class="col-md-8 col-md-offset-3"><span class="alert-msg" aria-hidden="true"><i class="fas fa-times" aria-hidden="true"></i> :message</span></div>') !!}
|
||||||
|
|
|
@ -11,6 +11,9 @@
|
||||||
| **{{ trans('mail.checkout_date') }}** | {{ $checkout_date }} |
|
| **{{ trans('mail.checkout_date') }}** | {{ $checkout_date }} |
|
||||||
@endif
|
@endif
|
||||||
| **{{ trans('general.consumable') }}** | {{ $item->name }} |
|
| **{{ trans('general.consumable') }}** | {{ $item->name }} |
|
||||||
|
@if (isset($qty))
|
||||||
|
| **{{ trans('general.qty') }}** | {{ $qty }} |
|
||||||
|
@endif
|
||||||
@if (isset($item->manufacturer))
|
@if (isset($item->manufacturer))
|
||||||
| **{{ trans('general.manufacturer') }}** | {{ $item->manufacturer->name }} |
|
| **{{ trans('general.manufacturer') }}** | {{ $item->manufacturer->name }} |
|
||||||
@endif
|
@endif
|
||||||
|
|
Loading…
Reference in a new issue