2018-01-28 16:40:49 +00:00
< ? php
2021-01-27 15:19:05 +00:00
use Battles\GameLogs ;
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 ) {
2021-08-23 18:51:34 +00:00
$query = 'select name from inventory where dressed_slot = 0 and owner_id = ? and item_id = ?' ;
\Battles\Database\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 ();
2020-09-30 14:33:23 +00:00
if ( empty ( $putItemCost )) {
$putItemCost = $dress [ 'cost' ];
}
2019-02-15 22:02:42 +00:00
$commission = ceil ( $putItemCost / 10 ); # 10% от суммы с округлением вверх.
2021-02-01 16:42:52 +00:00
if ( $user -> getMoney () > $commission ) {
2019-02-15 20:18:02 +00:00
2019-02-13 12:57:28 +00:00
if ( db :: c () -> getAffectedRows ()) {
2021-02-01 16:42:52 +00:00
$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 );
2019-02-13 12:57:28 +00:00
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 } кр. " ;
2020-09-30 14:33:23 +00:00
} else {
$status = " Предмет не найден в инвентаре! " ;
}
} else {
2021-02-01 16:42:52 +00:00
$status = " У вас не хватает " . $commission - $user -> getMoney () . " кр. чтобы оплатить комиссию! " ;
2020-09-30 14:33:23 +00:00
}
2019-02-13 12:57:28 +00:00
}
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 ()) {
2021-02-01 16:42:52 +00:00
$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' ] } ». " ;
2020-09-30 14:33:23 +00:00
} 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' ]) {
2021-02-01 16:42:52 +00:00
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' ] } кр. " ;
2021-02-01 16:42:52 +00:00
$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' ] } кр. " ;
2021-01-27 15:19:05 +00:00
GameLogs :: addUserLog ( $dress [ 'owner' ], $deloText );
2021-02-01 16:42:52 +00:00
$user -> setMoney ( $user -> getMoney () - $dress [ 'setsale' ]);
2020-09-30 14:33:23 +00:00
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' ) {
2021-08-23 18:51:34 +00:00
$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' ) {
2021-08-23 18:51:34 +00:00
$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' ])) {
2021-08-23 18:51:34 +00:00
$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 {
2021-08-23 18:51:34 +00:00
$query = 'select * from inventory where on_sale > 0 and dressed_slot = 0 order by name' ;
}
if ( isset ( $search )) {
$data = \Battles\Database\DBPDO :: INIT () -> ofetchAll ( $query , $search );
unset ( $search );
} else {
$data = \Battles\Database\DBPDO :: INIT () -> ofetchAll ( $query );
2019-02-15 18:21:05 +00:00
}
$iteminfo = [];
2021-08-23 18:51:34 +00:00
foreach ( $data as $itemObject ) {
$iteminfo [] = new ShopItem ( $itemObject , 'buymarket' );
2019-02-15 16:39:47 +00:00
}
2021-01-27 15:19:05 +00:00
Template :: header ( 'Рынок' );
2018-01-28 16:40:49 +00:00
?>
2020-09-30 14:33:23 +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>
2021-08-23 18:51:34 +00:00
< 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 ; ?>
2021-08-23 18:51:34 +00:00
< 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
?>
2021-08-23 18:51:34 +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 > М а с с а всех ваших вещей : < ? = getItemsMassaInfo () ?>
< 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 >
2021-08-23 18:51:34 +00:00
</ table >