5622 lines
280 KiB
PHP
5622 lines
280 KiB
PHP
<?php
|
||
|
||
class Clients {
|
||
|
||
public $activities;
|
||
public $errors = [];
|
||
private $db = null;
|
||
private $steps = array(
|
||
0 => array('id'=>1, 'name'=>'Новый', 'title'=>'Новый клиент', 'classF' => 'stage-new'),
|
||
1 => array('id'=>2, 'name'=>'В работе', 'title'=>'В работе', 'classF' => 'stage-work'),
|
||
2 => array('id'=>3, 'name'=>'Презентация', 'title'=>'Презентация', 'classF' => 'stage-offer'),
|
||
3 => array('id'=>4, 'name'=>'Показ', 'title'=>'Показ', 'classF' => 'stage-showing'),
|
||
4 => array('id'=>5, 'name'=>'Бронь', 'title'=>'Бронь', 'classF' => 'stage-reservation'),
|
||
5 => array('id'=>6, 'name'=>'Подаем на ипотеку', 'title'=>'Подаем на ипотеку', 'classF' => 'stage-meet'),
|
||
6 => array('id'=>7, 'name'=>'Сделка', 'title'=>'Сделка', 'classF' => 'stage-deal'),
|
||
7 => array('id'=>8, 'name'=>'Закрыт', 'title'=>'Клиент закрыт', 'classF' => 'stage-end'),
|
||
);
|
||
private $params_search = [];
|
||
|
||
public function __construct($db = null){
|
||
|
||
if($db){
|
||
$this->db = $db;
|
||
} else {
|
||
$pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
$this->db = $pdo;
|
||
}
|
||
|
||
|
||
}
|
||
|
||
public function set_params_search($params){
|
||
$this->params_search = $params;
|
||
}
|
||
|
||
public function get($id)
|
||
{
|
||
$this->errors = [];
|
||
$sql = "SELECT `clients`.*,
|
||
`credit`.`bancks_credit`,
|
||
`credit`.`summa_credit`,
|
||
`credit`.`komissiya_credit`,
|
||
`credit`.`cel_credit`,
|
||
`credit`.`age_credit`,
|
||
`credit`.`propiska_credit`,
|
||
`credit`.`nagruzka_credit`,
|
||
`credit`.`dohod_credit`,
|
||
`credit`.`dava_ndfl_credit`,
|
||
`credit`.`spravka_credit`,
|
||
`credit`.`phone_credit`,
|
||
`credit`.`podachi_credit`,
|
||
`credit`.`not_own_credit`,
|
||
`credit`.`yes_deduction_credit`,
|
||
`credit`.`overdue_credit`,
|
||
`credit`.`mfo_credit`,
|
||
`credit`.`kvartira_credit`,
|
||
`credit`.`dom_credit`,
|
||
`credit`.`uchastok_credit`,
|
||
`credit`.`car_credit`,
|
||
`credit`.`kol_nagruzka_credit`,
|
||
clients_dop_info.persone_no_ip,
|
||
clients_dop_info.passport,
|
||
clients_dop_info.date_of_issue_passport,
|
||
clients_dop_info.passport_issued_by,
|
||
clients_dop_info.birthplace,
|
||
clients_dop_info.registration_address,
|
||
clients_dop_info.post_address,
|
||
clients_dop_info.persone_snils,
|
||
clients_dop_info.persone_nationality,
|
||
clients_dop_info.persone_gender,
|
||
clients_dop_info.persone_full_name,
|
||
clients_dop_info.persone_short_name,
|
||
clients_dop_info.persone_ogrn,
|
||
clients_dop_info.persone_inn,
|
||
clients_dop_info.persone_kpp,
|
||
clients_dop_info.persone_legal_address,
|
||
clients_dop_info.persone_fact_address,
|
||
clients_dop_info.persone_info_bank,
|
||
clients_dop_info.persone_name_bank,
|
||
clients_dop_info.persone_bik_bank,
|
||
clients_dop_info.persone_rs_bank,
|
||
clients_dop_info.persone_kors_bank,
|
||
clients_dop_info.persone_fio_rukovod,
|
||
clients_dop_info.persone_powers,
|
||
clients_dop_info.persone_kod_podrazdelenia
|
||
FROM `clients`
|
||
LEFT JOIN `credit` ON `clients`.`id` = `credit`.`client_id`
|
||
LEFT JOIN `clients_dop_info` ON `clients`.`id` = `clients_dop_info`.`client_id`
|
||
WHERE `clients`.`id` = '$id'";
|
||
|
||
if ($rez = mysql_query($sql)) {
|
||
if (mysql_num_rows($rez)) {
|
||
$cl = mysql_fetch_assoc($rez);
|
||
$sql_req = "SELECT `id` FROM `requisitions` WHERE `client_id` = '$id'";
|
||
$q_req = mysql_query($sql_req);
|
||
|
||
$req = '';
|
||
if (mysql_num_rows($q_req) > 0) {
|
||
while ($r_req = mysql_fetch_assoc($q_req)) {
|
||
|
||
if ($req != '')
|
||
$req .= ',';
|
||
|
||
$req .= $r_req['id'];
|
||
}
|
||
}
|
||
|
||
$cl['req'] = $req;
|
||
|
||
$objects = array();
|
||
|
||
$sql_objects = "SELECT object_id FROM client_objects WHERE client_id = {$id}";
|
||
$q_objects = mysql_query($sql_objects);
|
||
while($r_objects = mysql_fetch_assoc($q_objects)){
|
||
$objects[] = (int)$r_objects['object_id'];
|
||
}
|
||
$cl['objects'] = '';
|
||
|
||
if(!empty($objects)){
|
||
$cl['objects'] = json_encode($objects);
|
||
|
||
}
|
||
|
||
foreach ($cl as $k => $v) {
|
||
if ($k == 'birthday') {
|
||
|
||
if (empty($v) || $v == '0000-00-00')
|
||
$v = '';
|
||
else
|
||
$v = date('d.m.Y', strtotime($v));
|
||
|
||
}
|
||
$this->$k = html_entity_decode($v);
|
||
}
|
||
|
||
$activities = [];
|
||
$sqlAddInfo = "SELECT `activity_id` FROM `clients_activities` WHERE `client_id` = '$id'";
|
||
if ($rezAddInfo = mysql_query($sqlAddInfo)) {
|
||
if (mysql_num_rows($rezAddInfo) > 0) {
|
||
while ($row = mysql_fetch_array($rezAddInfo)) {
|
||
$activities[] = $row['activity_id'];
|
||
}
|
||
}
|
||
} else {
|
||
$this->errors[] = mysql_error();
|
||
}
|
||
|
||
$this->source_see = 1;
|
||
if($cl['source'] > 0){
|
||
$sql_source = "SELECT * FROM advertising_sources WHERE id = $cl[source]";
|
||
//$this->source = $sql_source;
|
||
$q_source = mysql_query($sql_source);
|
||
if (mysql_num_rows($q_source) > 0) {
|
||
$r_source = mysql_fetch_assoc($q_source);
|
||
if(is_see($r_source['is_no_see'], $r_source['users_no_see']) === false){
|
||
|
||
$this->source_see = 0;
|
||
}
|
||
}
|
||
}
|
||
|
||
$this->activities = json_encode($activities);
|
||
}
|
||
} else {
|
||
$this->errors[] = mysql_error();
|
||
}
|
||
|
||
if (count($this->errors))
|
||
return false;
|
||
else
|
||
return $this;
|
||
}
|
||
|
||
|
||
|
||
public function del($id) {
|
||
|
||
/* $sql = "SELECT * FROM `clients` WHERE id = ".$id;
|
||
|
||
$q = mysql_query($sql);
|
||
|
||
$r = mysql_fetch_assoc($q);
|
||
|
||
$sql_i = "INSERT INTO clients_arhiv (`fio`,
|
||
`phone`,
|
||
`email`,
|
||
`birthday`,
|
||
`type`,
|
||
`opis`,
|
||
`id_agent`,
|
||
`date_add`,
|
||
`deleted`,
|
||
`reason`,
|
||
`status`,
|
||
`budget`,
|
||
`summa`,
|
||
`who_work`,
|
||
`confirm`,
|
||
`who_delete`,
|
||
`work_type`,
|
||
`role`,
|
||
`objects`,
|
||
`source`,
|
||
`stage`,
|
||
`hot`,
|
||
`priority`,
|
||
`turn`,
|
||
`turntime`) VALUES ('{$r['fio']}',
|
||
'{$r['phone']}',
|
||
'{$r['email']}',
|
||
'{$r['birthday']}',
|
||
'{$r['type']}',
|
||
'{$r['opis']}',
|
||
'{$r['id_agent']}',
|
||
'{$r['date_add']}',
|
||
'{$r['deleted']}',
|
||
'{$r['reason']}',
|
||
'{$r['status']}',
|
||
'{$r['budget']}',
|
||
'{$r['summa']}',
|
||
'{$r['who_work']}',
|
||
'{$r['confirm']}',
|
||
'{$r['who_delete']}',
|
||
'{$r['work_type']}',
|
||
'{$r['role']}',
|
||
'{$r['objects']}',
|
||
'{$r['source']}',
|
||
'{$r['stage']}',
|
||
'{$r['hot']}',
|
||
'{$r['priority']}',
|
||
'{$r['turn']}',
|
||
'{$r['turntime']}')";
|
||
|
||
// echo $sql_i;
|
||
mysql_query($sql_i);*/
|
||
|
||
$sql_del = "UPDATE clients SET cancel = 1, objects='' WHERE id = {$id}";
|
||
mysql_query($sql_del);
|
||
|
||
$sql="DELETE FROM client_objects WHERE client_id=$id";
|
||
|
||
$rez=mysql_query($sql);
|
||
|
||
$sql="DELETE FROM user_client_events WHERE client_id=$id";
|
||
|
||
$rez=mysql_query($sql);
|
||
|
||
$sql = "DELETE FROM clients_phone2 WHERE client_id = {$id}";
|
||
|
||
$rez=mysql_query($sql);
|
||
|
||
//Удаление заявок этого клиента
|
||
$pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$req = new Requisitions($pdo);
|
||
$req->cancelReqsClient($id);
|
||
}
|
||
|
||
public static function updateFunnel($post) {
|
||
|
||
$errors = [];
|
||
if ($post['id']) {
|
||
|
||
$funnel = null;
|
||
$sqlSelFun = "select funnel_id from clients WHERE id=$post[id]";
|
||
if (!($resSelFun = mysql_query($sqlSelFun))) {
|
||
$errors[] = mysql_error();
|
||
} else {
|
||
$rowSelFun = mysql_fetch_assoc($resSelFun);
|
||
$funnel = $rowSelFun['funnel_id'];
|
||
}
|
||
|
||
if(isset($post['new_funnel_id'])) {
|
||
$newFunnel = (int)$post['new_funnel_id'];
|
||
} else {
|
||
$newFunnel = 0;
|
||
}
|
||
|
||
|
||
if ($funnel != $newFunnel) {
|
||
$funnelName = "Обычные";
|
||
|
||
if ($newFunnel > 0) {
|
||
$sqlFunnel = "SELECT name FROM funnel WHERE id = $newFunnel";
|
||
$resFunnel = mysql_query($sqlFunnel);
|
||
$phRow = mysql_fetch_assoc($resFunnel);
|
||
$funnelName = $phRow['name'];
|
||
}
|
||
|
||
$sql = "UPDATE clients SET funnel_id = '$newFunnel', `stage`='1' WHERE id=$post[id]";
|
||
|
||
if (!mysql_query($sql)) {
|
||
$errors[] = mysql_error();
|
||
}
|
||
|
||
$sqlDeleteOldFunnel = "DELETE FROM clients_funnel_step WHERE client_id = $post[id]";
|
||
if (!mysql_query($sqlDeleteOldFunnel)) {
|
||
$errors[] = mysql_error();
|
||
}
|
||
|
||
self::get_class_etap($post['id'], $newFunnel);
|
||
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`, `dop_text`, `read`) VALUES (".$_SESSION['id'].", ".$post['id'].", '0', 'update', 'Передан в воронку «".$funnelName."»', '1')";
|
||
if (!mysql_query($sql_conf)) {
|
||
$errors[] = mysql_error();
|
||
}
|
||
}
|
||
}
|
||
|
||
if (count($errors))
|
||
return $errors;
|
||
else
|
||
return false;
|
||
|
||
}
|
||
|
||
public function update_objects($client_id, $post_objects = null, $objects = array()){
|
||
/*error_reporting(E_ALL | E_STRICT);
|
||
ini_set('display_errors', 1);*/
|
||
$pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
if($client_id > 0){
|
||
$old_objects = array();
|
||
$add_objects = array();
|
||
$del_objects = array();
|
||
$sql_o = "SELECT * FROM client_objects WHERE client_id = {$client_id}";
|
||
$q_o = $pdo->query($sql_o);
|
||
while($r_o = $pdo->fetch_assoc($q_o)){
|
||
$old_objects[] = (int)$r_o['object_id'];
|
||
}
|
||
//$pdo->query("DELETE FROM client_objects WHERE client_id = {$client_id}");
|
||
if(!empty($post_objects)){
|
||
$temp_objects = json_decode(html_entity_decode($post_objects), true);
|
||
if(!empty($temp_objects)){
|
||
$objects = $temp_objects;
|
||
}
|
||
}
|
||
|
||
foreach($old_objects as $old_obj_id){
|
||
if(!in_array($old_obj_id, $objects)){
|
||
$del_objects[] = $old_obj_id;
|
||
}
|
||
}
|
||
|
||
foreach($objects as $obj_id){
|
||
if(!in_array($obj_id, $old_objects)){
|
||
$add_objects[] = (int)$obj_id;
|
||
}
|
||
}
|
||
|
||
if(!empty($del_objects)){
|
||
$sql_del = "DELETE FROM client_objects WHERE client_id = {$client_id} AND object_id in (".implode(',', $del_objects).")";
|
||
$pdo->query($sql_del);
|
||
|
||
$dop_text = '';
|
||
$sql_obj = "SELECT `id`, `adres` `nazv` FROM `objects` WHERE `id` in (".implode(',', $del_objects).")";
|
||
$q_obj = $pdo->query($sql_obj);
|
||
while($obj_res = $pdo->fetch_assoc($q_obj)){
|
||
if($dop_text != '') $dop_text.= "<br>";
|
||
$nazv_obj = trim($obj_res['nazv'].' '.$obj_res['adres']);
|
||
$dop_text .= "Удален объект ID {$obj_res['id']} «".$nazv_obj."»";
|
||
$com = 'Объект отвязан от собственника ID '.$client_id;
|
||
|
||
$sql = "INSERT INTO user_object_events(user_id, object_id, create_date, type, address, sum, schedule_date, comment, calendar_view)
|
||
VALUES('$_SESSION[id]', '{$obj_res['id']}', NOW(), 'comment', NULL, NULL, NULL, '$com', '1')";
|
||
$pdo->query($sql);
|
||
}
|
||
|
||
if($dop_text != ''){
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`, `dop_text`, `read`) VALUES (".$_SESSION['id'].", ".$client_id.", '0', 'update', '".$dop_text."', '1')";
|
||
$pdo->query($sql_conf);
|
||
}
|
||
|
||
}
|
||
|
||
|
||
if(!empty($add_objects)){
|
||
$sql_insert = "INSERT INTO client_objects (client_id, object_id) values";
|
||
foreach($add_objects as $object_id){
|
||
if($sql_insert != "INSERT INTO client_objects (client_id, object_id) values") $sql_insert .= ", ";
|
||
$sql_insert .= "({$client_id}, {$object_id})";
|
||
|
||
}
|
||
$pdo->query($sql_insert);
|
||
|
||
$dop_text = '';
|
||
$sql_obj = "SELECT `id`, `adres` `nazv` FROM `objects` WHERE `id` in (".implode(',', $add_objects).")";
|
||
$q_obj = $pdo->query($sql_obj);
|
||
while($obj_res = $pdo->fetch_assoc($q_obj)){
|
||
if($dop_text != '') $dop_text.= "<br>";
|
||
$nazv_obj = trim($obj_res['nazv'].' '.$obj_res['adres']);
|
||
$dop_text .= "Добавлен объект ID {$obj_res['id']} «".$nazv_obj."»";
|
||
$com = 'К объекту был привязан собственник ID '.$client_id;
|
||
|
||
$sql = "INSERT INTO user_object_events(user_id, object_id, create_date, type, address, sum, schedule_date, comment, calendar_view)
|
||
VALUES('$_SESSION[id]', '{$obj_res['id']}', NOW(), 'comment', NULL, NULL, NULL, '$com', '1')";
|
||
// file_put_contents(__DIR__.'/log_obj.txt', $sql. "\n", FILE_APPEND);
|
||
$pdo->query($sql);
|
||
}
|
||
if($dop_text != ''){
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`, `dop_text`, `read`) VALUES (".$_SESSION['id'].", ".$client_id.", '0', 'update', '".$dop_text."', '1')";
|
||
$pdo->query($sql_conf);
|
||
}
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
//Дополнительные телефоны
|
||
public function update_phone2($client_id, $post_phone2 = null, $phones2 = array()){
|
||
$pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
if($client_id > 0){
|
||
$pdo->query("DELETE FROM clients_phone2 WHERE client_id = {$client_id}");
|
||
if(!empty($post_phone2)){
|
||
$phones2 = json_decode(html_entity_decode($post_phone2), true);
|
||
}
|
||
|
||
if(!empty($phones2)){
|
||
foreach($phones2 as $phone){
|
||
|
||
$sql_in = "INSERT INTO `clients_phone2` (client_id, phone) VALUES";
|
||
if($sql_in != "INSERT INTO `clients_phone2` (client_id, phone) VALUES") $sql_in .= ", ";
|
||
$sql_in .= "({$client_id}, '{$phone}')";
|
||
$pdo->query($sql_in);
|
||
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
public function addEdit($post, $need_req_link = true, $use_redirect = true, $id_agent = false) {
|
||
/*error_reporting(E_ALL | E_STRICT);
|
||
ini_set('display_errors', 1);*/
|
||
$depClass = new Department();
|
||
|
||
// hide_client_contacts: защита от перезаписи замаскированных значений.
|
||
// Если у текущего пользователя скрыты контакты и это РЕДАКТИРОВАНИЕ существующего клиента,
|
||
// принудительно берём оригинальные phone/email/national_phone/phone2 из БД и игнорируем форму.
|
||
if (function_exists('should_hide_contacts_for_current_user')
|
||
&& should_hide_contacts_for_current_user()
|
||
&& !empty($post['id'])
|
||
) {
|
||
$cidSafe = (int)$post['id'];
|
||
if ($cidSafe > 0) {
|
||
$qSrc = mysql_query("SELECT phone, email, national_phone, phone2 FROM clients WHERE id = $cidSafe LIMIT 1");
|
||
if ($qSrc && ($rSrc = mysql_fetch_assoc($qSrc))) {
|
||
$post['phone'] = $rSrc['phone'];
|
||
$post['email'] = $rSrc['email'];
|
||
$post['national_phone'] = $rSrc['national_phone'];
|
||
$post['phone2'] = $rSrc['phone2'];
|
||
}
|
||
}
|
||
}
|
||
|
||
//Проверка на право редактирования
|
||
/*if($post['id']){
|
||
$sql = "SELECT id, who_work FROM clients WHERE id=$post[id]";
|
||
$q = mysql_query($sql);
|
||
if(mysql_num_rows($q) > 0){
|
||
$r = mysql_fetch_assoc($q);
|
||
|
||
$who = $r['who_work'];
|
||
if($who > 0){
|
||
$error = "У вас нет прав для редактирования данного клиента";
|
||
$user = (int)$_SESSION['id'];
|
||
if ($_SESSION['users_admin']) {
|
||
$agency = new User;
|
||
$agency->checkPermissions();
|
||
$user = $agency->agencyId;
|
||
}
|
||
$sql_users = "SELECT id FROM users WHERE id in (select id from users where id=$user or id_manager=$user or id_manager in
|
||
(select id from users where id_manager=$user or id_manager in
|
||
(select id from users where id_manager=$user)))";
|
||
//echo $sql_users;
|
||
$q_users = mysql_query($sql_users);
|
||
while($r_users = mysql_fetch_assoc($q_users)){
|
||
if($who == $r_users['id']){
|
||
$error = '';
|
||
break;
|
||
}
|
||
}
|
||
if($error != ''){
|
||
return $error;
|
||
}
|
||
}
|
||
}
|
||
}*/
|
||
|
||
if (($post['id'] && (!isset($post['phone']) || !$post['phone']))) {
|
||
$sqlPhone = "SELECT phone FROM clients 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.who_work = 0 THEN clients.id_agent ELSE clients.who_work END FROM clients WHERE clients.phone='$post[phone]')";
|
||
// echo $_POST[objects];
|
||
//$post[phone2]
|
||
$phone2_where_arr = array();
|
||
$phone2_where_arr[] = "'".$post['phone']."'";
|
||
$phone2_arr = json_decode(html_entity_decode($post['phone2']), ENT_QUOTES);
|
||
foreach($phone2_arr as $phone_2){
|
||
$phone2_where_arr[] .= "'".$phone_2."'";
|
||
}
|
||
$phone2_where = '';
|
||
$phone_where = '';
|
||
if(!empty($phone2_where_arr)){
|
||
if(count($phone2_where_arr) == 1){
|
||
$phone_where = "clients.phone='$post[phone]'";
|
||
} else {
|
||
$phone_where = "clients.phone in (".implode(',', $phone2_where_arr).")";
|
||
}
|
||
$phone2_where = " or clients.id in (SELECT client_id FROM clients_phone2 WHERE phone in (".implode(',', $phone2_where_arr)."))";
|
||
}
|
||
$sql = "select id as client_id, phone, if(who_work = 0, id_agent, who_work) as id, (SELECT CONCAT(last_name, ' ', first_name, ' ', middle_name) as fio from users WHERE id = if(clients.who_work = 0, clients.id_agent, clients.who_work)) as fio from clients WHERE cancel=0 AND ($phone_where $phone2_where)";
|
||
|
||
//echo $sql;
|
||
if ($post['id']) {
|
||
$sql = $sql." and clients.id != $post[id]";
|
||
}
|
||
|
||
|
||
//добавляем ограничение на воронку, ищем повторы внутри воронки
|
||
if(isset($post['funnel_id'])) {
|
||
$funnelForCheck = (int)$post['funnel_id'];
|
||
} else {
|
||
$funnelForCheck = 0;
|
||
}
|
||
|
||
//если у нас редактирование, то нужно проверить, что переносить можно в новую воронку
|
||
if ($post['id']) {
|
||
if(isset($post['new_funnel_id'])) {
|
||
$funnelForCheck = (int)$post['new_funnel_id'];
|
||
} else {
|
||
$funnelForCheck = 0;
|
||
}
|
||
}
|
||
|
||
$user_ses = new User;
|
||
$user_ses->get($_SESSION['id']);
|
||
|
||
if($user_ses->agencyId != 21951){
|
||
$sql = $sql." and clients.funnel_id = $funnelForCheck";
|
||
}
|
||
|
||
if (empty($post['confirm']))
|
||
$post['confirm'] = 0;
|
||
|
||
if ($post['confirm'] || $post['confirm'] == 0) {
|
||
if($post['who_work'] == $_SESSION['id'] && isset($_SESSION['id'])) {
|
||
$post['confirm'] = 1;
|
||
}
|
||
}
|
||
|
||
// $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 ($id_agent == false)
|
||
$id_agent = (int)$_SESSION['id'];
|
||
|
||
$error = '';
|
||
|
||
if(!empty($post['opis'])){
|
||
$post['opis'] = mysql_real_escape_string(htmlspecialchars($post['opis']));
|
||
}
|
||
if ($count > 0) {
|
||
|
||
$agencyId = null;
|
||
if($user_ses->id_manager == 0 && $user_ses->agency == 0){ //Не агентство
|
||
$agencyId = $_SESSION['id'];
|
||
} else
|
||
if ($_SESSION['agency']) {
|
||
$agencyId = $_SESSION['id'];
|
||
} else {
|
||
if ($_SESSION['manager']) {
|
||
$user = new User;
|
||
$user->checkPermissions($id_agent, $use_redirect);
|
||
$agencyId = $user->id_manager;
|
||
} else {
|
||
$user = new User;
|
||
$user->checkPermissions($id_agent, $use_redirect);
|
||
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'];
|
||
if((int)$manager['role_id'] > 0 && (int)$manager['department_id'] > 0){
|
||
$role_user = $depClass->getRole((int)$manager['role_id']);
|
||
if($role_user['role'] == 'admin_department'){
|
||
$menagerDep = User::getDepManagers($role_user['department_id']);
|
||
|
||
foreach($menagerDep as $md){
|
||
if(!in_array($md['id'], $idsFromAgency)){
|
||
$idsFromAgency[] = $md['id'];
|
||
}
|
||
$thisAgents = User::getAgentsOfAgency($md['id'], true);
|
||
|
||
foreach($thisAgents as $da){
|
||
if (!in_array($da['id'], $idsFromAgency)) {
|
||
$idsFromAgency[] = $da['id'];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
$agents = $agency->getAllAgents($agencyId);
|
||
if($agents) {
|
||
foreach ($agents as $i => $agent) {
|
||
$idsFromAgency[] = $agent['id'];
|
||
}
|
||
}
|
||
|
||
// список пользователей, у которых есть похожие клиенты
|
||
if($agencyId == 7945 || $agencyId == 7441 || $agencyId == 12061){
|
||
} else if ($agencyId == 7384 && ($post['source'] == 498 || $post['source'] == 589 || $post['source'] == 677)){
|
||
|
||
} else {
|
||
while ($user = mysql_fetch_assoc($rez)) {
|
||
if (in_array($user['id'], $idsFromAgency)) {
|
||
$error = "<p>Клиент с указанной электронной почтой или телефоном уже привязан к агенту $user[fio]!</p>";
|
||
|
||
if ($need_req_link)
|
||
$error .= "<p><a class='double_client_req' href='javascript:{}' data-id='".$user['client_id']."'>Добавить новую заявку по данному клиенту?</a></p>";
|
||
|
||
$mstr = mysql_fetch_assoc(mysql_query("SELECT agency, manager, fio FROM users WHERE id=".$_SESSION[id]));
|
||
if($mstr['agency']) $master = "агентством $mstr[fio]";
|
||
elseif($mstr['manager']) $master = "менеджером $mstr[fio]";
|
||
else $master = "агентом $mstr[fio]";
|
||
$dop_text = " - попытка добавить клиента ".$master;
|
||
if($post['source']){
|
||
$source = mysql_fetch_assoc(mysql_query("SELECT `source` FROM `advertising_sources` WHERE `id` = ".(int)$post['source']))['source'];
|
||
$dop_text .= " с источника ".$source;
|
||
}
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`, `dop_text`, `read`) VALUES (".$_SESSION['id'].", ".$user['client_id'].", '0', 'double_client', '".$dop_text."', '1')";
|
||
|
||
mysql_query($sql_conf);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
|
||
|
||
if($error != ''){
|
||
return $error;
|
||
}
|
||
if (!isset($post['stage']) || !$post['stage']) {
|
||
$post['stage'] = '1';
|
||
}
|
||
|
||
|
||
|
||
// прошли проверку - добавляем
|
||
if ($post['id']) {
|
||
$sql_prev = "SELECT `email`, `phone`, `phone2`, `type`, `work_type`, `role`, `opis`, `objects`, `birthday`, `source`, `employee_id`, `budget`, `fio` FROM `clients` WHERE id=$post[id]";
|
||
$q_prev = mysql_query($sql_prev);
|
||
$r_prev = mysql_fetch_assoc($q_prev);
|
||
$opis = mysql_real_escape_string($post['opis']);
|
||
|
||
// hide_client_contacts: жёсткая защита прямо перед UPDATE.
|
||
// Если у юзера скрыты контакты, ИЛИ если в $post проскочила маска (есть `*` либо
|
||
// <4 цифр в телефоне, либо `*` в email) — берём из $r_prev (только что прочитанные
|
||
// оригинальные значения). Это последний рубеж: даже если выше защиты не сработали,
|
||
// в БД попадёт оригинал.
|
||
$isHideUser = function_exists('should_hide_contacts_for_current_user') && should_hide_contacts_for_current_user();
|
||
$postPhoneStr = isset($post['phone']) ? (string)$post['phone'] : '';
|
||
$postEmailStr = isset($post['email']) ? (string)$post['email'] : '';
|
||
$phoneLooksMasked = (strpos($postPhoneStr, '*') !== false) || (preg_match_all('/\d/', $postPhoneStr) < 4);
|
||
$emailLooksMasked = (strpos($postEmailStr, '*') !== false);
|
||
if ($isHideUser || $phoneLooksMasked) {
|
||
$post['phone'] = $r_prev['phone'];
|
||
}
|
||
if ($isHideUser || $emailLooksMasked) {
|
||
$post['email'] = $r_prev['email'];
|
||
}
|
||
if ($isHideUser) {
|
||
$post['phone2'] = $r_prev['phone2'];
|
||
}
|
||
|
||
$sql = "UPDATE clients SET fio='$post[fio]', email='".trim($post['email'])."', phone='$post[phone]', phone2='$post[phone2]', `type`='$post[type]', work_type='$workType', opis='$opis', status='$post[status]', budget='$post[budget]', who_work='$post[who_work]', confirm='$post[confirm]', `role`='$post[role]', `objects`='$post[objects]', `source`='$post[source]', `employee_id`='$post[employee]', `birthday`='$post[birthday]', `stage`='$post[stage]', `hot`='$post[hot]', `priority`='$post[priority]' WHERE id=$post[id]";
|
||
|
||
self::update_objects($post['id'], $post['objects']);
|
||
self::update_phone2($post['id'], $post['phone2']);
|
||
|
||
/*if(empty($post[objects]) || $post[objects] == 'null'){
|
||
$sql = "UPDATE clients SET fio='$post[fio]', email='".trim($post['email'])."', phone='$post[phone]', phone2='$post[phone2]', `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]', `source`='$post[source]', `birthday`='$post[birthday]', `stage`='$post[stage]', `hot`='$post[hot]' WHERE id=$post[id]";
|
||
|
||
}*/
|
||
//Проверяем запись в ипотеке
|
||
$sql_i = "SELECT `id` from `ipoteka` WHERE `client_id` = ".$post['id'];
|
||
$q_i = mysql_query($sql_i);
|
||
if(mysql_num_rows($q_i) > 0){
|
||
$r_i = mysql_fetch_assoc($q_i);
|
||
$sql_u_i = "UPDATE `ipoteka` SET "
|
||
. "`client_id`=$post[id],"
|
||
. "`rynok`='$post[rynok]',"
|
||
. "`yes_object`=".(int)$post[yes_object].","
|
||
. "`jc`='$post[jc]',"
|
||
. "`ante_pr`='$post[ante_pr]',"
|
||
. "`ante_rub`='$post[ante_rub]',"
|
||
. "`comment`='$post[comment_ipoteka]',"
|
||
. "`yes_doc`=".(int)$post[yes_doc].","
|
||
. "`number_doc`='$post[number_doc]',"
|
||
. "`date_doc`='$post[date_doc]',"
|
||
. "`doc_komis_pr`='$post[doc_komis_pr]',"
|
||
. "`doc_komis`='$post[doc_komis]',"
|
||
. "`yes_bank`=".(int)$post[yes_bank].","
|
||
. "`date_bank`='$post[date_bank]',"
|
||
. "`employee_bank`='$post[employee_bank]',"
|
||
. "`banks`='$post[banks]',"
|
||
. "`yes_resolve`=".(int)$post[yes_resolve].","
|
||
. "`resolve`='$post[resolve]',"
|
||
. "`comment_resolve`='$post[comment_resolve]',"
|
||
. "`yes_issue`=".(int)$post[yes_issue].","
|
||
. "`bank_issue`='$post[bank_issue]',"
|
||
. "`rate_issue`='$post[rate_issue]',"
|
||
. "`term_issue`='$post[term_issue]',"
|
||
. "`yes_brak`='$post[yes_brak]',"
|
||
. "`relationship`='$post[relationship]',"
|
||
. "`summa_object`='$post[summa_object]',"
|
||
. "`age`='$post[age]',"
|
||
. "`co_borrower_fio`='$post[co_borrower_fio]',"
|
||
. "`co_borrower_age`='$post[co_borrower_age]',"
|
||
. "`contacts`='$post[contacts]',"
|
||
. "`co_borrower_dohod`='$post[co_borrower_dohod]',"
|
||
. "`income`='$post[income]',"
|
||
. "`credit_load`='$post[credit_load]'"
|
||
. " WHERE `id` = ".$r_i['id'];
|
||
//echo $sql_u_i;
|
||
mysql_query($sql_u_i);
|
||
|
||
} else {
|
||
$sql_ipoteka = "INSERT INTO "
|
||
."`ipoteka` SET "
|
||
. "`client_id`=$post[id],"
|
||
. "`rynok`='$post[rynok]',"
|
||
. "`yes_object`=".(int)$post[yes_object].","
|
||
. "`jc`='$post[jc]',"
|
||
. "`ante_pr`='$post[ante_pr]',"
|
||
. "`ante_rub`='$post[ante_rub]',"
|
||
. "`comment`='$post[comment_ipoteka]',"
|
||
. "`yes_doc`=".(int)$post[yes_doc].","
|
||
. "`number_doc`='$post[number_doc]',"
|
||
. "`date_doc`='$post[date_doc]',"
|
||
. "`doc_komis_pr`='$post[doc_komis_pr]',"
|
||
. "`doc_komis`='$post[doc_komis]',"
|
||
. "`yes_bank`=".(int)$post[yes_bank].","
|
||
. "`date_bank`='$post[date_bank]',"
|
||
. "`employee_bank`='$post[employee_bank]',"
|
||
. "`banks`='$post[banks]',"
|
||
. "`yes_resolve`=".(int)$post[yes_resolve].","
|
||
. "`resolve`='$post[resolve]',"
|
||
. "`comment_resolve`='$post[comment_resolve]',"
|
||
. "`yes_issue`=".(int)$post[yes_issue].","
|
||
. "`bank_issue`='$post[bank_issue]',"
|
||
. "`rate_issue`='$post[rate_issue]',"
|
||
. "`term_issue`='$post[term_issue]',"
|
||
. "`yes_brak`='$post[yes_brak]',"
|
||
. "`relationship`='$post[relationship]',"
|
||
. "`summa_object`='$post[summa_object]',"
|
||
. "`age`='$post[age]',"
|
||
. "`co_borrower_fio`='$post[co_borrower_fio]',"
|
||
. "`co_borrower_age`='$post[co_borrower_age]',"
|
||
. "`contacts`='$post[contacts]',"
|
||
. "`co_borrower_dohod`='$post[co_borrower_dohod]',"
|
||
. "`income`='$post[income]',"
|
||
. "`credit_load`='$post[credit_load]'";
|
||
mysql_query($sql_ipoteka);
|
||
}
|
||
//Проверяем информацию о кредите
|
||
$sql_c = "SELECT `id` FROM `credit` WHERE client_id = ".$post['id'];
|
||
$q_c = mysql_query($sql_c);
|
||
if(mysql_num_rows($q_c) > 0){
|
||
$sql_u_c = "UPDATE `credit`
|
||
SET
|
||
`bancks_credit` = '$post[bancks_credit]',
|
||
`summa_credit` = '$post[summa_credit]',
|
||
`komissiya_credit` = '$post[komissiya_credit]',
|
||
`cel_credit` = '$post[cel_credit]',
|
||
`age_credit` = '$post[age_credit]',
|
||
`propiska_credit` = '$post[propiska_credit]',
|
||
`nagruzka_credit` = '$post[nagruzka_credit]',
|
||
`dohod_credit` = '$post[dohod_credit]',
|
||
`dava_ndfl_credit` = '$post[dava_ndfl_credit]',
|
||
`spravka_credit` = '$post[spravka_credit]',
|
||
`phone_credit` = '$post[phone_credit]',
|
||
`podachi_credit` = '$post[podachi_credit]',
|
||
`not_own_credit` = '$post[not_own_credit]',
|
||
`yes_deduction_credit` = '$post[yes_deduction_credit]',
|
||
`overdue_credit` = '$post[overdue_credit]',
|
||
`mfo_credit` = '$post[mfo_credit]',
|
||
`kvartira_credit` = '$post[kvartira_credit]',
|
||
`dom_credit` = '$post[dom_credit]',
|
||
`uchastok_credit` = '$post[uchastok_credit]',
|
||
`car_credit` = '$post[car_credit]',
|
||
`kol_nagruzka_credit` = '$post[kol_nagruzka_credit]'
|
||
WHERE `client_id` = ".$post['id'];
|
||
mysql_query($sql_u_c);
|
||
} else {
|
||
/* Инфа по кредитам */
|
||
$sql_credit = "INSERT INTO `credit`
|
||
(`client_id`,
|
||
`bancks_credit`,
|
||
`summa_credit`,
|
||
`komissiya_credit`,
|
||
`cel_credit`,
|
||
`age_credit`,
|
||
`propiska_credit`,
|
||
`nagruzka_credit`,
|
||
`dohod_credit`,
|
||
`dava_ndfl_credit`,
|
||
`spravka_credit`,
|
||
`phone_credit`,
|
||
`podachi_credit`,
|
||
`not_own_credit`,
|
||
`yes_deduction_credit`,
|
||
`overdue_credit`,
|
||
`mfo_credit`,
|
||
`kvartira_credit`,
|
||
`dom_credit`,
|
||
`uchastok_credit`,
|
||
`car_credit`,
|
||
`kol_nagruzka_credit`)
|
||
VALUES
|
||
({$post['id']},
|
||
'$post[bancks_credit]',
|
||
'$post[summa_credit]',
|
||
'$post[komissiya_credit]',
|
||
'$post[cel_credit]',
|
||
'$post[age_credit]',
|
||
'$post[propiska_credit]',
|
||
'$post[nagruzka_credit]',
|
||
'$post[dohod_credit]',
|
||
'$post[dava_ndfl_credit]',
|
||
'$post[spravka_credit]',
|
||
'$post[phone_credit]',
|
||
'$post[podachi_credit]',
|
||
'$post[not_own_credit]',
|
||
'$post[yes_deduction_credit]',
|
||
'$post[overdue_credit]',
|
||
'$post[mfo_credit]',
|
||
'$post[kvartira_credit]',
|
||
'$post[dom_credit]',
|
||
'$post[uchastok_credit]',
|
||
'$post[car_credit]',
|
||
'$post[kol_nagruzka_credit]'
|
||
);
|
||
";
|
||
//echo $sql_credit;
|
||
mysql_query($sql_credit);
|
||
}
|
||
if($post['who_work'] != $_SESSION['id'] && $post['confirm'] == 0){
|
||
|
||
// Получаем ID клиента и нового владельца
|
||
$client_id_check_event = intval($post['id']);
|
||
$new_owner_id_check_event = intval($post['who_work']);
|
||
|
||
if ($client_id_check_event > 0 && $new_owner_id_check_event > 0) {
|
||
// Помечаем как прочитанные все события по этому клиенту, кроме нового владельца
|
||
$sql_clear = "UPDATE events_clients SET `read` = 1, date_update = NOW() WHERE client_id = $client_id_check_event AND event = 'transmitted' AND user_id != $new_owner_id_check_event";
|
||
mysql_query($sql_clear);
|
||
}
|
||
|
||
//Добавляем событие передачи
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`) VALUES (".$_SESSION['id'].", ".$post['id'].", ".$post['who_work'].", 'transmitted')";
|
||
mysql_query($sql_conf);
|
||
if($post['who_work'] == 0){ //Если передача в общие то восстанавливаем клиента
|
||
mysql_query("UPDATE clients SET deleted=0 WHERE id={$post['id']}");
|
||
$dop_text_ev = "Переведен в общие";
|
||
$sql_ev = "INSERT INTO events_clients (client_id, event, dop_text, user_id) VALUES ({$post['id']}, 'update', '{$dop_text_ev}', {$_SESSION['id']})";
|
||
mysql_query($sql_ev);
|
||
}
|
||
$agent = new User;
|
||
$agent->get($_SESSION['id']);
|
||
|
||
if(((int)$agent->agencyId == 8353 || (int)$agent->agencyId == 16001) && $post[who_work] != 0){
|
||
$sql = "UPDATE clients SET confirm=1, who_work=$post[who_work] WHERE id=$post[id]";
|
||
|
||
mysql_query($sql);
|
||
|
||
$sql="UPDATE user_client_events SET user_id=$post[who_work] WHERE client_id=$post[id]";
|
||
mysql_query($sql);
|
||
|
||
// if(isset($_GET['event'])){
|
||
$sql = "UPDATE `events_clients` set `read` = 1, date_update='".date('Y-m-d H:i:s')."' WHERE client_id=$post[id]";
|
||
// echo $sql;
|
||
mysql_query($sql);
|
||
// }
|
||
|
||
$sql = "INSERT INTO `events_clients` (user_id, client_id, from_id, event, `read`) VALUES ('".$post[who_work]."', '".$post[id]."', '".$post[who_work]."', 'accepted', '1')";
|
||
mysql_query($sql);
|
||
$sqlUser = "SELECT `agency_name`, `last_name`, `middle_name`, `phone` FROM `users` where id=".$post[who_work];
|
||
$qUser = mysql_query($sqlUser);
|
||
$rUser = mysql_fetch_assoc($qUser);
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']);
|
||
if ($rUser['agency']) {
|
||
$sobstv = $sobstv . ", агентство " . $rUser['agency_name'];
|
||
} else {
|
||
$agency = new User;
|
||
$agency->get($post[who_work]);
|
||
if (isset($agency->agencyName)) {
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']) . ", агентство " . $agency->agencyName;
|
||
} else {
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']);
|
||
}
|
||
}
|
||
$num_search = num_search($rUser['phone']);
|
||
$sql_confirm_obj = "SELECT * FROM client_confirm_objects WHERE client_id = $post[id] AND status = 0";
|
||
$q_confirm_obj = mysql_query($sql_confirm_obj);
|
||
|
||
$is_confirm_obj = false;
|
||
if(mysql_num_rows($q_confirm_obj) > 0){
|
||
$r_confirm_obj = mysql_fetch_assoc($q_confirm_obj);
|
||
|
||
$is_confirm_obj = (bool)$r_confirm_obj['confirm_objects'];
|
||
|
||
}
|
||
|
||
|
||
|
||
if($is_confirm_obj){
|
||
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
|
||
//Передача объекта
|
||
$sql_client = "SELECT * FROM `client_objects` WHERE client_id = $post[id]";
|
||
$q_client = mysql_query($sql_client);
|
||
|
||
|
||
while($object = mysql_fetch_assoc($q_client)){
|
||
$sql_up = "UPDATE objects SET id_add_user = '".$post[who_work]."', phone='".$rUser['phone']."', sobstv='".$sobstv."' WHERE id = ".$object['object_id'];
|
||
//echo $sql_up;
|
||
mysql_query($sql_up);
|
||
// перенос Зипал
|
||
$sql = "UPDATE zipal_objects SET user_id=$post[who_work], send_to_update=1 WHERE object_id={$object['object_id']}";
|
||
mysql_query($sql);
|
||
|
||
$sqlPack = "UPDATE advertising_package_object_publish SET send_to_update = '1', error_when_send_to_update = '' WHERE object_id={$object['object_id']}";
|
||
mysql_query($sqlPack);
|
||
|
||
$sql_sph = "UPDATE objects SET id_add_user = {$_SESSION['id']} WHERE id = ".$object['object_id'];
|
||
|
||
$db_sphinx->query($sql_sph);
|
||
}
|
||
}
|
||
|
||
mysql_query("UPDATE client_confirm_objects SET status = 1 WHERE client_id = $post[id] AND status = 0");
|
||
}
|
||
} else {
|
||
if($post[who_work] == $_SESSION[id]){
|
||
$agent = new User;
|
||
$agent->get($_SESSION['id']);
|
||
|
||
if(((int)$agent->agencyId == 8353 || (int)$agent->agencyId == 16001) && $post[who_work] != 0){
|
||
$sqlUser = "SELECT `agency_name`, `first_name`, `last_name`, `middle_name`, `phone` FROM `users` where id=".$post[who_work];
|
||
$qUser = mysql_query($sqlUser);
|
||
$rUser = mysql_fetch_assoc($qUser);
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']);
|
||
if ($rUser['agency']) {
|
||
$sobstv = $sobstv . ", агентство " . $rUser['agency_name'];
|
||
} else {
|
||
$agency = new User;
|
||
$agency->get($post[who_work]);
|
||
if (isset($agency->agencyName)) {
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']) . ", агентство " . $agency->agencyName;
|
||
} else {
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']);
|
||
}
|
||
}
|
||
$num_search = num_search($rUser['phone']);
|
||
//Передача объекта
|
||
$sql_confirm_obj = "SELECT * FROM client_confirm_objects WHERE client_id = $post[id] AND status = 0";
|
||
|
||
$q_confirm_obj = mysql_query($sql_confirm_obj);
|
||
|
||
$is_confirm_obj = false;
|
||
if(mysql_num_rows($q_confirm_obj) > 0){
|
||
$r_confirm_obj = mysql_fetch_assoc($q_confirm_obj);
|
||
|
||
$is_confirm_obj = (bool)$r_confirm_obj['confirm_objects'];
|
||
|
||
}
|
||
|
||
|
||
|
||
if($is_confirm_obj){
|
||
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
|
||
|
||
$sql_client = "SELECT * FROM `client_objects` WHERE client_id = $post[id]";
|
||
$q_client = mysql_query($sql_client);
|
||
|
||
|
||
while($object = mysql_fetch_assoc($q_client)){
|
||
$sql_up = "UPDATE objects SET id_add_user = '".$post[who_work]."', phone='".$rUser['phone']."', sobstv='".$sobstv."' WHERE id = ".$object['object_id'];
|
||
//echo $sql_up;
|
||
mysql_query($sql_up);
|
||
// перенос Зипал
|
||
$sql = "UPDATE zipal_objects SET user_id=$post[who_work], send_to_update=1 WHERE object_id={$object['object_id']}";
|
||
mysql_query($sql);
|
||
|
||
$sqlPack = "UPDATE advertising_package_object_publish SET send_to_update = '1', error_when_send_to_update = '' WHERE object_id={$object['object_id']}";
|
||
mysql_query($sqlPack);
|
||
|
||
$sql_sph = "UPDATE objects SET id_add_user = {$_SESSION['id']} WHERE id = ".$object['object_id'];
|
||
|
||
$db_sphinx->query($sql_sph);
|
||
}
|
||
}
|
||
mysql_query("UPDATE client_confirm_objects SET status = 1 WHERE client_id = $post[id] AND status = 0");
|
||
}
|
||
}
|
||
|
||
//Событие изменений
|
||
$dop_text = '';
|
||
// hide_client_contacts: для таких юзеров мы не записываем изменения телефона
|
||
// и email в журнал событий — иначе либо ничего не поменялось (моя защита уже
|
||
// вернула оригинал из БД), либо в лог утечёт маска "+X *** ..." как "новое значение".
|
||
$skipContactsLog = function_exists('should_hide_contacts_for_current_user') && should_hide_contacts_for_current_user();
|
||
if((string)$r_prev['fio'] !== $post['fio']) $dop_text .= "Изменено имя клиента с «".$r_prev['fio']."» на «".$post[fio]."»";
|
||
if(!$skipContactsLog && $r_prev['phone'] !== $post['phone']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
$dop_text .= "Изменен телефон клиента с «".$r_prev['phone']."» на «".$post[phone]."»";
|
||
}
|
||
if((int)$r_prev['budget'] !== (int)$post['budget']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($r_prev['budget'])){
|
||
$dop_text .= "Добавлен бюджет ".$post['budget'];
|
||
} else if(empty($post['budget'])){
|
||
$dop_text .= "Удален бюджет ".$r_prev['budget'];
|
||
} else {
|
||
$dop_text .= "Изменен бюджет клиента с «".$r_prev['budget']."» на «".$post[budget]."»";
|
||
}
|
||
}
|
||
if(!$skipContactsLog && $r_prev['email'] !== $post['email']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($r_prev['email'])){
|
||
$dop_text .= "Добавлен email ".$post['email'];
|
||
} else if(empty($post['email'])){
|
||
$dop_text .= "Удален email ".$r_prev['email'];
|
||
} else {
|
||
$dop_text .= "Изменен email клиента с «".$r_prev['email']."» на «".$post[email]."»";
|
||
}
|
||
}
|
||
|
||
if($post['type'] !== $r_prev['type']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($post['type']) || $post['type'] === 'null'){
|
||
$dop_text .= "Удален тип недвижимости ".str_replace(['[',']','_кв','_',','],['','','.кв.',' ',', '],$r_prev['type']);
|
||
} else if(empty($r_prev['type']) || $r_prev['type'] === 'null'){
|
||
$dop_text .= "Добавлен тип недвижимости ".str_replace(['[',']','_кв','_',','],['','','.кв.',' ',', '],$post['type']);
|
||
} else {
|
||
$dop_text .= "Изменен тип недвижимости с ".str_replace(['[',']','_кв','_',','],['','','.кв.',' ',', '],$r_prev['type'])." на ".str_replace(['[',']','_кв','_',','],['','','.кв.',' ',', '],$post['type']);
|
||
}
|
||
}
|
||
|
||
if($post['work_type'] !== $r_prev['work_type']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($post['work_type']) || $post['work_type'] === 'null'){
|
||
$dop_text .= "Удален тип клиента ".str_replace(['[',']','_',','],['','',' ',', '],$r_prev['work_type']);
|
||
} else if(empty($r_prev['work_type']) || $r_prev['work_type'] === 'null'){
|
||
$dop_text .= "Добавлен тип клиента ".str_replace(['[',']','_',','],['','',' ',', '],$post['work_type']);
|
||
} else {
|
||
$dop_text .= "Изменен тип клиента с ".str_replace(['[',']','_',','],['','',' ',', '],$r_prev['work_type'])." на ".str_replace(['[',']','_',','],['','',' ',', '],$post['work_type']);
|
||
}
|
||
}
|
||
|
||
if($post['role'] !== $r_prev['role']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($post['role']) || $post['role'] === 'null'){
|
||
$dop_text .= "Удалена роль клиента ".str_replace(['[',']','_',','],['','',' ',', '],$r_prev['role']);
|
||
} else if(empty($r_prev['role']) || $r_prev['role'] === 'null'){
|
||
$dop_text .= "Добавлена роль клиента ".str_replace(['[',']','_',','],['','',' ',', '],$post['role']);
|
||
} else {
|
||
$dop_text .= "Изменена роль клиента с ".str_replace(['[',']','_',','],['','',' ',', '],$r_prev['role'])." на ".str_replace(['[',']','_',','],['','',' ',', '],$post['role']);
|
||
}
|
||
}
|
||
if($post['opis'] !== $r_prev['opis']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($post['opis']) || $post['opis'] === ''){
|
||
$dop_text .= "Удален комментарий ".$r_prev['opis'];
|
||
} else if(empty($r_prev['opis']) || $r_prev['opis'] === ''){
|
||
$dop_text .= "Добавлен комментарий «".$post['opis']."»";
|
||
} else {
|
||
$dop_text .= "Изменен комментарий с «".$r_prev['opis']."» на «".$post['opis']."»";
|
||
}
|
||
}
|
||
|
||
if((int)$post['source'] !== (int)$r_prev['source']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if((int)$post['source'] == 0){
|
||
$prev_source = mysql_fetch_assoc(mysql_query("SELECT `source` FROM `advertising_sources` WHERE `id` = ".(int)$r_prev['source']))['source'];
|
||
$dop_text .= "Удален источник «".$prev_source."»";
|
||
} else if((int)$r_prev['source'] == 0){
|
||
$source = mysql_fetch_assoc(mysql_query("SELECT `source` FROM `advertising_sources` WHERE `id` = ".(int)$post['source']))['source'];
|
||
$dop_text .= "Добавлен источник «".$source."»";
|
||
} else {
|
||
$source = mysql_fetch_assoc(mysql_query("SELECT `source` FROM `advertising_sources` WHERE `id` = ".(int)$post['source']))['source'];
|
||
$prev_source = mysql_fetch_assoc(mysql_query("SELECT `source` FROM `advertising_sources` WHERE `id` = ".(int)$r_prev['source']))['source'];
|
||
$dop_text .= "Изменен источник с «".$prev_source."» на «".$source."»";
|
||
}
|
||
}
|
||
|
||
if((int)$post['employee'] !== (int)$r_prev['employee_id']) {
|
||
|
||
if ($dop_text != '')
|
||
$dop_text .= "<br>";
|
||
|
||
if ((int)$post['employee'] == 0) {
|
||
$prev_employee = mysql_fetch_assoc(mysql_query("SELECT `name` FROM `partners_employees` WHERE `id` = " . (int)$r_prev['employee_id']))['name'];
|
||
$dop_text .= "Сотрудник партнёра «$prev_employee» был отвязан от клиента";
|
||
} else if((int)$r_prev['employee_id'] == 0) {
|
||
$new_employee = mysql_fetch_assoc(mysql_query("SELECT `name` FROM `partners_employees` WHERE `id` = " . (int)$post['employee']))['name'];
|
||
$dop_text .= "Сотрудник партнёра «$new_employee» был привязан к клиенту";
|
||
} else {
|
||
$prev_employee = mysql_fetch_assoc(mysql_query("SELECT `name` FROM `partners_employees` WHERE `id` = " . (int)$r_prev['employee_id']))['name'];
|
||
$new_employee = mysql_fetch_assoc(mysql_query("SELECT `name` FROM `partners_employees` WHERE `id` = " . (int)$post['employee']))['name'];
|
||
$dop_text .= "У клиента был изменен сотрудник партнёра с «$prev_employee» на «$new_employee»";
|
||
}
|
||
}
|
||
|
||
if($post['birthday'] !== $r_prev['birthday']){
|
||
if($post['birthday'] != '-0001-11-30' ){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($post['birthday']) || $post['birthday'] === '' || $post['birthday'] == 'undefined-undefined-') {
|
||
if($r_prev['birthday'] != '0000-00-00'){
|
||
$dop_text .= "Удалена дата дня рождения «".$r_prev['birthday']."»";
|
||
}
|
||
} else if(empty($r_prev['birthday']) || $r_prev['birthday'] === '0000-00-00'){
|
||
$dop_text .= "Добавлена дата дня рождения «".$post['birthday']."»";
|
||
} else {
|
||
$dop_text .= "Изменена дата дня рождения с «".$r_prev['birthday']."» на «".$post['birthday']."»";
|
||
}
|
||
}
|
||
}
|
||
|
||
$phone2_arr = json_decode(html_entity_decode($post['phone2']), ENT_QUOTES);
|
||
$prevphone2_arr = json_decode(html_entity_decode($r_prev['phone2']), ENT_QUOTES);
|
||
|
||
if(count($phone2_arr) != count($prevphone2_arr)){
|
||
if(count($phone2_arr) > count($prevphone2_arr)){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
$dop_text .= "Добавлены доп. телефоны: ";
|
||
foreach ($phone2_arr as $ph){
|
||
if(!in_array($ph, $prevphone2_arr)){
|
||
$dop_text .= $ph.", ";
|
||
}
|
||
}
|
||
|
||
} else if(count($phone2_arr) < count($prevphone2_arr)){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
$dop_text .= "Удалены доп. телефоны: ";
|
||
foreach ($prevphone2_arr as $ph){
|
||
if(!in_array($ph, $phone2_arr)){
|
||
$dop_text .= $ph.", ";
|
||
}
|
||
}
|
||
}
|
||
}
|
||
foreach ($phone2_arr as $key => $ph){
|
||
if(isset($prevphone2_arr[$key]) && $ph !== $prevphone2_arr[$key]){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
$dop_text .= "Изменен номер с ".$prevphone2_arr[$key]." на ". $ph;
|
||
}
|
||
}
|
||
|
||
$objects_arr = json_decode(html_entity_decode($post['objects']), ENT_QUOTES);
|
||
$prevobjects_arr = json_decode(html_entity_decode($r_prev['objects']), ENT_QUOTES);
|
||
|
||
/*if(count($objects_arr) == 0 && count($prevobjects_arr) == 0){}
|
||
else{
|
||
foreach($prevobjects_arr as $obj){
|
||
if(!in_array($obj, $objects_arr)){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
$obj_res = mysql_fetch_assoc(mysql_query("SELECT `adres` `nazv` FROM `objects` WHERE `id` = ".$obj));
|
||
$nazv_obj = $obj_res['nazv'].' '.$obj_res['adres'];
|
||
$dop_text .= "Удален объект «".$nazv_obj."»";
|
||
}
|
||
}
|
||
foreach($objects_arr as $obj){
|
||
if(!in_array($obj, $prevobjects_arr)){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
$obj_res = mysql_fetch_assoc(mysql_query("SELECT `adres` `nazv` FROM `objects` WHERE `id` = ".$obj));
|
||
$nazv_obj = $obj_res['nazv'].' '.$obj_res['adres'];
|
||
$dop_text .= "Добавлен объект «".$nazv_obj."»";
|
||
}
|
||
}
|
||
}*/
|
||
|
||
if($dop_text != ''){
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`, `dop_text`, `read`) VALUES (".$_SESSION['id'].", ".$post['id'].", '0', 'update', '".$dop_text."', '1')";
|
||
mysql_query($sql_conf);
|
||
}
|
||
}
|
||
} else {
|
||
$funnel = 0;
|
||
if($post['funnel_id']) $funnel = (int)$post['funnel_id'];
|
||
|
||
$uId = $_SESSION['id'];
|
||
|
||
/* if (session_status() == PHP_SESSION_ACTIVE) {
|
||
$uId = $_SESSION['id'];
|
||
}*/
|
||
|
||
if ($post['stage'] === 0 || $post['stage'] === '0') {
|
||
$post['stage'] = 1;
|
||
}
|
||
|
||
$sql = "INSERT INTO clients(`fio`, `email`, `phone`, `phone2`, `type`, `work_type`, `opis`, `id_agent`, `date_add`, `status`, `budget`, `who_work`, `confirm`, `role`, `objects`, `source`, `employee_id`, `birthday`, `stage`, `hot`, `priority`,`of_objects`,
|
||
`funnel_id`) VALUES('$post[fio]', '".trim($post['email'])."','$post[phone]','$post[phone2]','$post[type]', '$workType', '$post[opis]', '$uId', NOW(), '$post[status]', '$post[budget]', '$post[who_work]', '$post[confirm]', '$post[role]', '$post[objects]', '$post[source]', '$post[employee]', '$post[birthday]', '$post[stage]', '$post[hot]', '$post[priority]', '$post[of_objects]', '$funnel')";
|
||
$inserd_client = true;
|
||
if($post['who_work'] != $_SESSION['id'] && $post['confirm'] == 0){
|
||
//Добавляем событие передачи
|
||
$insert_sent = true;
|
||
}
|
||
}
|
||
|
||
mysql_query($sql);
|
||
|
||
$id_cl = $post['id'];
|
||
|
||
if (isset($inserd_client)) {
|
||
$id_cl = mysql_insert_id();
|
||
self::update_objects($id_cl, $post['objects']);
|
||
self::update_phone2($id_cl, $post['phone2']);
|
||
}
|
||
|
||
if(isset($inserd_client)){
|
||
/**** Инфа по ипотеке***/
|
||
self::get_class_etap($id_cl, $funnel);
|
||
$sql_ipoteka = "INSERT INTO "
|
||
."`ipoteka` SET "
|
||
. "`client_id`=$id_cl,"
|
||
. "`rynok`='$post[rynok]',"
|
||
. "`yes_object`=".(int)$post[yes_object].","
|
||
. "`jc`='$post[jc]',"
|
||
. "`ante_pr`='$post[ante_pr]',"
|
||
. "`ante_rub`='$post[ante_rub]',"
|
||
. "`comment`='$post[comment_ipoteka]',"
|
||
. "`yes_doc`=".(int)$post[yes_doc].","
|
||
. "`number_doc`='$post[number_doc]',"
|
||
. "`date_doc`='$post[date_doc]',"
|
||
. "`doc_komis_pr`='$post[doc_komis_pr]',"
|
||
. "`doc_komis`='$post[doc_komis]',"
|
||
. "`yes_bank`=".(int)$post[yes_bank].","
|
||
. "`date_bank`='$post[date_bank]',"
|
||
. "`employee_bank`='$post[employee_bank]',"
|
||
. "`banks`='$post[banks]',"
|
||
. "`yes_resolve`=".(int)$post[yes_resolve].","
|
||
. "`resolve`='$post[resolve]',"
|
||
. "`comment_resolve`='$post[comment_resolve]',"
|
||
. "`yes_issue`=".(int)$post[yes_issue].","
|
||
. "`bank_issue`='$post[bank_issue]',"
|
||
. "`rate_issue`='$post[rate_issue]',"
|
||
. "`term_issue`='$post[term_issue]',"
|
||
. "`yes_brak`='$post[yes_brak]',"
|
||
. "`relationship`='$post[relationship]',"
|
||
. "`summa_object`='$post[summa_object]',"
|
||
. "`age`='$post[age]',"
|
||
. "`co_borrower_fio`='$post[co_borrower_fio]',"
|
||
. "`co_borrower_age`='$post[co_borrower_age]',"
|
||
. "`contacts`='$post[contacts]',"
|
||
. "`co_borrower_dohod`='$post[co_borrower_dohod]',"
|
||
. "`income`='$post[income]',"
|
||
. "`credit_load`='$post[credit_load]'";
|
||
//echo $sql_ipoteka. ' 1';
|
||
mysql_query($sql_ipoteka);
|
||
/***********************/
|
||
/* Инфа по кредитам */
|
||
$sql_credit = "INSERT INTO `credit`
|
||
(`client_id`,
|
||
`bancks_credit`,
|
||
`summa_credit`,
|
||
`komissiya_credit`,
|
||
`cel_credit`,
|
||
`age_credit`,
|
||
`propiska_credit`,
|
||
`nagruzka_credit`,
|
||
`dohod_credit`,
|
||
`dava_ndfl_credit`,
|
||
`spravka_credit`,
|
||
`phone_credit`,
|
||
`podachi_credit`,
|
||
`not_own_credit`,
|
||
`yes_deduction_credit`,
|
||
`overdue_credit`,
|
||
`mfo_credit`,
|
||
`kvartira_credit`,
|
||
`dom_credit`,
|
||
`uchastok_credit`,
|
||
`car_credit`,
|
||
`kol_nagruzka_credit`)
|
||
VALUES
|
||
({$id_cl},
|
||
'$post[bancks_credit]',
|
||
'$post[summa_credit]',
|
||
'$post[komissiya_credit]',
|
||
'$post[cel_credit]',
|
||
'$post[age_credit]',
|
||
'$post[propiska_credit]',
|
||
'$post[nagruzka_credit]',
|
||
'$post[dohod_credit]',
|
||
'$post[dava_ndfl_credit]',
|
||
'$post[spravka_credit]',
|
||
'$post[phone_credit]',
|
||
'$post[podachi_credit]',
|
||
'$post[not_own_credit]',
|
||
'$post[yes_deduction_credit]',
|
||
'$post[overdue_credit]',
|
||
'$post[mfo_credit]',
|
||
'$post[kvartira_credit]',
|
||
'$post[dom_credit]',
|
||
'$post[uchastok_credit]',
|
||
'$post[car_credit]',
|
||
'$post[kol_nagruzka_credit]'
|
||
);
|
||
";
|
||
//echo $sql_credit;
|
||
mysql_query($sql_credit);
|
||
}
|
||
|
||
if(isset($insert_sent)){
|
||
|
||
// Получаем ID клиента и нового владельца
|
||
$client_id_check_event = intval($post['id']);
|
||
$new_owner_id_check_event = intval($post['who_work']);
|
||
|
||
if ($client_id_check_event > 0 && $new_owner_id_check_event > 0) {
|
||
// Помечаем как прочитанные все события по этому клиенту, кроме нового владельца
|
||
$sql_clear = "UPDATE events_clients SET `read` = 1, date_update = NOW() WHERE client_id = $client_id_check_event AND event = 'transmitted' AND user_id != $new_owner_id_check_event";
|
||
mysql_query($sql_clear);
|
||
}
|
||
|
||
//$id_cl = mysql_insert_id();
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`) VALUES (".$_SESSION['id'].", ".$id_cl.", ".$post['who_work'].", 'transmitted')";
|
||
mysql_query($sql_conf);
|
||
if($post['who_work'] == 0){ //Если передача в общие то восстанавливаем клиента
|
||
mysql_query("UPDATE clients SET deleted=0 WHERE id={$id_cl}");
|
||
$dop_text_ev = "Переведен в общие";
|
||
$sql_ev = "INSERT INTO events_clients (client_id, event, dop_text, user_id) VALUES ({$id_cl}, 'update', '{$dop_text_ev}', {$_SESSION['id']})";
|
||
mysql_query($sql_ev);
|
||
}
|
||
$agent = new User;
|
||
$agent->get($_SESSION['id']);
|
||
|
||
if(((int)$agent->agencyId == 8353 || (int)$agent->agencyId == 16001) && $post[who_work] != 0){
|
||
$sql = "UPDATE clients SET confirm=1, who_work=$post[who_work] WHERE id=$id_cl";
|
||
|
||
mysql_query($sql);
|
||
|
||
$sql="UPDATE user_client_events SET user_id=$post[who_work] WHERE client_id=$id_cl";
|
||
mysql_query($sql);
|
||
|
||
// if(isset($_GET['event'])){
|
||
$sql = "UPDATE `events_clients` set `read` = 1, date_update='".date('Y-m-d H:i:s')."' WHERE client_id=$id_cl";
|
||
// echo $sql;
|
||
mysql_query($sql);
|
||
// }
|
||
|
||
$sql = "INSERT INTO `events_clients` (user_id, client_id, from_id, event, `read`) VALUES ('".$post[who_work]."', '".$id_cl."', '".$post[who_work]."', 'accepted', '1')";
|
||
mysql_query($sql);
|
||
$sqlUser = "SELECT `agency_name`, `first_name`, `last_name`, `middle_name`, `phone` FROM `users` where id=".$post[who_work];
|
||
$qUser = mysql_query($sqlUser);
|
||
$rUser = mysql_fetch_assoc($qUser);
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']);
|
||
if ($rUser['agency']) {
|
||
$sobstv = $sobstv . ", агентство " . $rUser['agency_name'];
|
||
} else {
|
||
$agency = new User;
|
||
$agency->get($post[who_work]);
|
||
if (isset($agency->agencyName)) {
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']) . ", агентство " . $agency->agencyName;
|
||
} else {
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']);
|
||
}
|
||
}
|
||
$num_search = num_search($rUser['phone']);
|
||
//Передача объекта
|
||
$sql_confirm_obj = "SELECT * FROM client_confirm_objects WHERE client_id = $id_cl AND status = 0";
|
||
$q_confirm_obj = mysql_query($sql_confirm_obj);
|
||
|
||
$is_confirm_obj = false;
|
||
if(mysql_num_rows($q_confirm_obj) > 0){
|
||
$r_confirm_obj = mysql_fetch_assoc($q_confirm_obj);
|
||
|
||
$is_confirm_obj = (bool)$r_confirm_obj['confirm_objects'];
|
||
|
||
}
|
||
|
||
|
||
|
||
if($is_confirm_obj){
|
||
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
|
||
|
||
$sql_client = "SELECT * FROM `client_objects` WHERE client_id = $id_cl";
|
||
$q_client = mysql_query($sql_client);
|
||
|
||
|
||
while($object = mysql_fetch_assoc($q_client)){
|
||
$sql_up = "UPDATE objects SET id_add_user = '".$post[who_work]."', phone='".$rUser['phone']."', sobstv='".$sobstv."' WHERE id = ".$object['object_id'];
|
||
//echo $sql_up;
|
||
mysql_query($sql_up);
|
||
// перенос Зипал
|
||
$sql = "UPDATE zipal_objects SET user_id=$post[who_work], send_to_update=1 WHERE object_id={$object['object_id']}";
|
||
mysql_query($sql);
|
||
|
||
$sqlPack = "UPDATE advertising_package_object_publish SET send_to_update = '1', error_when_send_to_update = '' WHERE object_id={$object['object_id']}";
|
||
mysql_query($sqlPack);
|
||
|
||
$sql_sph = "UPDATE objects SET id_add_user = {$_SESSION['id']} WHERE id = ".$object['object_id'];
|
||
|
||
$db_sphinx->query($sql_sph);
|
||
}
|
||
}
|
||
|
||
mysql_query("UPDATE client_confirm_objects SET status = 1 WHERE client_id = $id_cl AND status = 0");
|
||
}
|
||
}
|
||
$client_id = 0;
|
||
if(isset($id_cl)){
|
||
$client_id = $id_cl;
|
||
} else {
|
||
$client_id = $post['id'];
|
||
}
|
||
|
||
// Добавляем теги по клиенту
|
||
if (is_string($post['activities']))
|
||
$arr_activities = json_decode(html_entity_decode($post['activities']), ENT_QUOTES);
|
||
else if (is_array($post['activities']))
|
||
$arr_activities = $post['activities'];
|
||
else
|
||
$arr_activities = (int)$post['activities'];
|
||
|
||
if ($client_id) {
|
||
|
||
$sql = "DELETE FROM `clients_activities` WHERE `client_id` = '".$client_id."'";
|
||
mysql_query($sql);
|
||
|
||
if (!empty($arr_activities)) {
|
||
if (is_array($arr_activities)) {
|
||
$sql_a = [];
|
||
foreach($arr_activities as $key => $activity_id) {
|
||
$sql_a[] = "('$client_id', '$activity_id')";
|
||
}
|
||
if (count($sql_a) > 0) {
|
||
$sql = "INSERT INTO `clients_activities` (`client_id`, `activity_id`) VALUES " . implode(', ', $sql_a);
|
||
mysql_query($sql);
|
||
}
|
||
} else if (is_numeric($arr_activities) && $arr_activities > 0) {
|
||
$sql = "INSERT INTO `clients_activities` (`client_id`, `activity_id`) VALUES ('$client_id', '$arr_activities')";
|
||
mysql_query($sql);
|
||
}
|
||
}
|
||
}
|
||
|
||
// Сохраняем поля для интерактивных документов
|
||
if ($client_id && !empty($post['variables'])) {
|
||
if (is_array($post['variables'])) {
|
||
$docs = new Docs();
|
||
$docs->saveDocFields($client_id, "clients", $post['variables']);
|
||
}
|
||
}
|
||
|
||
if (isset($inserd_client) && $inserd_client) {
|
||
//сохраняем данные wazzap
|
||
Clients::createClientWazzapData($client_id, $post);
|
||
}
|
||
|
||
if($user_ses->agencyId == 5238 || $user_ses->agencyId == 13154){
|
||
if($post['send_web_hook']){
|
||
$webHook = new WebHookSend($user_ses->agencyId, 1, $client_id, 'client');
|
||
}
|
||
}
|
||
|
||
Clients::add_client_info($client_id, $post);
|
||
|
||
return $client_id;
|
||
} else {
|
||
|
||
if ($post['id']) {
|
||
$sql_prev = "SELECT `email`, `phone`, `phone2`, `type`, `work_type`, `role`, `opis`, `objects`, `birthday`, `source`, `employee_id`, `budget`, `fio` FROM `clients` WHERE id = $post[id]";
|
||
$q_prev = mysql_query($sql_prev);
|
||
$r_prev = mysql_fetch_assoc($q_prev);
|
||
|
||
// hide_client_contacts: тот же финальный rescue, что и в первой ветке выше.
|
||
$isHideUser = function_exists('should_hide_contacts_for_current_user') && should_hide_contacts_for_current_user();
|
||
$postPhoneStr = isset($post['phone']) ? (string)$post['phone'] : '';
|
||
$postEmailStr = isset($post['email']) ? (string)$post['email'] : '';
|
||
$phoneLooksMasked = (strpos($postPhoneStr, '*') !== false) || (preg_match_all('/\d/', $postPhoneStr) < 4);
|
||
$emailLooksMasked = (strpos($postEmailStr, '*') !== false);
|
||
if ($isHideUser || $phoneLooksMasked) {
|
||
$post['phone'] = $r_prev['phone'];
|
||
}
|
||
if ($isHideUser || $emailLooksMasked) {
|
||
$post['email'] = $r_prev['email'];
|
||
}
|
||
if ($isHideUser) {
|
||
$post['phone2'] = $r_prev['phone2'];
|
||
}
|
||
|
||
$opis = mysql_real_escape_string($post['opis']);
|
||
$sql = "UPDATE clients
|
||
SET fio='$post[fio]',
|
||
email='".trim($post['email'])."',
|
||
phone='$post[phone]',
|
||
phone2='$post[phone2]',
|
||
type='$post[type]',
|
||
work_type='$workType',
|
||
opis='$opis',
|
||
status='$post[status]',
|
||
budget='$post[budget]',
|
||
who_work='$post[who_work]',
|
||
confirm='$post[confirm]',
|
||
`role`='$post[role]',
|
||
`objects`='$post[objects]',
|
||
`source`='$post[source]',
|
||
`employee_id`='$post[employee]',
|
||
`birthday`='$post[birthday]',
|
||
`stage`='$post[stage]',
|
||
`hot`='$post[hot]',
|
||
`priority`='$post[priority]'
|
||
WHERE id=$post[id]";
|
||
|
||
/* if(empty($post[objects] || $post[objects] == 'null')){
|
||
$sql = "UPDATE clients SET fio='$post[fio]', email='".trim($post['email'])."', phone='$post[phone]', phone2='$post[phone2]', 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]', `source`='$post[source]', `birthday`='$post[birthday]', `stage`='$post[stage]', `hot`='$post[hot]' WHERE id=$post[id]";
|
||
|
||
} */
|
||
self::update_objects($post['id'], $post['objects']);
|
||
self::update_phone2($post['id'], $post['phone2']);
|
||
|
||
//Проверяем запись в ипотеке
|
||
$sql_i = "SELECT `id` from `ipoteka` WHERE `client_id` = ".$post['id'];
|
||
//echo $sql_i;
|
||
$q_i = mysql_query($sql_i);
|
||
|
||
if(mysql_num_rows($q_i) > 0){
|
||
$r_i = mysql_fetch_assoc($q_i);
|
||
$sql_u_i = "UPDATE `ipoteka` SET "
|
||
. "`client_id`=$post[id],"
|
||
. "`rynok`='$post[rynok]',"
|
||
. "`yes_object`=".(int)$post[yes_object].","
|
||
. "`jc`='$post[jc]',"
|
||
. "`ante_pr`='$post[ante_pr]',"
|
||
. "`ante_rub`='$post[ante_rub]',"
|
||
. "`comment`='$post[comment_ipoteka]',"
|
||
. "`yes_doc`=".(int)$post[yes_doc].","
|
||
. "`number_doc`='$post[number_doc]',"
|
||
. "`date_doc`='$post[date_doc]',"
|
||
. "`doc_komis_pr`='$post[doc_komis_pr]',"
|
||
. "`doc_komis`='$post[doc_komis]',"
|
||
. "`yes_bank`=".(int)$post[yes_bank].","
|
||
. "`date_bank`='$post[date_bank]',"
|
||
. "`employee_bank`='$post[employee_bank]',"
|
||
. "`banks`='$post[banks]',"
|
||
. "`yes_resolve`=".(int)$post[yes_resolve].","
|
||
. "`resolve`='$post[resolve]',"
|
||
. "`denial`='$post[denial]',"
|
||
. "`revisal`='$post[revisal]',"
|
||
. "`comment_resolve`='$post[comment_resolve]',"
|
||
. "`yes_issue`=".(int)$post[yes_issue].","
|
||
. "`bank_issue`='$post[bank_issue]',"
|
||
. "`rate_issue`='$post[rate_issue]',"
|
||
. "`term_issue`='$post[term_issue]',"
|
||
. "`yes_brak`='$post[yes_brak]',"
|
||
. "`relationship`='$post[relationship]',"
|
||
. "`summa_object`='$post[summa_object]',"
|
||
. "`age`='$post[age]',"
|
||
. "`co_borrower_fio`='$post[co_borrower_fio]',"
|
||
. "`co_borrower_age`='$post[co_borrower_age]',"
|
||
. "`contacts`='$post[contacts]',"
|
||
. "`co_borrower_dohod`='$post[co_borrower_dohod]',"
|
||
. "`income`='$post[income]',"
|
||
. "`credit_load`='$post[credit_load]'"
|
||
. " WHERE `id` = ".$r_i['id'];
|
||
|
||
/*if($_SESSION['id']==5238){
|
||
echo $sql_u_i;
|
||
}*/
|
||
mysql_query($sql_u_i);
|
||
} else {
|
||
$sql_ipoteka = "INSERT INTO "
|
||
."`ipoteka` SET "
|
||
. "`client_id`=$post[id],"
|
||
. "`rynok`='$post[rynok]',"
|
||
. "`yes_object`=".(int)$post[yes_object].","
|
||
. "`jc`='$post[jc]',"
|
||
. "`ante_pr`='$post[ante_pr]',"
|
||
. "`ante_rub`='$post[ante_rub]',"
|
||
. "`comment`='$post[comment_ipoteka]',"
|
||
. "`yes_doc`=".(int)$post[yes_doc].","
|
||
. "`number_doc`='$post[number_doc]',"
|
||
. "`date_doc`='$post[date_doc]',"
|
||
. "`doc_komis_pr`='$post[doc_komis_pr]',"
|
||
. "`doc_komis`='$post[doc_komis]',"
|
||
. "`yes_bank`=".(int)$post[yes_bank].","
|
||
. "`date_bank`='$post[date_bank]',"
|
||
. "`employee_bank`='$post[employee_bank]',"
|
||
. "`banks`='$post[banks]',"
|
||
. "`yes_resolve`=".(int)$post[yes_resolve].","
|
||
. "`resolve`='$post[resolve]',"
|
||
. "`denial`='$post[denial]',"
|
||
. "`revisal`='$post[revisal]',"
|
||
. "`comment_resolve`='$post[comment_resolve]',"
|
||
. "`yes_issue`=".(int)$post[yes_issue].","
|
||
. "`bank_issue`='$post[bank_issue]',"
|
||
. "`rate_issue`='$post[rate_issue]',"
|
||
. "`term_issue`='$post[term_issue]',"
|
||
. "`yes_brak`='$post[yes_brak]',"
|
||
. "`relationship`='$post[relationship]',"
|
||
. "`summa_object`='$post[summa_object]',"
|
||
. "`age`='$post[age]',"
|
||
. "`co_borrower_fio`='$post[co_borrower_fio]',"
|
||
. "`co_borrower_age`='$post[co_borrower_age]',"
|
||
. "`contacts`='$post[contacts]',"
|
||
. "`co_borrower_dohod`='$post[co_borrower_dohod]',"
|
||
. "`income`='$post[income]',"
|
||
. "`credit_load`='$post[credit_load]'";
|
||
mysql_query($sql_ipoteka);
|
||
}
|
||
|
||
//Проверяем информацию о кредите
|
||
$sql_c = "SELECT `id` FROM `credit` WHERE client_id = ".$post['id'];
|
||
$q_c = mysql_query($sql_c);
|
||
if(mysql_num_rows($q_c) > 0){
|
||
$sql_u_c = "UPDATE `credit`
|
||
SET
|
||
`bancks_credit` = '$post[bancks_credit]',
|
||
`summa_credit` = '$post[summa_credit]',
|
||
`komissiya_credit` = '$post[komissiya_credit]',
|
||
`cel_credit` = '$post[cel_credit]',
|
||
`age_credit` = '$post[age_credit]',
|
||
`propiska_credit` = '$post[propiska_credit]',
|
||
`nagruzka_credit` = '$post[nagruzka_credit]',
|
||
`dohod_credit` = '$post[dohod_credit]',
|
||
`dava_ndfl_credit` = '$post[dava_ndfl_credit]',
|
||
`spravka_credit` = '$post[spravka_credit]',
|
||
`phone_credit` = '$post[phone_credit]',
|
||
`podachi_credit` = '$post[podachi_credit]',
|
||
`not_own_credit` = '$post[not_own_credit]',
|
||
`yes_deduction_credit` = '$post[yes_deduction_credit]',
|
||
`overdue_credit` = '$post[overdue_credit]',
|
||
`mfo_credit` = '$post[mfo_credit]',
|
||
`kvartira_credit` = '$post[kvartira_credit]',
|
||
`dom_credit` = '$post[dom_credit]',
|
||
`uchastok_credit` = '$post[uchastok_credit]',
|
||
`car_credit` = '$post[car_credit]',
|
||
`kol_nagruzka_credit` = '$post[kol_nagruzka_credit]'
|
||
WHERE `client_id` = ".$post['id'];
|
||
mysql_query($sql_u_c);
|
||
} else {
|
||
/* Инфа по кредитам */
|
||
$sql_credit = "INSERT INTO `credit`
|
||
(`client_id`,
|
||
`bancks_credit`,
|
||
`summa_credit`,
|
||
`komissiya_credit`,
|
||
`cel_credit`,
|
||
`age_credit`,
|
||
`propiska_credit`,
|
||
`nagruzka_credit`,
|
||
`dohod_credit`,
|
||
`dava_ndfl_credit`,
|
||
`spravka_credit`,
|
||
`phone_credit`,
|
||
`podachi_credit`,
|
||
`not_own_credit`,
|
||
`yes_deduction_credit`,
|
||
`overdue_credit`,
|
||
`mfo_credit`,
|
||
`kvartira_credit`,
|
||
`dom_credit`,
|
||
`uchastok_credit`,
|
||
`car_credit`,
|
||
`kol_nagruzka_credit`)
|
||
VALUES
|
||
({$post['id']},
|
||
'$post[bancks_credit]',
|
||
'$post[summa_credit]',
|
||
'$post[komissiya_credit]',
|
||
'$post[cel_credit]',
|
||
'$post[age_credit]',
|
||
'$post[propiska_credit]',
|
||
'$post[nagruzka_credit]',
|
||
'$post[dohod_credit]',
|
||
'$post[dava_ndfl_credit]',
|
||
'$post[spravka_credit]',
|
||
'$post[phone_credit]',
|
||
'$post[podachi_credit]',
|
||
'$post[not_own_credit]',
|
||
'$post[yes_deduction_credit]',
|
||
'$post[overdue_credit]',
|
||
'$post[mfo_credit]',
|
||
'$post[kvartira_credit]',
|
||
'$post[dom_credit]',
|
||
'$post[uchastok_credit]',
|
||
'$post[car_credit]',
|
||
'$post[kol_nagruzka_credit]'
|
||
);
|
||
";
|
||
//echo $sql_credit;
|
||
mysql_query($sql_credit);
|
||
}
|
||
|
||
if($post['who_work'] != $_SESSION['id'] && $post['confirm'] == 0){
|
||
|
||
// Получаем ID клиента и нового владельца
|
||
$client_id_check_event = intval($post['id']);
|
||
$new_owner_id_check_event = intval($post['who_work']);
|
||
|
||
if ($client_id_check_event > 0 && $new_owner_id_check_event > 0) {
|
||
// Помечаем как прочитанные все события по этому клиенту, кроме нового владельца
|
||
$sql_clear = "UPDATE events_clients SET `read` = 1, date_update = NOW() WHERE client_id = $client_id_check_event AND event = 'transmitted' AND user_id != $new_owner_id_check_event";
|
||
mysql_query($sql_clear);
|
||
}
|
||
|
||
//Добавляем событие передачи
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`) VALUES (".$_SESSION['id'].", ".$post['id'].", ".$post['who_work'].", 'transmitted')";
|
||
mysql_query($sql_conf);
|
||
if($post['who_work'] == 0){ //Если передача в общие то восстанавливаем клиента
|
||
mysql_query("UPDATE clients SET deleted=0 WHERE id={$post['id']}");
|
||
$dop_text_ev = "Переведен в общие";
|
||
$sql_ev = "INSERT INTO events_clients (client_id, event, dop_text, user_id) VALUES ({$post['id']}, 'update', '{$dop_text_ev}', {$_SESSION['id']})";
|
||
mysql_query($sql_ev);
|
||
}
|
||
$agent = new User;
|
||
$agent->get($_SESSION['id']);
|
||
|
||
if(((int)$agent->agencyId == 8353 || (int)$agent->agencyId == 16001) && $post[who_work] != 0){
|
||
$sql = "UPDATE clients SET confirm=1, who_work=$post[who_work] WHERE id=$post[id]";
|
||
|
||
mysql_query($sql);
|
||
|
||
$sql="UPDATE user_client_events SET user_id=$post[who_work] WHERE client_id=$post[id]";
|
||
mysql_query($sql);
|
||
|
||
// if(isset($_GET['event'])){
|
||
$sql = "UPDATE `events_clients` set `read` = 1, date_update='".date('Y-m-d H:i:s')."' WHERE client_id=$post[id]";
|
||
// echo $sql;
|
||
mysql_query($sql);
|
||
// }
|
||
|
||
$sql = "INSERT INTO `events_clients` (user_id, client_id, from_id, event, `read`) VALUES ('".$post[who_work]."', '".$post[id]."', '".$post[who_work]."', 'accepted', '1')";
|
||
mysql_query($sql);
|
||
$sqlUser = "SELECT `agency_id`, `first_name`, `last_name`, `middle_name`, `phone` FROM `users` where id=".$post[who_work];
|
||
$qUser = mysql_query($sqlUser);
|
||
$rUser = mysql_fetch_assoc($qUser);
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']);
|
||
if ($rUser['agency']) {
|
||
$sobstv = $sobstv . ", агентство " . $rUser['agency_id'];
|
||
} else {
|
||
$agency = new User;
|
||
$agency->get($post[who_work]);
|
||
if (isset($agency->agencyName)) {
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']) . ", агентство " . $agency->agencyName;
|
||
} else {
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']);
|
||
}
|
||
}
|
||
$num_search = num_search($rUser['phone']);
|
||
//Передача объекта
|
||
$sql_confirm_obj = "SELECT * FROM client_confirm_objects WHERE client_id = $post[id] AND status = 0";
|
||
$q_confirm_obj = mysql_query($sql_confirm_obj);
|
||
|
||
$is_confirm_obj = false;
|
||
if(mysql_num_rows($q_confirm_obj) > 0){
|
||
$r_confirm_obj = mysql_fetch_assoc($q_confirm_obj);
|
||
|
||
$is_confirm_obj = (bool)$r_confirm_obj['confirm_objects'];
|
||
|
||
}
|
||
|
||
|
||
|
||
if($is_confirm_obj){
|
||
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
|
||
|
||
$sql_client = "SELECT * FROM `client_objects` WHERE client_id = $post[id]";
|
||
$q_client = mysql_query($sql_client);
|
||
|
||
|
||
while($object = mysql_fetch_assoc($q_client)){
|
||
$sql_up = "UPDATE objects SET id_add_user = '".$post[who_work]."', phone='".$rUser['phone']."', sobstv='".$sobstv."' WHERE id = ".$object['object_id'];
|
||
//echo $sql_up;
|
||
mysql_query($sql_up);
|
||
// перенос Зипал
|
||
$sql = "UPDATE zipal_objects SET user_id=$post[who_work], send_to_update=1 WHERE object_id={$object['object_id']}";
|
||
mysql_query($sql);
|
||
|
||
$sqlPack = "UPDATE advertising_package_object_publish SET send_to_update = '1', error_when_send_to_update = '' WHERE object_id={$object['object_id']}";
|
||
mysql_query($sqlPack);
|
||
|
||
$sql_sph = "UPDATE objects SET id_add_user = {$_SESSION['id']} WHERE id = ".$object['object_id'];
|
||
|
||
$db_sphinx->query($sql_sph);
|
||
}
|
||
}
|
||
mysql_query("UPDATE client_confirm_objects SET status = 1 WHERE client_id = $post[id] AND status = 0");
|
||
}
|
||
} else {
|
||
//Событие изменений
|
||
|
||
$dop_text = '';
|
||
// hide_client_contacts: см. комментарий выше — не пишем contact-изменения в лог.
|
||
$skipContactsLog = function_exists('should_hide_contacts_for_current_user') && should_hide_contacts_for_current_user();
|
||
if((string)$r_prev['fio'] !== $post['fio']) $dop_text .= "Изменено имя клиента с «".$r_prev['fio']."» на «".$post[fio]."»";
|
||
if(!$skipContactsLog && $r_prev['phone'] !== $post['phone']){
|
||
if($dop_text != '') $dop_text .= " ";
|
||
$dop_text .= "Изменен телефон клиента с «".$r_prev['phone']."» на «".$post[phone]."»";
|
||
}
|
||
if((int)$r_prev['budget'] !== (int)$post['budget']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($r_prev['budget'])){
|
||
$dop_text .= "Добавлен бюджет ".$post['budget'];
|
||
} else if(empty($post['budget'])){
|
||
$dop_text .= "Удален бюджет ".$r_prev['budget'];
|
||
} else {
|
||
$dop_text .= "Изменен бюджет клиента с «".$r_prev['budget']."» на «".$post[budget]."»";
|
||
}
|
||
}
|
||
if(!$skipContactsLog && $r_prev['email'] !== $post['email']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($r_prev['email'])){
|
||
$dop_text .= "Добавлен email ".$post['email'];
|
||
} else if(empty($post['email'])){
|
||
$dop_text .= "Удален email ".$r_prev['email'];
|
||
} else {
|
||
$dop_text .= "Изменен email клиента с «".$r_prev['email']."» на «".$post[email]."»";
|
||
}
|
||
}
|
||
|
||
if($post['type'] !== $r_prev['type']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($post['type']) || $post['type'] === 'null'){
|
||
$dop_text .= "Удален тип недвижимости ".str_replace(['[',']','_кв','_',','],['','','.кв.',' ',', '],$r_prev['type']);
|
||
} else if(empty($r_prev['type']) || $r_prev['type'] === 'null'){
|
||
$dop_text .= "Добавлен тип недвижимости ".str_replace(['[',']','_кв','_',','],['','','.кв.',' ',', '],$post['type']);
|
||
} else {
|
||
$dop_text .= "Изменен тип недвижимости с ".str_replace(['[',']','_кв','_',','],['','','.кв.',' ',', '],$r_prev['type'])." на ".str_replace(['[',']','_кв','_',','],['','','.кв.',' ',', '],$post['type']);
|
||
}
|
||
}
|
||
|
||
if($post['work_type'] !== $r_prev['work_type']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($post['work_type']) || $post['work_type'] === 'null'){
|
||
$dop_text .= "Удален тип клиента ".str_replace(['[',']','_',','],['','',' ',', '],$r_prev['work_type']);
|
||
} else if(empty($r_prev['work_type']) || $r_prev['work_type'] === 'null'){
|
||
$dop_text .= "Добавлен тип клиента ".str_replace(['[',']','_',','],['','',' ',', '],$post['work_type']);
|
||
} else {
|
||
$dop_text .= "Изменен тип клиента с ".str_replace(['[',']','_',','],['','',' ',', '],$r_prev['work_type'])." на ".str_replace(['[',']','_',','],['','',' ',', '],$post['work_type']);
|
||
}
|
||
}
|
||
|
||
if($post['role'] !== $r_prev['role']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($post['role']) || $post['role'] === 'null'){
|
||
$dop_text .= "Удалена роль клиента ".str_replace(['[',']','_',','],['','',' ',', '],$r_prev['role']);
|
||
} else if(empty($r_prev['role']) || $r_prev['role'] === 'null'){
|
||
$dop_text .= "Добавлена роль клиента ".str_replace(['[',']','_',','],['','',' ',', '],$post['role']);
|
||
} else {
|
||
$dop_text .= "Изменена роль клиента с ".str_replace(['[',']','_',','],['','',' ',', '],$r_prev['role'])." на ".str_replace(['[',']','_',','],['','',' ',', '],$post['role']);
|
||
}
|
||
}
|
||
if($post['opis'] !== $r_prev['opis']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($post['opis']) || $post['opis'] === ''){
|
||
$dop_text .= "Удален комментарий ".$r_prev['opis'];
|
||
} else if(empty($r_prev['opis']) || $r_prev['opis'] === ''){
|
||
$dop_text .= "Добавлен комментарий «".$post['opis']."»";
|
||
} else {
|
||
$dop_text .= "Изменен комментарий с «".$r_prev['opis']."» на «".$post['opis']."»";
|
||
}
|
||
}
|
||
|
||
if((int)$post['source'] !== (int)$r_prev['source']){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if((int)$post['source'] == 0){
|
||
$prev_source = mysql_fetch_assoc(mysql_query("SELECT `source` FROM `advertising_sources` WHERE `id` = ".(int)$r_prev['source']))['source'];
|
||
$dop_text .= "Удален источник «".$prev_source."»";
|
||
} else if((int)$r_prev['source'] == 0){
|
||
$source = mysql_fetch_assoc(mysql_query("SELECT `source` FROM `advertising_sources` WHERE `id` = ".(int)$post['source']))['source'];
|
||
$dop_text .= "Добавлен источник «".$source."»";
|
||
} else {
|
||
$source = mysql_fetch_assoc(mysql_query("SELECT `source` FROM `advertising_sources` WHERE `id` = ".(int)$post['source']))['source'];
|
||
$prev_source = mysql_fetch_assoc(mysql_query("SELECT `source` FROM `advertising_sources` WHERE `id` = ".(int)$r_prev['source']))['source'];
|
||
$dop_text .= "Изменен источник с «".$prev_source."» на «".$source."»";
|
||
}
|
||
}
|
||
|
||
if((int)$post['employee'] !== (int)$r_prev['employee_id']) {
|
||
|
||
if ($dop_text != '')
|
||
$dop_text .= "<br>";
|
||
|
||
if (empty($post['employee']) || $post['employee'] === '') {
|
||
$prev_employee = mysql_fetch_assoc(mysql_query("SELECT `name` FROM `partners_employees` WHERE `id` = " . (int)$r_prev['employee_id']))['name'];
|
||
$dop_text .= "Сотрудник партнёра «$prev_employee» был отвязан от клиента";
|
||
} else if(!($r_prev['employee_id']) || $r_prev['employee_id'] === '') {
|
||
$new_employee = mysql_fetch_assoc(mysql_query("SELECT `name` FROM `partners_employees` WHERE `id` = " . (int)$post['employee']))['name'];
|
||
$dop_text .= "Сотрудник партнёра «$new_employee» был привязан к клиенту";
|
||
} else {
|
||
$prev_employee = mysql_fetch_assoc(mysql_query("SELECT `name` FROM `partners_employees` WHERE `id` = " . (int)$r_prev['employee_id']))['name'];
|
||
$new_employee = mysql_fetch_assoc(mysql_query("SELECT `name` FROM `partners_employees` WHERE `id` = " . (int)$post['employee']))['name'];
|
||
$dop_text .= "У клиента был изменен сотрудник партнёра с «$prev_employee» на «$new_employee»";
|
||
}
|
||
}
|
||
|
||
if($post['birthday'] !== $r_prev['birthday']){
|
||
|
||
if($post['birthday'] != '-0001-11-30' ){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
if(empty($post['birthday']) || $post['birthday'] === '' || $post['birthday'] == 'undefined-undefined-'){
|
||
if($r_prev['birthday'] != '0000-00-00'){
|
||
$dop_text .= "Удалена дата дня рождения «".$r_prev['birthday']."»";
|
||
}
|
||
} else if(empty($r_prev['birthday']) || $r_prev['birthday'] === '0000-00-00'){
|
||
$dop_text .= "Добавлена дата дня рождения «".$post['birthday']."»";
|
||
} else {
|
||
$dop_text .= "Изменена дата дня рождения с «".$r_prev['birthday']."» на «".$post['birthday']."»";
|
||
}
|
||
}
|
||
}
|
||
|
||
$phone2_arr = json_decode(html_entity_decode($post['phone2']), ENT_QUOTES);
|
||
$prevphone2_arr = json_decode(html_entity_decode($r_prev['phone2']), ENT_QUOTES);
|
||
|
||
if(count($phone2_arr) != count($prevphone2_arr)){
|
||
if(count($phone2_arr) > count($prevphone2_arr)){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
$dop_text .= "Добавлены доп. телефоны: ";
|
||
foreach ($phone2_arr as $ph){
|
||
if(!in_array($ph, $prevphone2_arr)){
|
||
$dop_text .= $ph.", ";
|
||
}
|
||
}
|
||
|
||
} else if(count($phone2_arr) < count($prevphone2_arr)){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
$dop_text .= "Удалены доп. телефоны: ";
|
||
foreach ($prevphone2_arr as $ph){
|
||
if(!in_array($ph, $phone2_arr)){
|
||
$dop_text .= $ph.", ";
|
||
}
|
||
}
|
||
}
|
||
}
|
||
foreach ($phone2_arr as $key => $ph){
|
||
if(isset($prevphone2_arr[$key]) && $ph !== $prevphone2_arr[$key]){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
$dop_text .= "Изменен номер с ".$prevphone2_arr[$key]." на ". $ph;
|
||
}
|
||
}
|
||
|
||
$objects_arr = json_decode(html_entity_decode($post['objects']), ENT_QUOTES);
|
||
$prevobjects_arr = json_decode(html_entity_decode($r_prev['objects']), ENT_QUOTES);
|
||
|
||
/* if(count($objects_arr) == 0 && count($prevobjects_arr) == 0){
|
||
} else {
|
||
foreach($prevobjects_arr as $obj){
|
||
if(!in_array($obj, $objects_arr)){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
$obj_res = mysql_fetch_assoc(mysql_query("SELECT `adres` `nazv` FROM `objects` WHERE `id` = ".$obj));
|
||
$nazv_obj = $obj_res['nazv'].' '.$obj_res['adres'];
|
||
$dop_text .= "Удален объект «".$nazv_obj."»";
|
||
}
|
||
}
|
||
foreach($objects_arr as $obj){
|
||
if(!in_array($obj, $prevobjects_arr)){
|
||
if($dop_text != '') $dop_text .= "<br>";
|
||
$obj_res = mysql_fetch_assoc(mysql_query("SELECT `adres` `nazv` FROM `objects` WHERE `id` = ".$obj));
|
||
$nazv_obj = $obj_res['nazv'].' '.$obj_res['adres'];
|
||
$dop_text .= "Добавлен объект «".$nazv_obj."»";
|
||
}
|
||
}
|
||
}*/
|
||
|
||
|
||
if($dop_text != ''){
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`, `dop_text`, `read`) VALUES (".$_SESSION['id'].", ".$post['id'].", '0', 'update', '".$dop_text."', '1')";
|
||
mysql_query($sql_conf);
|
||
}
|
||
}
|
||
} else {
|
||
$funnel = 0;
|
||
if($post['funnel_id']) $funnel = (int)$post['funnel_id'];
|
||
|
||
if ($post['stage'] === 0 || $post['stage'] === '0') {
|
||
$post['stage'] = 1;
|
||
}
|
||
|
||
$opis = mysql_real_escape_string($post['opis']);
|
||
|
||
$sql = "INSERT INTO clients(`fio`, `email`, `phone`, `phone2`, `type`, `work_type`, `opis`, `id_agent`, `date_add`, `status`, `budget`, `who_work`, `confirm`, `role`, `objects`, `source`, `employee_id`, `birthday`, `stage`, `hot`,`priority`, `of_objects`, `funnel_id`) VALUES('$post[fio]', '".trim($post['email'])."' ,'$post[phone]','$post[phone2]','$post[type]', '$workType', '$opis', '$_SESSION[id]', NOW(), '$post[status]', '$post[budget]', '$post[who_work]', '$post[confirm]', '$post[role]', '$post[objects]', '$post[source]', '$post[employee]', '$post[birthday]', '$post[stage]', '$post[hot]', '$post[priority]', '$post[of_objects]', '$funnel')";
|
||
$inserd_client = true;
|
||
if($post['who_work'] != $_SESSION['id'] && $post['confirm'] == 0){
|
||
//Добавляем событие передачи
|
||
$insert_sent = true;
|
||
}
|
||
}
|
||
|
||
mysql_query($sql);
|
||
//return var_export(mysql_errno());
|
||
|
||
if(isset($inserd_client)){
|
||
/**** Инфа по ипотеке***/
|
||
$id_cl = mysql_insert_id();
|
||
self::update_objects($id_cl, $post['objects']);
|
||
self::update_phone2($id_cl, $post['phone2']);
|
||
//Добавление договора
|
||
if (isset($post['contracts'])) {
|
||
$contracts = json_decode(html_entity_decode($post['contracts']), true);
|
||
foreach($contracts as $contract) {
|
||
$date_start = strtotime($contract['date_start']);
|
||
$date_end = strtotime($contract['date_end']);
|
||
$sql = "INSERT INTO contracts_client SET ".
|
||
"client_id = {$id_cl}, ".
|
||
"type = {$contract['type']}, ".
|
||
"date_start = {$date_start}, ".
|
||
"date_end = {$date_end}, ".
|
||
"number = '{$contract['number']}', ".
|
||
"days = {$contract['days_mes_end']}, ".
|
||
"send = {$contract['no_mes_end']}";
|
||
|
||
if (!mysql_query($sql)) {
|
||
echo mysql_error();
|
||
}
|
||
}
|
||
}
|
||
|
||
self::get_class_etap($id_cl, $funnel);
|
||
$sql_ipoteka = "INSERT INTO "
|
||
."`ipoteka` SET "
|
||
. "`client_id`=$id_cl,"
|
||
. "`rynok`='$post[rynok]',"
|
||
. "`yes_object`=".(int)$post[yes_object].","
|
||
. "`jc`='$post[jc]',"
|
||
. "`ante_pr`='$post[ante_pr]',"
|
||
. "`ante_rub`='$post[ante_rub]',"
|
||
. "`comment`='$post[comment_ipoteka]',"
|
||
. "`yes_doc`=".(int)$post[yes_doc].","
|
||
. "`number_doc`='$post[number_doc]',"
|
||
. "`date_doc`='$post[date_doc]',"
|
||
. "`doc_komis_pr`='$post[doc_komis_pr]',"
|
||
. "`doc_komis`='$post[doc_komis]',"
|
||
. "`yes_bank`=".(int)$post[yes_bank].","
|
||
. "`date_bank`='$post[date_bank]',"
|
||
. "`employee_bank`='$post[employee_bank]',"
|
||
. "`banks`='$post[banks]',"
|
||
. "`yes_resolve`=".(int)$post[yes_resolve].","
|
||
. "`resolve`='$post[resolve]',"
|
||
. "`comment_resolve`='$post[comment_resolve]',"
|
||
. "`yes_issue`=".(int)$post[yes_issue].","
|
||
. "`bank_issue`='$post[bank_issue]',"
|
||
. "`rate_issue`='$post[rate_issue]',"
|
||
. "`term_issue`='$post[term_issue]',"
|
||
. "`yes_brak`='$post[yes_brak]',"
|
||
. "`relationship`='$post[relationship]',"
|
||
. "`summa_object`='$post[summa_object]',"
|
||
. "`age`='$post[age]',"
|
||
. "`co_borrower_fio`='$post[co_borrower_fio]',"
|
||
. "`co_borrower_age`='$post[co_borrower_age]',"
|
||
. "`contacts`='$post[contacts]',"
|
||
. "`co_borrower_dohod`='$post[co_borrower_dohod]',"
|
||
. "`income`='$post[income]',"
|
||
. "`credit_load`='$post[credit_load]'";//echo $sql_ipoteka. ' 2';
|
||
mysql_query($sql_ipoteka);
|
||
/***********************/
|
||
/* Инфа по кредитам */
|
||
$sql_credit = "INSERT INTO `credit`
|
||
(`client_id`,
|
||
`bancks_credit`,
|
||
`summa_credit`,
|
||
`komissiya_credit`,
|
||
`cel_credit`,
|
||
`age_credit`,
|
||
`propiska_credit`,
|
||
`nagruzka_credit`,
|
||
`dohod_credit`,
|
||
`dava_ndfl_credit`,
|
||
`spravka_credit`,
|
||
`phone_credit`,
|
||
`podachi_credit`,
|
||
`not_own_credit`,
|
||
`yes_deduction_credit`,
|
||
`overdue_credit`,
|
||
`mfo_credit`,
|
||
`kvartira_credit`,
|
||
`dom_credit`,
|
||
`uchastok_credit`,
|
||
`car_credit`,
|
||
`kol_nagruzka_credit`)
|
||
VALUES
|
||
({$id_cl},
|
||
'$post[bancks_credit]',
|
||
'$post[summa_credit]',
|
||
'$post[komissiya_credit]',
|
||
'$post[cel_credit]',
|
||
'$post[age_credit]',
|
||
'$post[propiska_credit]',
|
||
'$post[nagruzka_credit]',
|
||
'$post[dohod_credit]',
|
||
'$post[dava_ndfl_credit]',
|
||
'$post[spravka_credit]',
|
||
'$post[phone_credit]',
|
||
'$post[podachi_credit]',
|
||
'$post[not_own_credit]',
|
||
'$post[yes_deduction_credit]',
|
||
'$post[overdue_credit]',
|
||
'$post[mfo_credit]',
|
||
'$post[kvartira_credit]',
|
||
'$post[dom_credit]',
|
||
'$post[uchastok_credit]',
|
||
'$post[car_credit]',
|
||
'$post[kol_nagruzka_credit]'
|
||
);
|
||
";
|
||
// echo $sql_credit;
|
||
mysql_query($sql_credit);
|
||
}
|
||
if(isset($insert_sent)){
|
||
|
||
// Получаем ID клиента и нового владельца
|
||
$client_id_check_event = intval($post['id']);
|
||
$new_owner_id_check_event = intval($post['who_work']);
|
||
|
||
if ($client_id_check_event > 0 && $new_owner_id_check_event > 0) {
|
||
// Помечаем как прочитанные все события по этому клиенту, кроме нового владельца
|
||
$sql_clear = "UPDATE events_clients SET `read` = 1, date_update = NOW() WHERE client_id = $client_id_check_event AND event = 'transmitted' AND user_id != $new_owner_id_check_event";
|
||
mysql_query($sql_clear);
|
||
}
|
||
|
||
//$id_cl = mysql_insert_id();
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`) VALUES (".$_SESSION['id'].", ".$id_cl.", ".$post['who_work'].", 'transmitted')";
|
||
mysql_query($sql_conf);
|
||
if($post['who_work'] == 0){ //Если передача в общие то восстанавливаем клиента
|
||
mysql_query("UPDATE clients SET deleted=0 WHERE id={$id_cl}");
|
||
$dop_text_ev = "Переведен в общие";
|
||
$sql_ev = "INSERT INTO events_clients (client_id, event, dop_text, user_id) VALUES ({$id_cl}, 'update', '{$dop_text_ev}', {$_SESSION['id']})";
|
||
mysql_query($sql_ev);
|
||
}
|
||
$agent = new User;
|
||
$agent->get($_SESSION['id']);
|
||
|
||
if(((int)$agent->agencyId == 8353 || (int)$agent->agencyId == 16001) && $post[who_work] != 0){
|
||
$sql = "UPDATE clients SET confirm=1, who_work=$post[who_work] WHERE id=$id_cl";
|
||
|
||
mysql_query($sql);
|
||
|
||
$sql="UPDATE user_client_events SET user_id=$post[who_work] WHERE client_id=$id_cl";
|
||
mysql_query($sql);
|
||
|
||
// if(isset($_GET['event'])){
|
||
$sql = "UPDATE `events_clients` set `read` = 1, date_update='".date('Y-m-d H:i:s')."' WHERE client_id=$id_cl";
|
||
// echo $sql;
|
||
mysql_query($sql);
|
||
// }
|
||
|
||
$sql = "INSERT INTO `events_clients` (user_id, client_id, from_id, event, `read`) VALUES ('".$post[who_work]."', '".$id_cl."', '".$post[who_work]."', 'accepted', '1')";
|
||
mysql_query($sql);
|
||
$sqlUser = "SELECT `agency_name`, `first_name`, `last_name`, `middle_name`, `phone`, `phone2` FROM `users` where id=".$post[who_work];
|
||
$qUser = mysql_query($sqlUser);
|
||
$rUser = mysql_fetch_assoc($qUser);
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']);
|
||
if ($rUser['agency']) {
|
||
$sobstv = $rUser['agency_name'];
|
||
} else {
|
||
$agency = new User;
|
||
$agency->get($post[who_work]);
|
||
if (isset($agency->agencyName)) {
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']) . " Агентство " . $agency->agencyName;
|
||
} else {
|
||
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']);
|
||
}
|
||
}
|
||
$num_search = num_search($rUser['phone']);
|
||
//Передача объекта
|
||
$sql_confirm_obj = "SELECT * FROM client_confirm_objects WHERE client_id = $id_cl AND status = 0";
|
||
$q_confirm_obj = mysql_query($sql_confirm_obj);
|
||
|
||
$is_confirm_obj = false;
|
||
if(mysql_num_rows($q_confirm_obj) > 0){
|
||
$r_confirm_obj = mysql_fetch_assoc($q_confirm_obj);
|
||
|
||
$is_confirm_obj = (bool)$r_confirm_obj['confirm_objects'];
|
||
|
||
}
|
||
|
||
|
||
|
||
if($is_confirm_obj){
|
||
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
|
||
|
||
$sql_client = "SELECT * FROM `client_objects` WHERE client_id = $id_cl";
|
||
$q_client = mysql_query($sql_client);
|
||
|
||
|
||
while($object = mysql_fetch_assoc($q_client)){
|
||
$sql_up = "UPDATE objects SET id_add_user = '".$post[who_work]."', phone='".$rUser['phone']."', sobstv='".$sobstv."' WHERE id = ".$object['object_id'];
|
||
//echo $sql_up;
|
||
mysql_query($sql_up);
|
||
// перенос Зипал
|
||
$sql = "UPDATE zipal_objects SET user_id=$post[who_work], send_to_update=1 WHERE object_id={$object['object_id']}";
|
||
mysql_query($sql);
|
||
|
||
$sqlPack = "UPDATE advertising_package_object_publish SET send_to_update = '1', error_when_send_to_update = '' WHERE object_id={$object['object_id']}";
|
||
mysql_query($sqlPack);
|
||
|
||
$sql_sph = "UPDATE objects SET id_add_user = {$_SESSION['id']} WHERE id = ".$object['object_id'];
|
||
|
||
$db_sphinx->query($sql_sph);
|
||
}
|
||
}
|
||
|
||
mysql_query("UPDATE client_confirm_objects SET status = 1 WHERE client_id = $id_cl AND status = 0");
|
||
}
|
||
}
|
||
$client_id = 0;
|
||
if(isset($id_cl)){
|
||
$client_id = $id_cl;
|
||
} else {
|
||
$client_id = $post['id'];
|
||
}
|
||
|
||
// Добавляем теги по клиенту
|
||
if (is_string($post['activities']))
|
||
$arr_activities = json_decode(html_entity_decode($post['activities']), ENT_QUOTES);
|
||
else if (is_array($post['activities']))
|
||
$arr_activities = $post['activities'];
|
||
else
|
||
$arr_activities = (int)$post['activities'];
|
||
|
||
if ($client_id) {
|
||
|
||
$sql = "DELETE FROM `clients_activities` WHERE `client_id` = '".$client_id."'";
|
||
mysql_query($sql);
|
||
|
||
if (!empty($arr_activities)) {
|
||
if (is_array($arr_activities)) {
|
||
$sql_a = [];
|
||
foreach($arr_activities as $key => $activity_id) {
|
||
$sql_a[] = "('$client_id', '$activity_id')";
|
||
}
|
||
if (count($sql_a) > 0) {
|
||
$sql = "INSERT INTO `clients_activities` (`client_id`, `activity_id`) VALUES " . implode(', ', $sql_a);
|
||
mysql_query($sql);
|
||
}
|
||
} else if (is_numeric($arr_activities) && $arr_activities > 0) {
|
||
$sql = "INSERT INTO `clients_activities` (`client_id`, `activity_id`) VALUES ('$client_id', '$arr_activities')";
|
||
mysql_query($sql);
|
||
}
|
||
}
|
||
}
|
||
|
||
// Сохраняем поля для интерактивных документов
|
||
if ($client_id && !empty($post['variables'])) {
|
||
if (is_array($post['variables'])) {
|
||
$docs = new Docs();
|
||
$docs->saveDocFields($client_id, "clients", $post['variables']);
|
||
}
|
||
}
|
||
|
||
if (isset($inserd_client) && $inserd_client) {
|
||
//сохраняем данные wazzap
|
||
Clients::createClientWazzapData($client_id, $post);
|
||
}
|
||
if($user_ses->agencyId == 5238 || $user_ses->agencyId == 13154){
|
||
if($post['send_web_hook']){
|
||
$webHook = new WebHookSend($user_ses->agencyId, 1, $client_id, 'client');
|
||
}
|
||
}
|
||
|
||
Clients::add_client_info($client_id, $post);
|
||
|
||
return intval($client_id);
|
||
}
|
||
|
||
return false;
|
||
}
|
||
|
||
public static function createClientWazzapData($client_id, $post) {
|
||
if ($client_id) {
|
||
if (isset($post['wazzap_chat_type']) && $post['wazzap_chat_type'] &&
|
||
isset($post['wazzap_chat_id']) && $post['wazzap_chat_id'] &&
|
||
isset($post['wazzap_channel_id']) && $post['wazzap_channel_id']) {
|
||
|
||
$wazzap_chat_type = $post['wazzap_chat_type'];
|
||
$wazzap_chat_id = $post['wazzap_chat_id'];
|
||
$wazzap_channel_id = $post['wazzap_channel_id'];
|
||
$wazzap_user_id = $post['wazzap_user_id'];
|
||
$wazzap_integration_id = $post['wazzap_integration_id'];
|
||
|
||
//связываем клиента с чатом wazzap
|
||
$sql = "INSERT INTO `client_data_wazzap` (`client_id`, `chat_type`, `chat_id`, `channel_id`, `user_id`, `integration_id`) VALUES ('$client_id', '$wazzap_chat_type', '$wazzap_chat_id', '$wazzap_channel_id', '$wazzap_user_id', '$wazzap_integration_id')";
|
||
mysql_query($sql);
|
||
|
||
$pdo = new MysqlPdo(hst, ndb, user, pass);
|
||
$sql = "SET NAMES 'utf8'";
|
||
$pdo->query($sql);
|
||
|
||
$agency_id = User::getUserAgencyID();
|
||
$wazzap = new Wazzap($agency_id, $pdo);
|
||
$wazzap->createWazzapContact($client_id, $wazzap_user_id, $post["fio"], $wazzap_chat_type, $wazzap_chat_id);
|
||
}
|
||
}
|
||
}
|
||
|
||
public function verifity_phone($post) {
|
||
$user_ses = new User;
|
||
$user_ses->get($_SESSION['id']);
|
||
$depClass = new Department();
|
||
/*if (($post['id'] && (!isset($post['phone']) || !$post['phone']))) {
|
||
$sqlPhone = "SELECT phone FROM clients 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.who_work = 0 THEN clients.id_agent ELSE clients.who_work END FROM clients WHERE clients.phone='$post[phone]')";
|
||
// echo $_POST[objects];
|
||
$sql = "select id as idc, phone, if(who_work = 0, id_agent, who_work) as id, (SELECT CONCAT(last_name, ' ', first_name, ' ', middle_name) as fio from users WHERE id = if(clients.who_work = 0, clients.id_agent, clients.who_work)) as fio from clients WHERE cancel=0 AND (clients.phone='$post[verifity_phone]' OR id in (SELECT client_id FROM clients_phone2 WHERE phone = '$post[verifity_phone]'))";
|
||
|
||
if ($post['id']) {
|
||
$sql = $sql." and clients.id != $post[id]";
|
||
}
|
||
|
||
//добавляем ограничение на воронку, ищем повторы внутри воронки
|
||
if(isset($post['funnel_id'])) {
|
||
$funnelForCheck = (int)$post['funnel_id'];
|
||
} else {
|
||
$funnelForCheck = 0;
|
||
}
|
||
|
||
|
||
if($user_ses->agencyId != 21951){
|
||
|
||
$sql = $sql." and clients.funnel_id = $funnelForCheck";
|
||
|
||
}
|
||
|
||
|
||
$rez = mysql_query($sql);
|
||
$count = mysql_num_rows($rez);
|
||
if ($count > 0) {
|
||
$agencyId = null;
|
||
if($user_ses->id_manager == 0 && $user_ses->agency == 0){ //Не агентство
|
||
$agencyId = $_SESSION['id'];
|
||
} else
|
||
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 == 7945 || $agencyId == 7441){
|
||
} else if ($agencyId == 7384 && ($post['source'] == 498 || $post['source'] == 589 || $post['source'] == 677)){
|
||
|
||
} else {
|
||
$idsFromAgency = array();
|
||
$idsFromAgency[] = $agencyId;
|
||
$agency = new User();
|
||
|
||
$managers = $agency->getAllManagers($agencyId);
|
||
if($managers) {
|
||
foreach ($managers as $i => $manager) {
|
||
$idsFromAgency[] = $manager['id'];
|
||
if((int)$manager['role_id'] > 0 && (int)$manager['department_id'] > 0){
|
||
$role_user = $depClass->getRole((int)$manager['role_id']);
|
||
if($role_user['role'] == 'admin_department'){
|
||
$menagerDep = User::getDepManagers($role_user['department_id']);
|
||
|
||
foreach($menagerDep as $md){
|
||
if(!in_array($md['id'], $idsFromAgency)){
|
||
$idsFromAgency[] = $md['id'];
|
||
}
|
||
$thisAgents = User::getAgentsOfAgency($md['id'], true);
|
||
|
||
foreach($thisAgents as $da){
|
||
if (!in_array($da['id'], $idsFromAgency)) {
|
||
$idsFromAgency[] = $da['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)) {
|
||
$fio = trim($user['fio']);
|
||
$errorText = "Клиент с указанным телефоном уже привязан к агенту $fio! ID клиента ".$user['idc'];
|
||
$errorText .= "<p><a class='double_client_req' href='javascript:{}' data-id='".$user['idc']."'>Добавить новую заявку по данному клиенту?</a></p>";
|
||
|
||
return $errorText;
|
||
}
|
||
|
||
}
|
||
}
|
||
}
|
||
return 0;
|
||
}
|
||
|
||
public function delReason($post) {
|
||
|
||
$errors = [];
|
||
$dop_text = "";
|
||
$select_text = "";
|
||
if($post['note'] == 1){
|
||
// При закрытии отказом (denial) JS передаёт текущую дату в $post['datazakl'],
|
||
// парсить её не нужно — используем текущее время напрямую.
|
||
$t = date_create();
|
||
$formatted_date = date_format($t,"Y-m-d H:i:s");
|
||
$formatted_dateZajavki = date_format($t,"d.m.Y H:i:s");
|
||
}else{
|
||
$test = substr($post['datazakl'], 0, -3);
|
||
$dateZajavki = date('d.m.Y', intval($test));
|
||
$phpdate = strtotime($dateZajavki);
|
||
$formatted_d = date( 'Y-m-d', $phpdate );
|
||
$today = date('Y-m-d');
|
||
if($today == $formatted_d){
|
||
$formatted_date = date('Y-m-d H:i:s');
|
||
}else{
|
||
$formatted_date = date( 'Y-m-d H:i:s', $phpdate );
|
||
}
|
||
$formatted_dateZajavki = date( 'd.m.Y', $phpdate );
|
||
}
|
||
|
||
if ($post['denial']) {
|
||
$sql_d = "SELECT * FROM denial_work WHERE id = ".$post['denial'];
|
||
if ($q_d = mysql_query($sql_d)) {
|
||
$r_d = mysql_fetch_assoc($q_d);
|
||
$select_text = $r_d['name'];
|
||
} else {
|
||
$errors[] = mysql_error();
|
||
}
|
||
}
|
||
|
||
if ($post['tempid']) {
|
||
$sql_mes = "SELECT * FROM step_notify_closure WHERE temp_id = {$post['tempid']}";
|
||
if ($q_mes = mysql_query($sql_mes)) {
|
||
if (mysql_num_rows($q_mes) > 0) {
|
||
$mes = mysql_fetch_assoc($q_mes);
|
||
}
|
||
} else {
|
||
$errors[] = mysql_error();
|
||
}
|
||
}
|
||
|
||
if (!empty($post['reason']) || $select_text != "") {
|
||
|
||
$dop_text .= "Причина: «".$select_text.". ".$post['reason']."»";
|
||
if (isset($mes)) {
|
||
$text = $mes['text']."<br>Закрыт. ".$dop_text;
|
||
if (mysql_query("UPDATE step_notify_closure SET text='{$text}', send=0 WHERE temp_id = {$post['tempid']}"))
|
||
$errors[] = mysql_error();
|
||
}
|
||
}
|
||
|
||
|
||
if (!empty($select_text))
|
||
$sql = "UPDATE clients SET reason='".$select_text.". ".$post['reason']."', who_delete = '$_SESSION[id]', deleted=1, denial = '$post[denial]' WHERE id=$post[id_del_client]";
|
||
else
|
||
$sql = "UPDATE clients SET reason='".$post['reason']."', who_delete = '$_SESSION[id]', deleted=1, denial = '$post[denial]' WHERE id=$post[id_del_client]";
|
||
|
||
if (isset($post['summa']) && !empty($post['luck'])) {
|
||
|
||
if ($dop_text != '')
|
||
$dop_text .= " ";
|
||
|
||
$dop_text .= "$post[reason] Совершена сделка на ".$post['summa']." руб.".$formatted_dateZajavki;
|
||
|
||
if (isset($mes)) {
|
||
$text = $mes['text']."<br>Закрыт. Совершена сделка на ".$post['summa']." руб. ".$formatted_dateZajavki;
|
||
if (mysql_query("UPDATE step_notify_closure SET text='{$text}', send=0 WHERE temp_id = {$post['tempid']}"))
|
||
$errors[] = mysql_error();
|
||
}
|
||
|
||
$sql = "UPDATE clients SET reason='$dop_text', who_delete = '$_SESSION[id]', deleted=1, summa='$post[summa]', confirm='$post[luck]' WHERE id=$post[id_del_client]";
|
||
}
|
||
|
||
if (!mysql_query($sql))
|
||
$errors[] = mysql_error();
|
||
|
||
$sql = "INSERT INTO `events_clients` (user_id, client_id, from_id, event, `read`, `dop_text`, `date_update`) VALUES ('".$_SESSION['id']."', '".$post['id_del_client']."', '".$_SESSION['id']."', 'delete', '1', '".$dop_text."', '".$formatted_date."')";
|
||
if (!mysql_query($sql))
|
||
$errors[] = mysql_error();
|
||
|
||
if (count($errors))
|
||
return $errors;
|
||
else
|
||
return true;
|
||
|
||
}
|
||
|
||
public function restore($id) {
|
||
|
||
$errors = [];
|
||
$sql = "UPDATE `clients` SET reason='', confirm = 1, who_delete=NULL, deleted=0 WHERE id=$id";
|
||
|
||
$dop_text = "Восстановлен из закрытых.";
|
||
$sql2 = "INSERT INTO `events_clients` (
|
||
user_id,
|
||
client_id,
|
||
from_id,
|
||
event,
|
||
`read`,
|
||
`dop_text`
|
||
) VALUES (
|
||
'".$_SESSION['id']."',
|
||
'".$id."',
|
||
'".$_SESSION['id']."',
|
||
'restored',
|
||
'1',
|
||
'".$dop_text."'
|
||
)";
|
||
|
||
if (!(mysql_query($sql) && mysql_query($sql2)))
|
||
$errors[] = mysql_error();
|
||
|
||
if (count($errors))
|
||
return $errors;
|
||
else
|
||
return true;
|
||
|
||
}
|
||
|
||
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 WHERE cancel = 0 AND $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 WHERE cancel = 0 AND $bd_who_work AND deleted<>1 $bd_usl ORDER BY clients.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 WHERE cancel = 0 AND 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 WHERE who_work = $id_agent AND confirm=1 AND deleted<>1 ORDER BY clients.id DESC";
|
||
$rez = mysql_query($sql);
|
||
while($cl = mysql_fetch_assoc($rez))
|
||
{
|
||
$result['clients'][] = $cl;
|
||
}
|
||
return $result;
|
||
}
|
||
|
||
public function getClientsWithCommon($id_agent, $agencyId) { // используется в footer.php
|
||
$result = array();
|
||
$sql_count = "SELECT COUNT(*) FROM clients WHERE cancel = 0 AND ((who_work = $id_agent AND confirm=1) or (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) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$agencyId))))) 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 WHERE ((who_work = $id_agent AND confirm=1) or (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) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$agencyId))))) AND deleted<>1 ORDER BY clients.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).") AND cancel = 0";
|
||
|
||
$sql_count = "SELECT COUNT(*) FROM clients WHERE $bd_usl_managers";
|
||
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
|
||
}
|
||
|
||
|
||
|
||
public function getCountClientsWhoWork($id_user) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients WHERE who_work=$id_user AND confirm=1 AND deleted<>1 AND cancel = 0";
|
||
$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 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 WHERE who_work=$id_user AND confirm=0 AND deleted<>1 AND cancel = 0";
|
||
$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 getCountResClients($id_user) {
|
||
//$sql_count = "SELECT COUNT(*) FROM clients 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 WHERE who_work=$id_user AND confirm=0 AND deleted<>1 AND cancel = 0";
|
||
$rez = mysql_result(mysql_query($sql_count),0);
|
||
$counter = $rez;
|
||
return $counter;
|
||
}
|
||
|
||
public function getCountWorkTypeClientsNumber($id_user, $workType) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients WHERE (who_work=$id_user or (id_agent=$id_user and who_work = 0)) AND deleted<>1 AND cancel = 0 AND work_type=$workType";
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
}
|
||
|
||
public function getCountNewClientsNumber($id_user, $workType) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients WHERE (who_work=$id_user or (id_agent=$id_user and who_work > 0)) AND confirm=0 AND deleted<>1 AND cancel = 0 AND work_type=$workType";
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
}
|
||
|
||
public function getCountEndClientsNumber($id_user, $workType) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients WHERE (who_work=$id_user or (id_agent=$id_user and who_work > 0)) AND status=2 AND deleted<>1 AND cancel = 0 AND work_type=$workType";
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
}
|
||
|
||
public function getCountWorkClientsNumber($id_user, $workType) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients WHERE who_work=$id_user AND and confirm= 1 AND status <> 2 AND deleted<>1 AND work_type=$workType AND cancel = 0";
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
}
|
||
|
||
public function getCountEndClients($id_user) {
|
||
$sql_count = "SELECT COUNT(*) FROM clients WHERE who_work=$id_user AND status=2 AND deleted<>1 AND cancel = 0";
|
||
$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 WHERE who_work=$id_user AND deleted<>1 AND cancel = 0";
|
||
$rez = mysql_result(mysql_query($sql_count),0);
|
||
return $rez;
|
||
}
|
||
|
||
//Получение id клиентов с просроченными этапами
|
||
public function getIdExpiredStages($where){
|
||
$user = new User;
|
||
$user->get($_SESSION['id']);
|
||
$agency_id = $user->agencyId;
|
||
$expiredStagesClients = array();
|
||
$stepIds = array();
|
||
$stepDays = array();
|
||
$funnelIds = array();
|
||
|
||
if($agency_id > 0){
|
||
//Этапы
|
||
$sql_f = "SELECT id FROM `funnel` WHERE agency_id=$agency_id AND deleted = 0";
|
||
$q_f = mysql_query($sql_f);
|
||
while($r_f = mysql_fetch_assoc($q_f)){
|
||
$funnelIds[] = (int)$r_f['id'];
|
||
}
|
||
|
||
$sql_st = "SELECT id, days_step FROM funnel_steps WHERE funnel_id in (".implode(',', $funnelIds).")";
|
||
$q_st = mysql_query($sql_st);
|
||
while($r_st = mysql_fetch_assoc($q_st)){
|
||
$stepDays[(int)$r_st['id']] = $r_st['days_step'];
|
||
}
|
||
$sql = "SELECT id, step_id, date_add, (SELECT date_update FROM clients_funnel_step WHERE client_id=clients.id) as date_update FROM clients WHERE 1 $where AND funnel_id > 0 AND step_id > 0";
|
||
|
||
$q = mysql_query($sql);
|
||
|
||
while($r = mysql_fetch_assoc($q)){
|
||
if($stepDays[(int)$r['step_id']] > 0){
|
||
$days_step = $stepDays[(int)$r['step_id']];
|
||
if(!empty($r['date_update'])){
|
||
$lostDate = $r['date_update'];
|
||
$interval = date_diff(new DateTime(), new DateTime($lostDate))->days;
|
||
if($interval > $days_step){
|
||
$expiredStagesClients[] = $r['id'];
|
||
}
|
||
} else {
|
||
$lostDate = $r['date_add'];
|
||
$interval = date_diff(new DateTime(), new DateTime($lostDate))->days;
|
||
if($interval > $days_step){
|
||
$expiredStagesClients[] = $r['id'];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return $expiredStagesClients;
|
||
}
|
||
|
||
public function getAllClients() {
|
||
$result = array();
|
||
$bd_usl_managers = "";
|
||
$bd_usl = "";
|
||
$p_sql = "";
|
||
$join = "";
|
||
|
||
$depClass = new Department();
|
||
$adminDep = false;
|
||
$dep_user = $depClass->getDepartment((int)$_SESSION['id']);
|
||
|
||
$searchCheckUserId = $_SESSION['id'];
|
||
$sql_check_permissions = "SELECT `menu_all_clients`, `menu_all_clients_edit` FROM user_permissions WHERE user_id = $searchCheckUserId";
|
||
$q_check_permissions = mysql_query($sql_check_permissions);
|
||
$r_check_permissions = mysql_fetch_assoc($q_check_permissions);
|
||
|
||
$clientsIdsDop = [];
|
||
|
||
if (!$_GET['all'] || !$_POST['all']) {
|
||
|
||
$get = clearInputData($_GET);
|
||
$post = clearInputData($_POST);
|
||
|
||
$searchUserId = $_SESSION['id'];
|
||
|
||
if ($_SESSION['users_admin']) {
|
||
$currentUser = new User;
|
||
$currentUser->checkPermissions();
|
||
$searchUserId = $currentUser->agencyId;
|
||
} else if ($r_check_permissions['menu_all_clients'] == 1) {
|
||
$currentUser = new User;
|
||
$currentUser->checkPermissions();
|
||
$searchUserId = $currentUser->agencyId;
|
||
} else if($dep_user['role'] == 'manager_office'){
|
||
$currentUser = new User;
|
||
$currentUser->checkPermissions();
|
||
$searchUserId = $dep_user['admin'];
|
||
$adminDep = true;
|
||
} else if($dep_user['role'] == 'manager_office_menager') {
|
||
//$currentUser = new User;
|
||
//$$currentUser->checkPermissions();
|
||
//$currentUser->checkPermissions();
|
||
//$searchUserId = $currentUser->id_manager;
|
||
$searchUserId = $_SESSION['id_manager'];
|
||
$adminDep = true;
|
||
}
|
||
|
||
//$mmid[] = "id_agent = $searchUserId";
|
||
if($post['filter_stage'] && $post['filter_stage'] == 'filter_work_add' && !isset($post['step'])){
|
||
$mmid[] = "id_agent = $searchUserId";
|
||
|
||
} else {
|
||
$mmid[] = "who_work = $searchUserId";
|
||
$wid[] = $searchUserId;
|
||
if($post['emp'] ){
|
||
$wid[] = $post['emp'];
|
||
}
|
||
}
|
||
if ($_GET['deleted']) {
|
||
|
||
$bd_usl = "AND deleted=1";
|
||
|
||
// если ищем по удаленным и под менеджером - пропускаем этот код - здесь идет добавление по агентству
|
||
if (!($_GET['deleted'] && $_SESSION['manager'])) {
|
||
$rez1 = mysql_query("SELECT id_manager FROM users WHERE id=$searchUserId");
|
||
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=$searchUserId");
|
||
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];
|
||
}
|
||
}
|
||
}
|
||
|
||
$arrWho_work = array();
|
||
$rez3 = mysql_query("SELECT id FROM users WHERE id_manager=$searchUserId");
|
||
while ($mm = mysql_fetch_row($rez3)) {
|
||
if($post['filter_stage'] && $post['filter_stage'] == 'filter_work_add' && !isset($post['step'])){
|
||
$mmid[] = "id_agent = " . $mm[0];
|
||
$wid[] = $mm[0];
|
||
} else {
|
||
$mmid[] = "who_work = " . $mm[0];
|
||
$arrWho_work[] = $mm[0];
|
||
$wid[] = $mm[0];
|
||
}
|
||
$rez04 = mysql_query("SELECT id, manager FROM users WHERE id_manager=$mm[0]");
|
||
while ($mm2 = mysql_fetch_row($rez04)) {
|
||
if($post['filter_stage'] && $post['filter_stage'] == 'filter_work_add' && !isset($post['step'])){
|
||
$mmid[] = "id_agent = " . $mm2[0];
|
||
} else {
|
||
$mmid[] = "who_work = " . $mm2[0];
|
||
$arrWho_work[] = $mm[0];
|
||
$wid[] = $mm[0];
|
||
if($mm2[1] > 0){
|
||
$rez004 = mysql_query("SELECT id FROM users WHERE id_manager=$mm2[0]");
|
||
while ($mm04 = mysql_fetch_row($rez004)){
|
||
if(!in_array($mm04[0], $arrWho_work)){
|
||
$arrWho_work[] = $mm04[0];
|
||
$mmid[] = "who_work = " . $mm04[0];
|
||
$wid[] = $mm04[0];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
$bd_usl_managers = " AND (".implode(" OR ",$mmid).")";
|
||
if(!empty($wid)){
|
||
$sql_doer = "SELECT * FROM clients_doers WHERE user_id in (".implode(',', $wid).") AND confirm = 1";
|
||
$q_doer = mysql_query($sql_doer);
|
||
while($r_doer = mysql_fetch_assoc($q_doer)){
|
||
$clientsIdsDop[] = $r_doer['client_id'];
|
||
}
|
||
$bd_usl_managers = " AND ((".implode(" OR ",$mmid).")";
|
||
|
||
if(!empty($clientsIdsDop)){
|
||
$bd_usl_managers .= " OR clients.id in (".implode(',', $clientsIdsDop).")";
|
||
}
|
||
$bd_usl_managers .= ")";
|
||
}
|
||
// echo $bd_usl_managers.'<br>';
|
||
} else {
|
||
// находим ИД агентства и по нему ищем всех свободных клиентов
|
||
$agencyId = -1;
|
||
if ($_SESSION['agency']) {
|
||
$agencyId = $_SESSION['id'];
|
||
} else if ($r_check_permissions['menu_all_clients'] == 1) {
|
||
$currentUser = new User;
|
||
$currentUser->checkPermissions();
|
||
$searchUserId = $dep_user['admin'];
|
||
} else {
|
||
if ($_SESSION['users_admin']) {
|
||
$currentUser = new User;
|
||
$currentUser->checkPermissions();
|
||
$agencyId = $currentUser->agencyId;
|
||
// } else if($dep_user['role'] == 'manager_office'){
|
||
// $currentUser = new User;
|
||
// $currentUser->checkPermissions();
|
||
// $searchUserId = $dep_user['admin'];
|
||
// $adminDep = true;
|
||
} else if($dep_user['role'] == 'manager_office_menager') {
|
||
//$currentUser = new User;
|
||
//$currentUser->checkPermissions();
|
||
$searchUserId = $_SESSION['id_manager'];
|
||
} 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) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$agencyId)))";
|
||
}
|
||
|
||
$get = clearInputData($_GET);
|
||
$post = clearInputData($_POST);
|
||
if(!empty($this->params_search)){
|
||
$post = $this->params_search;
|
||
}
|
||
if (isset($get['workType'])) {
|
||
$bd_usl.=" AND work_type = " .$get['workType'];
|
||
}
|
||
|
||
if($get['search'])
|
||
{
|
||
$phone = preg_replace('/[+\-\(\)\/\?,.;:%№!\s]/', '', $get['search']);
|
||
$bd_usl.=" AND (fio LIKE '%$get[search]%' OR phone LIKE '%$phone%' OR phone2 LIKE '%$phone%' OR email LIKE '%$get[search]%')";
|
||
$result['str_url_add'] = "search=".$get['search'];
|
||
}
|
||
if($post['search'])
|
||
{
|
||
$phone = preg_replace('/[+\-\(\)\/\?,.;:%№!\s]/', '', $post['search']);
|
||
$_SESSION['client_search'] = $post['search'];
|
||
$post['search'] = mb_strtolower(trim($post['search']), "UTF-8");
|
||
$bd_usl.=" AND (fio LIKE '%$post[search]%' OR phone LIKE '%$phone%' OR id in (SELECT client_id FROM clients_phone2 WHERE phone LIKE '%$phone%') OR email LIKE '%$post[search]%'";
|
||
|
||
if (preg_match('/^\d+$/', $post['search']))
|
||
$bd_usl .= " or id = ".$post['search'];
|
||
$bd_usl.=")";
|
||
$result['str_url_add'] = "search=".$post['search'];
|
||
} else {
|
||
unset($_SESSION['client_search']);
|
||
}
|
||
|
||
if($post['id']){
|
||
$bd_usl.=" AND id = {$post['id']}";
|
||
}
|
||
if($post['fio']){
|
||
$bd_usl.=" AND fio LIKE '%$post[fio]%'";
|
||
}
|
||
if($post['phone']){
|
||
$bd_usl.=" AND (phone LIKE '%$post[phone]%' OR id in (SELECT client_id FROM clients_phone2 WHERE phone LIKE '%$post[phone]%'))";
|
||
}
|
||
|
||
if($post['period']){
|
||
|
||
if($post['accepted'] || $post['transmitted']){
|
||
$dates = getPeriod($post['period'],$post['onDate'], $post['offDate']);
|
||
$date_between = $dates['between'];
|
||
$whereTasks = $dates['whereTasks'];
|
||
|
||
} else if($post['step'] || $post['source']){
|
||
|
||
$dates = getPeriod($post['period'], $post['onDate'], $post['offDate']);
|
||
$date_between = $dates['between'];
|
||
$bd_usl.= " AND `date_add` $date_between";
|
||
} else if($post['filter_stage_close'] || $post['filter_stage_hit']){
|
||
$dates = getPeriod($post['period'], $post['onDate'], $post['offDate']);
|
||
$date_between = $dates['between'];
|
||
|
||
if($post['filter_stage_close'] && (int)$post['date_tasks'] == 11){
|
||
$bd_usl.= " AND `date_add` $date_between";
|
||
} else {
|
||
|
||
$bd_usl .= " AND (if((SELECT count(*) FROM `events_clients` WHERE client_id=clients.id and event='delete' and user_id=clients.who_delete order by id desc limit 1)>0, "
|
||
. "(SELECT date_update FROM `events_clients` WHERE client_id=clients.id and event='delete' and user_id=clients.who_delete order by id desc limit 1) $date_between, "
|
||
. "clients.date_add $date_between))";
|
||
}
|
||
}
|
||
else {
|
||
|
||
if($post['period'] == 'period'){
|
||
$onDate = date('Y-m-d 00:00:00', strtotime($post['onDate']));
|
||
if(empty($onDate)) $onDate = '1970-01-01 00:00:00';
|
||
|
||
if(!empty($post['offDate'])) {
|
||
$offDate = date('Y-m-d 23:59:59', strtotime($post['offDate']));
|
||
} else {
|
||
$offDate = date('Y-m-d 23:59:59');
|
||
}
|
||
|
||
if($post['filter_stage'] && $post['filter_stage'] == 'filter_work_all_do'){
|
||
$bd_usl.= " AND `date_add` < '{$onDate}'";
|
||
} else {
|
||
$bd_usl.= " AND `date_add` between '{$onDate}' AND '{$offDate}'";
|
||
}
|
||
$_SESSION['on_date'] = date('d.m.Y', strtotime($onDate));
|
||
$_SESSION['off_date'] = date('d.m.Y', strtotime($offDate));
|
||
|
||
} else {
|
||
unset($_SESSION['on_date']);
|
||
unset($_SESSION['off_date']);
|
||
$dates = getPeriod($post['period'], $post['onDate'], $post['offDate']);
|
||
|
||
$date_between = $dates['between'];
|
||
|
||
//$arrPeriod = ['today' => '-0 day', 'week' => '-6 day', 'month' => '-30 day', 'quarter' => '-120 day', 'year' => '-365'];
|
||
//$days = date('Y-m-d', strtotime($arrPeriod[$post['period']]));
|
||
|
||
if($post['filter_stage'] && $post['filter_stage'] == 'filter_work_all_do'){
|
||
$bd_usl.= " AND `date_add` < '{$dates['dateStart']}'";
|
||
} else {
|
||
$bd_usl.= " AND `date_add` $date_between";
|
||
}
|
||
}
|
||
}
|
||
$_SESSION['client_period'] = $post['period'];
|
||
} else {
|
||
unset($_SESSION['client_period']);
|
||
}
|
||
$bd_stage = "";
|
||
if($post['filter_stage_work']){
|
||
|
||
if($post['filter_confirm'] || $post['filter_stage_send']){
|
||
$bd_stage = " and deleted <> '1'";
|
||
} else {
|
||
$bd_stage = " and deleted <> '1' and confirm > 0";
|
||
}
|
||
|
||
|
||
$_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(isset($post['denial'])){
|
||
$bd_stage .= " and denial = '".$post['denial']."'";
|
||
}
|
||
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_send']){
|
||
|
||
if($post['filter_stage_work']){
|
||
//$bd_usl.= " AND deleted <> '1' AND (confirm = 0 or confirm = 1) AND who_work != " . $_SESSION['id'] ;
|
||
} else {
|
||
$bd_usl.= " AND deleted <> '1' AND confirm = 0 AND who_work != " . $_SESSION['id'] ;
|
||
|
||
}
|
||
$_SESSION['filter_stage_send'] = 1;
|
||
} else {
|
||
unset($_SESSION['filter_stage_send']);
|
||
}
|
||
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']);
|
||
}
|
||
$funnel_id = 0;
|
||
if($post['funnel']){
|
||
|
||
if($post['funnel'] != 'all'){
|
||
$bd_usl.= " AND `funnel_id` in (".$post['funnel'].")";
|
||
}
|
||
$funnel_id = $post['funnel'];
|
||
} else if(!empty($this->params_search)) {
|
||
//$bd_usl.= " AND `funnel_id` = 0";
|
||
|
||
} else {
|
||
$bd_usl.= " AND `funnel_id` = 0";
|
||
}
|
||
|
||
if($post['step']){
|
||
|
||
if($post['step'] != 'all'){
|
||
$bd_usl.= " AND `step_id` = ".$post['step'];
|
||
}
|
||
|
||
}
|
||
|
||
if($post['source']){
|
||
|
||
$sourcesArr = explode(",", $post['source']);
|
||
$sourceArr = array();
|
||
if(!empty($sourcesArr )){
|
||
foreach($sourcesArr as $sourceCl){
|
||
if(strpos($sourceCl, 'all_') !== false){
|
||
|
||
$source_group = (int)str_replace('all_','',$sourceCl);
|
||
if($source_group > 0){
|
||
$sql_adv = "SELECT * FROM `advertising_sources` WHERE group_id = {$source_group}";
|
||
$q_adv = $this->db->query($sql_adv);
|
||
while($r_adv = $this->db->fetch_assoc($q_adv)){
|
||
$sourceArr[] = "`source` = '{$r_adv['id']}'";
|
||
}
|
||
} else if($source_group == 0){
|
||
$users_ids_this = array();
|
||
$CallEvents = new CallEvents();
|
||
$user_this = new User;
|
||
$user_this->get($_SESSION['id']);
|
||
$users_ids_this = array_keys($CallEvents->getAllUserAgency($user_this->agencyId, $users_ids_this));
|
||
$sql_adv = "SELECT * FROM `advertising_sources` WHERE group_id = {$source_group} AND (user_id in (".implode(',', $users_ids_this).") or manager_id in (".implode(',', $users_ids_this)."))";
|
||
$q_adv = $this->db->query($sql_adv);
|
||
while($r_adv = $this->db->fetch_assoc($q_adv)){
|
||
$sourceArr[] = "`source` = '{$r_adv['id']}'";
|
||
}
|
||
}
|
||
} else {
|
||
if($sourceCl == -1){
|
||
$sourceArr[] = "`source` is null";
|
||
$sourceArr[] = "`source` = ''";
|
||
$sourceArr[] = "`source` = 'null'";
|
||
$sourceArr[] = "`source` = '0'";
|
||
} else {
|
||
$sourceArr[] = "`source` = '{$sourceCl}'";
|
||
}
|
||
}
|
||
}
|
||
$bd_usl .= " AND (".implode(" OR ",$sourceArr).")";
|
||
|
||
}
|
||
}
|
||
|
||
if($post['filter_emp']){
|
||
$doers_who = array();
|
||
$clientsIdsDop = array();
|
||
$empwho = array();
|
||
$empArr = json_decode(html_entity_decode($post['filter_emp']), ENT_QUOTES);
|
||
|
||
foreach($empArr as $empId){
|
||
$temp_where = '';
|
||
|
||
//$empwho[] = "id_agent = $empId";
|
||
if(strpos($empId, "all_") !== false){
|
||
$agencyId = str_replace('all_', '', $empId);
|
||
|
||
|
||
$sql_user = "SELECT id FROM `users` WHERE id=$agencyId or id_manager=$agencyId or id_manager in (select id from users where id_manager=$agencyId) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$agencyId))";
|
||
|
||
$q_user = mysql_query($sql_user);
|
||
|
||
while($r_user = mysql_fetch_assoc($q_user)){
|
||
if($post['filter_stage'] && $post['filter_stage'] == 'filter_work_add' && !isset($post['step']) && !isset($post['source'])){
|
||
$empwho[] = "id_agent =".$r_user['id'];
|
||
} else {
|
||
$empwho[] = "who_work =".$r_user['id'];
|
||
$doers_who[] = (int)$r_user['id'];
|
||
}
|
||
}
|
||
|
||
if($post['emp']){
|
||
$doers_who[] = $post['emp'];
|
||
// $stremp .= $stremp .= " or (doers like '%"".$post['emp'].""%')";
|
||
}
|
||
//$empwho[] = $stremp .= ")";
|
||
|
||
} else if(strpos($empId, "I_") !== false){
|
||
if($post['filter_stage'] && $post['filter_stage'] == 'filter_work_add' && !isset($post['step']) && !isset($post['source'])){
|
||
$empwho[] = "id_agent =".str_replace('I_', '', $empId);
|
||
} else {
|
||
$empwho[] = "who_work = ".str_replace('I_', '', $empId);
|
||
$doers_who[] = (int)str_replace('I_', '', $empId);
|
||
}
|
||
|
||
} else if($empId == 'del_all'){
|
||
$user_agency = new User;
|
||
$user_agency->get($_SESSION['id']);
|
||
$agencyId = $user_agency->agencyId;
|
||
$sqId = "SELECT id FROM `users` WHERE (id=$agencyId or id_manager=$agencyId or id_manager in (select id from users where id_manager=$agencyId) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$agencyId))) AND blocked=1";
|
||
$sqIdQuery = mysql_query($sqId);
|
||
while ($idRow = mysql_fetch_array($sqIdQuery)) {
|
||
if($post['filter_stage'] && $post['filter_stage'] == 'filter_work_add' && !isset($post['step']) && !isset($post['source'])){
|
||
$empwho[] = "id_agent =".$idRow['id'];
|
||
} else {
|
||
$empwho[] = "who_work =".$idRow['id'];
|
||
$doers_who[] = (int)$idRow['id'];
|
||
}
|
||
}
|
||
$sqlDel = "SELECT user_id FROM users_delete WHERE agency_id = {$agencyId}";
|
||
$qDel = mysql_query($sqlDel);
|
||
while($rDel = mysql_fetch_assoc($qDel)){
|
||
if($post['filter_stage'] && $post['filter_stage'] == 'filter_work_add' && !isset($post['step']) && !isset($post['source'])){
|
||
$empwho[] = "id_agent =".intval($rDel['user_id']);
|
||
} else {
|
||
$empwho[] = "who_work =".intval($rDel['user_id']);
|
||
$doers_who[] = intval($rDel['user_id']);
|
||
}
|
||
}
|
||
|
||
} else {
|
||
if($post['filter_stage'] && $post['filter_stage'] == 'filter_work_add' && !isset($post['step']) && !isset($post['source'])){
|
||
$empwho[] = "id_agent = $empId";
|
||
} else {
|
||
$empwho[] = "who_work = $empId";
|
||
$doers_who[] = (int)$empId;
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
|
||
|
||
if(!empty($empwho)){
|
||
$bd_usl_managers = " AND ((".implode(" OR ",$empwho).")";
|
||
|
||
|
||
if(!empty($doers_who)){
|
||
$sql_doer = "SELECT * FROM clients_doers WHERE user_id in (".implode(',', $doers_who).") AND confirm = 1";
|
||
$q_doer = mysql_query($sql_doer);
|
||
while($r_doer = mysql_fetch_assoc($q_doer)){
|
||
$clientsIdsDop[] = $r_doer['client_id'];
|
||
}
|
||
|
||
if(!empty($clientsIdsDop)){
|
||
$bd_usl_managers .= ' OR clients.id in ('.implode(',', $clientsIdsDop).')';
|
||
}
|
||
}
|
||
|
||
$bd_usl_managers .= ")";
|
||
}
|
||
|
||
|
||
|
||
$_SESSION['filter_emp'] = $post['filter_emp'];
|
||
} else {
|
||
unset($_SESSION['filter_emp']);
|
||
}
|
||
if($post['emp']){
|
||
$agencyId = $post['emp'];
|
||
if($post['filter_stage'] && $post['filter_stage'] == 'filter_work_add' && !isset($post['step'])){
|
||
$bd_usl_managers .= " 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) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$agencyId)))";
|
||
} else {
|
||
if($post['accepted'] || $post['transmitted']){
|
||
|
||
} else {
|
||
$bd_usl_managers .= " AND (who_work in (SELECT id FROM `users` WHERE id=$agencyId or id_manager=$agencyId or id_manager in (select id from users where id_manager=$agencyId) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$agencyId)))";
|
||
|
||
if($post['isPartner']){
|
||
//$bd_usl_managers .= " or (doers like '%"".$agencyId.""%')";
|
||
$sql_doer = "SELECT * FROM clients_doers WHERE user_id = $agencyId AND confirm = 1";
|
||
$q_doer = mysql_query($sql_doer);
|
||
while($r_doer = mysql_fetch_assoc($q_doer)){
|
||
$clientsIdsDop[] = $r_doer['client_id'];
|
||
}
|
||
|
||
if(!empty($clientsIdsDop)){
|
||
$bd_usl_managers .= ' OR clients.id in ('.implode(',', $clientsIdsDop).')';
|
||
}
|
||
}
|
||
$bd_usl_managers .= ")";
|
||
}
|
||
}
|
||
}
|
||
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){
|
||
if(strpos($sourceCl, 'all_') !== false){
|
||
|
||
$source_group = (int)str_replace('all_','',$sourceCl);
|
||
if($source_group > 0){
|
||
$sql_adv = "SELECT * FROM `advertising_sources` WHERE group_id = {$source_group}";
|
||
$q_adv = $this->db->query($sql_adv);
|
||
while($r_adv = $this->db->fetch_assoc($q_adv)){
|
||
$sourceArr[] = "`source` = '{$r_adv['id']}'";
|
||
}
|
||
} else if($source_group == 0){
|
||
$users_ids_this = array();
|
||
$CallEvents = new CallEvents();
|
||
$user_this = new User;
|
||
$user_this->get($_SESSION['id']);
|
||
$users_ids_this = array_keys($CallEvents->getAllUserAgency($user_this->agencyId, $users_ids_this));
|
||
$sql_adv = "SELECT * FROM `advertising_sources` WHERE group_id = {$source_group} AND (user_id in (".implode(',', $users_ids_this).") or manager_id in (".implode(',', $users_ids_this)."))";
|
||
$q_adv = $this->db->query($sql_adv);
|
||
while($r_adv = $this->db->fetch_assoc($q_adv)){
|
||
$sourceArr[] = "`source` = '{$r_adv['id']}'";
|
||
}
|
||
}
|
||
} else {
|
||
if($sourceCl == 0){
|
||
$sourceArr[] = "`source` is null";
|
||
$sourceArr[] = "`source` = ''";
|
||
$sourceArr[] = "`source` = 'null'";
|
||
} else {
|
||
$sourceArr[] = "`source` = '{$sourceCl}'";
|
||
}
|
||
}
|
||
}
|
||
$bd_usl .= " AND (".implode(" OR ",$sourceArr).")";
|
||
$_SESSION['filter_source'] = $post['filter_source'];
|
||
} else {
|
||
unset($_SESSION['filter_source']);
|
||
}
|
||
|
||
$filter_partners = null;
|
||
if ($post['filter_partner']) {
|
||
$filter_partners = json_decode(html_entity_decode($post['filter_partner']), ENT_QUOTES);
|
||
$_SESSION['filter_partner'] = $post['filter_partner'];
|
||
}
|
||
|
||
if ($filter_partners) {
|
||
$employees_ids = [];
|
||
$partners = new Partners();
|
||
foreach($filter_partners as $employee) {
|
||
if (preg_match('/all_(\d+)/', $employee, $matches)) {
|
||
if ($id = intval($matches[1])) {
|
||
$employees = $partners->getEmployeesId($id, false);
|
||
foreach($employees as $employee) {
|
||
$employees_ids[] = "`employee_id` = '{$employee}'";
|
||
}
|
||
}
|
||
} else {
|
||
if ($employee == 0) {
|
||
$employees_ids[] = "`employee_id` IS NULL";
|
||
$employees_ids[] = "`employee_id` = ''";
|
||
$employees_ids[] = "`employee_id` = 'NULL'";
|
||
} else {
|
||
$employees_ids[] = "`employee_id` = '{$employee}'";
|
||
}
|
||
}
|
||
}
|
||
|
||
$bd_usl .= " AND (" . implode(" OR ", $employees_ids) . ")";
|
||
} else {
|
||
unset($_SESSION['filter_partner']);
|
||
}
|
||
|
||
if ($post['filter_activities']) {
|
||
$activitiesArr = json_decode(html_entity_decode($post['filter_activities']), ENT_QUOTES);
|
||
$bd_usl .= " AND `id` IN (
|
||
SELECT client_id FROM clients_activities
|
||
WHERE activity_id IN (" . implode(", ", $activitiesArr) . ")
|
||
)";
|
||
|
||
$_SESSION['filter_activities'] = $post['filter_activities'];
|
||
} else {
|
||
unset($_SESSION['filter_activities']);
|
||
}
|
||
|
||
|
||
|
||
if(isset($post['is_contract']) && $post['is_contract']=='true'){
|
||
$part_where = " AND (SELECT count(id) FROM contracts_client WHERE client_id=clients.id";
|
||
if(isset($post['numder_contract']) && !empty($post['numder_contract'])){
|
||
$part_where .= " AND number like '%{$post['numder_contract']}%'";
|
||
}
|
||
if(isset($post['type_contract']) && !empty($post['type_contract'])){
|
||
$part_where .= " AND type in (".implode(',',$post['type_contract']).")";
|
||
}
|
||
if(isset($post['onDateContract']) && $post['onDateContract'] > 0){
|
||
$date_on = strtotime($post['onDateContract']." 00:00:00");
|
||
$part_where .= " AND date_end >= $date_on";
|
||
}
|
||
|
||
if(isset($post['offDateContract']) && $post['offDateContract'] > 0){
|
||
$date_off = strtotime($post['offDateContract']." 23:59:59");
|
||
$part_where .= " AND date_end <= $date_off";
|
||
}
|
||
$part_where .= ") > 0";
|
||
|
||
$bd_usl .= $part_where;
|
||
}
|
||
|
||
|
||
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_denial_work']){
|
||
$denialsArr = json_decode(html_entity_decode($post['filter_denial_work']), ENT_QUOTES);
|
||
$denialArr = array();
|
||
foreach($denialsArr as $denialCl){
|
||
$denialArr[] = "`denial` = {$denialCl}";
|
||
}
|
||
$bd_usl .= " AND (".implode(" OR ",$denialArr).")";
|
||
|
||
$_SESSION['filter_denial_works'] = $post['filter_denial_work'];
|
||
} else {
|
||
unset($_SESSION['filter_denial_works']);
|
||
}
|
||
|
||
if($post['filter_etap']){
|
||
$etapsArr = json_decode(html_entity_decode($post['filter_etap']), ENT_QUOTES);
|
||
$etapArr = array();
|
||
if ($funnel_id == 0) {
|
||
foreach ($etapsArr as $etapCl) {
|
||
$etapArr[] = "`stage` = '{$etapCl}'";
|
||
}
|
||
$bd_usl .= " AND (" . implode(" OR ", $etapArr) . ") and deleted <> '1'";
|
||
} else {
|
||
|
||
if (count($etapsArr) > 0) {
|
||
$bd_usl .= " AND step_id in (" . implode(",", $etapsArr) . ")";
|
||
}
|
||
}
|
||
$_SESSION['filter_etap'] = $post['filter_etap'];
|
||
} else {
|
||
unset($_SESSION['filter_etap']);
|
||
}
|
||
if($post['objects']){
|
||
$bd_usl .= " AND of_objects > 0";
|
||
}
|
||
if($post['filter_work_ahency']){
|
||
|
||
$bd_usl_managers = '';
|
||
if ($post['filter_emp']) {
|
||
$join .= "LEFT JOIN events_clients ON events_clients.id = (SELECT id FROM events_clients WHERE client_id = clients.id ORDER BY id DESC LIMIT 1)";
|
||
$empwho = array();
|
||
$empArr = json_decode(html_entity_decode($post['filter_emp']), ENT_QUOTES);
|
||
foreach ($empArr as $empId) {
|
||
if(strpos($empId, "all_") !== false){
|
||
$agencyId = str_replace('all_', '', $empId);
|
||
$sqId = "SELECT id FROM `users` WHERE id=$agencyId or id_manager=$agencyId or id_manager in (select id from users where id_manager=$agencyId) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$agencyId))";
|
||
$sqIdQuery = mysql_query($sqId);
|
||
while ($idRow = mysql_fetch_array($sqIdQuery)) {
|
||
$empwho[] = intval($idRow['id']);
|
||
}
|
||
} else if(strpos($empId, "I_") !== false){
|
||
$empwho[] = str_replace('I_', '', $empId);
|
||
} else {
|
||
$empwho[] = intval($empId);
|
||
}
|
||
}
|
||
if (!empty($empwho)) {
|
||
$empwho = array_unique($empwho);
|
||
$bd_usl_managers = " AND (events_clients.user_id IN (".implode(',', $empwho)."))";
|
||
}
|
||
}
|
||
$agencyId = User::getUserAgencyID();
|
||
|
||
$bd_usl .= " 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) or id_manager in (select id from users where 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']){
|
||
if($post['filter_stage_work']){
|
||
//$bd_usl .= " AND (`who_work` = ".$_SESSION['id']." OR `id_agent` = ".$_SESSION['id'].") AND (`confirm` = 0 or `confirm` = 1) or ((doers_confirm = 0 or doers_confirm = 1) AND doers like '%"".$_SESSION['id']."":0%' AND funnel_id={$funnel_id})";
|
||
|
||
} else {
|
||
$bd_usl .= " AND ((`who_work` > 0) AND `confirm` = 0";
|
||
|
||
$sql_doer = "SELECT * FROM clients_doers WHERE user_id = {$_SESSION['id']} AND confirm = 1";
|
||
$q_doer = mysql_query($sql_doer);
|
||
while($r_doer = mysql_fetch_assoc($q_doer)){
|
||
$clientsIdsDop[] = $r_doer['client_id'];
|
||
}
|
||
|
||
if(!empty($clientsIdsDop)){
|
||
$bd_usl .= ' OR clients.id in ('.implode(',', $clientsIdsDop).')';
|
||
}
|
||
$bd_usl .= ")";
|
||
}
|
||
$mmid[] = "id_agent = $searchUserId";
|
||
$_SESSION['filter_confirm'] = $post['filter_confirm'];
|
||
} else {
|
||
unset($_SESSION['filter_confirm']);
|
||
}
|
||
|
||
|
||
if($post['fields']){
|
||
|
||
$whereq=$this->queryField($post['fields']);
|
||
$bd_usl .= $whereq;
|
||
}
|
||
|
||
|
||
// Массив для условий задач
|
||
$tasksConditions = [];
|
||
|
||
// Проверяем, выбраны ли оба фильтра "с задачами" и "без задач" одновременно
|
||
$bothTasksSelected = !empty($post['order']) && !empty($post['noTasks']);
|
||
|
||
// "С задачами"
|
||
if (!empty($post['order']) && !$bothTasksSelected) {
|
||
$tasksConditions[] = "(SELECT count(id) FROM user_client_events
|
||
WHERE calendar_view = 0
|
||
AND schedule_date IS NOT NULL
|
||
AND cancel = 0
|
||
AND client_id = clients.id
|
||
AND schedule_date > '2001-03-10 17:16:18') > 0";
|
||
$_SESSION['order'] = 1;
|
||
} else {
|
||
unset($_SESSION['order']);
|
||
}
|
||
|
||
// "Без задач"
|
||
if (!empty($post['noTasks']) && !$bothTasksSelected) {
|
||
$tasksConditions[] = "NOT EXISTS (SELECT 1 FROM user_client_events
|
||
WHERE calendar_view = 0
|
||
AND schedule_date IS NOT NULL
|
||
AND cancel = 0
|
||
AND client_id = clients.id)";
|
||
$_SESSION['noTasks'] = 1;
|
||
} else {
|
||
unset($_SESSION['noTasks']);
|
||
}
|
||
|
||
// "Задачи на сегодня"
|
||
if (!empty($post['todayTasks'])) {
|
||
$tasksConditions[] = "(SELECT count(id) FROM user_client_events
|
||
WHERE calendar_view = 0
|
||
AND schedule_date IS NOT NULL
|
||
AND cancel = 0
|
||
AND client_id = clients.id
|
||
AND DATE(schedule_date) = CURDATE()) > 0";
|
||
$_SESSION['todayTasks'] = 1;
|
||
} else {
|
||
unset($_SESSION['todayTasks']);
|
||
}
|
||
|
||
// "Просроченные задачи"
|
||
if (!empty($post['overTasks'])) {
|
||
$tasksConditions[] = "(SELECT count(id) FROM user_client_events
|
||
WHERE calendar_view = 0
|
||
AND schedule_date IS NOT NULL
|
||
AND cancel = 0
|
||
AND client_id = clients.id
|
||
AND schedule_date <= '".date('Y-m-d H:i:s')."') > 0";
|
||
$_SESSION['overTasks'] = 1;
|
||
} else {
|
||
unset($_SESSION['overTasks']);
|
||
}
|
||
|
||
// Формируем SQL
|
||
if (!empty($tasksConditions)) {
|
||
if ($bothTasksSelected) {
|
||
// Очищаем условия, чтобы показать всех клиентов
|
||
$tasksConditions = [];
|
||
}
|
||
|
||
// Если есть оставшиеся условия
|
||
if (!empty($tasksConditions)) {
|
||
$combinedCondition = "(" . implode(" OR ", $tasksConditions) . ")";
|
||
$bd_usl .= " AND " . $combinedCondition;
|
||
}
|
||
}
|
||
|
||
if ($post['priority1'] || $post['priority2'] || $post['priority3'] || $post['priority4']) {
|
||
$p_sql .= " AND (";
|
||
for ($i = 1; $i <= 4; $i++) {
|
||
if ($post['priority' . $i]) {
|
||
$p_sql .= 'priority =' .$i. ' or ';
|
||
} else {
|
||
unset($_SESSION['priority'. $i]);
|
||
}
|
||
}
|
||
$p_sql = substr($p_sql, 0, -4);
|
||
$p_sql .= ")";
|
||
$bd_usl .= $p_sql;
|
||
}
|
||
|
||
if($post['transmitted']){
|
||
$bd_usl .= " AND (SELECT count(id) FROM events_clients WHERE event='transmitted'
|
||
and user_id=".$post['emp']." and date $date_between and client_id=clients.id) > 0";
|
||
}
|
||
|
||
if($post['accepted']){
|
||
$bd_usl .= " AND (SELECT count(id) FROM events_clients WHERE event='accepted'
|
||
and user_id=".$post['emp']." and date $date_between and client_id=clients.id) > 0";
|
||
}
|
||
|
||
if(isset($post['of_objects']) && $post['of_objects']) {
|
||
$_SESSION['of_objects'] = $post['of_objects'];
|
||
$bd_usl .= " AND of_objects = $post[of_objects]";
|
||
} else {
|
||
unset($_SESSION['of_objects']);
|
||
}
|
||
|
||
if($post['isPartner']){
|
||
$bd_usl .= " AND doer_clients = 1";
|
||
// $_SESSION['isPartner'] = 1;
|
||
} else {
|
||
unset($_SESSION['isPartner']);
|
||
}
|
||
|
||
$one_page_clients = 10;
|
||
|
||
if ($_SESSION['id'] == 93) {
|
||
$one_page_clients = 5;
|
||
}
|
||
|
||
$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'];
|
||
}
|
||
|
||
if(isset($post['expired_stages']) && $post['expired_stages'] > 0){
|
||
$idExpiredStages = $this->getIdExpiredStages($bd_usl_managers.$bd_usl);
|
||
|
||
if(!empty($idExpiredStages)){
|
||
$bd_usl = " AND clients.id in(".implode(',', $idExpiredStages).")";
|
||
}
|
||
}
|
||
|
||
$bd_usl .= " AND cancel = 0";
|
||
|
||
$limit = ' limit '.(($page-1)*$one_page_clients).', '.$one_page_clients;
|
||
|
||
if($post['kanban']) {
|
||
//$limit = '';
|
||
$_SESSION['kanban'] = 1;
|
||
} else {
|
||
unset($_SESSION['kanban']);
|
||
}
|
||
if($post['list_view']) {
|
||
//$limit = '';
|
||
$_SESSION['clients_list_view'] = 1;
|
||
} else {
|
||
unset($_SESSION['clients_list_view']);
|
||
}
|
||
if($post['table_view']) {
|
||
//$limit = '';
|
||
$_SESSION['clients_table_view'] = 1;
|
||
} else {
|
||
unset($_SESSION['clients_table_view']);
|
||
}
|
||
|
||
$order = null;
|
||
$sortOrder = (isset($_GET['sort_order'])) ? $_GET['sort_order'] : ((isset($_POST['sort_order'])) ? $_POST['sort_order'] : null);
|
||
|
||
if (!$sortOrder && isset($_SESSION['clients_sort_order']))
|
||
$sortOrder = $_SESSION['clients_sort_order'];
|
||
|
||
if ($sortOrder) {
|
||
$_SESSION['clients_sort_order'] = $sortOrder;
|
||
switch (intval($sortOrder)) {
|
||
case 1:
|
||
{
|
||
$order = ' clients.date_add ASC ';
|
||
if($post['filter_stage_close']){
|
||
$order = " (SELECT date_update FROM `events_clients` WHERE client_id = clients.id and event='delete' order by id desc limit 1) ASC";
|
||
|
||
if((int)$post['date_tasks'] == 11){
|
||
$order = " clients.date_add ASC";
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
|
||
case 2:{
|
||
$order = 'clients.date_add DESC ';
|
||
if($post['filter_stage_close']){
|
||
$order = " (SELECT date_update FROM `events_clients` WHERE client_id = clients.id and event='delete' order by id desc limit 1) DESC";
|
||
|
||
if((int)$post['date_tasks'] == 11){
|
||
$order = " clients.date_add DESC";
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
|
||
if($post['kanban']) {
|
||
|
||
//if (!$hasFilterStage) {
|
||
$n_user_id = (int)$_SESSION['agency_id'];
|
||
|
||
$n_agents = "SELECT id FROM users
|
||
WHERE id IN (
|
||
SELECT id FROM users
|
||
WHERE id = $n_user_id
|
||
OR id_manager = $n_user_id
|
||
OR id_manager IN (
|
||
SELECT id FROM users
|
||
WHERE id_manager = $n_user_id
|
||
OR id_manager IN (
|
||
SELECT id FROM users
|
||
WHERE id_manager = $n_user_id
|
||
)
|
||
)
|
||
)
|
||
|
||
UNION
|
||
|
||
SELECT user_id FROM users_delete
|
||
WHERE agency_id = $n_user_id
|
||
";
|
||
$n_agents_res = mysql_query($n_agents);
|
||
|
||
$n_agent_ids = [];
|
||
while ($row = mysql_fetch_assoc($n_agents_res)) {
|
||
$n_agent_ids[] = $row['id'];
|
||
}
|
||
|
||
$n_agent_ids_sql = implode(', ', $n_agent_ids);
|
||
$n_agent_ids_z = '(' . implode(',', array_merge([0], $n_agent_ids)) . ')';
|
||
|
||
$bd_usl_managers = preg_replace(
|
||
'/\(\(who_work\s*=\s*(\d+)/',
|
||
'((who_work = 0 OR who_work = $1',
|
||
$bd_usl_managers,
|
||
1
|
||
);
|
||
$bd_usl_managers = preg_replace(
|
||
'/\)\)(?!\s*AND\s+id_agent\s+IN)/i',
|
||
')) AND id_agent IN (' . $n_agent_ids_sql . ')',
|
||
$bd_usl_managers,
|
||
1
|
||
);
|
||
// }
|
||
$part_order = "clients.date_update_event desc";
|
||
$mounthArr = ["января", "февраля","марта","апреля","мая","июня","июля","августа","сентября","октября","ноября","декабря"];
|
||
|
||
$funnel_id = 0;
|
||
if($post['funnel']){
|
||
$funnel_id = $post['funnel'];
|
||
}
|
||
|
||
$total = 0;
|
||
if ($funnel_id == 0) {
|
||
for($j = 1; $j <= 8; $j++){
|
||
if($j == 8){
|
||
$sql = "SELECT *, DATE_FORMAT(date_add, '%d.%m.%Y') AS date_add
|
||
FROM clients WHERE 1 AND deleted = '1'
|
||
$bd_usl_managers $bd_usl $bd_stage
|
||
ORDER BY " . (($order) ? $order : " turn, turntime desc,clients.date_update_event desc") . $limit;
|
||
|
||
$countRes = mysql_query("SELECT COUNT(*) FROM clients WHERE 1 AND stage = $j AND deleted = '1' $bd_usl_managers $bd_usl $bd_stage");
|
||
$countRow = mysql_fetch_row($countRes);
|
||
$result['count'][8] = $countRow[0];
|
||
$total += $countRow[0];
|
||
} else {
|
||
$sql = "SELECT *, DATE_FORMAT(date_add, '%d.%m.%Y') AS date_add
|
||
FROM clients WHERE 1 AND stage = $j AND deleted <> '1'
|
||
$bd_usl_managers $bd_usl $bd_stage
|
||
ORDER BY " . (($order) ? $order : " turn, turntime desc,clients.date_update_event desc") . $limit;
|
||
/*if($_SESSION['id'] == 4){
|
||
|
||
file_put_contents($_SERVER['DOCUMENT_ROOT']."/log_sql_client.txt", date('d.m.y H:i:s').' '.$sql."\n", FILE_APPEND);
|
||
}*/
|
||
$countRes = mysql_query("SELECT COUNT(*) FROM clients WHERE 1 AND stage = $j AND deleted <> '1' $bd_usl_managers $bd_usl $bd_stage");
|
||
$countRow = mysql_fetch_row($countRes);
|
||
$result['count'][$j]= $countRow[0];
|
||
$total += $countRow[0];
|
||
|
||
|
||
}
|
||
$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;
|
||
|
||
$client_id = (int)$client['id'];
|
||
|
||
$tasks_sql = "SELECT schedule_date, comment, user_id, name, type
|
||
FROM user_client_events
|
||
WHERE client_id = $client_id AND type IN ('even', 'call', 'deal', 'show', 'meet') AND calendar_view = 0
|
||
ORDER BY schedule_date ASC";
|
||
$tasks_result = mysql_query($tasks_sql);
|
||
|
||
if ($tasks_result) {
|
||
while ($row = mysql_fetch_assoc($tasks_result)) {
|
||
$sql_user = "SELECT CONCAT(last_name, ' ', first_name, ' ', middle_name) as user_fio
|
||
FROM users
|
||
WHERE id = {$row['user_id']}";
|
||
$responsible = mysql_fetch_assoc(mysql_query($sql_user))['user_fio'];
|
||
|
||
$client['tasks_data'][] = [
|
||
'schedule_date' => $row['schedule_date'],
|
||
'comment' => $row['comment'],
|
||
'name' => $row['name'],
|
||
'responsible' => $responsible,
|
||
'type' => $row['type'],
|
||
];
|
||
}
|
||
}
|
||
$events = "SELECT count(id) as res FROM user_client_events WHERE calendar_view = 0
|
||
and schedule_date is not null and client_id=" . $client['id'] . " and schedule_date < '" . date("Y-m-d H:i:s") . "' and cancel=0";
|
||
$events1 = "SELECT count(id) as res FROM user_client_events WHERE calendar_view = 0
|
||
and schedule_date is not null and client_id=" . $client['id'] . " and DATE_FORMAT(schedule_date, '%Y-%m-%d') = '" . date("Y-m-d") . "' and cancel=0";
|
||
$events2 = "SELECT count(id) as res FROM user_client_events WHERE calendar_view = 0
|
||
and schedule_date is not null and client_id=" . $client['id'] . " and DATE_FORMAT(schedule_date, '%Y-%m-%d') > '" . date("Y-m-d") . "' and cancel=0";
|
||
$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;
|
||
if ($client['events_res'] == 0) {
|
||
$q_events1 = mysql_query($events1);
|
||
$events_res1 = (int)mysql_fetch_assoc($q_events1)['res'];
|
||
$client['events_res1'] = $events_res1;
|
||
if ($client['events_res1'] == 0) {
|
||
$q_events2 = mysql_query($events2);
|
||
$events_res2 = (int)mysql_fetch_assoc($q_events2)['res'];
|
||
$client['events_res2'] = $events_res2;
|
||
}
|
||
}
|
||
$client['activities'] = array() ;
|
||
|
||
$sql_a = "SELECT * FROM clients_activities WHERE client_id = {$client['id']}";
|
||
$q_a = mysql_query($sql_a);
|
||
while($r_a = mysql_fetch_assoc($q_a)){
|
||
|
||
$sql_a_name = "SELECT * FROM activities WHERE id = {$r_a['activity_id']}";
|
||
$q_a_name = mysql_query($sql_a_name);
|
||
$r_a_name = mysql_fetch_assoc($q_a_name);
|
||
$client['activities'][] = $r_a_name;
|
||
|
||
}
|
||
$result['clients'][$j][] = $client;
|
||
}
|
||
|
||
}
|
||
} else {
|
||
// if($_SESSION['id'] == 5238){
|
||
$funnel_step = mysql_query("SELECT * FROM funnel_steps WHERE funnel_id = ".$funnel_id." and deleted=0 order by order_number, branch");
|
||
$isActive = true;
|
||
$stage = null;
|
||
if((int)$change_step['step_id'] == 0){
|
||
$isActive = false;
|
||
}
|
||
$arr_steps = array();
|
||
$lost_step = 0;
|
||
while($step = mysql_fetch_assoc($funnel_step)){
|
||
$arr_steps[$step['id']] = $step;
|
||
$lost_step = $step['id'];
|
||
$sql = "SELECT *, DATE_FORMAT(date_add, '%d.%m.%Y') AS date_add, date_add as date_create
|
||
FROM clients WHERE step_id = ".$step['id']."
|
||
$bd_usl_managers $bd_usl $bd_stage
|
||
ORDER BY " . (($order) ? $order : " clients.date_update_event desc") . $limit;
|
||
|
||
$sql_res = "SELECT COUNT(*) FROM clients WHERE step_id = ".$step['id']." $bd_usl_managers $bd_usl $bd_stage";
|
||
|
||
$countRes = mysql_query($sql_res);
|
||
$countRow = mysql_fetch_row($countRes);
|
||
$result['count'][$step['id']] = $countRow[0];
|
||
$total += $countRow[0];
|
||
|
||
$result['sql'] = $sql;
|
||
$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;
|
||
|
||
$client_id = (int)$client['id'];
|
||
|
||
$tasks_sql = "SELECT schedule_date, comment, user_id, name, type
|
||
FROM user_client_events
|
||
WHERE client_id = $client_id AND type IN ('even', 'call', 'deal', 'show', 'meet') AND calendar_view = 0
|
||
ORDER BY schedule_date ASC";
|
||
$tasks_result = mysql_query($tasks_sql);
|
||
|
||
if ($tasks_result) {
|
||
while ($row = mysql_fetch_assoc($tasks_result)) {
|
||
$sql_user = "SELECT CONCAT(last_name, ' ', first_name, ' ', middle_name) as user_fio
|
||
FROM users
|
||
WHERE id = {$row['user_id']}";
|
||
$responsible = mysql_fetch_assoc(mysql_query($sql_user))['user_fio'];
|
||
|
||
$client['tasks_data'][] = [
|
||
'schedule_date' => $row['schedule_date'],
|
||
'comment' => $row['comment'],
|
||
'name' => $row['name'],
|
||
'responsible' => $responsible,
|
||
'type' => $row['type'],
|
||
];
|
||
}
|
||
}
|
||
$events = "SELECT count(id) as res FROM user_client_events WHERE calendar_view = 0
|
||
and schedule_date is not null and client_id=" . $client['id'] . " and schedule_date < '" . date("Y-m-d H:i:s") . "' and cancel=0";
|
||
$events1 = "SELECT count(id) as res FROM user_client_events WHERE calendar_view = 0
|
||
and schedule_date is not null and client_id=" . $client['id'] . " and DATE_FORMAT(schedule_date, '%Y-%m-%d') = '" . date("Y-m-d") . "' and cancel=0";
|
||
$events2 = "SELECT count(id) as res FROM user_client_events WHERE calendar_view = 0
|
||
and schedule_date is not null and client_id=" . $client['id'] . " and DATE_FORMAT(schedule_date, '%Y-%m-%d') > '" . date("Y-m-d") . "' and cancel=0";
|
||
$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;
|
||
if ($client['events_res'] == 0) {
|
||
$q_events1 = mysql_query($events1);
|
||
$events_res1 = (int)mysql_fetch_assoc($q_events1)['res'];
|
||
$client['events_res1'] = $events_res1;
|
||
if ($client['events_res1'] == 0) {
|
||
$q_events2 = mysql_query($events2);
|
||
$events_res2 = (int)mysql_fetch_assoc($q_events2)['res'];
|
||
$client['events_res2'] = $events_res2;
|
||
}
|
||
}
|
||
|
||
$client['activities'] = array() ;
|
||
|
||
$sql_a = "SELECT * FROM clients_activities WHERE client_id = {$client['id']}";
|
||
$q_a = mysql_query($sql_a);
|
||
while($r_a = mysql_fetch_assoc($q_a)){
|
||
|
||
$sql_a_name = "SELECT * FROM activities WHERE id = {$r_a['activity_id']}";
|
||
$q_a_name = mysql_query($sql_a_name);
|
||
$r_a_name = mysql_fetch_assoc($q_a_name);
|
||
$client['activities'][] = $r_a_name;
|
||
|
||
}
|
||
|
||
//var_dump($next_id);
|
||
$result['clients'][$step['id']][] = $client;
|
||
}
|
||
}
|
||
$sql = "SELECT *, DATE_FORMAT(date_add, '%d.%m.%Y') AS date_add, date_add as date_create
|
||
FROM clients WHERE step_id = -1
|
||
$bd_usl_managers $bd_usl $bd_stage
|
||
ORDER BY " . (($order) ? $order : "clients.date_update_event desc") . $limit;
|
||
$result['sql'] = $sql;
|
||
$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;
|
||
|
||
$client_id = (int)$client['id'];
|
||
|
||
$tasks_sql = "SELECT schedule_date, comment, user_id, name, type
|
||
FROM user_client_events
|
||
WHERE client_id = $client_id AND type IN ('even', 'call', 'deal', 'show', 'meet') AND calendar_view = 0
|
||
ORDER BY schedule_date ASC";
|
||
$tasks_result = mysql_query($tasks_sql);
|
||
|
||
if ($tasks_result) {
|
||
while ($row = mysql_fetch_assoc($tasks_result)) {
|
||
$sql_user = "SELECT CONCAT(last_name, ' ', first_name, ' ', middle_name) as user_fio
|
||
FROM users
|
||
WHERE id = {$row['user_id']}";
|
||
$responsible = mysql_fetch_assoc(mysql_query($sql_user))['user_fio'];
|
||
|
||
$client['tasks_data'][] = [
|
||
'schedule_date' => $row['schedule_date'],
|
||
'comment' => $row['comment'],
|
||
'name' => $row['name'],
|
||
'responsible' => $responsible,
|
||
'type' => $row['type'],
|
||
];
|
||
}
|
||
}
|
||
$events = "SELECT count(id) as res FROM user_client_events WHERE calendar_view = 0
|
||
and schedule_date is not null and client_id=" . $client['id'] . " and schedule_date < '" . date("Y-m-d H:i:s") . "' and cancel=0";
|
||
$events1 = "SELECT count(id) as res FROM user_client_events WHERE calendar_view = 0
|
||
and schedule_date is not null and client_id=" . $client['id'] . " and DATE_FORMAT(schedule_date, '%Y-%m-%d') = '" . date("Y-m-d") . "' and cancel=0";
|
||
$events2 = "SELECT count(id) as res FROM user_client_events WHERE calendar_view = 0
|
||
and schedule_date is not null and client_id=" . $client['id'] . " and DATE_FORMAT(schedule_date, '%Y-%m-%d') > '" . date("Y-m-d") . "' and cancel=0";
|
||
|
||
$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;
|
||
if ($client['events_res'] == 0) {
|
||
$q_events1 = mysql_query($events1);
|
||
$events_res1 = (int)mysql_fetch_assoc($q_events1)['res'];
|
||
$client['events_res1'] = $events_res1;
|
||
if ($client['events_res1'] == 0) {
|
||
$q_events2 = mysql_query($events2);
|
||
$events_res2 = (int)mysql_fetch_assoc($q_events2)['res'];
|
||
$client['events_res2'] = $events_res2;
|
||
}
|
||
}
|
||
$client['activities'] = array() ;
|
||
|
||
$sql_a = "SELECT * FROM clients_activities WHERE client_id = {$client['id']}";
|
||
$q_a = mysql_query($sql_a);
|
||
while($r_a = mysql_fetch_assoc($q_a)){
|
||
|
||
$sql_a_name = "SELECT * FROM activities WHERE id = {$r_a['activity_id']}";
|
||
$q_a_name = mysql_query($sql_a_name);
|
||
$r_a_name = mysql_fetch_assoc($q_a_name);
|
||
$client['activities'][] = $r_a_name;
|
||
|
||
}
|
||
//var_dump($next_id);
|
||
$result['clients'][$lost_step][] = $client;
|
||
}
|
||
$result['arr_steps'] = $arr_steps;
|
||
}
|
||
|
||
/*$sql = "SELECT id
|
||
FROM clients WHERE 1
|
||
$bd_usl_managers $bd_usl $bd_stage";
|
||
$rez = mysql_query($sql);
|
||
$total = mysql_num_rows($rez);*/
|
||
$result['total'] = $total;
|
||
|
||
} else {
|
||
|
||
|
||
|
||
if (!$hasFilterStage) {
|
||
$n_user_id = (int)$_SESSION['agency_id'];
|
||
|
||
$n_agents = "SELECT id FROM users
|
||
WHERE id IN (
|
||
SELECT id FROM users
|
||
WHERE id = $n_user_id
|
||
OR id_manager = $n_user_id
|
||
OR id_manager IN (
|
||
SELECT id FROM users
|
||
WHERE id_manager = $n_user_id
|
||
OR id_manager IN (
|
||
SELECT id FROM users
|
||
WHERE id_manager = $n_user_id
|
||
)
|
||
)
|
||
)
|
||
|
||
UNION
|
||
|
||
SELECT user_id FROM users_delete
|
||
WHERE agency_id = $n_user_id
|
||
";
|
||
$n_agents_res = mysql_query($n_agents);
|
||
|
||
$n_agent_ids = [];
|
||
while ($row = mysql_fetch_assoc($n_agents_res)) {
|
||
$n_agent_ids[] = $row['id'];
|
||
}
|
||
|
||
$n_agent_ids_sql = implode(', ', $n_agent_ids);
|
||
$n_agent_ids_z = '(' . implode(',', array_merge([0], $n_agent_ids)) . ')';
|
||
|
||
$bd_usl_managers = preg_replace(
|
||
'/\(\(who_work\s*=\s*(\d+)/',
|
||
'((who_work = 0 OR who_work = $1',
|
||
$bd_usl_managers,
|
||
1
|
||
);
|
||
$bd_usl_managers = preg_replace(
|
||
'/\)\)(?!\s*AND\s+id_agent\s+IN)/i',
|
||
')) AND id_agent IN (' . $n_agent_ids_sql . ')',
|
||
$bd_usl_managers,
|
||
1
|
||
);
|
||
}
|
||
|
||
|
||
$sql = "SELECT count(id) as total
|
||
FROM clients $join WHERE 1
|
||
$bd_usl_managers $bd_usl $bd_stage";
|
||
|
||
$rez = mysql_query($sql);
|
||
$total = mysql_fetch_assoc($rez)['total'];
|
||
$all_pages = ceil($total/$one_page_clients);
|
||
|
||
$part_order = " clients.date_update_event DESC";
|
||
|
||
$hasFilterStage = false;
|
||
|
||
foreach (array_keys($post) as $key) {
|
||
if (strpos($key, 'filter_stage_') === 0) {
|
||
$hasFilterStage = true;
|
||
break;
|
||
}
|
||
}
|
||
|
||
|
||
if($post['filter_stage_close']){
|
||
$part_order = " (SELECT date_update FROM `events_clients` WHERE client_id = clients.id and event='delete' order by id desc limit 1) DESC";
|
||
|
||
if((int)$post['date_tasks'] == 11){
|
||
$part_order = " clients.date_add DESC";
|
||
}
|
||
}
|
||
|
||
if (!$hasFilterStage) {
|
||
if (strpos($bd_usl_managers, 'who_work') !== false) {
|
||
// Расширяем первое условие: who_work = 0 OR ...
|
||
|
||
|
||
$n_user_id = (int)$_SESSION['agency_id'];
|
||
|
||
$n_agents = "SELECT id FROM users
|
||
WHERE id IN (
|
||
SELECT id FROM users
|
||
WHERE id = $n_user_id
|
||
OR id_manager = $n_user_id
|
||
OR id_manager IN (
|
||
SELECT id FROM users
|
||
WHERE id_manager = $n_user_id
|
||
OR id_manager IN (
|
||
SELECT id FROM users
|
||
WHERE id_manager = $n_user_id
|
||
)
|
||
)
|
||
)
|
||
|
||
UNION
|
||
|
||
SELECT user_id FROM users_delete
|
||
WHERE agency_id = $n_user_id
|
||
";
|
||
$n_agents_res = mysql_query($n_agents);
|
||
|
||
$n_agent_ids = [];
|
||
while ($row = mysql_fetch_assoc($n_agents_res)) {
|
||
$n_agent_ids[] = $row['id'];
|
||
}
|
||
|
||
$n_agent_ids_sql = implode(', ', $n_agent_ids);
|
||
$bd_usl_managers = preg_replace(
|
||
'/\(\(who_work\s*=/',
|
||
'((who_work = 0 OR who_work =',
|
||
$bd_usl_managers,
|
||
1
|
||
);
|
||
|
||
// Заменяем )))) в конце на нужную конструкцию
|
||
$bd_usl_managers = preg_replace(
|
||
'/\)\)$/',
|
||
')) AND clients.id_agent IN (' . $n_agent_ids_sql . ')',
|
||
$bd_usl_managers,
|
||
1
|
||
);
|
||
}
|
||
}
|
||
$sql = "SELECT clients.*, DATE_FORMAT(date_add, '%d.%m.%Y') AS date_add, date_add as date_create
|
||
FROM clients $join WHERE 1
|
||
$bd_usl_managers $bd_usl $bd_stage
|
||
ORDER BY " . (($order) ? $order : $part_order) . $limit;
|
||
|
||
$rez = mysql_query($sql);
|
||
|
||
$clientIds = [];
|
||
|
||
while($cl = mysql_fetch_assoc($rez)) {
|
||
$clientIds[] = $cl['id'];
|
||
$cl['eventDate'] = null;
|
||
$cl['activities'] = null;
|
||
$cl['is_show_dop'] = false;
|
||
$result['clients'][] = $cl;
|
||
}
|
||
|
||
//только для таблицы
|
||
if ($post['table_view']) {
|
||
$eventDateSql = "SELECT DATE_FORMAT(schedule_date, '%d.%m.%Y %H:%i') AS schedule_date, client_id FROM user_client_events WHERE calendar_view = 0
|
||
and schedule_date is not null and client_id in (" . implode(", ", $clientIds) . ") and schedule_date >= '" . date("Y-m-d H:i:s") . "'";
|
||
$q_events = mysql_query($eventDateSql);
|
||
while ($task = mysql_fetch_assoc($q_events)) {
|
||
foreach ($result['clients'] as $key => $clnt) {
|
||
if ($clnt['id'] == $task['client_id']) {
|
||
$result['clients'][$key]['eventDate'] = $task['schedule_date'];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
$sqlAddInfoAct = "SELECT activity_id, client_id FROM clients_activities WHERE client_id in (" . implode(", ", $clientIds) . ")";
|
||
$rezAddInfoRes = mysql_query($sqlAddInfoAct);
|
||
if (mysql_num_rows($rezAddInfoRes) > 0) {
|
||
while($row = mysql_fetch_array($rezAddInfoRes)) {
|
||
foreach ($result['clients'] as $key => $clnt) {
|
||
if ($clnt['id'] == $row['client_id']) {
|
||
if ($result['clients'][$key]['activities'] == null) {
|
||
$result['clients'][$key]['activities'] = array();
|
||
}
|
||
$result['clients'][$key]['activities'][] = $row['activity_id'];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
$result['all_pages'] = $all_pages;
|
||
$result['total'] = $total;
|
||
}
|
||
|
||
$_SESSION['where_clients'] = "$bd_usl_managers $bd_usl $bd_stage ORDER BY " . (($order) ? $order : $part_order);
|
||
$_SESSION['where_campaigns'] = "$bd_usl_managers $bd_usl $bd_stage";
|
||
/*if($_SESSION['id'] == 16964){
|
||
echo $sql;
|
||
//file_put_contents($_SERVER['DOCUMENT_ROOT']."/log_sql_client.txt", date('d.m.y H:i:s').' '.$sql."\n", FILE_APPEND);
|
||
}*/
|
||
//echo $sql;die();
|
||
return $result;
|
||
}
|
||
|
||
public function queryField($fields){
|
||
|
||
$query = "";
|
||
$user = new User;
|
||
$user->get($_SESSION['id']);
|
||
$agencyId = $user->agencyId;
|
||
|
||
$agencyFielsds =array();
|
||
$sql = "SELECT * FROM client_req_fields WHERE `agency_id`=$agencyId order by id desc";
|
||
$q = mysql_query($sql);
|
||
while($r = mysql_fetch_assoc($q)){
|
||
$agencyFielsds[$r['id']] = $r;
|
||
}
|
||
$agencyFielsdsP =array();
|
||
$sql = "SELECT * FROM client_req_fields_podgroup WHERE `agency_id`=$agencyId order by id desc";
|
||
$q = mysql_query($sql);
|
||
while($r = mysql_fetch_assoc($q)){
|
||
$agencyFielsdsP[$r['id']] = $r;
|
||
}
|
||
|
||
$fieldsJson = array();
|
||
$fieldsInt = array();
|
||
$fieldsString = array();
|
||
$fieldsPod = array();
|
||
$search = false;
|
||
|
||
if(!empty($agencyFielsds)) {
|
||
|
||
foreach($fields as $key => $field){
|
||
$arrField = explode("_", $key);
|
||
$typeField = 1;
|
||
if($arrField[0] == 'modelp'){
|
||
$typeField = 2;
|
||
}
|
||
$field_id = (int)$arrField[1];
|
||
|
||
$res = null;
|
||
|
||
if (is_array($field)) {
|
||
$res = array();
|
||
foreach($field as $k => $v){
|
||
//пробуем привести к числу, так как в БД хранится как массив чисел
|
||
if (is_numeric($v)) {
|
||
$res[] = (int) $v;
|
||
} else {
|
||
$res[] = $v;
|
||
}
|
||
}
|
||
} else {
|
||
$res = $field;
|
||
}
|
||
|
||
$value = trim(json_encode($res, JSON_UNESCAPED_UNICODE), '"');
|
||
$fids = array();
|
||
$sql = "SELECT id, field_id FROM client_data WHERE field_id = $field_id AND type = $typeField";
|
||
|
||
|
||
$q = mysql_query($sql);
|
||
while ($r = mysql_fetch_assoc($q)){
|
||
$type = -1;
|
||
if($typeField == 1){
|
||
if($agencyFielsds[$r['field_id']]['is_podgroup'] == 0){
|
||
$type = $agencyFielsds[$r['field_id']]['type'];
|
||
|
||
} else {
|
||
$type = 10;
|
||
}
|
||
|
||
} else if ($typeField == 2){
|
||
$type = $agencyFielsdsP[$r['field_id']]['type'];
|
||
|
||
}
|
||
|
||
|
||
if($type == 0 || $type == 5){
|
||
$fieldsString[] = array('data_id'=>$r['id'], 'value'=>$value);
|
||
|
||
} else if($type == 3){
|
||
$fieldsJson[] = array('data_id'=>$r['id'], 'value'=>$value);
|
||
|
||
}
|
||
else if($type == 1 || $type == 2 || $type == 4){
|
||
$fieldsInt[] = array('data_id'=>$r['id'], 'value'=>$value);
|
||
|
||
|
||
} else if($type == 10){
|
||
$fieldsPod[] = array('data_id'=>$r['id'], 'value'=>$value);
|
||
|
||
|
||
}
|
||
|
||
}
|
||
|
||
}
|
||
}
|
||
|
||
|
||
$client_ids = array();
|
||
$client_ids_temp = array();
|
||
if(!empty($fieldsPod)){
|
||
$ids = array();
|
||
$values = array();
|
||
foreach($fieldsPod as $fi){
|
||
$ids[] = $fi['data_id'];
|
||
$arrVal = json_decode($fi['value'], true);
|
||
if(is_array($arrVal)){
|
||
foreach ($arrVal as $val) {
|
||
if(!in_array($val, $values))
|
||
$values[] = $val;
|
||
}
|
||
} else {
|
||
if(!in_array($fi['value'], $values))
|
||
$values[] = $fi['value'];
|
||
}
|
||
}
|
||
$sql = "SELECT client_id FROM client_data WHERE id in (".implode(',', $ids).") AND value in (".implode(',', $values).")";
|
||
//echo $sql;
|
||
$q = mysql_query($sql);
|
||
while($r = mysql_fetch_assoc($q)){
|
||
$client_ids_temp[] = $r['client_id'];
|
||
}
|
||
}
|
||
if(!empty($fieldsInt)){
|
||
$ids = array();
|
||
$values = array();
|
||
foreach($fieldsInt as $fi){
|
||
$ids[] = $fi['data_id'];
|
||
$arrVal = json_decode($fi['value'], true);
|
||
if(is_array($arrVal)){
|
||
foreach ($arrVal as $val) {
|
||
if(!in_array($val, $values))
|
||
$values[] = $val;
|
||
}
|
||
} else {
|
||
if(!in_array($fi['value'], $values))
|
||
$values[] = $fi['value'];
|
||
}
|
||
}
|
||
$sql = "SELECT client_id FROM client_data WHERE id in (".implode(',', $ids).") AND value in (".implode(',', $values).")";
|
||
if(!empty($client_ids_temp)){
|
||
$sql .= " AND client_id in (".implode(',', $client_ids_temp).")";
|
||
}
|
||
//echo $sql;
|
||
$q = mysql_query($sql);
|
||
while($r = mysql_fetch_assoc($q)){
|
||
$client_ids[] = $r['client_id'];
|
||
}
|
||
}
|
||
|
||
if(!empty($fieldsString)){
|
||
$ids = array();
|
||
$values = '';
|
||
foreach($fieldsString as $fi){
|
||
$ids[] = $fi['data_id'];
|
||
if($values != ''){
|
||
$values .= ' OR ';
|
||
}
|
||
$values .= "value like '%".$fi['value']."%'";
|
||
}
|
||
$sql = "SELECT client_id FROM client_data WHERE id in (".implode(',', $ids).") AND ($values)";
|
||
if(!empty($client_ids_temp)){
|
||
$sql .= " AND client_id in (".implode(',', $client_ids_temp).")";
|
||
}
|
||
$q = mysql_query($sql);
|
||
while($r = mysql_fetch_assoc($q)){
|
||
$client_ids[] = $r['client_id'];
|
||
}
|
||
}
|
||
|
||
if(!empty($fieldsJson)){
|
||
$ids = array();
|
||
$values = '';
|
||
foreach($fieldsJson as $fi){
|
||
$ids[] = $fi['data_id'];
|
||
if($values != ''){
|
||
$values .= ' OR ';
|
||
}
|
||
$values .= "JSON_CONTAINS(`value`, '".$fi['value']."') > 0";
|
||
}
|
||
$sql = "SELECT client_id FROM client_data WHERE id in (".implode(',', $ids).") AND ($values)";
|
||
if(!empty($client_ids_temp)){
|
||
$sql .= " AND client_id in (".implode(',', $client_ids_temp).")";
|
||
}
|
||
$q = mysql_query($sql);
|
||
while($r = mysql_fetch_assoc($q)){
|
||
$client_ids[] = $r['client_id'];
|
||
}
|
||
}
|
||
|
||
if(!empty($client_ids)){
|
||
$query = " AND id in (".implode(',',$client_ids).")";
|
||
} else if((empty($fieldsJson) && empty($fieldsInt) && empty($fieldsString)) && !empty($client_ids_temp)){
|
||
$query = " AND id in (".implode(',',$client_ids_temp).")";
|
||
} else {
|
||
$query = " AND id in (0)";
|
||
}
|
||
|
||
return $query;
|
||
}
|
||
|
||
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) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$agencyId)))";
|
||
|
||
$sql_count = "SELECT COUNT(*) FROM clients 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 getCountAllClientsSend($funnelId = 0) {
|
||
$bd_usl_managers = "";
|
||
$bd_usl = "";
|
||
// if (!$_GET['all'] || !$_POST['all']) {
|
||
|
||
$searchUserId = $_SESSION['id'];
|
||
|
||
if ($_SESSION['users_admin']) {
|
||
$currentUser = new User;
|
||
$currentUser->checkPermissions();
|
||
$searchUserId = $currentUser->agencyId;
|
||
}
|
||
|
||
//$mmid[] = "id_agent = $searchUserId";
|
||
$mmid[] = "who_work = $searchUserId";
|
||
if ($_GET['deleted']) {
|
||
|
||
$bd_usl = "AND deleted=1";
|
||
|
||
// если ищем по удаленным и под менеджером - пропускаем этот код - здесь идет добавление по агентству
|
||
if (!($_GET['deleted'] && $_SESSION['manager'])) {
|
||
$rez1 = mysql_query("SELECT id_manager FROM users WHERE id=$searchUserId");
|
||
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=$searchUserId");
|
||
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=$searchUserId");
|
||
while ($mm = mysql_fetch_row($rez3)) {
|
||
$mmid[] = "who_work = " . $mm[0];
|
||
$rez04 = mysql_query("SELECT id FROM users WHERE id_manager=$mm[0]");
|
||
while ($mm2 = mysql_fetch_row($rez04)) {
|
||
$mmid[] = "who_work = " . $mm2[0];
|
||
}
|
||
}
|
||
$bd_usl_managers = " AND (".implode(" OR ",$mmid).")";
|
||
// echo $bd_usl_managers.'<br>';
|
||
// находим ИД агентства и по нему ищем всех свободных клиентов
|
||
$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 = " funnel_id=$funnelId AND deleted=0 AND confirm = 0 ".$bd_usl_managers." AND who_work != " . $_SESSION['id'];
|
||
|
||
$sql_count = "SELECT COUNT(*) FROM clients WHERE $bd_usl";
|
||
// echo $sql_count;
|
||
$vsego = mysql_result(mysql_query($sql_count),0);
|
||
|
||
$counter = $vsego;
|
||
|
||
return $counter;
|
||
}
|
||
|
||
public function getCountChartsClients() {
|
||
|
||
// находим ИД агентства и по нему ищем всех свободных клиентов
|
||
$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 in
|
||
(SELECT id FROM `users` WHERE id=$agencyId or id_manager=$agencyId or id_manager in (select id from users where id_manager=$agencyId) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$agencyId)))";
|
||
|
||
$sql_count = "SELECT COUNT(*) FROM clients 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) or id_manager in (select id from users where id_manager in (select id from users where id_manager=$agencyId)))";
|
||
|
||
$sql_count = "SELECT COUNT(*) FROM clients WHERE $bd_usl";
|
||
return mysql_result(mysql_query($sql_count),0);
|
||
}
|
||
|
||
public function getUsersFilter($usersArr, $sessionUserId = false, $sessionUserAdmin = false){
|
||
if(count($usersArr) == 0) {
|
||
$userId = $sessionUserId;
|
||
|
||
if ($sessionUserAdmin) {
|
||
$currentUser = new User;
|
||
$currentUser->checkPermissions($userId, false);
|
||
$userId = $currentUser->agencyId;
|
||
}
|
||
|
||
|
||
$user = new User;
|
||
$user->get($userId);
|
||
$usersId[] = (int)$userId;
|
||
if(strpos($userId, 'allagency_') !== false){
|
||
$user->agency = 1;
|
||
$usersId[] = (int)str_replace("allagency_", "", $userId);
|
||
} else if(strpos($userId, 'all_') !== false){
|
||
$user->manager = 1;
|
||
$usersId[] = (int)str_replace("all_", "", $userId);
|
||
}
|
||
|
||
if($user->agency){
|
||
$rez3 = mysql_query("SELECT id, manager FROM users WHERE id_manager=$userId");
|
||
while ($mm = mysql_fetch_row($rez3)) {
|
||
if(!in_array((int)$mm[0], $usersId)){
|
||
$usersId[] = (int)$mm[0];
|
||
}
|
||
if($mm[1] == 1){
|
||
$rez04 = mysql_query("SELECT id, manager FROM users WHERE id_manager=$mm[0]");
|
||
while ($mm2 = mysql_fetch_row($rez04)) {
|
||
if(!in_array((int)$mm2[0], $usersId)){
|
||
$usersId[] = (int)$mm2[0];
|
||
}
|
||
if($mm2[1] == 1){
|
||
$rez004 = mysql_query("SELECT id, manager FROM users WHERE id_manager=$mm2[0]");
|
||
while ($mm02 = mysql_fetch_row($rez004)) {
|
||
if(!in_array((int)$mm02[0], $usersId)){
|
||
$usersId[] = (int)$mm02[0];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} else if($user->manager){
|
||
$rez04 = mysql_query("SELECT id, manager FROM users WHERE id_manager=$userId");
|
||
|
||
while ($mm2 = mysql_fetch_row($rez04)) {
|
||
if(!in_array((int)$mm2[0], $usersId)){
|
||
$usersId[] = (int)$mm2[0];
|
||
}
|
||
if($mm2[1] == 1){
|
||
$rez004 = mysql_query("SELECT id, manager FROM users WHERE id_manager=$mm2[0]");
|
||
while ($mm02 = mysql_fetch_row($rez004)) {
|
||
if(!in_array((int)$mm02[0], $usersId)){
|
||
$usersId[] = (int)$mm02[0];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
else
|
||
{
|
||
foreach($usersArr as $userId){
|
||
|
||
if(strpos($userId, 'allagency_') !== false){
|
||
$user->agency = 1;
|
||
$userId = (int)str_replace("allagency_", "", $userId);
|
||
if(!in_array($userId, $usersId)){
|
||
$usersId[] = $userId;
|
||
}
|
||
} else if(strpos($userId, 'all_') !== false){
|
||
$user->manager = 1;
|
||
$userId = (int)str_replace('all_', '', $userId);
|
||
if(!in_array($userId, $usersId)){
|
||
$usersId[] = $userId;
|
||
}
|
||
|
||
} else {
|
||
if(!in_array((int)$userId, $usersId)){
|
||
$usersId[] = $userId;
|
||
}
|
||
}
|
||
|
||
if($user->agency){
|
||
$rez3 = mysql_query("SELECT id, manager FROM users WHERE id_manager=$userId");
|
||
while ($mm = mysql_fetch_row($rez3)) {
|
||
if(!in_array((int)$mm[0], $usersId)){
|
||
$usersId[] = (int)$mm[0];
|
||
}
|
||
if($mm[1] == 1){
|
||
$rez04 = mysql_query("SELECT id FROM users WHERE id_manager=$mm[0]");
|
||
while ($mm2 = mysql_fetch_row($rez04)) {
|
||
if(!in_array((int)$mm2[0], $usersId)){
|
||
$usersId[] = (int)$mm2[0];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
} else if($user->manager){
|
||
$rez04 = mysql_query("SELECT id, manager FROM users WHERE id_manager=$userId");
|
||
while ($mm2 = mysql_fetch_row($rez04)) {
|
||
if(!in_array((int)$mm2[0], $usersId)){
|
||
$usersId[] = (int)$mm2[0];
|
||
}
|
||
if($mm2[1] == 1){
|
||
$rez004 = mysql_query("SELECT id, manager FROM users WHERE id_manager=$mm2[0]");
|
||
while ($mm02 = mysql_fetch_row($rez004)) {
|
||
if(!in_array((int)$mm02[0], $usersId)){
|
||
$usersId[] = (int)$mm02[0];
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
return $usersId;
|
||
}
|
||
|
||
public static function get_class_etap($clientId, $funnelId) {
|
||
|
||
$change_step_query = mysql_query("SELECT * FROM clients_funnel_step WHERE client_id = " . $clientId);
|
||
$next_id = 0;
|
||
$change_step = array('step_id' => 0);
|
||
//$lostDate = $client['date_create'];
|
||
if (mysql_num_rows($change_step_query) > 0) {
|
||
$change_step = mysql_fetch_assoc($change_step_query);
|
||
$next_id = $change_step['next_id'];
|
||
$lostDate = $change_step['date_update'];
|
||
}
|
||
$next_steps = array();
|
||
$funnel_sql = "SELECT * FROM funnel_steps WHERE funnel_id = " . $funnelId . " and deleted=0 order by order_number, branch";
|
||
|
||
$funnel_step = mysql_query($funnel_sql);
|
||
$isActive = true;
|
||
$classF = ' active';
|
||
$stage = '';
|
||
$stageId = 0;
|
||
if ((int)$change_step['step_id'] == 0) {
|
||
$isActive = false;
|
||
}
|
||
$arr_steps = array();
|
||
$countStep = mysql_num_rows($funnel_step);
|
||
|
||
while ($step = mysql_fetch_assoc($funnel_step)) {
|
||
$step['isActive'] = (int)$isActive;
|
||
$step['nextStep'] = false;
|
||
if ($step['main'] == 1 && !$isActive) {
|
||
$next_steps[] = $step['id'];
|
||
}
|
||
if ($step['id'] == (int)$change_step['step_id']) {
|
||
//$stage = $step['name'];
|
||
$next_steps = json_decode(htmlspecialchars_decode($step['next_step']));
|
||
if ($next_id == 0) {
|
||
//$stage = $step['name'];
|
||
//$next_steps = json_decode( htmlspecialchars_decode($step['next_step']));
|
||
//if($step['branch'] < $branch){
|
||
$isActive = false;
|
||
// }
|
||
}
|
||
} else if ($step['id'] == (int)$next_id) {
|
||
$isActive = false;
|
||
}
|
||
$arr_steps[$step['id']] = $step;
|
||
|
||
}
|
||
|
||
if ($next_id != 0 && !empty($next_steps)) {
|
||
foreach ($next_steps as $key => $st) {
|
||
if ($st != $next_id) {
|
||
unset($next_steps[$key]);
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
foreach ($arr_steps as $idstep => $step) {
|
||
$arr_steps[$idstep]['isNext'] = 0;
|
||
if (in_array($idstep, $next_steps)) {
|
||
$stage = $step['name'];
|
||
$stageId = $step['id'];
|
||
$arr_steps[$idstep]['isNext'] = 1;
|
||
}
|
||
}
|
||
$isActive = true;
|
||
foreach ($arr_steps as $idstep => $step) {
|
||
$classF = '';
|
||
if ($isActive) $classF = ' active';
|
||
|
||
if ($step['isNext'] == 1) {
|
||
$classF = ' nextStep';
|
||
$isActive = false;
|
||
}
|
||
// Покажет сколько мне дней
|
||
if(!isset($lostDate)) $lostDate = date('d.m.Y H:i:s');
|
||
$interval = date_diff(new DateTime(), new DateTime($lostDate))->days;
|
||
|
||
if ($interval >= $step['days_step']) {
|
||
$classF .= ' expired';
|
||
}
|
||
|
||
$res[$idstep ] = $classF;
|
||
$res['stage'] = $stage;
|
||
$res['stageId'] = $stageId;
|
||
}
|
||
if($stageId == 0) $stageId = -1;
|
||
$sql = "UPDATE clients SET step_id = {$stageId} WHERE id = {$clientId}";
|
||
mysql_query($sql);
|
||
$res['sql'] = $sql;
|
||
//var_dump($res);
|
||
//return $res;
|
||
}
|
||
|
||
private function get_bar_etap($clientId, $funnelId, $stageId){
|
||
$res = array('bar'=>array());
|
||
$res['client_id'] = $clientId;
|
||
if($funnelId == 0){
|
||
$steps = $this->steps;
|
||
$stage = "Новый";
|
||
foreach($steps as $step){
|
||
if($step['id'] == $stageId){
|
||
$stage = $step['name'];
|
||
}
|
||
}
|
||
$res['bar'] = $steps;
|
||
$res['stage'] = $stage;
|
||
$res['stageId'] = $stageId;
|
||
return $res;
|
||
} else {
|
||
|
||
$change_step_query = $this->db->query("SELECT * FROM clients_funnel_step WHERE client_id = " . $clientId);
|
||
$next_id = 0;
|
||
$change_step = array('step_id' => 0);
|
||
//$lostDate = $client['date_create'];
|
||
if ($this->db->num_rows($change_step_query) > 0) {
|
||
$change_step = $this->db->fetch_assoc($change_step_query);
|
||
$next_id = $change_step['next_id'];
|
||
$lostDate = $change_step['date_update'];
|
||
} else {
|
||
$sql_client = "SELECT date_add FROM clients WHERE id = $clientId";
|
||
$q_client = $this->db->query($sql_client);
|
||
$r_client = $this->db->fetch_assoc($q_client);
|
||
$lostDate = $r_client['date_add'];
|
||
}
|
||
$next_steps = array();
|
||
|
||
$funnel_sql = "SELECT * FROM funnel_steps WHERE funnel_id = " . $funnelId . " and deleted=0 order by order_number, branch";
|
||
|
||
|
||
$funnel_step = $this->db->query($funnel_sql);
|
||
$isActive = true;
|
||
$classF = ' active';
|
||
$stage = '';
|
||
$stageId = 0;
|
||
if ((int)$change_step['step_id'] == 0) {
|
||
$isActive = false;
|
||
}
|
||
$arr_steps = array();
|
||
$countStep = $this->db->num_rows($funnel_step);
|
||
|
||
while ($step = $this->db->fetch_assoc($funnel_step)) {
|
||
$step['isActive'] = (int)$isActive;
|
||
$step['nextStep'] = false;
|
||
if ($step['main'] == 1 && !$isActive) {
|
||
$next_steps[] = $step['id'];
|
||
}
|
||
if ($step['id'] == (int)$change_step['step_id']) {
|
||
//$stage = $step['name'];
|
||
$next_steps = json_decode(htmlspecialchars_decode($step['next_step']));
|
||
if ($next_id == 0) {
|
||
//$stage = $step['name'];
|
||
//$next_steps = json_decode( htmlspecialchars_decode($step['next_step']));
|
||
//if($step['branch'] < $branch){
|
||
$isActive = false;
|
||
// }
|
||
}
|
||
} else if ($step['id'] == (int)$next_id) {
|
||
$isActive = false;
|
||
}
|
||
$arr_steps[$step['id']] = $step;
|
||
|
||
}
|
||
|
||
if ($next_id != 0 && !empty($next_steps)) {
|
||
foreach ($next_steps as $key => $st) {
|
||
if ($st != $next_id) {
|
||
unset($next_steps[$key]);
|
||
|
||
}
|
||
}
|
||
}
|
||
|
||
foreach ($arr_steps as $idstep => $step) {
|
||
$arr_steps[$idstep]['isNext'] = 0;
|
||
if (in_array($idstep, $next_steps)) {
|
||
$stage = $step['name'];
|
||
$stageId = $step['id'];
|
||
$arr_steps[$idstep]['isNext'] = 1;
|
||
}
|
||
}
|
||
$isActive = true;
|
||
foreach ($arr_steps as $idstep => $step) {
|
||
$classF = '';
|
||
if ($isActive) $classF = ' active';
|
||
|
||
if ($step['isNext'] == 1) {
|
||
$classF = ' nextStep';
|
||
$isActive = false;
|
||
}
|
||
// Покажет сколько мне дней
|
||
if(!isset($lostDate)) $lostDate = date('d.m.Y H:i:s');
|
||
$interval = date_diff(new DateTime(), new DateTime($lostDate))->days;
|
||
|
||
if ($interval >= $step['days_step']) {
|
||
$classF .= ' expired';
|
||
}
|
||
$step['classF'] = $classF;
|
||
$res['bar'][] = $step;
|
||
$res['stage'] = $stage;
|
||
$res['stageId'] = $stageId;
|
||
}
|
||
if($stageId == 0) $stageId = -1;
|
||
// $sql = "UPDATE requisitions SET step_id = {$stageId} WHERE id = {$reqId}";
|
||
//$this->db->query($sql);
|
||
//$res['sql'] = $sql;
|
||
return $res;
|
||
}
|
||
}
|
||
|
||
public function get_client_id($id, $agency_id){
|
||
$sql = "SELECT * FROM clients WHERE id = {$id}";
|
||
$q = mysql_query($sql);
|
||
$r = mysql_fetch_assoc($q);
|
||
//Название воронки
|
||
if($r['funnel_id'] == 0){
|
||
$r['name_funnel'] = "Обычные";
|
||
} else {
|
||
$sql_fun = "SELECT name FROM funnel WHERE id = ".$r['funnel_id'];
|
||
$r['name_funnel'] = $this->db->fetch_assoc($this->db->query($sql_fun))['name'];
|
||
}
|
||
|
||
$r['steps'] = $this->get_bar_etap($r['id'], $r['funnel_id'], $r['stage']);
|
||
$r['work_type'] = str_replace(['[',']','_',','],['','',' ',', '],$r['work_type']);
|
||
$r['role_name'] = str_replace(['[',']','_',','],['','',' ',', '],$r['role']);
|
||
$r['type_name'] = str_replace(['[',']','_',','],['','',' ',', '], $r['type']);
|
||
$r['activities'] = array() ;
|
||
$r['activities_name'] = '';
|
||
$sql_a = "SELECT * FROM clients_activities WHERE client_id = {$r['id']}";
|
||
$q_a = $this->db->query($sql_a);
|
||
while($r_a = $this->db->fetch_assoc($q_a)){
|
||
$r['activities'][] = $r_a['activity_id'];
|
||
$sql_a_name = "SELECT * FROM activities WHERE id = {$r_a['activity_id']}";
|
||
$q_a_name = $this->db->query($sql_a_name);
|
||
$r_a_name = $this->db->fetch_assoc($q_a_name);
|
||
if($r['activities_name'] != '') $r['activities_name'] .= ", ";
|
||
$r['activities_name'] .= $r_a_name['name'];
|
||
}
|
||
|
||
$contract = new Contract($this->db);
|
||
$contract->setAgencyId($agency_id);
|
||
$typesContracs = $contract->getTypesName();
|
||
|
||
$r['contracts'] = array();
|
||
$r['contracts_name'] = '';
|
||
$sql_a = "SELECT * FROM contracts_client WHERE client_id = {$r['id']}";
|
||
$q_a = $this->db->query($sql_a);
|
||
while($r_a = $this->db->fetch_assoc($q_a)){
|
||
$expired = false;
|
||
$diff_date = ($r_a['date_end'] - time())/86400;
|
||
if($diff_date < (int)$r_a['days']){
|
||
$expired = true;
|
||
}
|
||
$name = $typesContracs[$r_a['type']]['type']." №".$r_a['number']." от ".date('d.m.Y',$r_a['date_start']). " по ".date('d.m.Y', $r_a['date_end']);
|
||
$r['contracts'][] = array('id'=>$r_a['id'], 'name'=>$name, 'expired'=>$expired);
|
||
if($r['contracts_name'] != '') $r['contracts_name'] .= ", ";
|
||
$r['contracts_name'] .= $name;
|
||
}
|
||
$r['objects'] = json_decode(html_entity_decode($r['objects']), true);
|
||
$who_work = $r['who_work'];
|
||
$master_work = '';
|
||
|
||
|
||
if ((int)$who_work > 0) {
|
||
|
||
if (isset($usersToUse) && isset($usersToUse[$who_work])) {
|
||
$mstr = $usersToUse[$who_work];
|
||
} else {
|
||
$mstr = $this->db->fetch_assoc($this->db->query("SELECT agency, manager, agency_name, first_name, last_name, middle_name, role_id, phone, 0 as del FROM users WHERE id=$who_work UNION
|
||
SELECT agency, manager, agency_name, first_name, last_name, middle_name, role_id, phone, 1 as del FROM users_delete WHERE user_id=$who_work"));
|
||
}
|
||
|
||
$master_phone = $mstr['phone'];
|
||
|
||
|
||
$master_work = trim($mstr['last_name'] . ' ' . $mstr['first_name'] . ' ' . $mstr['middle_name']);
|
||
|
||
|
||
} else {
|
||
$master_work = 'Все агентство';
|
||
}
|
||
$r['master_work'] = $master_work;
|
||
$partner = "";
|
||
if (isset($r['employee_id']) && $r['employee_id'] > 0) {
|
||
$partners = new Partners;
|
||
$partner = $partners->getPartnerByEmployee(intval($r['employee_id']));
|
||
}
|
||
|
||
// $r['source_name'] .= ($partner) ? ((isset($source)) ? " | " : '') . $partner['name'] . ((!empty($partner['resident'])) ? ' <span class="stagebar-title">(' . $partner['resident']. ')</span>' : '') : '';
|
||
$r['employe_name'] = $partner['fullname'];
|
||
if(!empty($partner['position'])){
|
||
$r['employe_name'] .= ", ".$partner['position'];
|
||
}
|
||
|
||
return $r;
|
||
}
|
||
|
||
public function prev_step_event($clientId, $stepId, $is_open_step = false){
|
||
|
||
$sql = "SELECT * FROM funnel_steps WHERE id = $stepId";
|
||
// echo $sql."\n";
|
||
$q = $this->db->query($sql);
|
||
$r = $this->db->fetch_assoc($q);
|
||
$sql_client = "SELECT * FROM clients WHERE id=$clientId";
|
||
$q_client = $this->db->query($sql_client);
|
||
$client = $this->db->fetch_assoc($q_client);
|
||
if(!empty($r['pole_prev'])){
|
||
$pole_prev = json_decode(htmlspecialchars_decode($r['pole_prev']));
|
||
// var_dump($pole_prev);
|
||
foreach($pole_prev as $pole => $value_pole){
|
||
switch ($pole){
|
||
case 'tasks':{
|
||
if(!$is_open_step){
|
||
$name = '';
|
||
if($client['who_work'] > 0){
|
||
|
||
foreach($value_pole as $vp){
|
||
if(!empty($vp->type)){
|
||
$set = " SET client_id = {$clientId}";
|
||
if(!empty($vp->name)){
|
||
$name = $vp->name;
|
||
} else if ($vp->type == 'even'){
|
||
$name = "Мероприятие";
|
||
}
|
||
$date_time = date('Y-m-d H:i:s');
|
||
if(!empty($vp->time)){
|
||
$date_time = date('Y-m-d H:i:s', strtotime($vp->time));
|
||
}
|
||
$set .= ", user_id = {$client['who_work']}, type = '{$vp->type}', comment='{$vp->comment}', schedule_date = '{$date_time}', from_id = {$client['who_work']}, open_step=1";
|
||
if(!empty($name)){
|
||
$set .= ", name='{$name}'";
|
||
}
|
||
|
||
$insert_ev = "INSERT INTO user_client_events {$set}";
|
||
// echo $insert_ev;
|
||
$this->db->query($insert_ev);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 'tasks_all':{
|
||
if(!$is_open_step){
|
||
$name = '';
|
||
if($client['who_work'] > 0){
|
||
|
||
foreach($value_pole as $vp){
|
||
if(!empty($vp->type)){
|
||
$set = " SET client_id = {$clientId}";
|
||
if(!empty($vp->name)){
|
||
$name = $vp->name;
|
||
} else if ($vp->type == 'even'){
|
||
$name = "Мероприятие";
|
||
}
|
||
$date_time = date('Y-m-d H:i:s');
|
||
if(!empty($vp->time)){
|
||
$date_time = date('Y-m-d H:i:s', strtotime($vp->time));
|
||
}
|
||
$set .= ", user_id = {$client['who_work']}, type = '{$vp->type}', comment='{$vp->comment}', schedule_date = '{$date_time}', from_id = {$client['who_work']}, open_step=1";
|
||
if(!empty($name)){
|
||
$set .= ", name='{$name}'";
|
||
}
|
||
|
||
$insert_ev = "INSERT INTO user_client_events {$set}";
|
||
// echo $insert_ev;
|
||
$this->db->query($insert_ev);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 'comment':{
|
||
if(!$is_open_step){
|
||
if(!empty($value_pole)){
|
||
// $set .= ", user_id = {$req['who_work']}, type = '{$vp->type}', comment='{$vp->comment}', schedule_date = '{$date_time}', from_id = {$req['who_work']}, open_step=1";
|
||
$insert_ev = "INSERT INTO user_client_events SET client_id = {$clientId}, user_id = {$client['who_work']}, type = 'comment', comment='{$value_pole}', from_id = {$client['who_work']}, open_step=1";
|
||
//echo $insert_ev;
|
||
$this->db->query($insert_ev);
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 'new_who_work':{
|
||
//Добавляем событие передачи
|
||
if(!$is_open_step){
|
||
if($pole_prev->is_new_who_work != 0 && !empty($value_pole) && (int)$value_pole != 0){
|
||
$confirm = 0;
|
||
if($client['who_work'] == $value_pole) {
|
||
$confirm = 1;
|
||
}
|
||
if ($confirm == 0) {
|
||
|
||
$sql_client_up = "UPDATE clients SET who_work={$value_pole}, confirm=0 WHERE id = {$clientId}";
|
||
$this->db->query($sql_client_up);
|
||
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `dop_text`, `event`) VALUES ({$client['who_work']}, {$clientId}, {$value_pole}, '(автоматическая передача при переходе на этап)', 'transmitted')";
|
||
|
||
$this->db->query($sql_conf);
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 'new_doers':{
|
||
if(!$is_open_step)
|
||
{
|
||
if($pole_prev->is_new_doers > 0){
|
||
if(!empty($value_pole)){
|
||
$doers = array();
|
||
$doers_confirm = $client['doers_confirm'];
|
||
//$doer_clients = $req['doer_clients'];
|
||
|
||
if(!empty($client['doers'])){
|
||
$doers = json_decode(htmlspecialchars_decode($client['doers']), true);
|
||
|
||
}
|
||
foreach($value_pole as $doer_id){
|
||
|
||
if(!isset($doers[$doer_id]) && $doer_id != $client['who_work']){
|
||
$doers_confirm = 0;
|
||
$doers[$doer_id] = 0;
|
||
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `dop_text`, `event`) VALUES ({$client['who_work']}, {$clientId}, {$doer_id}, '(автоматически при переходе на этап)','transmitted_parallel')";
|
||
$this->db->query($sql_conf);
|
||
}
|
||
}
|
||
if(!empty($doers)){
|
||
$sql_up_doer = "UPDATE clients SET doers_confirm = {$doers_confirm}, doers = '". clearInputElement(json_encode($doers))."' WHERE id = ".$clientId;
|
||
$this->db->query($sql_up_doer);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 'files_attach': {
|
||
if(!$is_open_step){
|
||
if(!empty($value_pole)){
|
||
foreach($value_pole as $vp){
|
||
$sql_file = "SELECT * FROM files_steps_funnel_prev WHERE id = {$vp->id}";
|
||
$q_file = $this->db->query($sql_file);
|
||
while($r_file = $this->db->fetch_assoc($q_file)){
|
||
$patch_new = $_SERVER['DOCUMENT_ROOT']."/upload/clients/".$clientId;
|
||
//echo $patch_new;
|
||
if(!file_exists($patch_new)){
|
||
mkdir($patch_new, 0777);
|
||
}
|
||
$patch = $_SERVER['DOCUMENT_ROOT']."/upload/funnels/prev_steps/".$r_file['funnel_id'];
|
||
$name = $r_file['guid'].'.'.$r_file['type'];
|
||
// Источник может быть только в Селектеле — локальную копию удаляет
|
||
// cron clearFunnelPrevStepFilesExistsInSelectel.php после заливки в облако.
|
||
$source_local = $patch."/".$name;
|
||
$source_cdn = "https://uf.joywork.ru/upload/funnels/prev_steps/".$r_file['funnel_id']."/".$name;
|
||
$source_content = false;
|
||
if (file_exists($source_local)) {
|
||
$source_content = @file_get_contents($source_local);
|
||
} else {
|
||
// Один HTTP-запрос вместо HEAD+GET. При 404/timeout — false.
|
||
$ctx = stream_context_create(['http' => ['timeout' => 15]]);
|
||
$source_content = @file_get_contents($source_cdn, false, $ctx);
|
||
if ($source_content === '') {
|
||
$source_content = false;
|
||
}
|
||
}
|
||
if ($source_content !== false) {
|
||
$name_new = md5(time().$name);
|
||
|
||
@file_put_contents($patch_new."/".$name_new.".".$r_file['type'], $source_content);
|
||
|
||
//отпарвляем файл в Селектел (токен получаем один раз на все файлы этапа)
|
||
if (empty($token)) {
|
||
$token = SelectelApi::getNewToken();
|
||
}
|
||
|
||
$contType = "application/octet-stream";
|
||
|
||
$type = $r_file['type'];
|
||
|
||
if ($type) {
|
||
$type = strtolower($type);
|
||
}
|
||
|
||
if ($type === "doc") {
|
||
$contType = "application/msword";
|
||
}
|
||
if ($type === "docx") {
|
||
$contType = "application/vnd.openxmlformats-officedocument.wordprocessingml.document";
|
||
}
|
||
if ($type === "xls") {
|
||
$contType = "application/vnd.ms-excel";
|
||
}
|
||
if ($type === "xlsx") {
|
||
$contType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet";
|
||
}
|
||
if ($type === "pdf") {
|
||
$contType = "application/pdf";
|
||
}
|
||
if ($type === "jpeg" || $type === "jpg") {
|
||
$contType = "image/jpeg";
|
||
}
|
||
if ($type === "gif") {
|
||
$contType = "image/gif";
|
||
}
|
||
if ($type === "png") {
|
||
$contType = "image/png";
|
||
}
|
||
if ($type === "mp3") {
|
||
$contType = "audio/mpeg";
|
||
}
|
||
if ($type === "zip") {
|
||
$contType = "application/zip";
|
||
}
|
||
if ($type === "rar") {
|
||
$contType = "application/vnd.rar";
|
||
}
|
||
|
||
$new_path = "/upload/clients/". $clientId . "/" . $name_new . '.' . $type;
|
||
|
||
$r = SelectelApi::uploadUserFile($token, $patch_new."/".$name_new.".".$r_file['type'], $new_path, $contType);
|
||
|
||
$sql_event_file = "INSERT INTO user_client_events SET client_id = {$clientId}, user_id = {$client['who_work']}, type = 'file', comment = '{$vp->comment}', from_id = {$client['who_work']}, open_step=1";
|
||
$this->db->query($sql_event_file);
|
||
$event_id = $this->db->insert_id();
|
||
$sql_in_file = "INSERT INTO clients_files (guid, client_id, type, name, event_id)
|
||
VALUES ('{$name_new}', '{$clientId}', '{$r_file['type']}', '{$r_file['name']}', '{$event_id}')";
|
||
$this->db->query($sql_in_file);
|
||
$client_file_id = $this->db->insert_id();
|
||
if(!empty($vp->name)){
|
||
$sql = "INSERT INTO names_client_files SET name = '{$vp->name}'";
|
||
$this->db->query($sql);
|
||
$id_name = $this->db->insert_id();
|
||
$sql = "UPDATE `clients_files` SET `name_id` = {$id_name} WHERE `id` = {$client_file_id}";
|
||
$this->db->query($sql);
|
||
}
|
||
} else {
|
||
error_log("prev_step_event(client={$clientId}): files_attach source missing local={$source_local} cdn={$source_cdn}");
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
case 'list_users_select':{
|
||
if($pole_prev->is_mes > 0){
|
||
if(!empty($value_pole)){
|
||
$tempid = 0;
|
||
$users_mes = $value_pole;
|
||
$userId = (int)$_SESSION['id'];
|
||
|
||
$who_work = 0;
|
||
|
||
$user1 = $this->db->fetch_assoc($this->db->query("SELECT * FROM users WHERE id = {$userId}"));
|
||
$post = "Сотрудник";
|
||
if ($user1['agency'] == 1) {
|
||
$post = "Агенство";
|
||
} else if ($user1['manager'] == 1) {
|
||
$post = "Менеджер";
|
||
}
|
||
$text = "<b>".$post . " " . trim($user1['last_name'] . ' ' . $user1['first_name'] . ' ' . $user1['middle_name'])."</b><br>перевел(а) клиента на этап «".$r['name']."» ";
|
||
if($is_open_step){
|
||
$text .= "(этап открыт повторно) ";
|
||
}
|
||
|
||
$who_work = $req['who_work'];
|
||
$text .= "<br><i>Клиент: </i>".$client['phone'].' '.$client['fio']." ID: ".$client['id']."<br>";
|
||
|
||
|
||
|
||
|
||
}
|
||
$text = htmlspecialchars($text);
|
||
|
||
$userMes = array();
|
||
$send = 0;
|
||
if($close){
|
||
$tempid = time();
|
||
$send = 1;
|
||
}
|
||
// $user_id_mes = false;
|
||
foreach ($users_mes as $key => $user_id_mes_) {
|
||
unset($user_id_mes);
|
||
|
||
if ($users_mes[$key] === 'manager') {
|
||
|
||
$managerWhoWork = $this->db->fetch_assoc($this->db->query("SELECT * FROM users WHERE id = {$who_work}"));
|
||
|
||
$user_id_mes = $managerWhoWork['id_manager'];
|
||
} else if($users_mes[$key] == 0){
|
||
$user_id_mes = $who_work;
|
||
} else {
|
||
$user_id_mes = $user_id_mes_;
|
||
}
|
||
|
||
|
||
if(!in_array($user_id_mes, $userMes) && $user_id_mes != $_SESSION['id']){
|
||
|
||
$sqlMesIn = "INSERT INTO step_notify_closure SET user_id = {$user_id_mes}, from_id={$userId}, step_id={$stepId}, text='{$text}', send={$send}, temp_id={$tempid}";
|
||
|
||
$this->db->query($sqlMesIn);
|
||
$userMes[] = $user_id_mes;
|
||
}
|
||
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
|
||
case 'adjacent_funnels':{
|
||
if(!$is_open_step){
|
||
if($pole_prev->is_adjacent_funnels > 0){
|
||
if(!empty($value_pole)){
|
||
|
||
|
||
$adjacent_funnels=$value_pole;
|
||
foreach($adjacent_funnels as $funnel){
|
||
$sql_a_f = "SELECT id FROM adjacent_funnels WHERE funnel_id = {$funnel} AND client_id = {$clientId}";
|
||
$row_a_f = $this->db->num_rows($this->db->query($sql_a_f));
|
||
if($row_a_f == 0){
|
||
$this->db->query("INSERT INTO adjacent_funnels (funnel_id, client_id, parent_funnel_id, parent_step_id) VALUES ({$funnel}, {$clientId}, {$client['funnel_id']}, {$client['step_id']})");
|
||
$comment = "Клиент переведен в смежную воронку ";
|
||
$sql_funnel = "SELECT name FROM funnel WHERE id = {$funnel}";
|
||
$nameFunnel = "«".$this->db->fetch_assoc($this->db->query($sql_funnel))['name']."»";
|
||
$comment = $comment.' '.$nameFunnel;
|
||
$sql_event_adj = "INSERT INTO user_client_events SET client_id = {$clientId}, user_id = {$client['who_work']}, type = 'comment', comment = '{$comment}', from_id = {$client['who_work']}, open_step=1";
|
||
$this->db->query($sql_event_adj);
|
||
}
|
||
}
|
||
}
|
||
}
|
||
}
|
||
break;
|
||
}
|
||
}
|
||
}
|
||
}
|
||
|
||
}
|
||
|
||
//Дополнительные поля
|
||
private function add_client_info($client_id, $post){
|
||
$sql = "SELECT id FROM clients_dop_info WHERE client_id = {$client_id}";
|
||
$q = mysql_query($sql);
|
||
$persone_no_ip = 0;
|
||
if($post['persone_no_ip']){
|
||
$persone_no_ip = 1;
|
||
}
|
||
|
||
if(mysql_num_rows($q) > 0){
|
||
$sql_in = "UPDATE clients_dop_info SET
|
||
persone_no_ip = {$persone_no_ip},
|
||
passport = '{$post['passport']}',
|
||
date_of_issue_passport = '{$post['date_of_issue_passport']}',
|
||
passport_issued_by = '{$post['passport_issued_by']}',
|
||
birthplace = '{$post['birthplace']}',
|
||
registration_address = '{$post['registration_address']}',
|
||
post_address = '{$post['post_address']}',
|
||
persone_snils = '{$post['persone_snils']}',
|
||
persone_nationality = '{$post['persone_nationality']}',
|
||
persone_gender = '{$post['persone_gender']}',
|
||
persone_full_name = '{$post['persone_full_name']}',
|
||
persone_short_name = '{$post['persone_short_name']}',
|
||
persone_ogrn = '{$post['persone_ogrn']}',
|
||
persone_inn = '{$post['persone_inn']}',
|
||
persone_kpp = '{$post['persone_kpp']}',
|
||
persone_legal_address = '{$post['persone_legal_address']}',
|
||
persone_fact_address = '{$post['persone_fact_address']}',
|
||
persone_info_bank = '{$post['persone_info_bank']}',
|
||
persone_name_bank = '{$post['persone_name_bank']}',
|
||
persone_bik_bank = '{$post['persone_bik_bank']}',
|
||
persone_rs_bank = '{$post['persone_rs_bank']}',
|
||
persone_kors_bank = '{$post['persone_kors_bank']}',
|
||
persone_fio_rukovod = '{$post['persone_fio_rukovod']}',
|
||
persone_powers = '{$post['persone_powers']}',
|
||
persone_kod_podrazdelenia = '{$post['persone_kod_podrazdelenia']}'
|
||
WHERE client_id = {$client_id}
|
||
";
|
||
} else {
|
||
$sql_in = "INSERT INTO clients_dop_info SET
|
||
client_id = {$client_id},
|
||
persone_no_ip = {$persone_no_ip},
|
||
passport = '{$post['passport']}',
|
||
date_of_issue_passport = '{$post['date_of_issue_passport']}',
|
||
passport_issued_by = '{$post['passport_issued_by']}',
|
||
birthplace = '{$post['birthplace']}',
|
||
registration_address = '{$post['registration_address']}',
|
||
post_address = '{$post['post_address']}',
|
||
persone_snils = '{$post['persone_snils']}',
|
||
persone_nationality = '{$post['persone_nationality']}',
|
||
persone_gender = '{$post['persone_gender']}',
|
||
persone_full_name = '{$post['persone_full_name']}',
|
||
persone_short_name = '{$post['persone_short_name']}',
|
||
persone_ogrn = '{$post['persone_ogrn']}',
|
||
persone_inn = '{$post['persone_inn']}',
|
||
persone_kpp = '{$post['persone_kpp']}',
|
||
persone_legal_address = '{$post['persone_legal_address']}',
|
||
persone_fact_address = '{$post['persone_fact_address']}',
|
||
persone_name_bank = '{$post['persone_name_bank']}',
|
||
persone_info_bank = '{$post['persone_info_bank']}',
|
||
persone_bik_bank = '{$post['persone_bik_bank']}',
|
||
persone_rs_bank = '{$post['persone_rs_bank']}',
|
||
persone_kors_bank = '{$post['persone_kors_bank']}',
|
||
persone_fio_rukovod = '{$post['persone_fio_rukovod']}',
|
||
persone_powers = '{$post['persone_powers']}',
|
||
persone_kod_podrazdelenia = '{$post['persone_kod_podrazdelenia']}'";
|
||
|
||
}
|
||
|
||
mysql_query($sql_in);
|
||
}
|
||
|
||
|
||
//Объединение клиентов
|
||
public function union_client($id, $ids, $user_id, $is_union_req){
|
||
if($id > 0 && !empty($ids) && $user_id > 0){
|
||
$phone_arr = [];
|
||
$sql = "SELECT * FROM clients WHERE id = {$id}";
|
||
$q = $this->db->query($sql);
|
||
$r = $this->db->fetch_assoc($q);
|
||
if(!empty($r['phone2'])){
|
||
$phone_arr = json_decode(html_entity_decode($r['phone2']), ENT_QUOTES);
|
||
}
|
||
|
||
$reqs = array();
|
||
$sql_req = "SELECT * FROM requisitions WHERE client_id = {$id} AND deleted=0 and cancel=0";
|
||
|
||
$q_req = $this->db->query($sql_req);
|
||
while($r_req = $this->db->fetch_assoc($q_req)){
|
||
$reqs[] = $r_req;
|
||
}
|
||
|
||
$phones = [];
|
||
$text = "Объединен с клиентами: ";
|
||
$sql_clients = "SELECT * FROM clients WHERE id in (".implode(',', $ids).")";
|
||
$q_clients = $this->db->query($sql_clients);
|
||
while($r_clients = $this->db->fetch_assoc($q_clients)){
|
||
if($text != "Объединен с клиентами: ") $text .= ", ";
|
||
$text .= $r_clients['phone'];
|
||
$phone_arr[] = $r_clients['phone'];
|
||
|
||
$sql_phone2 = "SELECT * FROM clients_phone2 WHERE client_id = {$r_clients['id']}";
|
||
|
||
$q_phone2 = $this->db->query($sql_phone2);
|
||
while($r_phone2 = $this->db->fetch_assoc($q_phone2)){
|
||
$phone_arr[] = $r_phone2['phone'];
|
||
}
|
||
$sql_update_event = "UPDATE user_client_events SET client_id = {$id} WHERE client_id = {$r_clients['id']}";
|
||
//echo $sql_update_event;
|
||
$this->db->query($sql_update_event);
|
||
|
||
if($is_union_req > 0){
|
||
|
||
$sql_req_dop = "SELECT * FROM requisitions WHERE client_id = {$r_clients['id']} AND deleted=0 and cancel=0";
|
||
$q_req_dop = $this->db->query($sql_req_dop);
|
||
while($r_req_dop = $this->db->fetch_assoc($q_req_dop)){
|
||
$is_union_req = false;
|
||
foreach($reqs as $req){
|
||
// var_dump($r_req_dop['type_id'] == $req['type_id'] && $r_req_dop['who_work'] == $req['who_work']);
|
||
if($r_req_dop['type_id'] == $req['type_id'] && $r_req_dop['who_work'] == $req['who_work']){
|
||
$is_union_req = true;
|
||
$sql_update_event_req = "UPDATE user_client_events SET req_id = {$req['id']} WHERE req_id = {$r_req_dop['id']}";
|
||
$this->db->query($sql_update_event_req);
|
||
$sql_cancel = "UPDATE requisitions SET cancel = 1 WHERE id = {$r_req_dop['id']}";
|
||
$this->db->query($sql_cancel);
|
||
}
|
||
}
|
||
|
||
if(!$is_union_req){
|
||
$sql_update_req = "UPDATE requisitions SET client_id = {$id} WHERE client_id = {$r_clients['id']}";
|
||
//echo $sql_update_req;
|
||
$this->db->query($sql_update_req);
|
||
}
|
||
}
|
||
} else {
|
||
$sql_update_req = "UPDATE requisitions SET client_id = {$id} WHERE client_id = {$r_clients['id']}";
|
||
//echo $sql_update_req;
|
||
$this->db->query($sql_update_req);
|
||
|
||
}
|
||
//if($_SESSION['id'] == 6635){
|
||
$sql_update_client_obj = "UPDATE client_objects SET client_id = {$id} WHERE client_id = {$r_clients['id']}";
|
||
$this->db->query($sql_update_client_obj);
|
||
//}
|
||
$this->del($r_clients['id']);
|
||
}
|
||
if(!empty($phone_arr)){
|
||
$phones = htmlentities(json_encode($phone_arr));
|
||
$sql_up = "UPDATE clients SET phone2 = '{$phones}' WHERE id = {$id}";
|
||
$this->db->query($sql_up);
|
||
$this->update_phone2($id, null, $phone_arr);
|
||
}
|
||
$sql_ev = "INSERT INTO events_clients (user_id, client_id, `event`, dop_text, `read`) VALUES ({$user_id}, {$id}, 'update','{$text}', 1)";
|
||
//echo $sql_ev;
|
||
$this->db->query($sql_ev);
|
||
}
|
||
}
|
||
}
|
||
|
||
?>
|