743 lines
31 KiB
PHP
743 lines
31 KiB
PHP
<?php
|
||
|
||
/*
|
||
* To change this license header, choose License Headers in Project Properties.
|
||
* To change this template file, choose Tools | Templates
|
||
* and open the template in the editor.
|
||
*/
|
||
|
||
/**
|
||
* Description of Clients_jw
|
||
*
|
||
* @author iren_
|
||
*/
|
||
class Clients_jw {
|
||
|
||
public function get($id) {
|
||
$sql="SELECT * FROM clients_jw WHERE id=$id";
|
||
$rez=mysql_query($sql);
|
||
if(mysql_num_rows($rez))
|
||
{
|
||
$cl = mysql_fetch_assoc($rez);
|
||
foreach($cl as $k => $v)
|
||
{
|
||
if ($k == 'birthday') $v = date('d.m.Y', strtotime ($v));
|
||
$this->$k = html_entity_decode($v);
|
||
}
|
||
} else return false;
|
||
}
|
||
|
||
|
||
|
||
public function del($id) {
|
||
|
||
$sql="DELETE FROM clients_jw WHERE id=$id";
|
||
|
||
$rez=mysql_query($sql);
|
||
|
||
$sql="DELETE FROM user_client_jw_events WHERE client_id=$id";
|
||
|
||
$rez=mysql_query($sql);
|
||
|
||
}
|
||
|
||
|
||
|
||
public function addEdit($post) {
|
||
if (($post['id'] && (!isset($post['phone']) || !$post['phone']))) {
|
||
$sqlPhone = "SELECT phone FROM clients_jw WHERE id = $post[id]";
|
||
$resPhone = mysql_query($sqlPhone);
|
||
$phRow = mysql_fetch_assoc($resPhone);
|
||
$post['phone'] = $phRow['phone'];
|
||
}
|
||
|
||
//$sql = "SELECT users.id, users.fio FROM users WHERE id IN (SELECT DISTINCT CASE WHEN clients_jw.who_work = 0 THEN clients_jw.id_agent ELSE clients_jw.who_work END FROM clients_jw WHERE clients_jw.phone='$post[phone]')";
|
||
|
||
$sql = "select phone, if(who_work = 0, id_agent, who_work) as id, (SELECT fio from users WHERE id = if(clients_jw.who_work = 0, clients_jw.id_agent, clients_jw.who_work)) as fio from clients_jw WHERE clients_jw.phone='$post[phone]'";
|
||
|
||
if ($post['id']) {
|
||
$sql = $sql." and clients_jw.id != $post[id]";
|
||
}
|
||
|
||
if ($post['confirm'] || $post['confirm'] == 0) {
|
||
if($post['who_work']==$_SESSION['id']) {
|
||
$post['confirm'] = 1;
|
||
}
|
||
}
|
||
//echo $sql;
|
||
// $workType = 0;
|
||
|
||
//if (isset($post['work_type']) && $post['work_type'] > 0) {
|
||
$workType = $post['work_type'];
|
||
//}
|
||
|
||
$rez = mysql_query($sql);
|
||
$count = mysql_num_rows($rez);
|
||
if ($count > 0) {
|
||
$agencyId = null;
|
||
if ($_SESSION['agency']) {
|
||
$agencyId = $_SESSION['id'];
|
||
} else {
|
||
if ($_SESSION['manager']) {
|
||
$user = new User;
|
||
$user->checkPermissions();
|
||
$agencyId = $user->id_manager;
|
||
} else {
|
||
$user = new User;
|
||
$user->checkPermissions();
|
||
if ($user->id_manager > 0) {
|
||
$agency = new User;
|
||
$agency->get($user->id_manager);
|
||
if($agency->id_manager) {
|
||
$agency->get($agency->id_manager);
|
||
}
|
||
$agencyId = $agency->id;
|
||
}
|
||
}
|
||
}
|
||
|
||
if ($agencyId != null) {
|
||
$idsFromAgency = array();
|
||
$idsFromAgency[] = $agencyId;
|
||
$agency = new User();
|
||
|
||
$managers = $agency->getAllManagers($agencyId);
|
||
if($managers) {
|
||
foreach ($managers as $i => $manager) {
|
||
$idsFromAgency[] = $manager['id'];
|
||
}
|
||
}
|
||
$agents = $agency->getAllAgents($agencyId);
|
||
if($agents) {
|
||
foreach ($agents as $i => $agent) {
|
||
$idsFromAgency[] = $agent['id'];
|
||
}
|
||
}
|
||
|
||
// список пользователей, у которых есть похожие клиенты
|
||
while ($user = mysql_fetch_assoc($rez)) {
|
||
if (in_array($user['id'], $idsFromAgency)) {
|
||
return "Клиент с указанной электронной почтой или телефоном уже привязан к агенту $user[fio]!";
|
||
}
|
||
|
||
}
|
||
}
|
||
// прошли проверку - добавляем
|
||
if ($post['id']) {
|
||
|
||
$sql = "UPDATE clients_jw SET fio='$post[fio]', email='".trim($post['email'])."', phone='$post[phone]', `type`='$post[type]', work_type='$workType', opis='$post[opis]', status='$post[status]', budget='$post[budget]', who_work='$post[who_work]', confirm='$post[confirm]', `role`='$post[role]', `objects`='$post[objects]', `source`='$post[source]', `birthday`='$post[birthday]', `stage`='$post[stage]', `hot`='$post[hot]', `priority`='$post[priortiy]' WHERE id=$post[id]";
|
||
if($post['who_work'] != $_SESSION['id'] && $post['confirm'] == 0){
|
||
//Добавляем событие передачи
|
||
$sql_conf = "INSERT INTO `events_clients_jw` (`user_id`, `client_id`, `from_id`, `event`) VALUES (".$_SESSION['id'].", ".$post['id'].", ".$post['who_work'].", 'transmitted')";
|
||
mysql_query($sql_conf);
|
||
}
|
||
} else {
|
||
|
||
$sql = "INSERT INTO clients_jw(`fio`, `email`, `phone`, `type`, `work_type`, `opis`, `id_agent`, `date_add`, `status`, `budget`, `who_work`, `confirm`, `role`, `objects`, `source`, `birthday`, `stage`, `hot`, `priority`) VALUES('$post[fio]', '".trim($post['email'])."' ,'$post[phone]' ,'$post[type]', '$workType', '$post[opis]', '$_SESSION[id]', NOW(), '$post[status]', '$post[budget]', '$post[who_work]', '$post[confirm]', '$post[role]','$post[objects]', '$post[source]', '$post[birthday]', '$post[stage]', '$post[hot]', '$post[hot]', '$post[priority]')";
|
||
|
||
}
|
||
mysql_query($sql);
|
||
return;
|
||
} else {
|
||
if ($post['id']) {
|
||
|
||
$sql = "UPDATE clients_jw SET fio='$post[fio]', email='".trim($post['email'])."', phone='$post[phone]', type='$post[type]', work_type='$workType', opis='$post[opis]', status='$post[status]', budget='$post[budget]', who_work='$post[who_work]', confirm='$post[confirm]', `role`='$post[role]', `objects`='$post[objects]', `source`='$post[source]', `birthday`='$post[birthday]', `stage`='$post[stage]', `hot`='$post[hot]', `priority`='$post[priortiy]' WHERE id=$post[id]";
|
||
if($post['who_work'] != $_SESSION['id'] && $post['confirm'] == 0){
|
||
//Добавляем событие передачи
|
||
$sql_conf = "INSERT INTO `events_clients_jw` (`user_id`, `client_id`, `from_id`, `event`) VALUES (".$_SESSION['id'].", ".$post['id'].", ".$post['who_work'].", 'transmitted')";
|
||
mysql_query($sql_conf);
|
||
}
|
||
} else {
|
||
|
||
$sql = "INSERT INTO clients_jw(`fio`, `email`, `phone`, `type`, `work_type`, `opis`, `id_agent`, `date_add`, `status`, `budget`, `who_work`, `confirm`, `role`, `objects`, `source`, `birthday`, `stage`, `hot`, `priority`) VALUES('$post[fio]', '".trim($post['email'])."' ,'$post[phone]' ,'$post[type]', '$workType', '$post[opis]', '$_SESSION[id]', NOW(), '$post[status]', '$post[budget]', '$post[who_work]', '$post[confirm]', '$post[role]','$post[objects]', '$post[source]', '$post[birthday]', '$post[stage]', '$post[hot]', '$post[priority]')";
|
||
|
||
}
|
||
mysql_query($sql);
|
||
return;
|
||
}
|
||
}
|
||
|
||
public function delReason($post){
|
||
|
||
$sql = "UPDATE clients_jw SET reason='$post[reason]', who_delete = '$_SESSION[id]', deleted=1 WHERE id=$post[id_del_client]";
|
||
if($post[summa] && $post[luck]){
|
||
$sql = "UPDATE clients_jw SET reason='$post[reason]', who_delete = '$_SESSION[id]', deleted=1, summa='$post[summa]', confirm='$post[luck]' WHERE id=$post[id_del_client]";
|
||
}
|
||
mysql_query($sql);
|
||
$sql = "INSERT INTO `events_clients_jw` (user_id, client_id, from_id, event, `read`) VALUES ('".$_SESSION['id']."', '".$post['id_del_client']."', '".$_SESSION['id']."', 'delete', '1')";
|
||
mysql_query($sql);
|
||
}
|
||
|
||
public function restore($id){
|
||
|
||
$sql = "UPDATE clients_jw SET reason='', confirm = 1, who_delete=NULL, deleted=0 WHERE id=$id";
|
||
|
||
mysql_query($sql);
|
||
|
||
}
|
||
|
||
public function getMyClients($id_agent) {
|
||
$bd_usl = "";
|
||
if($_GET['new']) { $bd_usl = " AND confirm=0 AND status <>2 AND deleted<>1"; }
|
||
if($_GET['work']) { $bd_usl = " AND confirm=1 AND status <>2 AND deleted<>1"; }
|
||
//if($_GET['id_agent']) { $bd_usl = " AND confirm=1 AND status <>2 AND deleted<>1"; }
|
||
//if($_GET['id_manager']) { $bd_usl = " AND confirm=1 AND status <>2 AND deleted<>1"; }
|
||
if($_GET['end']) { $bd_usl = " AND status=2 AND deleted<>1"; }
|
||
|
||
if (isset($_GET['workType'])) {
|
||
$bd_usl.=" AND work_type = " . $_GET['workType'];
|
||
}
|
||
|
||
$bd_who_work = "who_work = $id_agent ";
|
||
|
||
if ($_GET['new']) {
|
||
$bd_who_work = " (who_work = $id_agent or (id_agent = $id_agent and who_work > 0)) ";
|
||
}
|
||
|
||
$result = array();
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE $bd_who_work $bd_usl";
|
||
$result['vsego'] = $vsego = mysql_result(mysql_query($sql_count),0);
|
||
$sql = "SELECT *, DATE_FORMAT(date_add, '%d.%m.%Y') AS date_add
|
||
FROM clients_jw WHERE $bd_who_work AND deleted<>1 $bd_usl ORDER BY clients_jw.id DESC";
|
||
if (isset($_GET['dev'])) {
|
||
echo $sql;
|
||
}
|
||
$rez = mysql_query($sql);
|
||
while($cl = mysql_fetch_assoc($rez))
|
||
{ $result['clients'][] = $cl; }
|
||
return $result;
|
||
}
|
||
|
||
public function getClients($id_agent) { // используется в footer.php
|
||
$result = array();
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE who_work = $id_agent AND confirm=1 AND deleted<>1";
|
||
$result['vsego'] = $vsego = mysql_result(mysql_query($sql_count),0);
|
||
$sql = "SELECT *, DATE_FORMAT(date_add, '%d.%m.%Y') AS date_add
|
||
FROM clients_jw WHERE who_work = $id_agent AND confirm=1 AND deleted<>1 ORDER BY clients_jw.id DESC";
|
||
$rez = mysql_query($sql);
|
||
while($cl = mysql_fetch_assoc($rez))
|
||
{
|
||
$result['clients'][] = $cl;
|
||
}
|
||
return $result;
|
||
}
|
||
|
||
public function getCountClients($deleted = false) {
|
||
|
||
$mmid[] = "id_agent = $_SESSION[id]";
|
||
|
||
$rez = mysql_query("SELECT id FROM users WHERE id_manager=$_SESSION[id]");
|
||
|
||
while($mm = mysql_fetch_row($rez))
|
||
|
||
{
|
||
|
||
$mmid[] = "id_agent = ".$mm[0];
|
||
|
||
$rez2 = mysql_query("SELECT id FROM users WHERE id_manager=$mm[0]");
|
||
|
||
while($mm2 = mysql_fetch_row($rez2))
|
||
|
||
{
|
||
|
||
$mmid[] = "id_agent = ".$mm2[0];
|
||
|
||
}
|
||
|
||
}
|
||
|
||
if($deleted) $bd_usl_managers = "deleted=1"; else $bd_usl_managers = "1";
|
||
|
||
$bd_usl_managers .= " AND (".implode(" OR ",$mmid).")";
|
||
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE $bd_usl_managers";
|
||
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
|
||
}
|
||
|
||
|
||
|
||
public function getCountClientsWhoWork($id_user) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE who_work=$id_user AND confirm=1 AND deleted<>1";
|
||
$rez = mysql_result(mysql_query($sql_count),0);
|
||
if($rez > 0) {
|
||
$counter = "<b class=\"jw__counter who_work\">".$rez."</b>";
|
||
}
|
||
else {
|
||
$counter = "";
|
||
}
|
||
return $counter;
|
||
}
|
||
|
||
public function getCountNewClients($id_user) {
|
||
//$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE (who_work=$id_user or (id_agent=$id_user and who_work > 0)) AND confirm=0 AND deleted<>1";
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE who_work=$id_user AND confirm=0 AND deleted<>1";
|
||
$rez = mysql_result(mysql_query($sql_count),0);
|
||
if($rez > 0) {
|
||
$counter = "<b class=\"jw__counter new\">".$rez."</b>";
|
||
}
|
||
else {
|
||
$counter = "";
|
||
}
|
||
return $counter;
|
||
}
|
||
|
||
public function getCountWorkTypeClientsNumber($id_user, $workType) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE (who_work=$id_user or (id_agent=$id_user and who_work = 0)) AND deleted<>1 AND work_type=$workType";
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
}
|
||
|
||
public function getCountNewClientsNumber($id_user, $workType) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE (who_work=$id_user or (id_agent=$id_user and who_work > 0)) AND confirm=0 AND deleted<>1 AND work_type=$workType";
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
}
|
||
|
||
public function getCountEndClientsNumber($id_user, $workType) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE (who_work=$id_user or (id_agent=$id_user and who_work > 0)) AND status=2 AND deleted<>1 AND work_type=$workType";
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
}
|
||
|
||
public function getCountWorkClientsNumber($id_user, $workType) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE who_work=$id_user AND and confirm= 1 AND status <> 2 AND deleted<>1 AND work_type=$workType";
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
}
|
||
|
||
public function getCountEndClients($id_user) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE who_work=$id_user AND status=2 AND deleted<>1";
|
||
$rez = mysql_result(mysql_query($sql_count),0);
|
||
if($rez > 0) {
|
||
$counter = "<b class=\"jw__counter end\">".$rez."</b>";
|
||
}
|
||
else {
|
||
$counter = "";
|
||
}
|
||
return $counter;
|
||
}
|
||
|
||
public function getCountWorkClients($id_user) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE who_work=$id_user AND confirm=1 AND deleted<>1";
|
||
$rez = mysql_result(mysql_query($sql_count),0);
|
||
return $rez;
|
||
}
|
||
|
||
public function getAllClients() {
|
||
|
||
$result = array();
|
||
$bd_usl_managers = "";
|
||
$bd_usl = "";
|
||
if (!$_GET['all'] || !$_POST['all']) {
|
||
// $mmid[] = "id_agent = $_SESSION[id]";
|
||
$mmid[] = "who_work = $_SESSION[id]";
|
||
if ($_GET['deleted']) {
|
||
|
||
$bd_usl = "AND deleted=1";
|
||
|
||
// если ищем по удаленным и под менеджером - пропускаем этот код - здесь идет добавление по агентству
|
||
if (!($_GET['deleted'] && $_SESSION['manager'])) {
|
||
$rez1 = mysql_query("SELECT id_manager FROM users WHERE id=$_SESSION[id]");
|
||
while ($mm1 = mysql_fetch_row($rez1)) {
|
||
$mmid[] = "id_agent = " . $mm1[0];
|
||
$rez01 = mysql_query("SELECT id_manager FROM users WHERE id=$mm1[0]");
|
||
while ($mm01 = mysql_fetch_row($rez01)) {
|
||
$mmid[] = "id_agent = " . $mm01[0];
|
||
}
|
||
$rez02 = mysql_query("SELECT id FROM users WHERE id_manager=$mm1[0] and id_manager<>0");
|
||
while ($mm02 = mysql_fetch_row($rez02)) {
|
||
$mmid[] = "id_agent = " . $mm02[0];
|
||
}
|
||
}
|
||
}
|
||
$rez2 = mysql_query("SELECT id FROM users WHERE id_manager=$_SESSION[id]");
|
||
while ($mm2 = mysql_fetch_row($rez2)) {
|
||
$mmid[] = "id_agent = " . $mm2[0];
|
||
$rez03 = mysql_query("SELECT id FROM users WHERE id_manager=$mm2[0]");
|
||
while ($mm03 = mysql_fetch_row($rez03)) {
|
||
$mmid[] = "id_agent = " . $mm03[0];
|
||
}
|
||
}
|
||
}
|
||
|
||
$rez3 = mysql_query("SELECT id FROM users WHERE id_manager=$_SESSION[id] AND manager=1");
|
||
while ($mm = mysql_fetch_row($rez3)) {
|
||
$mmid[] = "id_agent = " . $mm[0];
|
||
$rez04 = mysql_query("SELECT id FROM users WHERE id_manager=$mm[0]");
|
||
while ($mm2 = mysql_fetch_row($rez04)) {
|
||
$mmid[] = "id_agent = " . $mm2[0];
|
||
}
|
||
}
|
||
$bd_usl_managers = " AND (".implode(" OR ",$mmid).")";
|
||
} else {
|
||
// находим ИД агентства и по нему ищем всех свободных клиентов
|
||
$agencyId = -1;
|
||
if ($_SESSION['agency']) {
|
||
$agencyId = $_SESSION['id'];
|
||
} else {
|
||
if ($_SESSION['manager']) {
|
||
$user = new User;
|
||
$user->checkPermissions();
|
||
$agencyId = $user->id_manager;
|
||
} else {
|
||
$user = new User;
|
||
$user->checkPermissions();
|
||
if ($user->id_manager > 0) {
|
||
$agency = new User;
|
||
$agency->get($user->id_manager);
|
||
if($agency->id_manager) {
|
||
$agency->get($agency->id_manager);
|
||
}
|
||
$agencyId = $agency->id;
|
||
}
|
||
}
|
||
}
|
||
|
||
$bd_usl .= "AND deleted=0 AND who_work=0 AND id_agent in
|
||
(SELECT id FROM `users` WHERE id=$agencyId or id_manager=$agencyId or id_manager in (select id from users where id_manager=$agencyId))";
|
||
}
|
||
|
||
$get = clearInputData($_GET);
|
||
$post = clearInputData($_POST);
|
||
if (isset($get['workType'])) {
|
||
$bd_usl.=" AND work_type = " .$get['workType'];
|
||
}
|
||
|
||
if($get['search'])
|
||
{
|
||
$bd_usl.=" AND (fio LIKE '%$get[search]%' OR phone LIKE '%$get[search]%' OR email LIKE '%$get[search]%')";
|
||
$result['str_url_add'] = "search=".$get['search'];
|
||
}
|
||
if($post['search'])
|
||
{
|
||
$_SESSION['client_search'] = $post['search'];
|
||
$bd_usl.=" AND (fio LIKE '%$post[search]%' OR phone LIKE '%$post[search]%' OR email LIKE '%$post[search]%')";
|
||
$result['str_url_add'] = "search=".$post['search'];
|
||
} else {
|
||
unset($_SESSION['client_search']);
|
||
}
|
||
|
||
if($post['period']){
|
||
$arrPeriod = ['today' => '-0 day', 'week' => '-6 day', 'month' => '-30 day', 'quarter' => '-120 day', 'year' => '-365'];
|
||
$days = date('Y-m-d', strtotime($arrPeriod[$post['period']]));
|
||
$bd_usl.= " AND `date_add` > '{$days}'";
|
||
$_SESSION['client_period'] = $post['period'];
|
||
} else {
|
||
unset($_SESSION['client_period']);
|
||
}
|
||
$bd_stage = "";
|
||
if($post['filter_stage_work']){
|
||
$bd_stage = " and deleted <> '1' and confirm = 1";
|
||
|
||
$_SESSION['filter_stage_work'] = 1;
|
||
} else {
|
||
unset($_SESSION['filter_stage_work']);
|
||
}
|
||
if($post['filter_stage_close']){
|
||
|
||
$bd_stage = " and deleted = '1' AND confirm <> '10'";
|
||
|
||
$_SESSION['filter_stage_close'] = 1;
|
||
} else {
|
||
unset($_SESSION['filter_stage_close']);
|
||
}
|
||
if($post['filter_stage_hit']){
|
||
|
||
$bd_stage = " AND deleted = '1' AND confirm = 10";
|
||
|
||
$_SESSION['filter_stage_hit'] = 1;
|
||
} else {
|
||
unset($_SESSION['filter_stage_hit']);
|
||
}
|
||
/* if($bd_stage != ""){
|
||
$bd_stage = " AND".$bd_stage.")";
|
||
}*/
|
||
if($post['filter_stage_hot']){
|
||
if($post['filter_stage_work']){
|
||
$bd_usl.= " or `hot` = 1";
|
||
} else {
|
||
$bd_usl.= " AND `hot` = 1";
|
||
}
|
||
$_SESSION['filter_stage_hot'] = 1;
|
||
} else {
|
||
unset($_SESSION['filter_stage_hot']);
|
||
}
|
||
if($post['filter_emp']){
|
||
$empwho = array();
|
||
$empArr = json_decode(html_entity_decode($post['filter_emp']), ENT_QUOTES);
|
||
foreach($empArr as $empId){
|
||
//$empwho[] = "id_agent = $empId";
|
||
$empwho[] = "who_work = $empId";
|
||
}
|
||
$bd_usl_managers = " AND (".implode(" OR ",$empwho).")";
|
||
$_SESSION['filter_emp'] = $post['filter_emp'];
|
||
} else {
|
||
unset($_SESSION['filter_emp']);
|
||
}
|
||
if($post['filter_client_type']){
|
||
$typesArr = json_decode(html_entity_decode($post['filter_client_type']), ENT_QUOTES);
|
||
$typeArr = array();
|
||
foreach($typesArr as $typeCl){
|
||
$typeArr[] = "work_type like '%"{$typeCl}"%'";
|
||
}
|
||
$bd_usl .= " AND (".implode(" OR ",$typeArr).")";
|
||
$_SESSION['filter_client_type'] = $post['filter_client_type'];
|
||
} else {
|
||
unset($_SESSION['filter_client_type']);
|
||
}
|
||
if($post['filter_client_objects_type']){
|
||
$typesArr = json_decode(html_entity_decode($post['filter_client_objects_type']), ENT_QUOTES);
|
||
$typeArr = array();
|
||
foreach($typesArr as $typeCl){
|
||
$typeArr[] = "`type` like '%"{$typeCl}"%'";
|
||
}
|
||
$bd_usl .= " AND (".implode(" OR ",$typeArr).")";
|
||
$_SESSION['filter_client_objects_type'] = $post['filter_client_objects_type'];
|
||
} else {
|
||
unset($_SESSION['filter_client_objects_type']);
|
||
}
|
||
if($post['filter_source']){
|
||
$sourcesArr = json_decode(html_entity_decode($post['filter_source']), ENT_QUOTES);
|
||
$sourceArr = array();
|
||
foreach($sourcesArr as $sourceCl){
|
||
$sourceArr[] = "`source` = '{$sourceCl}'";
|
||
}
|
||
$bd_usl .= " AND (".implode(" OR ",$sourceArr).")";
|
||
$_SESSION['filter_source'] = $post['filter_source'];
|
||
} else {
|
||
unset($_SESSION['filter_source']);
|
||
}
|
||
if($post['filter_client_rol']){
|
||
$rolesArr = json_decode(html_entity_decode($post['filter_client_rol']), ENT_QUOTES);
|
||
$sroleArr = array();
|
||
foreach($rolesArr as $roleCl){
|
||
$roleArr[] = "`role` like '%"{$roleCl}"%'";
|
||
}
|
||
$bd_usl .= " AND (".implode(" OR ",$roleArr).")";
|
||
$_SESSION['filter_client_rol'] = $post['filter_client_rol'];
|
||
} else {
|
||
unset($_SESSION['filter_client_rol']);
|
||
}
|
||
|
||
if($post['filter_etap']){
|
||
$etapsArr = json_decode(html_entity_decode($post['filter_etap']), ENT_QUOTES);
|
||
$etapArr = array();
|
||
foreach($etapsArr as $etapCl){
|
||
$etapArr[] = "`stage` = '{$etapCl}'";
|
||
}
|
||
$bd_usl .= " AND (".implode(" OR ",$etapArr).") and deleted <> '1'";
|
||
$_SESSION['filter_etap'] = $post['filter_etap'];
|
||
} else {
|
||
unset($_SESSION['filter_etap']);
|
||
}
|
||
if($post['filter_work_ahency']){
|
||
//$bd_usl .= " AND `who_work` = 0";
|
||
// находим ИД агентства и по нему ищем всех свободных клиентов
|
||
$bd_usl_managers = '';
|
||
$agencyId = -1;
|
||
if ($_SESSION['agency']) {
|
||
$agencyId = $_SESSION['id'];
|
||
} else {
|
||
if ($_SESSION['manager']) {
|
||
$user = new User;
|
||
$user->checkPermissions();
|
||
$agencyId = $user->id_manager;
|
||
} else {
|
||
$user = new User;
|
||
$user->checkPermissions();
|
||
if ($user->id_manager > 0) {
|
||
$agency = new User;
|
||
$agency->get($user->id_manager);
|
||
if($agency->id_manager) {
|
||
$agency->get($agency->id_manager);
|
||
}
|
||
$agencyId = $agency->id;
|
||
}
|
||
}
|
||
}
|
||
|
||
$bd_usl = "AND deleted=0 AND who_work=0 AND id_agent in
|
||
(SELECT id FROM `users` WHERE id=$agencyId or id_manager=$agencyId or id_manager in (select id from users where id_manager=$agencyId))";
|
||
$_SESSION['filter_work_ahency'] = $post['filter_work_ahency'];
|
||
} else {
|
||
unset($_SESSION['filter_work_ahency']);
|
||
}
|
||
if($post['filter_confirm']){
|
||
$bd_usl .= " AND (`who_work` = ".$_SESSION['id']." OR `id_agent` = ".$_SESSION['id'].") AND `confirm` = 0";
|
||
$_SESSION['filter_confirm'] = $post['filter_confirm'];
|
||
} else {
|
||
unset($_SESSION['filter_confirm']);
|
||
}
|
||
if($post['order']){
|
||
$bd_usl .= " AND (SELECT count(id) FROM user_client_jw_events WHERE user_id = $_SESSION[id] and calendar_view = 0
|
||
and schedule_date is not null and client_id=clients_jw.id and DATE(schedule_date) <= '".date("Y-m-d")."') > 0";
|
||
$_SESSION['order'] = 1;
|
||
} else {
|
||
unset($_SESSION['order']);
|
||
}
|
||
$one_page_clients = 10;
|
||
|
||
$limit = ' limit '.$one_page_clients;
|
||
if($post['page'] && $post['page'] > 1){
|
||
$page = $post['page'];
|
||
|
||
} else {
|
||
$page = 1;
|
||
}
|
||
|
||
if($post['kanban']){
|
||
$one_page_clients = 4;
|
||
$page = $post['kanban_page'];
|
||
}
|
||
|
||
$limit = ' limit '.(($page-1)*$one_page_clients).', '.$one_page_clients;
|
||
if($post['kanban']) {
|
||
//$limit = '';
|
||
$_SESSION['kanban']=1;
|
||
} else {
|
||
unset($_SESSION['kanban']);
|
||
}
|
||
$bd_funnel = '';
|
||
if($post['funnel_id']){
|
||
$bd_funnel = " AND funnel_id = ".$post['funnel_id'];
|
||
}
|
||
if($post['kanban']){
|
||
$mounthArr = ["января", "февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
|
||
for($j = 1; $j <= 7; $j++){
|
||
if($j == 8){
|
||
$sql = "SELECT *, DATE_FORMAT(date_add, '%d.%m.%Y') AS date_add
|
||
FROM clients_jw WHERE 1 AND deleted = '1'
|
||
$bd_funnel $bd_usl $bd_stage
|
||
ORDER BY turn, turntime, clients_jw.date_add desc".$limit;
|
||
|
||
} else {
|
||
$sql = "SELECT *, DATE_FORMAT(date_add, '%d.%m.%Y') AS date_add
|
||
FROM clients_jw WHERE 1 AND stage = $j AND deleted <> '1'
|
||
$bd_funnel $bd_usl $bd_stage
|
||
ORDER BY turn, turntime desc, clients_jw.date_add desc".$limit;
|
||
|
||
}
|
||
$rez = mysql_query($sql);
|
||
while($client = mysql_fetch_assoc($rez))
|
||
{
|
||
$data_add = date('d', strtotime($client['date_add']));
|
||
$mounth = $mounthArr[((int)date('m', strtotime($client['date_add'])) - 1)];
|
||
$data_add .= ' '.$mounth.' '.date('Y', strtotime($client['date_add']));
|
||
$client['add_date'] = $data_add;
|
||
|
||
$events = "SELECT count(id) as res FROM user_client_jw_events WHERE user_id = $_SESSION[id] and calendar_view = 0
|
||
and schedule_date is not null and client_id=".$client['id']." and DATE(schedule_date) <= '".date("Y-m-d")."'";
|
||
$phone = $client['phone'];
|
||
if (strpos($phone, '+7') !== false) {
|
||
$phone = substr($phone, 0, 2)."(".substr($phone, 2, 3).")".substr($phone, 5, 3)."-".substr($phone, 8, 2)."-".substr($phone, 10, 2);
|
||
}
|
||
$client['phone'] = $phone;
|
||
$q_events = mysql_query($events);
|
||
$events_res = (int)mysql_fetch_assoc($q_events)['res'];
|
||
$client['events_res'] = $events_res;
|
||
$result['clients'][$j][] = $client;
|
||
}
|
||
// echo $sql;
|
||
}
|
||
//echo $sql;
|
||
} else {
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE 1 $bd_usl";
|
||
$result['vsego'] = $vsego = mysql_result(mysql_query($sql_count),0);
|
||
// echo $post['page'];
|
||
|
||
$sql = "SELECT id
|
||
FROM clients_jw WHERE 1
|
||
$bd_funnel $bd_usl $bd_stage";
|
||
$rez = mysql_query($sql);
|
||
$total = mysql_num_rows($rez);
|
||
|
||
$all_pages = ceil($total/$one_page_clients);
|
||
|
||
$sql = "SELECT *, DATE_FORMAT(date_add, '%d.%m.%Y') AS date_add
|
||
FROM clients_jw WHERE 1
|
||
$bd_funnel $bd_usl $bd_stage
|
||
ORDER BY clients_jw.date_add desc".$limit;
|
||
//echo $sql;
|
||
if ($_GET['dev']) { echo $sql;}
|
||
|
||
$rez = mysql_query($sql);
|
||
|
||
while($cl = mysql_fetch_assoc($rez))
|
||
{
|
||
$result['clients'][] = $cl;
|
||
}
|
||
$result['all_pages'] = $all_pages;
|
||
}
|
||
return $result;
|
||
}
|
||
|
||
public function getCountAllClients() {
|
||
|
||
// находим ИД агентства и по нему ищем всех свободных клиентов
|
||
$agencyId = -1;
|
||
if ($_SESSION['agency']) {
|
||
$agencyId = $_SESSION['id'];
|
||
} else {
|
||
if ($_SESSION['manager']) {
|
||
$user = new User;
|
||
$user->checkPermissions();
|
||
$agencyId = $user->id_manager;
|
||
} else {
|
||
$user = new User;
|
||
$user->checkPermissions();
|
||
if ($user->id_manager > 0) {
|
||
$agency = new User;
|
||
$agency->get($user->id_manager);
|
||
if($agency->id_manager) {
|
||
$agency->get($agency->id_manager);
|
||
}
|
||
$agencyId = $agency->id;
|
||
}
|
||
}
|
||
}
|
||
|
||
$bd_usl = " deleted=0 AND who_work=0 AND id_agent in
|
||
(SELECT id FROM `users` WHERE id=$agencyId or id_manager=$agencyId or id_manager in (select id from users where id_manager=$agencyId))";
|
||
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE $bd_usl";
|
||
$vsego = mysql_result(mysql_query($sql_count),0);
|
||
if($vsego > 0) {
|
||
$counter = "<b class=\"jw__counter all\">".$vsego."</b>";
|
||
}
|
||
else {
|
||
$counter = "";
|
||
}
|
||
return $counter;
|
||
}
|
||
|
||
public function getCountAllClientsNumber($workType) {
|
||
|
||
// находим ИД агентства и по нему ищем всех свободных клиентов
|
||
$agencyId = -1;
|
||
if ($_SESSION['agency']) {
|
||
$agencyId = $_SESSION['id'];
|
||
} else {
|
||
if ($_SESSION['manager']) {
|
||
$user = new User;
|
||
$user->checkPermissions();
|
||
$agencyId = $user->id_manager;
|
||
} else {
|
||
$user = new User;
|
||
$user->checkPermissions();
|
||
if ($user->id_manager > 0) {
|
||
$agency = new User;
|
||
$agency->get($user->id_manager);
|
||
if($agency->id_manager) {
|
||
$agency->get($agency->id_manager);
|
||
}
|
||
$agencyId = $agency->id;
|
||
}
|
||
}
|
||
}
|
||
|
||
$bd_usl = " deleted=0 AND who_work=0 AND work_type = $workType AND id_agent in
|
||
(SELECT id FROM `users` WHERE id=$agencyId or id_manager=$agencyId or id_manager in (select id from users where id_manager=$agencyId))";
|
||
|
||
$sql_count = "SELECT COUNT(*) FROM clients_jw WHERE $bd_usl";
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
}
|
||
}
|