<?php
class Trade{
static private $instance = NULL;
public $data = array();
public $dataOrder = array();
public $userData = array();
public $userDataOld = array();
public $userTrade = array();
public $count;
static function a($data){
if(self::$instance==NULL)self::$instance=new Trade($data);
return self::$instance;
}
public function __construct($data){
$this->userData = $data;
$this->userDataOld = $data;
if($this->userData['dataTrade']!=''){
$this->userTrade = json_decode($this->userData['dataTrade'],TRUE);
}
else{
/*
o-> заказ
s-> шаг
t-> время до следующего действия
p-> вывод массива рандомных заказов
to-> время действия списка заказов
*/
$this->userTrade[1] = array("o" => 0, "s" => 0 ,"t" => 0,"p" => '',"to" => '');
$this->userTrade[] = array("o" => 0, "s" => 0 ,"t" => 0,"p" => '',"to" => '');
$this->userTrade[] = array("o" => 0, "s" => 0 ,"t" => 0,"p" => '',"to" => '');
if($this->userData['id'] == User::a()->user['id']){
$this->update();
}
}
foreach($this->userTrade as $value){
if($value['o']==0)$this->count = '<span class="minor">(*)</span>';
if($value['o']!=0 && $value['t']<=time())$this->count = '<span class="minor">(*)</span>';
}
//Блюда
$this->data[1] = array("name" =>"Чай","level" => 10, "price"=> 18000 , "rating" => 10000 ,"time" => 60);
$this->data[2] = array("name" =>"Кофе","level" => 10, "price"=> 30000 , "rating" => 20000 ,"time" => 60);
$this->data[3] = array("name" =>"Бутерброд","level" => 10, "price"=> 36000 , "rating" => 20000 ,"time" => 60);
$this->data[4] = array("name" =>"Кола","level" => 12, "price"=> 45000 , "rating" => 25000 ,"time" => 60);
$this->data[5] = array("name" =>"Чизбургер","level" => 12, "price"=> 80000 , "rating" => 40000 ,"time" => 120);
$this->data[6] = array("name" =>"Мороженое","level" => 15, "price"=> 60000 , "rating" => 40000 ,"time" => 120);
$this->data[7] = array("name" =>"Картофель Фри","level" => 17, "price"=> 100000 , "rating" => 50000,"time" => 120);
$this->data[8] = array("name" =>"Гамбургер","level" => 19, "price"=> 140000 , "rating" => 90000,"time" => 180);
$this->data[9] = array("name" =>"Йогурт","level" => 21, "price"=> 120000 , "rating" => 76000,"time" => 180);
$this->data[10] = array("name" =>"Пицца","level" => 23, "price"=> 200000 , "rating" => 100000,"time" => 180);
$this->data[11] = array("name" =>"Хот-Дог","level" => 25, "price"=> 240000 , "rating" => 100000,"time" => 240);
$this->data[12] = array("name" =>"Кекс","level" => 28, "price"=> 300000 , "rating" => 160000,"time" => 240);
//Заказы
//До десятого уровня
$this->dataOrder[1] = array("sex"=>"male","name" =>"Андрей","level" => 10, "data"=> array(1,3) , 'count' => array(1,1));
$this->dataOrder[] = array("sex"=>"female","name" =>"Сима","level" => 10, "data"=> array(1,2) , 'count' => array(2,2));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 10, "data"=> array(1,2) , 'count' => array(1,2));
$this->dataOrder[] = array("sex"=>"male","name" =>"Коля","level" => 10, "data"=> array(1,2) , 'count' => array(2,1));
$this->dataOrder[] = array("sex"=>"male","name" =>"Джони","level" => 10, "data"=> array(3,2) , 'count' => array(2,4));
$this->dataOrder[] = array("sex"=>"female","name" =>"Анюта","level" => 10, "data"=> array(2,3) , 'count' => array(2,1));
$this->dataOrder[] = array("sex"=>"male","name" =>"Жека","level" => 10, "data"=> array(1,2) , 'count' => array(3,4));
$this->dataOrder[] = array("sex"=>"female","name" =>"Кристина","level" => 10, "data"=> array(2,3) , 'count' => array(2,2));
$this->dataOrder[] = array("sex"=>"female","name" =>"Катя","level" => 10, "data"=> array(1,2,3) , 'count' => array(2,2,2));
$this->dataOrder[] = array("sex"=>"male","name" =>"Вова","level" => 10, "data"=> array(1,2,3) , 'count' => array(1,1,1));
//До 12-го уровня
$this->dataOrder[] = array("sex"=>"male","name" =>"Адрюха","level" => 12, "data"=> array(1,2,3,4) , 'count' => array(1,1,1,1));
$this->dataOrder[] = array("sex"=>"female","name" =>"Мила","level" => 12, "data"=> array(1,2,3,4,5) , 'count' => array(2,2,2,1,2));
$this->dataOrder[] = array("sex"=>"female","name" =>"Кристина","level" => 12, "data"=> array(1,2,3) , 'count' => array(5,2,12));
$this->dataOrder[] = array("sex"=>"female","name" =>"Оксана","level" => 12, "data"=> array(3,4,5) , 'count' => array(1,6,9));
$this->dataOrder[] = array("sex"=>"female","name" =>"Мира","level" => 12, "data"=> array(1,4,5) , 'count' => array(10,3,6));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 12, "data"=> array(1,2,5) , 'count' => array(2,6,8));
$this->dataOrder[] = array("sex"=>"male","name" =>"Костя","level" => 12, "data"=> array(1,2,3) , 'count' => array(3,4,11));
$this->dataOrder[] = array("sex"=>"male","name" =>"Джек","level" => 12, "data"=> array(1,2,3,4) , 'count' => array(8,12,3,9));
//До 15-го уровня
$this->dataOrder[] = array("sex"=>"male","name" =>"Жора","level" => 15, "data"=> array(1,2,6) , 'count' => array(1,1,5));
$this->dataOrder[] = array("sex"=>"female","name" =>"Людмила","level" => 15, "data"=> array(3,4,5,6) , 'count' => array(2,2,2,1));
$this->dataOrder[] = array("sex"=>"female","name" =>"Настя","level" => 15, "data"=> array(1,2,3,6) , 'count' => array(5,2,1,2));
$this->dataOrder[] = array("sex"=>"female","name" =>"Инна","level" => 15, "data"=> array(3,6) , 'count' => array(6,9));
$this->dataOrder[] = array("sex"=>"female","name" =>"Катя","level" => 15, "data"=> array(1,5) , 'count' => array(10,3));
$this->dataOrder[] = array("sex"=>"male","name" =>"Саша","level" => 15, "data"=> array(1,2) , 'count' => array(18,16));
$this->dataOrder[] = array("sex"=>"male","name" =>"Костя","level" => 15, "data"=> array(2,5,6) , 'count' => array(3,4,11));
$this->dataOrder[] = array("sex"=>"male","name" =>"Артем","level" => 15, "data"=> array(1,2,3,6) , 'count' => array(8,12,3,9));
//До 17-го уровня
$this->dataOrder[] = array("sex"=>"male","name" =>"Людмила","level" => 17, "data"=> array(6,7) , 'count' => array(10,10));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 17, "data"=> array(5,6,7) , 'count' => array(20,5,5));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 17, "data"=> array(1,2,7) , 'count' => array(20,25,8));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 17, "data"=> array(6,2,7) , 'count' => array(9,12,12));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 17, "data"=> array(3,4,7) , 'count' => array(8,2,1));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 17, "data"=> array(1,2,3) , 'count' => array(25,25,10));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 17, "data"=> array(6,3) , 'count' => array(8,12));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 17, "data"=> array(1,2,3,4,7) , 'count' => array(8,12,15,12,9));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 17, "data"=> array(7) , 'count' => array(15));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 17, "data"=> array(5,7) , 'count' => array(12,12));
$this->dataOrder[] = array("sex"=>"male","name" =>"Андрей","level" => 10, "data"=> array(1,3) , 'count' => array(1,1));
$this->dataOrder[] = array("sex"=>"female","name" =>"Сима","level" => 10, "data"=> array(1,2) , 'count' => array(2,2));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 10, "data"=> array(1,2) , 'count' => array(1,2));
$this->dataOrder[] = array("sex"=>"male","name" =>"Коля","level" => 10, "data"=> array(1,2) , 'count' => array(2,1));
$this->dataOrder[] = array("sex"=>"male","name" =>"Джони","level" => 10, "data"=> array(3,2) , 'count' => array(2,4));
$this->dataOrder[] = array("sex"=>"female","name" =>"Анюта","level" => 10, "data"=> array(2,3) , 'count' => array(2,1));
$this->dataOrder[] = array("sex"=>"male","name" =>"Жека","level" => 10, "data"=> array(1,2) , 'count' => array(3,4));
$this->dataOrder[] = array("sex"=>"female","name" =>"Кристина","level" => 10, "data"=> array(2,3) , 'count' => array(2,2));
$this->dataOrder[] = array("sex"=>"female","name" =>"Катя","level" => 10, "data"=> array(1,2,3) , 'count' => array(2,2,2));
$this->dataOrder[] = array("sex"=>"male","name" =>"Вова","level" => 10, "data"=> array(1,2,3) , 'count' => array(1,1,1));
$this->dataOrder[] = array("sex"=>"male","name" =>"Адрюха","level" => 12, "data"=> array(1,2,3,4) , 'count' => array(1,1,1,1));
$this->dataOrder[] = array("sex"=>"female","name" =>"Мила","level" => 12, "data"=> array(1,2,3,4,5) , 'count' => array(2,2,2,1,2));
$this->dataOrder[] = array("sex"=>"female","name" =>"Кристина","level" => 12, "data"=> array(1,2,3) , 'count' => array(5,2,12));
$this->dataOrder[] = array("sex"=>"female","name" =>"Оксана","level" => 12, "data"=> array(3,4,5) , 'count' => array(1,6,9));
$this->dataOrder[] = array("sex"=>"female","name" =>"Мира","level" => 12, "data"=> array(1,4,5) , 'count' => array(10,3,6));
$this->dataOrder[] = array("sex"=>"male","name" =>"Сергей","level" => 12, "data"=> array(1,2,5) , 'count' => array(2,6,8));
$this->dataOrder[] = array("sex"=>"male","name" =>"Костя","level" => 12, "data"=> array(1,2,3) , 'count' => array(3,4,11));
$this->dataOrder[] = array("sex"=>"male","name" =>"Джек","level" => 12, "data"=> array(1,2,3,4) , 'count' => array(8,12,3,9));
$this->dataOrder[] = array("sex"=>"male","name" =>"Жора","level" => 15, "data"=> array(1,2,6) , 'count' => array(1,1,5));
$this->dataOrder[] = array("sex"=>"female","name" =>"Людмила","level" => 15, "data"=> array(3,4,5,6) , 'count' => array(2,2,2,1));
$this->dataOrder[] = array("sex"=>"female","name" =>"Настя","level" => 15, "data"=> array(1,2,3,6) , 'count' => array(5,2,1,2));
$this->dataOrder[] = array("sex"=>"female","name" =>"Инна","level" => 15, "data"=> array(3,6) , 'count' => array(6,9));
$this->dataOrder[] = array("sex"=>"female","name" =>"Катя","level" => 15, "data"=> array(1,5) , 'count' => array(10,3));
$this->dataOrder[] = array("sex"=>"male","name" =>"Саша","level" => 15, "data"=> array(1,2) , 'count' => array(18,16));
$this->dataOrder[] = array("sex"=>"male","name" =>"Костя","level" => 15, "data"=> array(2,5,6) , 'count' => array(3,4,11));
$this->dataOrder[] = array("sex"=>"male","name" =>"Артем","level" => 15, "data"=> array(1,2,3,6) , 'count' => array(8,12,3,9));
$this->dataOrder[] = array("sex"=>"male","name" =>"Жора","level" => 19, "data"=> array(6,7,8) , 'count' => array(1,1,5));
$this->dataOrder[] = array("sex"=>"female","name" =>"Людмила","level" => 19, "data"=> array(3,4,5,8) , 'count' => array(2,2,2,1));
$this->dataOrder[] = array("sex"=>"female","name" =>"Настя","level" => 19, "data"=> array(5,6,7,8) , 'count' => array(5,2,1,2));
$this->dataOrder[] = array("sex"=>"female","name" =>"Инна","level" => 19, "data"=> array(5,8) , 'count' => array(6,9));
$this->dataOrder[] = array("sex"=>"female","name" =>"Катя","level" => 19, "data"=> array(7,8) , 'count' => array(10,3));
$this->dataOrder[] = array("sex"=>"male","name" =>"Саша","level" => 19, "data"=> array(6,8) , 'count' => array(18,16));
$this->dataOrder[] = array("sex"=>"male","name" =>"Костя","level" => 19, "data"=> array(3,7,8) , 'count' => array(3,4,11));
$this->dataOrder[] = array("sex"=>"male","name" =>"Артем","level" => 19, "data"=> array(4,5,6,7) , 'count' => array(8,12,3,9));
$this->dataOrder[] = array("sex"=>"male","name" =>"Жора","level" => 21, "data"=> array(6,7,9) , 'count' => array(1,1,5));
$this->dataOrder[] = array("sex"=>"female","name" =>"Людмила","level" => 21, "data"=> array(3,4,8,9) , 'count' => array(2,2,2,1));
$this->dataOrder[] = array("sex"=>"female","name" =>"Настя","level" => 21, "data"=> array(5,6,7,9) , 'count' => array(5,2,1,2));
$this->dataOrder[] = array("sex"=>"female","name" =>"Инна","level" => 21, "data"=> array(8,9) , 'count' => array(6,9));
$this->dataOrder[] = array("sex"=>"female","name" =>"Катя","level" => 21, "data"=> array(8,9) , 'count' => array(10,3));
$this->dataOrder[] = array("sex"=>"male","name" =>"Саша","level" => 21, "data"=> array(7,8) , 'count' => array(18,16));
$this->dataOrder[] = array("sex"=>"male","name" =>"Костя","level" => 21, "data"=> array(3,7,9) , 'count' => array(3,4,11));
$this->dataOrder[] = array("sex"=>"male","name" =>"Артем","level" => 21, "data"=> array(4,5,6,9) , 'count' => array(8,12,3,9));
$this->dataOrder[] = array("sex"=>"male","name" =>"Жора","level" => 23, "data"=> array(6,7,10) , 'count' => array(1,1,5));
$this->dataOrder[] = array("sex"=>"female","name" =>"Людмила","level" => 23, "data"=> array(6,7,8,9) , 'count' => array(2,2,2,1));
$this->dataOrder[] = array("sex"=>"female","name" =>"Настя","level" => 23, "data"=> array(7,8,9,10) , 'count' => array(5,2,1,2));
$this->dataOrder[] = array("sex"=>"female","name" =>"Инна","level" => 23, "data"=> array(9,10) , 'count' => array(6,9));
$this->dataOrder[] = array("sex"=>"female","name" =>"Катя","level" => 23, "data"=> array(8,9) , 'count' => array(10,3));
$this->dataOrder[] = array("sex"=>"male","name" =>"Саша","level" => 23, "data"=> array(6,10) , 'count' => array(18,16));
$this->dataOrder[] = array("sex"=>"male","name" =>"Костя","level" => 23, "data"=> array(4,8,10) , 'count' => array(3,4,11));
$this->dataOrder[] = array("sex"=>"male","name" =>"Артем","level" => 23, "data"=> array(7,8,9,10) , 'count' => array(8,12,3,9));
$this->dataOrder[] = array("sex"=>"male","name" =>"Жора","level" => 25, "data"=> array(6,10,11) , 'count' => array(1,1,5));
$this->dataOrder[] = array("sex"=>"female","name" =>"Людмила","level" => 25, "data"=> array(6,7,8,11) , 'count' => array(2,2,2,1));
$this->dataOrder[] = array("sex"=>"female","name" =>"Настя","level" => 25, "data"=> array(7,8,9,11) , 'count' => array(5,2,1,2));
$this->dataOrder[] = array("sex"=>"female","name" =>"Инна","level" => 25, "data"=> array(9,10) , 'count' => array(6,9));
$this->dataOrder[] = array("sex"=>"female","name" =>"Катя","level" => 25, "data"=> array(10,11) , 'count' => array(10,3));
$this->dataOrder[] = array("sex"=>"male","name" =>"Саша","level" => 25, "data"=> array(10,11) , 'count' => array(18,16));
$this->dataOrder[] = array("sex"=>"male","name" =>"Костя","level" => 25, "data"=> array(4,8,11) , 'count' => array(3,4,11));
$this->dataOrder[] = array("sex"=>"male","name" =>"Артем","level" => 25, "data"=> array(7,8,9,11) , 'count' => array(8,12,3,9));
$this->dataOrder[] = array("sex"=>"male","name" =>"Жора","level" => 28, "data"=> array(9,10,11) , 'count' => array(1,1,5));
$this->dataOrder[] = array("sex"=>"female","name" =>"Людмила","level" => 28, "data"=> array(6,7,10,11) , 'count' => array(2,2,2,1));
$this->dataOrder[] = array("sex"=>"female","name" =>"Настя","level" => 28, "data"=> array(7,8,11,12) , 'count' => array(5,2,1,2));
$this->dataOrder[] = array("sex"=>"female","name" =>"Инна","level" => 28, "data"=> array(11,12) , 'count' => array(6,9));
$this->dataOrder[] = array("sex"=>"female","name" =>"Катя","level" => 28, "data"=> array(10,11) , 'count' => array(10,3));
$this->dataOrder[] = array("sex"=>"male","name" =>"Саша","level" => 28, "data"=> array(11,12) , 'count' => array(18,16));
$this->dataOrder[] = array("sex"=>"male","name" =>"Костя","level" => 28, "data"=> array(4,8,12) , 'count' => array(3,4,11));
$this->dataOrder[] = array("sex"=>"male","name" =>"Артем","level" => 28, "data"=> array(9,10,11,12) , 'count' => array(8,12,3,9));
}
public function newTrade(){
$price = $this->price();
if(count($this->userTrade)>999)return false;
if($price===false)return false;
if($this->userData['donate']<$price)return $_SESSION['info'] = 'Для покупки не хватает <img src="/img/icons/donate.png" style="margin-right:2px;width:14px">'.($price-$this->userData['donate']);
$this->userTrade[] = array("o" => 0, "s" => 0 ,"t" => 0,"p" => '',"to" => '');
Jobs::a($this->userData)->searchJob('Купить место','Любой',1);
User::a()->user['donate']-=$price;
$text = "Купил место в Торговле за <img src='/img/icons/donate.png' style='margin-right:2px;width:14px'>".$price;
User::a()->addLog($text);
$this->update();
$_SESSION['info'] = 'Успешная покупка';
return true;
}
public function selectAll(){
foreach($this->userTrade as $key=>$value){
if($value['o']==0){
$rand = rand(1,4);
$orders = $this->getOrder($key);
$this->select($key,$rand);
}
}
return true;
}
public function select($id,$zakaz){
$id= abs(intval($id));
$zakaz = abs(intval($zakaz))-1;
if(!array_key_exists($id,$this->userTrade))return false;
if(!array_key_exists($zakaz,$this->userTrade[$id]['p']))return false;
if($this->userTrade[$id]['o']!=0)return false;
$id_zakaza = $this->userTrade[$id]['p'][$zakaz];
$data = $this->getFoods($id_zakaza);
$first_step = $this->dataOrder[$id_zakaza]['data'][0];
$firstInfo = $data['food'][$first_step];
$info = $this->steps(false,$data);
Jobs::a($this->userData)->searchJob('Приготовить',$info[$this->userTrade[$id]['s']+1]['name'],1);
$this->userTrade[$id] = array("o" => $id_zakaza, "s" => 1 ,"t" => time()+$firstInfo['time'],"p" => '',"to" => '');
/*Задания*/
Jobs::a($this->userData)->searchJob('Принять заказ','Любой',1);
/*Достижение*/
Ach::a($this->userData)->add('selectTrade',1);
Ach::a($this->userData)->add('actionTrade',1);
$this->update();
return true;
}
public function finishAll(){
$bonus=0;
$mast=0;
foreach($this->userTrade as $key=>$value){
$steps = $this->countStep($value['o']);
if($value['o']!=0 && $value['s']==$steps && $value['t']<=time()){
$mon = $this->action($key);
$bonus+=$mon['money'];
$mast+=$mon['master'];
}
}
return array('money'=>$bonus,'master'=>$mast);
}
public function actionAll(){
$bonus=0;
foreach($this->userTrade as $key=>$value){
$steps = $this->countStep($value['o']);
if($value['o']!=0 && $value['s']<$steps && $value['o']!=0 && $value['t']<=time()){
$rat = $this->action($key);
$bonus+=$rat['rating'];
}
}
return array('rating'=>$bonus);
}
public function action($id){
if(!array_key_exists($id,$this->userTrade))return false;
$trade = $this->userTrade[$id];
if($trade['o'] == 0)return false;
if($trade['t'] > time())return false;
$data = $this->getFoods($trade['o']);
$info = $this->steps(false,$data);
$tech = json_decode($this->userData['dataShop'],true);
if($trade['s'] < $this->countStep(false,$data)){
$rat = $info[$trade['s']]['rating'];
/**/
$rat = floor($rat + ($rat*Shop::a()->data[$tech['Multi']['id']]['effect'][$tech['Multi']['level']]));
if($this->userData['doubleDay'] == date('l')) {
$rat = $rat * 2;
}
/*Работники*/
$workers = json_decode($this->userData['dataWorkers'],true);
if($workers['reklam']['time']>time()){
$rat = $rat * 10;
}
User::a()->user['rating']+=$rat;
User::a()->user['tRating']+=$rat/10000000000;
Jobs::a($this->userData)->searchJob('Получить опыт','Любой',$rat);
Jobs::a($this->userData)->searchJob('Приготовить',$info[$trade['s']+1]['name'],1);
/*Достижение*/
Ach::a($this->userData)->add('actionTrade',1);
$this->userTrade[$id]['s']++;
$timen = $info[$trade['s']]['time'];
/*Диплом Торговца*/
if(User::a()->user['DocTradeTime']>0){
$timen = $timen - floor($timen*User::a()->user['DocTradeTime']/20);
}
$this->userTrade[$id]['t']=time()+$timen;
}
else{
$bonus = $this->viewFoods(false,$data);
/*Раздатчик*/
$moneys = $bonus['bonus']['money'];
/*Работники*/
$workers = json_decode($this->userData['dataWorkers'],true);
if($workers['finansist']['time']>time()){
$rat = $rat * 10;
}
Jobs::a($this->userData)->searchJob('Собрать монеты','Любой',$moneys);
Jobs::a($this->userData)->searchJob('Выдать заказ','Любой',1);
User::a()->user['money']+=$moneys;
User::a()->user['tMoney']+=$moneys;
/*Торговое мастерство и достижение*/
$eff = Shop::a()->data[$tech['Zvonok']['id']]['effect'][$tech['Zvonok']['level']]+1;
User::a()->user['tradeMas']+=$eff;
User::a()->user['tTrade']+=$eff;
Ach::a($this->userData)->add('masterTrade',5);
Ach::a($this->userData)->add('finishTrade',1);
$this->userTrade[$id]['o']=0;
$this->userTrade[$id]['s']=0;
$this->userTrade[$id]['t']=0;
}
$this->update();
return array('money'=>$moneys,'rating'=>$rat,'master'=>$eff);
}
public function countStep($id,$foods=false){
if($foods===false)$data = $this->getFoods($id);
else $data = $foods;
if($data===false)return false;
$step = 0;
foreach($data['food'] as $key=>$value){
$step+=$data['count'][$key];
}
return $step;
}
public function countsAll(){
$return = array('select'=>0,'action'=>0,'finish'=>0);
foreach($this->userTrade as $key=>$value){
if($value['o']==0)$return['select']++;
$steps = $this->countStep($value['o']);
if($value['o']!=0 && $value['s']==$steps && $value['t']<=time())$return['finish']++;
if($value['o']!=0 && $value['s']<$steps && $value['o']!=0 && $value['t']<=time())$return['action']++;
}
return $return;
}
public function steps($id,$foods=false){
if($foods===false)$data = $this->getFoods($id);
else $data = $foods;
if($data===false)return false;
$step=1;
$steps=array();
foreach($data['food'] as $key=>$value){
if($data['count'][$key]>0){
for($i=1;$i<=$data['count'][$key];$i++){
$value['id'] = $data['id'][$key];
$steps[$step] = $value;
$step++;
}
}
else{
$value['id'] = $data['id'][$key];
$steps[$step] = $value;
$step++;
}
}
return $steps;
}
/*Вывод Торговли*/
public function getTrade($page=1,$data=false) {
if(!$page) $page = 1;
$page = abs(intval($page));
if($data===false)$trade = $this->userTrade;
else $trade = json_decode($data,TRUE);
$trades=array();
$maxPage = floor((count($this->data)-1)/COUNT_TRADE)+1;
if($page == 1)$start = 1;
else $start = COUNT_TRADE*($page-1)+1;
for($i=$start;$i<=COUNT_TRADE*$page;$i++){
if(array_key_exists($i,$trade)){
if($trade[$i]['o'] != 0)$trades[$i]=array('data' => $trade[$i] , 'dataOrder' => $this->dataOrder[$trade[$i]['o']]);
else $trades[$i]=array('data' => $trade[$i] , 'dataOrder' => false);
}
}
return $trades;
}
public function price() {
$count = count($this->userTrade)+1;
$donate = $count*14;
if(User::a()->user['vip']==1){
$donate = $donate - floor($donate*0.7);
}
/*Сертификат Торговца*/
if(User::a()->user['DocTrade']>0){
$donate = $donate - floor($donate*User::a()->user['DocTrade']/20);
}
return $donate;
}
public function getOrder($id) {
if(!array_key_exists($id,$this->userTrade))return false;
if($this->userTrade[$id]['o'] != 0)return false;
/*Если список заказов пуст*/
if($this->userTrade[$id]['p']==''){
$this->userTrade[$id]['p'] = array_rand($this->sortByLevel($this->userData['level']),4);
$this->userTrade[$id]['to'] = time()+180;
$this->update();
}
/*Если список заказов устарел*/
if($this->userTrade[$id]['to']!='' && $this->userTrade[$id]['to']<time()){
$this->userTrade[$id]['p'] = array_rand($this->sortByLevel($this->userData['level']),4);
$this->userTrade[$id]['to'] = time()+180;
$this->update();
}
return $this->userTrade[$id]['p'];
}
public function getOrderTitle($id,$foods=false){
if($foods===false)$order = $this->getFoods($id);
else $order = $foods;
if($order === false)return false;
if($order['order']['sex'] == 'male') return "<img src='/img/trade/icons/man.png' style='margin-right:2px;width:16px'>".$order['order']['name'];
else return "<img src='/img/trade/icons/woman.png' style='margin-right:2px;width:16px'>".$order['order']['name'];
}
public function viewFoods($id,$foods=false){
if($foods===false)$order = $this->getFoods($id);
else $order = $foods;
if($order === false)return false;
$bonus=array('time' => 0 ,'rating' => 0 , 'money' => 0);
$info;
foreach($order['food'] as $key=>$value){
if(empty($info))$info.=" <img src='/img/trade/small/".$key.".png' style='margin-right:2px;width:18px'>".$order['count'][$key]." шт";
else $info.=" ,<img src='/img/trade/small/".$key.".png' style='margin-right:2px;width:18px'>".$order['count'][$key]." шт";
$bonus['time']+=$value['time']*$order['count'][$key];
$bonus['rating']+=$value['rating']*$order['count'][$key];
$bonus['money']+=$value['price']*$order['count'][$key];
}
/*Техника*/
$tech = json_decode($this->userData['dataShop'],true);
$bonus['rating'] = floor($bonus['rating'] + ($bonus['rating']*Shop::a()->data[$tech['Multi']['id']]['effect'][$tech['Multi']['level']]));
$bonus['money'] = floor($bonus['money'] + ($bonus['money']*Shop::a()->data[$tech['Razdat']['id']]['effect'][$tech['Razdat']['level']]));
/*Двойной опыт*/
if($this->userData['doubleDay'] == date('l')) {
$bonus['rating'] = $bonus['rating'] * 2;
}
/*Работники*/
$workers = json_decode($this->userData['dataWorkers'],true);
if($workers['reklam']['time']>time()){
$bonus['rating'] = $bonus['rating'] * 10;
}
/*Диплом Торговца*/
if(User::a()->user['DocTradeTime']>0){
$bonus['time'] = $bonus['time'] - floor($bonus['time']*User::a()->user['DocTradeTime']/20);
}
if($workers['finansist']['time']>time()){
$bonus['money'] = $bonus['money'] * 10;
}
return array('info' => $info , 'bonus' => $bonus);
}
public function getFoods($id){
if(!array_key_exists($id,$this->dataOrder))return false;
$data = array();
$data['order'] = $this->dataOrder[$id];
foreach($data['order']['data'] AS $key => $value){
$data['food'][$value]=$this->data[$value];
$data['count'][$value]=$data['order']['count'][$key];
$data['id'][$value]=$value;
}
return $data;
}
public function sortByLevel($level){
$orders=array();
foreach($this->dataOrder as $key=>$value){
if($value['level']<= $level || $value['level']>= ($level-2))$orders[$key]=$value;
}
return $orders;
}
public function getTitle($id) {
if(!array_key_exists($id,$this->userTrade))return false;
$trade = $this->userTrade[$id];
if($trade['o'] == 0)return "<img src='/img/trade/icons/man.png' style='margin-right:2px;width:16px'>Заказ не выбран";
$data = $this->getFoods($this->userTrade[$id]['o']);
$view = $this->viewFoods($this->userTrade[$id]['o'],$data);
$info = $this->getOrderTitle($trade['o'])." ,";
$info.=' <img src="/img/icons/money.png" style="margin-right:2px;width:14px">'.moneyf($view['bonus']['money']).' и <img src="/img/icons/rating.png" style="margin-right:2px;width:14px">'.numf($view['bonus']['rating']);
return $info;
}
public function getIcon($id) {
if(!array_key_exists($id,$this->userTrade))return false;
$trade = $this->userTrade[$id];
if($trade['o'] == 0)return "<img src='/img/trade/s/0.png' style='float:left;padding-right:10px;'>";
$data = $this->getFoods($this->userTrade[$id]['o']);
$st = $this->steps($this->userTrade[$id]['o']);
return "<img src='/img/trade/food/".$st[$this->userTrade[$id]['s']]['id'].".png' style='float:left;padding-right:10px;'>";
}
public function getLink($id) {
if(!array_key_exists($id,$this->userTrade))return false;
$trade = $this->userTrade[$id];
if($trade['o'] == 0)return "<a class='link4' href='/Trade/".$id."/Select/'>Выбрать заказ</a>";
$data = $this->getFoods($this->userTrade[$id]['o']);
$st = $this->steps($this->userTrade[$id]['o']);
$steps = $this->countStep($this->userTrade[$id]['o'],$data);
$progress = $this->userTrade[$id]['s']-1;
if($this->userTrade[$id]['t']<time())$progress = $this->userTrade[$id]['s'];
if($this->userTrade[$id]['t']>time()){
$link = "<span class='small minor'>Приготовлено ".$progress." из ".$steps."<span><br>";
$link .= "<span class='small minor'>".$st[$this->userTrade[$id]['s']]['name']." через ".atime($this->userTrade[$id]['t']-time())."</span><br>";
}
else{
$link = "<span class='small minor'>Приготовлено ".$progress." из ".$steps."<span><br>";
$link .= "<a class='link4' href=/Trade/".$id."/Action/>Готовить ".$st[$this->userTrade[$id]['s']+1]['name']."</a>";
if($this->countStep($this->userTrade[$id]['o'],$data)==$this->userTrade[$id]['s']){
$link = "<span class='small minor'>Заказ готов!<span><br>";
$link .= "<a class='link4' href=/Trade/".$id."/Action/>Выдать заказ</a>";
}
}
return $link;
}
public function loc($location=false){
if($location==false)header("Location:/Trade/");
else header("Location:".$location);
die();
}
public function workerPovar(){
$count = $this->countsAll();
if($count['action']>0)$this->actionAll();
}
public function workerOficiant(){
$count = $this->countsAll();
if($count['select']>0)$this->selectAll();
}
public function workerBarmen(){
$count = $this->countsAll();
if($count['finish']>0)$this->finishAll();
}
public function update() {
User::a()->user['dataTrade'] = json_encode($this->userTrade);
}
}