From a7b199c01aa0d96754a33cc7698bf45fb049dc44 Mon Sep 17 00:00:00 2001 From: 1Day Date: Mon, 30 May 2022 09:23:35 +0200 Subject: [PATCH] Add the ability to sell server slots --- .../Controllers/Admin/PaymentController.php | 36 +++++++++---- app/Http/Controllers/StoreController.php | 2 +- resources/views/admin/store/create.blade.php | 1 + resources/views/store/index.blade.php | 51 ++++++++++--------- 4 files changed, 56 insertions(+), 34 deletions(-) diff --git a/app/Http/Controllers/Admin/PaymentController.php b/app/Http/Controllers/Admin/PaymentController.php index 72d5e9d2..32bb5c77 100644 --- a/app/Http/Controllers/Admin/PaymentController.php +++ b/app/Http/Controllers/Admin/PaymentController.php @@ -164,9 +164,6 @@ class PaymentController extends Controller $response = $this->getPayPalClient()->execute($request); if ($response->statusCode == 201 || $response->statusCode == 200) { - //update credits - $user->increment('credits', $creditProduct->quantity); - //update server limit if (config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE') !== 0) { if ($user->server_limit < config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE')) { @@ -174,6 +171,14 @@ class PaymentController extends Controller } } + //update User with bought item + if ($creditProduct->type=="Credits") { + $user->increment('credits', $creditProduct->quantity); + }elseif ($creditProduct->type=="Server slots"){ + $user->increment('server_limit', $creditProduct->quantity); + } + + //update role if ($user->role == 'member') { $user->update(['role' => 'client']); @@ -184,7 +189,7 @@ class PaymentController extends Controller 'user_id' => $user->id, 'payment_id' => $response->result->id, 'payment_method' => 'paypal', - 'type' => 'Credits', + 'type' => $creditProduct->type, 'status' => 'paid', 'amount' => $creditProduct->quantity, 'price' => $creditProduct->price, @@ -305,8 +310,7 @@ class PaymentController extends Controller // check if payment is 100% completed and payment does not exist in db already if ($paymentSession->status == "complete" && $paymentIntent->status == "succeeded" && $paymentDbEntry == 0) { - //update credits - $user->increment('credits', $creditProduct->quantity); + //update server limit if (config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE') !== 0) { @@ -315,6 +319,13 @@ class PaymentController extends Controller } } + //update User with bought item + if ($creditProduct->type=="Credits") { + $user->increment('credits', $creditProduct->quantity); + }elseif ($creditProduct->type=="Server slots"){ + $user->increment('server_limit', $creditProduct->quantity); + } + //update role if ($user->role == 'member') { $user->update(['role' => 'client']); @@ -325,7 +336,7 @@ class PaymentController extends Controller 'user_id' => $user->id, 'payment_id' => $paymentSession->payment_intent, 'payment_method' => 'stripe', - 'type' => 'Credits', + 'type' => $creditProduct->type, 'status' => 'paid', 'amount' => $creditProduct->quantity, 'price' => $creditProduct->price, @@ -356,7 +367,7 @@ class PaymentController extends Controller 'user_id' => $user->id, 'payment_id' => $paymentSession->payment_intent, 'payment_method' => 'stripe', - 'type' => 'Credits', + 'type' => $creditProduct->type, 'status' => 'processing', 'amount' => $creditProduct->quantity, 'price' => $creditProduct->price, @@ -405,8 +416,7 @@ class PaymentController extends Controller $user = User::where('id', $payment->user_id)->first(); if ($paymentIntent->status == 'succeeded' && $payment->status == 'processing') { - // Increment User Credits - $user->increment('credits', $payment->amount); + //update server limit if (config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE') !== 0) { @@ -414,6 +424,12 @@ class PaymentController extends Controller $user->update(['server_limit' => config('SETTINGS::USER:SERVER_LIMIT_AFTER_IRL_PURCHASE')]); } } + //update User with bought item + if ($creditProduct->type=="Credits") { + $user->increment('credits', $creditProduct->quantity); + }elseif ($creditProduct->type=="Server slots"){ + $user->increment('server_limit', $creditProduct->quantity); + } //update role if ($user->role == 'member') { diff --git a/app/Http/Controllers/StoreController.php b/app/Http/Controllers/StoreController.php index c3717653..6b6b3148 100644 --- a/app/Http/Controllers/StoreController.php +++ b/app/Http/Controllers/StoreController.php @@ -30,7 +30,7 @@ class StoreController extends Controller } return view('store.index')->with([ - 'products' => CreditProduct::where('disabled', '=', false)->orderBy('price', 'asc')->get(), + 'products' => CreditProduct::where('disabled', '=', false)->orderBy('type', 'asc')->orderBy('price', 'asc')->get(), 'isPaymentSetup' => $isPaymentSetup, ]); } diff --git a/resources/views/admin/store/create.blade.php b/resources/views/admin/store/create.blade.php index b09d4bdf..c7c17ed7 100644 --- a/resources/views/admin/store/create.blade.php +++ b/resources/views/admin/store/create.blade.php @@ -50,6 +50,7 @@ @error('name')
diff --git a/resources/views/store/index.blade.php b/resources/views/store/index.blade.php index 0b6220b2..31b78f87 100644 --- a/resources/views/store/index.blade.php +++ b/resources/views/store/index.blade.php @@ -12,9 +12,9 @@
@@ -41,27 +41,34 @@
- - - - - - + + + + + + - - @foreach ($products as $product) - - - - - - - @endforeach + + @foreach ($products as $product) + + + + + + + @endforeach
{{ __('Price') }}{{ __('Type') }}{{ __('Description') }}
{{ __('Price') }}{{ __('Type') }}{{ __('Description') }}
{{ $product->formatToCurrency($product->price) }}{{ strtolower($product->type) == 'credits' ? CREDITS_DISPLAY_NAME : $product->type }} - {{ $product->display }}{{ __('Purchase') }} -
{{ $product->formatToCurrency($product->price) }}{{ strtolower($product->type) == 'credits' ? CREDITS_DISPLAY_NAME : $product->type }} + + @if(strtolower($product->type) == 'credits') + + @elseif (strtolower($product->type) == 'server slots') + + @endif + + {{ $product->display }}{{ __('Purchase') }} +
@@ -87,7 +94,6 @@ const urlParams = new URLSearchParams(queryString); return urlParams.get(param); } - const voucherCode = getUrlParameter('voucher'); //if voucherCode not empty, open the modal and fill the input if (voucherCode) { @@ -95,7 +101,6 @@ $('#redeemVoucherModal').modal('show'); $('#redeemVoucherCode').val(voucherCode); }); - }