EconomyHelper impl
This commit is contained in:
parent
e0eba8df48
commit
e029ad6136
|
|
@ -6,11 +6,15 @@
|
||||||
|
|
||||||
namespace Alphaland\Economy {
|
namespace Alphaland\Economy {
|
||||||
|
|
||||||
|
use Alphaland\Assets\Asset;
|
||||||
use PDO;
|
use PDO;
|
||||||
use Alphaland\Users\User;
|
use Alphaland\Users\User;
|
||||||
|
use Exception;
|
||||||
|
|
||||||
class EconomyHelper
|
class EconomyHelper
|
||||||
{
|
{
|
||||||
|
const tax = 0.30;
|
||||||
|
|
||||||
public static function LogTransaction(int $amount, int $userid, string $description)
|
public static function LogTransaction(int $amount, int $userid, string $description)
|
||||||
{
|
{
|
||||||
$log = $GLOBALS['pdo']->prepare("INSERT INTO transaction_logs (info, amount, userid, whenTransaction) VALUES (:info, :amount, :userid, UNIX_TIMESTAMP())");
|
$log = $GLOBALS['pdo']->prepare("INSERT INTO transaction_logs (info, amount, userid, whenTransaction) VALUES (:info, :amount, :userid, UNIX_TIMESTAMP())");
|
||||||
|
|
@ -60,5 +64,41 @@ namespace Alphaland\Economy {
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static function PurchaseItem(int $userid, int $assetid)
|
||||||
|
{
|
||||||
|
$assetInfo = Asset::GetAssetInfo($assetid);
|
||||||
|
if (!$assetInfo ||
|
||||||
|
!$assetInfo->IsForSale ||
|
||||||
|
User::OwnsAsset($userid, $assetid) ||
|
||||||
|
Asset::IsModerated($assetid)) {
|
||||||
|
throw new Exception('Error occurred');
|
||||||
|
} else if (!EconomyHelper::HasEnoughAlphabux($assetInfo->PriceInAlphabux, $userid)) {
|
||||||
|
throw new Exception('You do not have enough Alphabux to purchase this item');
|
||||||
|
} else {
|
||||||
|
$creatorid = $assetInfo->CreatorId;
|
||||||
|
$price = $assetInfo->PriceInAlphabux;
|
||||||
|
|
||||||
|
if (!EconomyHelper::RemoveAlphabux($price, $userid, "Giving item ".$assetid)) {
|
||||||
|
throw new Exception('');
|
||||||
|
}
|
||||||
|
|
||||||
|
//tax calc
|
||||||
|
if ($creatorid != 1) {
|
||||||
|
$price = $price - EconomyHelper::tax * $price;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!EconomyHelper::GiveAlphabux($price, $creatorid, "Giving item purchase ".$assetid." Alphabux to creatorid ".$creatorid)) {
|
||||||
|
throw new Exception('');
|
||||||
|
} else if (!Asset::GiveAsset($assetid, $userid, $creatorid)) {
|
||||||
|
throw new Exception('');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Asset::AddSale($assetid)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue