battles/comission.php

158 lines
8.6 KiB
PHP
Raw Normal View History

2018-01-28 16:40:49 +00:00
<?php
use Battles\Database\DBPDO;
use Battles\GameLogs;
use Battles\InventoryItem;
use Battles\ShopItem;
use Battles\Template;
2019-01-18 19:56:07 +00:00
require_once 'functions.php';
$get = urldecode(filter_input(INPUT_SERVER, 'QUERY_STRING'));
2019-02-15 22:02:42 +00:00
$putItemCost = (int)filter_input(INPUT_POST, 'cost', FILTER_VALIDATE_INT, ['options' => ['min_range' => 1]]);
2019-02-15 20:18:02 +00:00
$putItemId = (int)filter_input(INPUT_POST, 'putId', FILTER_VALIDATE_INT, ['options' => ['min_range' => 1]]);
2019-02-15 14:39:46 +00:00
$returningItemId = (int)filter_input(INPUT_GET, 'back', FILTER_VALIDATE_INT, ['options' => ['min_range' => 1]]);
2019-02-15 17:23:43 +00:00
$byingItemId = (int)filter_input(INPUT_GET, 'set', FILTER_VALIDATE_INT, ['options' => ['min_range' => 1]]);
2019-02-13 13:28:06 +00:00
2019-02-15 20:18:02 +00:00
if ($putItemId) {
$query = 'select name from inventory where dressed_slot = 0 and owner_id = ? and item_id = ?';
DBPDO::INIT()->ofetch($query, [$_SESSION['uid'], $putItemId]);
2019-02-15 20:18:02 +00:00
$dress = db::c()->query('SELECT `name`,`duration`,`maxdur`,`cost` FROM `inventory` WHERE `dressed` = 0 AND `id` = ?i AND `owner` = ?i', $putItemId, $_SESSION['uid'])->fetch_assoc();
if (empty($putItemCost)) {
$putItemCost = $dress['cost'];
}
2019-02-15 22:02:42 +00:00
$commission = ceil($putItemCost / 10); # 10% от суммы с округлением вверх.
if ($user->getMoney() > $commission) {
2019-02-15 20:18:02 +00:00
if (db::c()->getAffectedRows()) {
$deloText = "{$user->getLogin()} выставил товар: «{$dress['name']}» id:({$putItemId}) [{$dress['duration']}/{$dress['maxdur']}] на продажу в комиссионку за {$putItemCost} кр. ";
GameLogs::addUserLog($user->getId(), $deloText);
2019-02-15 22:02:42 +00:00
db::c()->query('UPDATE `inventory` SET `setsale` = ?i WHERE `id` = ?i', $putItemCost, $putItemId);
db::c()->query('UPDATE `users` SET `money` = `money` - ?i WHERE `id` = ?i', $commission, $_SESSION['uid']);
2019-02-15 22:02:42 +00:00
$status = "Вы сдали в магазин «{$dress['name']}» за {$putItemCost} кр. Вычтено за услуги магазина: {$commission} кр.";
} else {
$status = "Предмет не найден в инвентаре!";
}
} else {
$status = "У вас не хватает " . $commission - $user->getMoney() . " кр. чтобы оплатить комиссию!";
}
}
2019-02-13 13:28:06 +00:00
if ($returningItemId) {
$dress = db::c()->query('SELECT `name`,`duration`,`maxdur` FROM `inventory` WHERE `dressed` = 0 AND `setsale` > 0 AND `id` = ?i AND `owner` = ?i', $returningItemId, $_SESSION['uid'])->fetch_assoc();
if (db::c()->getAffectedRows()) {
$deloText = "{$user->getLogin()} забрал свой товар: «{$dress['name']}» id:({$returningItemId}) [{$dress['duration']}/{$dress['maxdur']}] из комиссионки.";
GameLogs::addUserLog($user->getId(), $deloText);
2019-02-13 13:28:06 +00:00
db::c()->query('UPDATE `inventory` SET `setsale` = 0 WHERE `id` = ?i', $returningItemId);
$status = "Вы забрали из магазина ваш «{$dress['name']}».";
} else {
$status = "Предмет не найден на полках магазина!";
}
2018-01-28 16:40:49 +00:00
}
2019-02-15 17:23:43 +00:00
if ($byingItemId) {
2019-02-15 22:02:42 +00:00
$dress = db::c()->query('SELECT `name`,`owner`,`duration`,`maxdur`,`setsale` FROM `inventory` WHERE `dressed` = 0 AND `setsale` > 0 AND `id` = ?i', $byingItemId)->fetch_assoc();
$seller = db::c()->query('SELECT `login` FROM `users` WHERE `id` =?i', $dress['owner'])->fetch_assoc();
2019-02-15 15:25:53 +00:00
2019-02-15 22:02:42 +00:00
if ($dress['setsale']) {
if ($user->getMoney() >= $dress['setsale']) {
db::c()->query('UPDATE `inventory` SET `setsale` = 0, `owner` = ?i WHERE `id` = ?i', $user->getId(), $byingItemId);
db::c()->query('UPDATE `users` set `money` = `money` - ?i WHERE `id` = ?i', $dress['setsale'], $user->getId());
2019-02-15 22:02:42 +00:00
db::c()->query('UPDATE `users` set `money` = `money` + ?i WHERE `id` = ?i', $dress['setsale'], $dress['owner']);
$status = "Вы купили «{$dress['name']}» за {$dress['setsale']} кр.";
$deloText = "{$user->getLogin()} купил на рынке товар: «{$dress['name']}» id:({$byingItemId}) [{$dress['duration']}/{$dress['maxdur']}] у {$seller['login']} за {$dress['setsale']} кр.";
GameLogs::addUserLog($user->getId(), $deloText);
$deloText = "{$seller['login']} продал на рынке товар: «{$dress['name']}» id:({$byingItemId}) [{$dress['duration']}/{$dress['maxdur']}] персонажу {$user->getLogin()} за {$dress['setsale']} кр.";
GameLogs::addUserLog($dress['owner'], $deloText);
$user->setMoney($user->getMoney() - $dress['setsale']);
telegraph($dress['owner'], "Предмет «{$dress['name']}» продан на рынке за {$dress['setsale']} кр.");
} else {
$status = "Недостаточно средств!";
}
} else {
$status = "Предмет не найден на полках магазина!";
}
2018-01-28 16:40:49 +00:00
}
2019-02-15 18:25:31 +00:00
$classPrintControlName = "marketbuy";
2019-02-15 14:11:58 +00:00
if ($get === 'sale') {
$search = $_SESSION['uid'];
$query = 'select * from inventory where on_sale = 0 and dressed_slot = 0 and present is null and owner_id = ? order by name';
2019-02-15 18:25:31 +00:00
$classPrintControlName = "marketput";
2019-02-15 18:31:56 +00:00
} elseif ($get === 'unsale') {
$search = $_SESSION['uid'];
$query = 'select * from inventory where on_sale > 0 and dressed_slot = 0 and owner_id = ? order by name';
2019-02-15 18:25:31 +00:00
$classPrintControlName = "marketgetback";
2019-02-15 18:31:56 +00:00
} else if (!empty($_POST['search'])) {
$search = "%{$_POST['search']}%";
$query = 'select * from inventory where on_sale > 0 and dressed_slot = 0 and name like ? order by item_id';
2019-02-15 18:31:56 +00:00
} else {
$query = 'select * from inventory where on_sale > 0 and dressed_slot = 0 order by name';
}
if (isset($search)) {
$data = DBPDO::INIT()->ofetchAll($query, $search);
unset($search);
} else {
$data = DBPDO::INIT()->ofetchAll($query);
2019-02-15 18:21:05 +00:00
}
$iteminfo = [];
foreach ($data as $itemObject) {
$iteminfo[] = new ShopItem($itemObject, 'buymarket');
2019-02-15 16:39:47 +00:00
}
Template::header('Рынок');
2018-01-28 16:40:49 +00:00
?>
<script src="js/main.js"></script>
2019-02-15 17:23:43 +00:00
<h1>Рынок</h1>
<a href=# onclick=hrefToFrame('city.php?cp')> ← выйти на Центральную площадь</a>
<div><?php if (!empty($status)) err($status); ?></div>
<table width=100% cellspacing="0" cellpadding="4">
<tr>
<td valign=top align=left>
<table class="zebra" width=100%>
<tr>
<th>
2019-02-15 20:18:02 +00:00
<?php if ($get === 'sale'): ?>
Выставить товар на продажу.
<br>Комиссия за услуги магазина составляет 10% от цены, по которой вы предлагаете предмет.
<?php elseif ($get === 'unsale'): ?>
Забрать свой товар.
<?php else: ?>
Список товаров.<br>
<form method="post">
<input name="search"> <input type="submit" value="Искать товар">
</form>
<?php endif; ?>
<tr>
<td><!--Рюкзак-->
<table width=100%>
2019-01-18 19:56:07 +00:00
<?php
2019-02-15 18:31:56 +00:00
foreach ($iteminfo as $ii) {
echo "<tr><td style='width: 150px; text-align: center;'>";
$ii->printImage();
$ii->printControls($classPrintControlName);
echo "</td>";
echo "<td style='vertical-align: top;'>";
$ii->printInfo();
echo "</td></tr>";
}
2019-01-18 19:56:07 +00:00
?>
</table>
</table>
2019-01-18 19:56:07 +00:00
<TD valign=top width=280>
2019-02-15 17:43:18 +00:00
<div style="margin-left:15px; margin-top: 10px;">
<b>Масса всех ваших вещей: <?= InventoryItem::getWeightData() ?>
2019-02-15 17:43:18 +00:00
<br>У вас в наличии: <span style="color: darkgreen;"><?= $user['money'] ?></span> кр.</b>
2019-01-18 19:56:07 +00:00
<hr>
2019-02-15 18:31:56 +00:00
<br>
<button onclick="hrefToFrame('?show')">Осмотреть товары</button>
<br>
<button onclick="hrefToFrame('?sale')">Сдать вещи в магазин</button>
<br>
<button onclick="hrefToFrame('?unsale')">Забрать вещи из магазина</button>
<br>
<button onclick="hrefToFrame('city.php?cp=1')">Вернуться</button>
2019-01-18 19:56:07 +00:00
</div>
</table>