/var/www/doncode.com.ua/www/models
Edit: /var/www/doncode.com.ua/www/models/class.admin_model.php (37702B)
database->prepare("SELECT count(*) as count
FROM `".DB_PREFIX."users` du
WHERE du.block='0' ".$where."");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data[0]['count'];
}
public function getClients($city_id=0,$page=0){
$where = '';
if ($city_id!=0){
$where = 'AND du.city_id='.$city_id;
}
if ($page!=0){
$page_number=abs(($page-1)*LIMIT);
}else{
$page_number=0;
}
try{
$sth = $this->database->prepare("SELECT du.id as user_id, du.driver_id, du.online, du.balance, du.FIO, p.phone as login, du.lastvisit, du.email,
du.email_confirmed, du.datereg,
co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city, co.currency
FROM `".DB_PREFIX."users` du
LEFT OUTER JOIN `".DB_PREFIX."phones` p ON p.`user_id` = du.`id`
LEFT OUTER JOIN city_ c ON c.`id_city` = du.`city_id`
LEFT OUTER JOIN region_ r ON r.`id_region` = c.`id_region`
LEFT OUTER JOIN country_ co ON co.`id_country` = c.`id_country`
WHERE du.block='0' ".$where." ORDER BY du.email_confirmed, du.lastvisit DESC LIMIT ".$page_number." , ".LIMIT."");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach($data as $k => $v){
$data[$k]['datereg'] = bootstrap::HumanDatePrecise($v['datereg']);
$data[$k]['lastvisit'] = bootstrap::HumanDatePrecise($v['lastvisit']);
}
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
public function getActiveClientsCities(){
try{
$sth = $this->database->prepare("SELECT du.city_id,co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city
FROM `".DB_PREFIX."users` du
INNER JOIN city_ c ON c.`id_city` = du.`city_id`
INNER JOIN region_ r ON r.`id_region` = c.`id_region`
INNER JOIN country_ co ON co.`id_country` = c.`id_country`
WHERE du.block='0' GROUP BY du.`city_id`");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
// ----------------------------------------------------
public function getDriversCount($city_id=0){
$where = '';
if ($city_id!=0){
$where = 'AND du.city_id='.$city_id;
}
try{
$sth = $this->database->prepare("SELECT count(*) as count
FROM `".DB_PREFIX."users` du
WHERE du.block='0' AND du.driver_id>0 ".$where."");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data[0]['count'];
}
public function getDriver($driver_id=0){
if($driver_id==0)return;
try{
$sth = $this->database->prepare("SELECT du.id as user_id, du.driver_id, du.online, du.balance, du.login, du.FIO,
d.*, d.pas_fio, cm.mark, cmo.model, cc.name as color,
co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city, co.currency
FROM `".DB_PREFIX."users` du
INNER JOIN ".DB_PREFIX."drivers d ON d.`id` = du.`driver_id`
LEFT JOIN ".DB_PREFIX."car_mark cm ON cm.`id` = d.`mark_id`
LEFT JOIN ".DB_PREFIX."car_model cmo ON cmo.`id` = d.`model_id`
LEFT JOIN ".DB_PREFIX."car_colors cc ON cc.`id` = d.`color_id`
INNER JOIN city_ c ON c.`id_city` = du.`city_id`
INNER JOIN region_ r ON r.`id_region` = c.`id_region`
INNER JOIN country_ co ON co.`id_country` = c.`id_country`
WHERE du.block='0' AND du.driver_id=".$driver_id." LIMIT 1");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data[0];
}
public function getDrivers($city_id=0,$page=0){
$where = '';
if ($city_id!=0){
$where = 'AND du.city_id='.$city_id;
}
if ($page!=0){
$page_number=abs(($page-1)*LIMIT);
}else{
$page_number=0;
}
try{
$sth = $this->database->prepare("SELECT du.id as user_id, du.driver_id, du.online, du.balance,
d.car_nr, d.phone_call, d.active, d.pas_fio, cm.mark, cmo.model, cc.name as color,
co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city, co.currency
FROM `".DB_PREFIX."users` du
INNER JOIN ".DB_PREFIX."drivers d ON d.`id` = du.`driver_id`
LEFT JOIN ".DB_PREFIX."car_mark cm ON cm.`id` = d.`mark_id`
LEFT JOIN ".DB_PREFIX."car_model cmo ON cmo.`id` = d.`model_id`
LEFT JOIN ".DB_PREFIX."car_colors cc ON cc.`id` = d.`color_id`
INNER JOIN city_ c ON c.`id_city` = du.`city_id`
INNER JOIN region_ r ON r.`id_region` = c.`id_region`
INNER JOIN country_ co ON co.`id_country` = c.`id_country`
WHERE du.block='0' AND du.driver_id>0 ".$where." ORDER BY d.active, d.createdate DESC LIMIT ".$page_number." , ".LIMIT."");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
public function getActiveDriversCities(){
try{
$sth = $this->database->prepare("SELECT du.city_id,co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city
FROM `".DB_PREFIX."users` du
INNER JOIN city_ c ON c.`id_city` = du.`city_id`
INNER JOIN region_ r ON r.`id_region` = c.`id_region`
INNER JOIN country_ co ON co.`id_country` = c.`id_country`
WHERE du.block='0' AND du.driver_id>0 GROUP BY du.`city_id`");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
public function driver_activate($driver_id=0,$active='0'){
if($driver_id==0){
echo '{"fail":"Водитель не выбран"}';
exit;
}
$rowcount = $this->database->update(DB_PREFIX.'drivers',array(
'active' => $active
),"id={$driver_id}");
if($rowcount>0){
if(session::get('driver_id')==$driver_id){
session::set('driver_active',$active);
}
if($active==1){
$subject = 'Активирован доступ водителя';
$message = '
Здравствуйте!
Ваша анкета прошла проверку и доступна к работе!
Войдите в
личный кабинет для загрузки программы
Приятной работы!
';
}else{
$subject = 'Доступ водителя заблокирован';
$message = '
Здравствуйте!
Ваша анкета не прошла проверку и была заблокированна!
Вход в
личный кабинет по прежнему активен.
Вы можете попробовать обновить данные для повторной проверки. Приятной работы!
';
}
$this->mail->send_did($driver_id, $subject, $message);
ajax::success(true);
}else{
echo '{"fail":"Ошибка активации"}';
exit;
}
}
// ----------------------------------------------------
public function getExchangeCount($city_id=0){
$where = '';
if ($city_id!=0){
$where = 'AND du.city_id='.$city_id;
}
try{
$sth = $this->database->prepare("SELECT count(*) as count
FROM `".DB_PREFIX."users` du
WHERE du.block='0' AND du.exchange_id>0 ".$where."");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data[0]['count'];
}
public function getExchange($city_id=0,$page=0){
$where = '';
if ($city_id!=0){
$where = 'WHERE AND du.city_id='.$city_id;
}
if ($page!=0){
$page_number=abs(($page-1)*LIMIT);
}else{
$page_number=0;
}
try{
$sth = $this->database->prepare("SELECT du.id as user_id, du.exchange_id, du.balance, du.lastvisit,
e.taxi_name, e.director, e.director_phone, e.active, e.createdate,
co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city, co.currency
FROM `".DB_PREFIX."exchange` e
INNER JOIN ".DB_PREFIX."users du ON e.`id` = du.`exchange_id`
INNER JOIN city_ c ON c.`id_city` = e.`city_id`
INNER JOIN region_ r ON r.`id_region` = c.`id_region`
INNER JOIN country_ co ON co.`id_country` = c.`id_country`
".$where." ORDER BY e.active, e.createdate DESC LIMIT ".$page_number." , ".LIMIT."");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
public function getActiveExchangeCities(){
try{
$sth = $this->database->prepare("SELECT du.city_id,co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city
FROM `".DB_PREFIX."exchange` du
INNER JOIN city_ c ON c.`id_city` = du.`city_id`
INNER JOIN region_ r ON r.`id_region` = c.`id_region`
INNER JOIN country_ co ON co.`id_country` = c.`id_country`
GROUP BY du.`city_id`");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
public function exchange_activate($exchange_id=0,$active='0'){
if($exchange_id==0){
echo '{"fail":"Диспетчерская не выбрана"}';
exit;
}
$rowcount = $this->database->update(DB_PREFIX.'exchange',array(
'active' => $active
),"id={$exchange_id}");
if($rowcount>0){
if(session::get('exchange_id')==$exchange_id){
session::set('exchange_active',$active);
}
if($active==1){
$subject = 'Активирован доступ диспетчерской';
$message = '
Здравствуйте!
Ваша анкета прошла проверку и доступна к работе!
Войдите в
личный кабинет
Приятной работы!
';
}else{
$subject = 'Доступ диспетчерской заблокирован';
$message = '
Здравствуйте!
Ваша анкета не прошла проверку и была заблокированна!
Вход в
личный кабинет по прежнему активен.
Вы можете попробовать обновить данные для повторной проверки. Приятной работы!
';
}
$this->mail->send_eid($exchange_id, $subject, $message);
ajax::success(true);
}else{
echo '{"fail":"Ошибка активации"}';
exit;
}
}
// ---------------------------------------------------------
public function getCitiesNoCoords(){
try{
$sth = $this->database->prepare("SELECT count(*) as count
FROM `city_`
WHERE la=0 AND id_country=2");
$sth->execute();
$data = $sth->fetch(PDO::FETCH_ASSOC);
}catch(PDOException $e){
return $e->getMessage();
}
//var_export($data);exit;
return $data['count'];
}
public function getCitiesYesCoords(){
try{
$sth = $this->database->prepare("SELECT count(*) as count
FROM `city_`
WHERE la>0 AND id_country=2");
$sth->execute();
$data = $sth->fetch(PDO::FETCH_ASSOC);
}catch(PDOException $e){
return $e->getMessage();
}
//var_export($data);exit;
return $data['count'];
}
public function getTarifGroups(){
try{
$sth = $this->database->prepare("SELECT *
FROM `".DB_PREFIX."tarif_groups`
WHERE deleted='0' ORDER BY position");
$sth->execute();
$res = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
return $e->getMessage();
}
//var_export($data);exit;
foreach($res as $k => $v){
$ans[$v['id']] = $v;
}
return $ans;
}
public function saveCityTarif(){
$id = intval($_POST['id']);
$update['active'] = (isset($_POST['active'])&&($_POST['active']=='checked'))?1:0;
$update['min_cost'] = $_POST['min_cost'];
$update['max_cost'] = $_POST['max_cost'];
$update['min_km_free'] = $_POST['min_km_free'];
$update['max_km_free'] = $_POST['max_km_free'];
$update['min_km_cost'] = $_POST['min_km_cost'];
$update['max_km_cost'] = $_POST['max_km_cost'];
$update['min_wait_free'] = $_POST['min_wait_free'];
$update['max_wait_free'] = $_POST['max_wait_free'];
$update['min_wait_cost'] = $_POST['min_wait_cost'];
$update['max_wait_cost'] = $_POST['max_wait_cost'];
$count = $this->database->update(DB_PREFIX.'tarifs',$update,"id=".$id);
if($count>0){
ajax::success(true);
}else{
echo '{"fail":"Ошибка сохранения тарифа!"}';
}
}
public function addCityTarif($city_id=0,$category_id=0){
if($city_id>0&&$category_id>0){
$count = $this->database->update(DB_PREFIX.'tarifs',array(
'deleted' =>'0',
'change_date' =>date("Y-m-d H:i:s")
),"city_id=".$city_id." AND category_id=".$category_id."");
if($count==0){
$insertid = $this->database->insert(DB_PREFIX.'tarifs',array(
'category_id' =>$category_id,
'city_id' =>$city_id
));
if($insertid>0){
return $insertid;
}
}
}
return 0;
}
public function deleteCityTarif($tar_id=0){
if($tar_id>0){
$count = $this->database->update(DB_PREFIX.'tarifs',array(
'deleted' =>'1',
'active' =>'0',
'change_date' =>date("Y-m-d H:i:s")
),"id=".$tar_id."");
if($count>0){
return true;
}
}
return false;
}
public function getCityTarifs($city_id){
$sth = $this->database->prepare("SELECT tg.*
FROM `".DB_PREFIX."tarifs` tg
INNER JOIN `".DB_PREFIX."tarif_groups` tc ON tc.`id` = tg.`category_id`
WHERE tg.deleted='0' AND tg.city_id=".$city_id." ORDER BY tg.`category_id`");
$sth->execute();
$res = $sth->fetchAll(PDO::FETCH_ASSOC);
return $res;
}
public function getCities(){
try{
$sth = $this->database->prepare("SELECT city_id,count(*) as drivers FROM `".DB_PREFIX."users`
WHERE block='0' AND driver_id>0 GROUP BY `city_id`");
$sth->execute();
$res = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach($res as $k => $v){
$drivers[$v['city_id']] = $v['drivers'];
}
$sth = $this->database->prepare("SELECT city_id,count(*) as exchange FROM `".DB_PREFIX."users`
WHERE block='0' AND exchange_id>0 GROUP BY `city_id`");
$sth->execute();
$res = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach($res as $k => $v){
$exchange[$v['city_id']] = $v['exchange'];
}
$sth = $this->database->prepare("SELECT city_id,count(*) as orders FROM `".DB_PREFIX."orders`
GROUP BY `city_id`");
$sth->execute();
$res = $sth->fetchAll(PDO::FETCH_ASSOC);
foreach($res as $k => $v){
$orders[$v['city_id']] = $v['orders'];
}
$sth = $this->database->prepare("SELECT du.city_id,co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city,count(*) as clients
FROM `".DB_PREFIX."users` du
INNER JOIN city_ c ON c.`id_city` = du.`city_id`
INNER JOIN region_ r ON r.`id_region` = c.`id_region`
INNER JOIN country_ co ON co.`id_country` = c.`id_country`
WHERE du.block='0' GROUP BY du.`city_id`");
$sth->execute();
$res = $sth->fetchAll(PDO::FETCH_ASSOC);
$c = $d = $e = $o = 0;
foreach($res as $k => $v){
$v['drivers'] = isset($drivers[$v['city_id']])?$drivers[$v['city_id']]:'0';
$v['exchange'] = isset($exchange[$v['city_id']])?$exchange[$v['city_id']]:'0';
$v['orders'] = isset($orders[$v['city_id']])?$orders[$v['city_id']]:'0';
$c += $v['clients']; $d += $v['drivers']; $e += $v['exchange']; $o += $v['orders'];
$data[] = $v;
}
$cnt['city_id'] = '0';
$cnt['country'] = 'Итого';
$cnt['region'] = '';
$cnt['city'] = '';
$cnt['clients'] = $c;
$cnt['drivers'] = $d;
$cnt['exchange'] = $e;
$cnt['orders'] = $o;
$data[] = $cnt;
}catch(PDOException $e){
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
// ---> НАСТРОЙКИ
public function save_city($city_id=0){
if($city_id==0)return;
$la = $_POST['la'];
$lo = $_POST['lo'];
$zoom = $_POST['zoom'];
$callback = $_POST['callback'];
//$smson =isset($_POST['smson'])?1:0;
//$json = session::get('json');
//$json['events']['smson'] = $smson;
$user_id = session::get('id_city');
$rowcount = $this->database->update('city_',array(
// 'json' =>json_encode($json),
'la' =>$la,
'lo' =>$lo,
'zoom' =>$zoom,
'callback' =>$callback
),"id_city={$city_id}");
if($rowcount>0){
//$json = session::set('json',$json);
ajax::success(true);
}else{
echo '{"fail":"Ошибка сохранения настроек!"}';
exit;
}
}
// <--- НАСТРОЙКИ
public function getCity($city_id=0){
if($city_id==0)return;
try{
$sth = $this->database->prepare("SELECT c.la, c.lo, c.zoom, c.callback,
co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city, co.currency
FROM `city_` c
INNER JOIN region_ r ON r.`id_region` = c.`id_region`
INNER JOIN country_ co ON co.`id_country` = c.`id_country`
WHERE c.id_city=".$city_id."");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data[0];
}
// ---------------------------------------------------------
// ---------------------------------------------------------
public function getDCCs($city_id=0,$page=0,$deleted=0){
$where = '';
if ($city_id!=0){
$where = 'AND du.city_id='.$city_id;
}
if ($page!=0){
$page_number=abs(($page-1)*LIMIT);
}else{
$page_number=0;
}
try{
$sql = "SELECT du.*,co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city
FROM `".DB_PREFIX."dcc` du
INNER JOIN city_ c ON c.`id_city` = du.`city_id`
INNER JOIN region_ r ON r.`id_region` = c.`id_region`
INNER JOIN country_ co ON co.`id_country` = c.`id_country`
WHERE du.block='0' AND du.deleted='".$deleted."' ".$where." ORDER BY du.`city_id` LIMIT ".$page_number." , ".LIMIT."";
//session::set('last_sql',$sql);
$sth = $this->database->prepare($sql);
$sth->execute();
$res = $sth->fetchAll(PDO::FETCH_ASSOC);
$c = $today_calls = $max_ver = 0;
foreach($res as $k => $v){
// $v['drivers'] = isset($drivers[$v['city_id']])?$drivers[$v['city_id']]:'0';
// $v['exchange'] = isset($exchange[$v['city_id']])?$exchange[$v['city_id']]:'0';
// $v['orders'] = isset($orders[$v['city_id']])?$orders[$v['city_id']]:'0';
// $c += $v['clients']; $d += $v['drivers']; $e += $v['exchange']; $o += $v['orders'];
$c++;
$today_calls += $v['today_call'];
if($v['ver']>$max_ver){
$max_ver = $v['ver'];
}
$data[] = $v;
}
$cnt['id'] = '0';
$cnt['country'] = 'Итого';
$cnt['region'] = '';
$cnt['city'] = '';
$cnt['count'] = $c;
$cnt['max_ver'] = $max_ver;
$cnt['today_calls'] = $today_calls;
$data[] = $cnt;
}catch(PDOException $e){
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
public function getApiKeyServers($api_key_id=0){
try{
$sth = $this->database->prepare("SELECT * FROM ".DB_PREFIX."api_keys_servers WHERE api_key_id=".$api_key_id);
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
public function save_apikey_server($api_key_id,$dcc_id,$checked){
$change_perm = false;
if($api_key_id==0||$dcc_id==0)return;
$data['api_key_id'] = $api_key_id;
$data['dcc_id'] = $dcc_id;
//$data['checked'] = $checked;
$rowcount = $this->database->query("DELETE FROM ".DB_PREFIX."api_keys_servers WHERE api_key_id={$api_key_id} AND dcc_id={$dcc_id}");
if($checked==1){
$id = $this->database->insert(DB_PREFIX."api_keys_servers",$data);
}
echo $api_key_id.' '.$dcc_id.' '.$checked;exit;
header('Location:'.URL.'admin/api_key_servers/api_key_id/'+$api_key_id );
}
public function getApiKeys(){
try{
$sth = $this->database->prepare("SELECT ak.*,(SELECT count(id) FROM ".DB_PREFIX."api_keys_access WHERE api_id=ak.id) as access
FROM `".DB_PREFIX."api_keys` ak
WHERE ak.deleted='0'");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
// Создание API ключа
public function apikey_create(){
$key['user_id'] = session::get('id_user');
$key['name'] = 'Новый ключ';
$key['detect'] = '1';
$key['key'] = md5($key['user_id'].time().session::get('login').session::get('lastvisit'));
$key_id = $this->database->insert(DB_PREFIX.'api_keys',$key);
if($key_id>0){
ajax::success(true);
}else{
echo '{"fail":"Ошибка создания ключа."}';
exit;
}
}
// Создание API ключа
public function apikey_activate(){
$key_id = isset($_POST['key_id'])?$_POST['key_id']:0;
$rowcount = 0;
if($key_id>0){
$rowcount = $this->database->update(DB_PREFIX.'api_keys',array(
'active' =>'1'
),"id={$key_id}");
}
if($rowcount>0){
ajax::success(true);
}else{
echo '{"fail":"Ошибка активации ключа."}';
exit;
}
}
// Создание API ключа
public function apikey_deactivate(){
$key_id = isset($_POST['key_id'])?$_POST['key_id']:0;
$rowcount = 0;
if($key_id>0){
$rowcount = $this->database->update(DB_PREFIX.'api_keys',array(
'active' =>'0'
),"id={$key_id}");
}
if($rowcount>0){
ajax::success(true);
}else{
echo '{"fail":"Ошибка деактивации ключа."}';
exit;
}
}
// Создание API ключа
public function apikey_delete(){
$key_id = isset($_POST['key_id'])?$_POST['key_id']:0;
if($key_id>0){
$rowcount = $this->database->update(DB_PREFIX.'api_keys',array(
'deleted' =>'1'
),"id={$key_id}");
}
if($rowcount>0){
ajax::success(true);
}else{
echo '{"fail":"Ошибка удаления ключа."}';
exit;
}
}
// Создание API ключа
public function apikey_save(){
$key_id = isset($_POST['key_id'])?$_POST['key_id']:0;
$name = isset($_POST['name'])?$_POST['name']:'';
$detect = isset($_POST['detect'])?$_POST['detect']:'0';
if($key_id>0){
$rowcount = $this->database->update(DB_PREFIX.'api_keys',array(
'name' =>$name,
'detect' =>$detect
),"id={$key_id}");
}
if($rowcount>0){
ajax::success(true);
}else{
echo '{"fail":"Ошибка обновления ключа."}';
exit;
}
}
// ---> НАСТРОЙКИ
public function save_dcc($dcc_id=0){
if($dcc_id==0)return;
$la = $_POST['la'];
$lo = $_POST['lo'];
$zoom = $_POST['zoom'];
$host = $_POST['host'];
$port = $_POST['port'];
$site = $_POST['site'];
$rowcount = $this->database->update(DB_PREFIX.'dcc',array(
// 'json' =>json_encode($json),
'host' =>$host,
'port' =>$port,
'site' =>$site,
'la' =>$la,
'lo' =>$lo,
'zoom' =>$zoom
),"id={$dcc_id}");
if($rowcount>0){
//$json = session::set('json',$json);
ajax::success(true);
}else{
echo '{"fail":"Ошибка сохранения настроек системы!"}';
exit;
}
}
// <--- НАСТРОЙКИ
public function getDCC($dcc_id=0){
if($dcc_id==0)return;
try{
$sth = $this->database->prepare("SELECT du.*,
co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city, co.currency
FROM `".DB_PREFIX."dcc` du
INNER JOIN city_ c ON c.`id_city` = du.`city_id`
INNER JOIN region_ r ON r.`id_region` = c.`id_region`
INNER JOIN country_ co ON co.`id_country` = c.`id_country`
WHERE du.id=".$dcc_id."");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data[0];
}
public function getActiveDCCCities($deleted=0){
try{
$sth = $this->database->prepare("SELECT du.city_id,co.country_name_ru as country,r.region_name_ru as region,c.city_name_ru as city
FROM `".DB_PREFIX."dcc` du
INNER JOIN city_ c ON c.`id_city` = du.`city_id`
INNER JOIN region_ r ON r.`id_region` = c.`id_region`
INNER JOIN country_ co ON co.`id_country` = c.`id_country`
WHERE du.block='0' AND du.deleted='".$deleted."' GROUP BY du.`city_id`");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
public function getDCCCount($city_id=0,$deleted=0){
$where = '';
if ($city_id!=0){
$where = 'AND du.city_id='.$city_id;
}
try{
$sth = $this->database->prepare("SELECT count(*) as count
FROM `".DB_PREFIX."dcc` du
WHERE du.block='0' AND du.deleted='".$deleted."' ".$where."");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data[0]['count'];
}
public function getCrashCount($version=0){
$where = '';
if ($version>0){
$where = "AND du.app_version_name='".$version."'";
}
try{
$sth = $this->database->prepare("SELECT count(*) as count
FROM `acra_crashes` du
WHERE du.id>0 ".$where."");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data[0]['count'];
}
public function getCrashVersions(){
try{
$sth = $this->database->prepare("SELECT app_version_name,count(*) as count
FROM `acra_crashes` du
GROUP BY app_version_name
");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
public function getCrashes($version,$page){
if ($version>0){
$where = "AND du.app_version_name='".$version."'";
}
if ($page!=0){
$page_number=abs(($page-1)*LIMIT);
}else{
$page_number=0;
}
try{
$sth = $this->database->prepare("SELECT *
FROM `acra_crashes` du
WHERE id>0 ".$where." ORDER BY du.`id` DESC LIMIT ".$page_number." , ".LIMIT."
");
$sth->execute();
$data = $sth->fetchAll(PDO::FETCH_ASSOC);
}catch(PDOException $e){
//echo $e->getMessage();exit;
return $e->getMessage();
}
//var_export($data);exit;
return $data;
}
public function deleteCrashsVersion($version=0){
if ($version>0){
$where = "AND app_version_name='".$version."'";
}
//echo "DELETE FROM `acra_crashes` WHERE `id`>0 ".$where;
//exit();
$count = $this->database->query("DELETE FROM `acra_crashes` WHERE `id`>0 ".$where);
if($count>0){
return true;
}
return false;
}
// ---------------------------------------------------------
public function getLog(){
try{
$sth = $this->database->prepare("SELECT * FROM `logs` ORDER BY id DESC LIMIT 20");
$sth->execute();
$data = $sth->fetchAll();
}catch(PDOException $e){
return $e->getMessage();
}
return $data;
}
public function getWidgetComplexes(){
$sth = $this->database->prepare("SELECT d.*,c.city_name_ru as cName, co.country_name_ru as coName,pt.name as tarif FROM `dcc` d
LEFT OUTER JOIN `city_` c ON (d.city_id=c.id_city)
LEFT OUTER JOIN `country_` co ON (co.id_country=c.id_country)
LEFT OUTER JOIN `pay_type` pt ON (d.pay_type=pt.id)
WHERE d.deleted='0' AND d.gid<>0 AND d.gid<5000 ORDER BY d.`last_update` LIMIT 100");
$sth->execute();
if($sth->rowCount()>0){
$arr = $sth->fetchAll();
$count = 0;
foreach($arr as $k => $v){
$count++;
$arr[$k]['nn']=$count;
$last_update = time() - strtotime($v['last_update']);
if($last_update>300){$arr[$k]['sys']='important';}else{$arr[$k]['sys']='success';}
$last_backup = time() - strtotime($v['last_backup']);
if($last_backup>86400){$arr[$k]['backup']='important';}else{$arr[$k]['backup']='success';}
}
echo json_encode($arr,true);
return;
}
return false;
}
private static function getCurrentEvent($type,$host,$gid=0){
switch($type){
case 1:
return '
Остановить';
case 2:
return '
Запустить';
case 3:
return '
Перезагрузка';
case 4:
return '';
case 7:
return '';
case 8:
return '
Файлы';
case 9:
return '';
case 10:
return '';
default: return "NULL ".$type;
}
}
public function getWidgetSystem_calls(){
$sth = $this->database->prepare('SELECT dc.*,pr.user_type, pr.fio, pr.summ_call as scall, d.taxi_name as tName, c.city_name_ru as cName, co.country_name_ru as coName FROM `dcc_calls` dc
LEFT OUTER JOIN `dcc` d ON (d.gid=dc.gid)
LEFT OUTER JOIN `phone_relations` pr ON (dc.phone=pr.phone)
LEFT OUTER JOIN `city_` c ON (d.city_id=c.id_city)
LEFT OUTER JOIN `country_` co ON (co.id_country=c.id_country)
ORDER BY dc.`id` DESC LIMIT 0 , 30');
$sth->execute();
if($sth->rowCount()>0){
$arr = $sth->fetchAll();
foreach($arr as $k => $value){
if($arr[$k]['filename']==''){
$arr[$k]['drec'] = 'display:none;';
}else{
if(file_exists('/mnt/hdd/doncode_rec/'.$arr[$k]['filename'].'.mp3')){
$arr[$k]['drec'] = '';
}else{
$arr[$k]['drec'] = 'display:none;';
}
}
$arr[$k]['date_time'] = bootstrap::HumanDatePrecise($arr[$k]['date_time']);
switch($arr[$k]['status']){
case 1:
$arr[$k]['status_t'] = 'Принят';
$arr[$k]['color_status'] = 'success';
break;
case 2:
$arr[$k]['status_t'] = 'Пропущен';
$arr[$k]['color_status'] = 'important';
break;
case 3:
$arr[$k]['status_t'] = 'Разговор';
$arr[$k]['color_status'] = 'info';
break;
case 4:
$arr[$k]['status_t'] = 'Звонок';
$arr[$k]['color_status'] = 'warning';
break;
case 5:
$arr[$k]['status_t'] = 'Переадресован';
$arr[$k]['color_status'] = 'inverse';
break;
default:
$arr[$k]['status_t'] = $arr[$k]['status'];
}
switch($arr[$k]['user_type']){
case 1:
$arr[$k]['user_type_t'] = 'Диспетчер';
break;
case 2:
$arr[$k]['user_type_t'] = 'Директор';
break;
case 3:
$arr[$k]['user_type_t'] = 'Водитель';
break;
case 4:
$arr[$k]['user_type_t'] = 'Клиент';
break;
case 5:
$arr[$k]['user_type_t'] = 'Doncode';
break;
default:
$arr[$k]['user_type_t'] = 'Гость';
}
}
echo json_encode($arr,true);
return;
}
return false;
}
public function getWidgetSystem_events(){
$sth = $this->database->prepare('SELECT e.*,d.taxi_name,d.host,d.port,w.name as who, de.label, de.icon, c.city_name_ru,de.name as type,e.type as et FROM `dcc_event` e
LEFT OUTER JOIN `dcc` d ON d.gid=e.gid
LEFT OUTER JOIN `city_` c ON d.city_id=c.id_city
LEFT OUTER JOIN `who` w ON w.wid=e.who
LEFT OUTER JOIN `dcc_event_type` de ON de.id=e.type
ORDER BY e.`create_date` DESC LIMIT 50');
$sth->execute();
if($sth->rowCount()>0){
$arr = $sth->fetchAll();
foreach($arr as $k => $value){
$arr[$k]['create_date'] = bootstrap::HumanDatePrecise($arr[$k]['create_date']);
$arr[$k]['event'] = $this->getCurrentEvent($arr[$k]['et'],$arr[$k]['host'].':'.$arr[$k]['port'],$arr[$k]['gid']);
}
//var_export($arr);exit;
echo json_encode($arr,true);
return;
}
return false;
}
public function getWidgetMobclients(){
$sth = $this->database->prepare('SELECT u.*,n.phone,d.taxi_name,c.city_name_ru FROM `mobile_users` u
LEFT OUTER JOIN `mobile_numbers` n ON u.id=n.user_id
LEFT OUTER JOIN `dcc` d ON d.gid=u.gid
LEFT OUTER JOIN `city_` c ON c.id_city=d.city_id
ORDER BY u.`last_date` DESC LIMIT 20');
$sth->execute();
if($sth->rowCount()>0){
$arr = $sth->fetchAll();
foreach($arr as $k => $value){
$arr[$k]['last_date'] = bootstrap::HumanDatePrecise($arr[$k]['last_date']);
if($arr[$k]['last_date']==0){
$arr[$k]['last_date_'] = 'success';
}else{
$arr[$k]['last_date_'] = 'info';
}
}
echo json_encode($arr,true);
return;
}
return false;
}
public function getWidgetTaxiprog(){
$sth = $this->database->prepare('SELECT * FROM `users` ORDER BY `lastlogin` DESC LIMIT 20');
$sth->execute();
if($sth->rowCount()>0){
$arr = $sth->fetchAll();
foreach($arr as $k => $value){
if($arr[$k]['datereg']=='0000-00-00 00:00:00'){
$arr[$k]['datereg'] = 'не известно';
}else{
$arr[$k]['datereg'] = bootstrap::HumanDatePrecise($arr[$k]['datereg']);
}
$arr[$k]['lastlogin'] = bootstrap::HumanDatePrecise($arr[$k]['lastlogin']);
}
echo json_encode($arr,true);
return;
}
return false;
}
}