fix: 🚑️ Fixed credits check at server creation & formatted prices nicely

This commit is contained in:
IceToast 2022-07-27 23:26:03 +02:00
parent 1fb855a684
commit de96d6d6d3
4 changed files with 17 additions and 6 deletions

View file

@ -91,7 +91,7 @@ class ChargeServers extends Command
} }
// check if the server is canceled or if user has enough credits to charge the server or // check if the server is canceled or if user has enough credits to charge the server or
if ( $server->cancelled || $user->credits < $product->price) { if ( $server->cancelled || $user->credits <= $product->price) {
try { try {
// suspend server // suspend server
$this->line("<fg=yellow>{$server->name}</> from user: <fg=blue>{$user->name}</> has been <fg=red>suspended!</>"); $this->line("<fg=yellow>{$server->name}</> from user: <fg=blue>{$user->name}</> has been <fg=red>suspended!</>");

View file

@ -105,11 +105,13 @@ class ServerController extends Controller
// minimum credits // minimum credits
if (FacadesRequest::has("product")) { if (FacadesRequest::has("product")) {
$product = Product::findOrFail(FacadesRequest::input("product")); $product = Product::findOrFail(FacadesRequest::input("product"));
if ( if (
Auth::user()->credits < Auth::user()->credits <
($product->minimum_credits == -1 ($product->minimum_credits == -1
? config('SETTINGS::USER:MINIMUM_REQUIRED_CREDITS_TO_MAKE_SERVER', 50) ? config('SETTINGS::USER:MINIMUM_REQUIRED_CREDITS_TO_MAKE_SERVER', 50)
: $product->minimum_credits) : $product->minimum_credits) ||
Auth::user()->credits <= $product->price
) { ) {
return redirect()->route('servers.index')->with('error', "You do not have the required amount of " . CREDITS_DISPLAY_NAME . " to use this product!"); return redirect()->route('servers.index')->with('error', "You do not have the required amount of " . CREDITS_DISPLAY_NAME . " to use this product!");
} }

View file

@ -223,10 +223,10 @@
</div> </div>
</div> </div>
<button type="submit" x-model="selectedProduct" name="product" <button type="submit" x-model="selectedProduct" name="product"
:disabled="product.minimum_credits > user.credits" :disabled="product.minimum_credits > user.credits || product.price > user.credits"
:class="product.minimum_credits > user.credits ? 'disabled' : ''" :class="product.minimum_credits > user.credits || product.price > user.credits ? 'disabled' : ''"
class="btn btn-primary btn-block mt-2" @click="setProduct(product.id)" class="btn btn-primary btn-block mt-2" @click="setProduct(product.id)"
x-text=" product.minimum_credits > user.credits ? '{{ __('Not enough') }} {{ CREDITS_DISPLAY_NAME }}!' : '{{ __('Create server') }}'"> x-text="product.minimum_credits > user.credits || product.price > user.credits ? '{{ __('Not enough') }} {{ CREDITS_DISPLAY_NAME }}!' : '{{ __('Create server') }}'">
</button> </button>
</div> </div>
</div> </div>
@ -354,6 +354,7 @@
.catch(console.error) .catch(console.error)
this.fetchedProducts = true; this.fetchedProducts = true;
// TODO: Sortable by user chosen property (cpu, ram, disk...) // TODO: Sortable by user chosen property (cpu, ram, disk...)
this.products = response.data.sort((p1, p2) => p1.price > p2.price && 1 || -1) this.products = response.data.sort((p1, p2) => p1.price > p2.price && 1 || -1)
@ -362,11 +363,19 @@
product.cpu = product.cpu / 100; product.cpu = product.cpu / 100;
}) })
//format price to have no decimals if it is a whole number
this.products.forEach(product => {
if (product.price % 1 === 0) {
product.price = Math.round(product.price);
}
})
this.loading = false; this.loading = false;
this.updateSelectedObjects() this.updateSelectedObjects()
}, },
/** /**
* @description map selected id's to selected objects * @description map selected id's to selected objects
* @note being used in the server info box * @note being used in the server info box

View file

@ -188,7 +188,7 @@
@endif @endif
</div> </div>
<span> <span>
{{ $server->product->price }} {{ number_format($server->product->price) }}
</span> </span>
</div> </div>
</div> </div>