328 lines
16 KiB
PHP
328 lines
16 KiB
PHP
|
|
<?php
|
|||
|
|
|
|||
|
|
require_once($_SERVER['DOCUMENT_ROOT']."/ajax/vue_php_function.php");
|
|||
|
|
|
|||
|
|
|
|||
|
|
if($_SESSION['id'] && ($_GET['id'] || $_GET['req_id']))
|
|||
|
|
|
|||
|
|
{
|
|||
|
|
$db_sphinx = new MysqlPdo(hstsph2, null, null, null, true, '9306');
|
|||
|
|
$tr = (int)$_GET['tr'];
|
|||
|
|
$client_id = (int)$_GET['id'];
|
|||
|
|
$req_id = (int)$_GET['req_id'];
|
|||
|
|
$adjacent_id = (int)$_GET['adjacent_id'];
|
|||
|
|
$deleted_req = (int)$_GET['deleted_req'];
|
|||
|
|
|
|||
|
|
if ($deleted_req == 1) {
|
|||
|
|
$user = new User;
|
|||
|
|
$r_check_permissions = $user->checkMenuPermissions();
|
|||
|
|
$daily_closed_req_left = $r_check_permissions['daily_closed_req_limit'] - $r_check_permissions['actual_daily_closed_req'];
|
|||
|
|
if ($daily_closed_req_left <= 0) {
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$sql_user_id = $_SESSION['id'];
|
|||
|
|
$sql = "UPDATE user_permissions SET actual_daily_closed_req=actual_daily_closed_req + 1 WHERE user_id = $sql_user_id";
|
|||
|
|
mysql_query($sql);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Если заявка уже в работе у другого сотрудника — блокируем взятие из закрытых
|
|||
|
|
// if ($deleted_req == 1 && $req_id > 0) {
|
|||
|
|
// $sql_check_current_owner = "SELECT who_work, deleted FROM requisitions WHERE id = $req_id LIMIT 1";
|
|||
|
|
// $result_check = mysql_query($sql_check_current_owner);
|
|||
|
|
// if ($row_check = mysql_fetch_assoc($result_check)) {
|
|||
|
|
// $current_owner = (int)$row_check['who_work'];
|
|||
|
|
// $is_deleted = (int)$row_check['deleted'];
|
|||
|
|
// if ($is_deleted > 0 && $current_owner != $_SESSION['id']) {
|
|||
|
|
// echo json_encode([
|
|||
|
|
// 'error' => true,
|
|||
|
|
// 'message' => 'Заявка уже находится в работе у другого сотрудника и не может быть взята вами.'
|
|||
|
|
// ]);
|
|||
|
|
// exit();
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
if ($tr != 1) {
|
|||
|
|
$sql = "UPDATE clients SET confirm=1, who_work=$_GET[who_work] WHERE id=$_GET[id]";
|
|||
|
|
|
|||
|
|
if ($req_id > 0) {
|
|||
|
|
if ($deleted_req == 1) {
|
|||
|
|
$sql = "UPDATE requisitions SET confirm=1, who_work=$_GET[who_work], deleted=0 WHERE id=$req_id";
|
|||
|
|
} else {
|
|||
|
|
$sql = "UPDATE requisitions SET confirm=1, who_work=$_GET[who_work] WHERE id=$req_id";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($adjacent_id > 0) {
|
|||
|
|
$sql = "UPDATE adjacent_funnels SET confirm=1, who_work=$_GET[who_work] WHERE id=$adjacent_id";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//echo $sql;
|
|||
|
|
|
|||
|
|
if (mysql_query($sql)) {
|
|||
|
|
|
|||
|
|
// Автопривязка ответственного по заявке к клиенту из заявки
|
|||
|
|
if($adjacent_id == 0) {
|
|||
|
|
if ($req_id > 0 ) {
|
|||
|
|
$sql = "UPDATE `clients`
|
|||
|
|
JOIN `requisitions` AS `req` ON
|
|||
|
|
`clients`.`id` = `req`.`client_id` AND
|
|||
|
|
`clients`.`who_work` = 0 AND
|
|||
|
|
`clients`.`confirm` = 0 AND
|
|||
|
|
`req`.`id` = '$req_id' AND
|
|||
|
|
`clients`.`who_work` = 0 AND
|
|||
|
|
`clients`.`confirm` = 0
|
|||
|
|
SET `clients`.`who_work` = '{$_GET['who_work']}',
|
|||
|
|
`clients`.`confirm` = 1";
|
|||
|
|
|
|||
|
|
mysql_query($sql);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Смена срока закрытия этапа
|
|||
|
|
if($adjacent_id > 0) {
|
|||
|
|
$sql_step = "SELECT * FROM adjacent_funnels WHERE id = {$adjacent_id}";
|
|||
|
|
$q_step = mysql_query($sql_step);
|
|||
|
|
if(mysql_num_rows($q_step) > 0){
|
|||
|
|
$sql_op_step = "UPDATE adjacent_funnels SET updated_at = NOW() WHERE id = {$adjacent_id}";
|
|||
|
|
mysql_query($sql_op_step);
|
|||
|
|
}
|
|||
|
|
} else
|
|||
|
|
if($client_id > 0){
|
|||
|
|
$sql_step = "SELECT * FROM clients_funnel_step WHERE client_id = {$client_id}";
|
|||
|
|
$q_step = mysql_query($sql_step);
|
|||
|
|
if(mysql_num_rows($q_step) > 0){
|
|||
|
|
$sql_op_step = "UPDATE clients_funnel_step SET date_update = NOW() WHERE client_id = {$client_id}";
|
|||
|
|
mysql_query($sql_op_step);
|
|||
|
|
} else {
|
|||
|
|
$sql_client = "SELECT funnel_id FROM clients WHERE id = {$client_id}";
|
|||
|
|
$q_client = mysql_query($sql_client);
|
|||
|
|
$r_client = mysql_fetch_assoc($q_client);
|
|||
|
|
if($r_client['funnel_id'] > 0){
|
|||
|
|
mysql_query("INSERT INTO clients_funnel_step (client_id) VALUES ({$client_id})");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} else
|
|||
|
|
if($req_id > 0){
|
|||
|
|
$sql_step = "SELECT * FROM clients_funnel_step WHERE req_id = {$req_id}";
|
|||
|
|
$q_step = mysql_query($sql_step);
|
|||
|
|
if(mysql_num_rows($q_step) > 0){
|
|||
|
|
$sql_op_step = "UPDATE clients_funnel_step SET date_update = NOW() WHERE req_id = {$req_id}";
|
|||
|
|
mysql_query($sql_op_step);
|
|||
|
|
} else {
|
|||
|
|
$sql_req = "SELECT funnel_id FROM requisitions WHERE id = {$req_id}";
|
|||
|
|
$q_req = mysql_query($sql_req);
|
|||
|
|
$r_req = mysql_fetch_assoc($q_req);
|
|||
|
|
if($r_req['funnel_id'] > 0){
|
|||
|
|
mysql_query("INSERT INTO clients_funnel_step (req_id) VALUES ({$req_id})");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
$sql_client = "SELECT doers, who_work FROM clients WHERE id=$_GET[id]";
|
|||
|
|
if($req_id > 0){
|
|||
|
|
$sql_client = "SELECT doers, who_work FROM requisitions WHERE id=$req_id";
|
|||
|
|
}
|
|||
|
|
$q_client = mysql_query($sql_client);
|
|||
|
|
$r_client = mysql_fetch_assoc($q_client);
|
|||
|
|
|
|||
|
|
if(!empty($r_client['doers'])){
|
|||
|
|
$confirm = 1;
|
|||
|
|
$doers = json_decode(html_entity_decode($r_client['doers']), true);
|
|||
|
|
|
|||
|
|
$doers[$_SESSION['id']] = 1;
|
|||
|
|
foreach($doers as $doer){
|
|||
|
|
if($doer == 0) $confirm = 0;
|
|||
|
|
}
|
|||
|
|
$sql_up = "UPDATE clients SET doers='".clearInputElement(json_encode($doers))."', doers_confirm=$confirm WHERE id=$_GET[id]";
|
|||
|
|
if($req_id > 0){
|
|||
|
|
$sql_up = "UPDATE requisitions SET doers='".clearInputElement(json_encode($doers))."', doers_confirm=$confirm WHERE id=$req_id";
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
mysql_query($sql_up);
|
|||
|
|
|
|||
|
|
if($req_id > 0){
|
|||
|
|
foreach($doers as $key => $agent) {
|
|||
|
|
$sql_up_d = "UPDATE requisition_doers SET confirm = {$agent} WHERE requisition_id ={$req_id} and user_id = {$key}";
|
|||
|
|
mysql_query($sql_up_d);
|
|||
|
|
}
|
|||
|
|
} else if($_GET['id'] > 0){
|
|||
|
|
|
|||
|
|
foreach($doers as $key => $agent) {
|
|||
|
|
$sql_up_d = "UPDATE clients_doers SET confirm = {$agent} WHERE client_id ={$_GET['id']} and user_id = {$key}";
|
|||
|
|
mysql_query($sql_up_d);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$sql_up_doer = "UPDATE doers_emp_client SET confirm=1 WHERE client_id =$_GET[id] and who_work = $r_client[who_work] and doer_id = $_SESSION[id]";
|
|||
|
|
if($req_id > 0){
|
|||
|
|
$sql_up_doer = "UPDATE doers_emp_client SET confirm=1 WHERE req_id =$req_id and who_work = $r_client[who_work] and doer_id = $_SESSION[id]";
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
mysql_query($sql_up_doer);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($tr != 1){
|
|||
|
|
$sql="UPDATE user_client_events SET user_id=$_GET[who_work] WHERE client_id=$_GET[id] and type != 'step' and type != 'file'";
|
|||
|
|
if($req_id > 0){
|
|||
|
|
$sql = "UPDATE user_client_events SET user_id=$_GET[who_work] WHERE req_id=$req_id and type != 'step' and type != 'file'";
|
|||
|
|
}
|
|||
|
|
mysql_query($sql);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($tr != 1){
|
|||
|
|
$sql = "UPDATE `events_clients` SET `read` = 1, date_update='".date('Y-m-d H:i:s')."' WHERE client_id = $_GET[id] AND event IN ('transmitted', 'notadopted')";
|
|||
|
|
if($req_id > 0){
|
|||
|
|
$sql = "UPDATE `events_clients` SET `read` = 1, date_update='".date('Y-m-d H:i:s')."' WHERE req_id = $req_id AND event IN ('transmitted', 'notadopted')";
|
|||
|
|
}
|
|||
|
|
mysql_query($sql);
|
|||
|
|
} else {
|
|||
|
|
|
|||
|
|
$sql_2 = "UPDATE `events_clients` SET `read` = 1, date_update='".date('Y-m-d H:i:s')."' WHERE client_id = $_GET[id] AND event IN ('transmitted_parallel', 'notadopted_doer') AND from_id = ".$_SESSION['id'];
|
|||
|
|
if($req_id > 0){
|
|||
|
|
$sql_2 = "UPDATE `events_clients` SET `read` = 1, date_update='".date('Y-m-d H:i:s')."' WHERE req_id = $req_id AND event IN ('transmitted_parallel', 'notadopted_doer') AND from_id = ".$_SESSION['id'];
|
|||
|
|
}
|
|||
|
|
mysql_query($sql_2);
|
|||
|
|
}
|
|||
|
|
$accepted = 'accepted';
|
|||
|
|
$type_funnel = 'main';
|
|||
|
|
|
|||
|
|
if($adjacent_id > 0) {
|
|||
|
|
$type_funnel = 'adjacent';
|
|||
|
|
}
|
|||
|
|
if($tr == 1)
|
|||
|
|
{
|
|||
|
|
$accepted = 'accepted_doer';
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$sql = "INSERT INTO `events_clients` (user_id, client_id, from_id, event, `read`) VALUES ('".$_SESSION['id']."', '".$_GET['id']."', '".$_SESSION['id']."', '".$accepted."', '1')";
|
|||
|
|
if($req_id > 0){
|
|||
|
|
if ($deleted_req == 1) {
|
|||
|
|
$sql = "INSERT INTO `events_clients` (user_id, req_id, from_id, event, `read`) VALUES ('".$_SESSION['id']."', '".$req_id."', '".$_SESSION['id']."', 'taken_from_closed', '1')";
|
|||
|
|
} else {
|
|||
|
|
$sql = "INSERT INTO `events_clients` (user_id, req_id, from_id, event, `read`) VALUES ('".$_SESSION['id']."', '".$req_id."', '".$_SESSION['id']."', '".$accepted."', '1')";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($adjacent_id > 0 && $req_id > 0){
|
|||
|
|
//Для смежной воронки ищем ответственного по заявке в основной воронке и смежную воронку
|
|||
|
|
$sql_ad = "SELECT * FROM `adjacent_funnels` WHERE id = {$adjacent_id}";
|
|||
|
|
$q_ad = mysql_query($sql_ad);
|
|||
|
|
$r_ad = mysql_fetch_assoc($q_ad);
|
|||
|
|
$funnel_id = $r_ad['funnel_id'];
|
|||
|
|
$sql_req = "SELECT * FROM requisitions WHERE id = {$req_id}";
|
|||
|
|
$q_req = mysql_query($sql_req);
|
|||
|
|
if($r_req = mysql_fetch_assoc($q_req)){
|
|||
|
|
if($r_req['who_work'] > 0){
|
|||
|
|
$sql_up_ev = "INSERT INTO `events_clients` (user_id, req_id, from_id, event, `read`, funnel_type, funnelid) VALUES ('".$_SESSION['id']."', '".$req_id."', '".$r_req['who_work']."', 'transmitted_adjacent', '1', '{$type_funnel}',{$funnel_id})";
|
|||
|
|
mysql_query($sql_up_ev);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
$agency = new User;
|
|||
|
|
$agency->get($_SESSION['id']);
|
|||
|
|
mysql_query($sql);
|
|||
|
|
$sqlUser = "SELECT `first_name`, `last_name`, `middle_name`, `phone`, `agency_name` FROM `users` where id=".$_SESSION['id'];
|
|||
|
|
$qUser = mysql_query($sqlUser);
|
|||
|
|
$rUser = mysql_fetch_assoc($qUser);
|
|||
|
|
$sobstv = trim($rUser['last_name'] . ' ' . $rUser['first_name'] . ' ' . $rUser['middle_name']);
|
|||
|
|
if ($_SESSION['agency']) {
|
|||
|
|
$sobstv = $sobstv . ", агентство " . $rUser['agency_name'];
|
|||
|
|
} else {
|
|||
|
|
|
|||
|
|
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']);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Объединение заявок для Домрил
|
|||
|
|
/* if($tr != 1 && $req_id > 0 && $agency->agencyId == 19895){
|
|||
|
|
$client_req_id = 0;
|
|||
|
|
$sql_cl_req = "SELECT * FROM requisitions WHERE id = {$req_id}";
|
|||
|
|
$q_cl_req = mysql_query($sql_cl_req);
|
|||
|
|
$r_cl_req = mysql_fetch_assoc($q_cl_req);
|
|||
|
|
$client_req_id = (int)$r_cl_req['client_id'];
|
|||
|
|
if($client_req_id > 0){
|
|||
|
|
$sql_req = "SELECT * FROM requisitions WHERE client_id='{$client_req_id}' AND who_work = $_GET[who_work] AND deleted = 0 AND cancel = 0 AND id != {$req_id}";
|
|||
|
|
$q_req = mysql_query($sql_req);
|
|||
|
|
while($r_req = mysql_fetch_assoc($q_req)){
|
|||
|
|
/*$comment = "Обращался повторно<br>";
|
|||
|
|
|
|||
|
|
$comment .= "Заявка: ID ".$r_req['id'] ." от ".date('d.m.Y H:i:s', strtotime($r_req['created_at']));
|
|||
|
|
|
|||
|
|
$sql_ev = "INSERT INTO user_client_events (req_id, `type`, comment, user_id, from_id, create_date, calendar_view)
|
|||
|
|
VALUES ($req_id, 'comment', '{$comment}', {$_GET['who_work']}, {$_GET['who_work']}, NOW(), 1)";
|
|||
|
|
mysql_query($sql_ev);*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
/* mysql_query("UPDATE requisitions SET cancel = 1 WHERE id = $r_req[id]");
|
|||
|
|
|
|||
|
|
$dop_text = "Объединение c заявкой ID ".$r_req['id'];
|
|||
|
|
$in_ev = "INSERT INTO `events_clients` (`user_id`, `req_id`, `event`, `dop_text`, `read`) VALUES ('{$_GET['who_work']}', '$req_id', 'update', '{$dop_text}', 1)";
|
|||
|
|
mysql_query($in_ev);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}*/
|
|||
|
|
if($tr != 1 && $adjacent_id == 0){
|
|||
|
|
|
|||
|
|
$num_search = num_search($rUser['phone']);
|
|||
|
|
//Передача объекта
|
|||
|
|
if($req_id > 0){
|
|||
|
|
$sql_cl = "SELECT `name` as `fio`, object_id, type_id, (SELECT heir FROM requisitions_type WHERE id = requisitions.type_id) as heir FROM `requisitions` WHERE `id` = ".$req_id;
|
|||
|
|
$q_cl = mysql_query($sql_cl);
|
|||
|
|
$r_cl = mysql_fetch_assoc($q_cl);
|
|||
|
|
if($r_cl['object_id'] && ($r_cl['type_id'] == 2 || $r_cl['heir'] == 2)){
|
|||
|
|
$sql_up = "UPDATE objects SET id_add_user = '".$_SESSION['id']."', phone='".$rUser['phone']."', sobstv='".$sobstv."' WHERE id = ".$r_cl['object_id'];
|
|||
|
|
//echo $sql_up;
|
|||
|
|
mysql_query($sql_up);
|
|||
|
|
$sql_sph = "UPDATE objects SET id_add_user = {$_SESSION['id']} WHERE id = ".$r_cl['object_id'];
|
|||
|
|
|
|||
|
|
$db_sphinx->query($sql_sph);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
$sql_confirm_obj = "SELECT * FROM client_confirm_objects WHERE client_id = $_GET[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){
|
|||
|
|
|
|||
|
|
$sql_client = "SELECT * FROM `client_objects` WHERE client_id = $_GET[id]";
|
|||
|
|
$q_client = mysql_query($sql_client);
|
|||
|
|
|
|||
|
|
|
|||
|
|
while($object = mysql_fetch_assoc($q_client)){
|
|||
|
|
$sql_up = "UPDATE objects SET id_add_user = '".$_SESSION['id']."', phone='".$rUser['phone']."', sobstv='".$sobstv."' WHERE id = ".$object['object_id'];
|
|||
|
|
//echo $sql_up;
|
|||
|
|
mysql_query($sql_up);
|
|||
|
|
$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_req SET status = 1 WHERE client_id = $_GET[id] AND status = 0");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
$cl_count = new Clients;
|
|||
|
|
echo $cl_count->getCountResClients($_SESSION['id']);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
?>
|