Joywork/ajax/confirmClient.php

328 lines
16 KiB
PHP
Raw Permalink Normal View History

2026-05-22 20:21:54 +02:00
<?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']);
}
?>