fix: 🐛 Credt usage at dashboard

This commit is contained in:
IceToast 2022-07-22 04:54:33 +02:00
parent abd8bc6b9c
commit f3856c88ba
3 changed files with 21 additions and 5 deletions

View file

@ -76,7 +76,7 @@ class HomeController extends Controller
/** Build our Time-Left-Box */
if ($credits > 0.01 and $usage > 0) {
$daysLeft = number_format(($credits * 30) / $usage, 2, '.', '');
$daysLeft = number_format($credits / ($usage / 30), 2, '.', '');
$hoursLeft = number_format($credits / ($usage / 30 / 24), 2, '.', '');
$bg = $this->getTimeLeftBoxBackground($daysLeft);

View file

@ -37,7 +37,21 @@ class Product extends Model
public function getHourlyPrice()
{
return ($this->price / 30) / 24;
// calculate the hourly price with the billing period
switch($this->billing_period) {
case 'daily':
return $this->price / 24;
case 'weekly':
return $this->price / 24 / 7;
case 'monthly':
return $this->price / 24 / 30;
case 'half-annually':
return $this->price / 24 / 30 / 6;
case 'annually':
return $this->price / 24 / 365;
default:
return $this->price;
}
}
public function getDailyPrice()

View file

@ -233,17 +233,19 @@ class User extends Authenticatable implements MustVerifyEmail
* @return string
*/
public function creditUsage()
{
{
$usage = 0;
foreach ($this->getServersWithProduct() as $server) {
$usage += $server->product->price;
$usage += $server->product->getHourlyPrice() * 24 * 30;
}
return number_format($usage, 2, '.', '');
}
}
private function getServersWithProduct() {
return $this->servers()
->whereNull('suspended')
->whereNull('cancelled')
->with('product')
->get();
}