937 lines
38 KiB
PHP
937 lines
38 KiB
PHP
|
|
<?php
|
|||
|
|
require_once($_SERVER['DOCUMENT_ROOT']."/ajax/vue_php_function.php");
|
|||
|
|
ini_set('display_errors', 1);
|
|||
|
|
error_reporting(E_ALL & ~E_DEPRECATED & ~E_STRICT & ~E_NOTICE);
|
|||
|
|
|
|||
|
|
$data = json_decode(file_get_contents("php://input"));
|
|||
|
|
|
|||
|
|
$pdo = new MysqlPdo(hst, ndb, user, pass);
|
|||
|
|
|
|||
|
|
$sql = "SET NAMES 'utf8'";
|
|||
|
|
|
|||
|
|
$pdo->query($sql);
|
|||
|
|
|
|||
|
|
$request = $data->request;
|
|||
|
|
|
|||
|
|
if($request == 'get_type'){
|
|||
|
|
foreach ($WORK_TYPES as $key => $val){
|
|||
|
|
if($key > 0){
|
|||
|
|
$clientstype = array('code'=>$key, 'name'=>$val);
|
|||
|
|
$response[] = $clientstype;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
echo json_encode($response);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($request == 'get_role'){
|
|||
|
|
foreach($ROLES_CLIENTS as $key => $val){
|
|||
|
|
if($key > 0){
|
|||
|
|
$clientsrole = array('code'=>$key, 'name'=>$val);
|
|||
|
|
$response[] = $clientsrole;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
echo json_encode($response);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// Add record
|
|||
|
|
if($request == 'addFunnel'){
|
|||
|
|
$response = [];
|
|||
|
|
$name = clearInputElement($data->name);
|
|||
|
|
$client_type = clearInputElement($data->client_type);
|
|||
|
|
$role = clearInputElement($data->role);
|
|||
|
|
$user_id = clearInputElement($data->user_id);
|
|||
|
|
$agency_id = clearInputElement($data->agency_id);
|
|||
|
|
$is_req = (int)$data->is_req;
|
|||
|
|
$is_client = (int)$data->is_client;
|
|||
|
|
$order_number = (int)$data->order_number;
|
|||
|
|
$is_agent = (int)$data->is_agent;
|
|||
|
|
$is_agency = (int)$data->is_agency;
|
|||
|
|
$is_dev = (int)$data->is_dev;
|
|||
|
|
|
|||
|
|
$users_no_see = $data->users_no_see;
|
|||
|
|
|
|||
|
|
if(empty($users_no_see)){
|
|||
|
|
$users_no_see = '';
|
|||
|
|
} else {
|
|||
|
|
$users_no_see = json_encode($users_no_see);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$funnelData = $pdo->query("SELECT id FROM funnel_admin WHERE deleted=0 and name='".$name."' and agency_id='".$agency_id."'");
|
|||
|
|
if($pdo->num_rows($funnelData) == 0){
|
|||
|
|
if($pdo->query("INSERT INTO funnel_admin (name,client_type,role,user_id,agency_id,is_req,is_client, order_number, users_no_see, is_agent, is_agency, is_dev)
|
|||
|
|
VALUES ('".$name."','".$client_type."','".$role."', '".$user_id."', '".$agency_id."', {$is_req}, {$is_client}, {$order_number}, '{$users_no_see}', '{$is_agent}', '{$is_agency}', '{$is_dev}')"))
|
|||
|
|
$response['done'] = 'done';
|
|||
|
|
else
|
|||
|
|
$response['error'] = $pdo->errorInfo();
|
|||
|
|
}else{
|
|||
|
|
$response['error'] = "Воронка с таким наименованием уже есть в вашем агенстве";
|
|||
|
|
}
|
|||
|
|
echo json_encode($response);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
//All funnels agency
|
|||
|
|
if($request == 'get_all_funnel'){
|
|||
|
|
$agency_id = $data->agency_id;
|
|||
|
|
$funnelsData = mysql_query("select * from funnel_admin WHERE agency_id = {$agency_id} and deleted = 0 order by id");
|
|||
|
|
|
|||
|
|
$response = array();
|
|||
|
|
//Нулевая воронка
|
|||
|
|
/* $sql_d = "SELECT * FROM funnel_default WHERE agency_id = {$agency_id}";
|
|||
|
|
$q_d = $pdo->query($sql_d);
|
|||
|
|
if($pdo->num_rows($q_d) == 0){
|
|||
|
|
$response[] = array('id' => 0, 'name' => 'Обычные', 'is_client' => 1, 'is_req' => 1, 'is_stage' => 1, 'is_show_funnels' => 1, 'order_number' => 0);
|
|||
|
|
} else {
|
|||
|
|
$r_d = $pdo->fetch_assoc($q_d);
|
|||
|
|
$name = 'Обычные';
|
|||
|
|
if(!empty($r_d['name'])) $name = $r_d['name'];
|
|||
|
|
$response[] = array('id' => 0, 'name' => $name, 'is_client' => $r_d['is_client'], 'is_req' => $r_d['is_req'], 'is_stage' => $r_d['is_stage'], 'is_show_funnels' => $r_d['is_show_funnels'], 'order_number' => $r_d['order_number']);
|
|||
|
|
}*/
|
|||
|
|
|
|||
|
|
while($row = mysql_fetch_assoc($funnelsData)){
|
|||
|
|
$row['date'] = date('d.m.Y H:i:s', strtotime($row['date_create']));
|
|||
|
|
$row['role'] = htmlspecialchars_decode($row['role']);
|
|||
|
|
$row['client_type'] = htmlspecialchars_decode($row['client_type']);
|
|||
|
|
$row['mainstep'] = '';
|
|||
|
|
$tempUserNo = null;
|
|||
|
|
if(!empty($row['users_no_see'])){
|
|||
|
|
$tempUserNo = json_decode($row['users_no_see'], true);
|
|||
|
|
}
|
|||
|
|
$row['user_no_see'] = $tempUserNo;
|
|||
|
|
//Этапы
|
|||
|
|
$steps = mysql_query("SELECT * FROM funnel_steps WHERE funnel_id = ".$row['id']." and deleted=0 order by main desc");
|
|||
|
|
while($step = mysql_fetch_assoc($steps)){
|
|||
|
|
$step['name_number'] = $step['name'];
|
|||
|
|
if($step['main'] == 1){
|
|||
|
|
$step['name_number'] = '1. '.$step['name'];
|
|||
|
|
} else if($step['order_number'] > 0){
|
|||
|
|
$step['name_number'] = $step['order_number'].'. '.$step['name'];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$row['branchs'][$step['branch']][$step['id']] = deClearInputElements($step);
|
|||
|
|
$row['steps'][$step['id']] = deClearInputElements($step);
|
|||
|
|
if(!empty($row['steps'][$step['id']]['users_mes'])){
|
|||
|
|
//var_dump($step['users_mes']);
|
|||
|
|
$row['steps'][$step['id']]['users_mes'] = json_decode($row['steps'][$step['id']]['users_mes'], true);
|
|||
|
|
}
|
|||
|
|
if(!empty($row['steps'][$step['id']]['tasks_move'])){
|
|||
|
|
$row['steps'][$step['id']]['tasks_move'] = json_decode($row['steps'][$step['id']]['tasks_move'], true);
|
|||
|
|
}
|
|||
|
|
$sql_file = "SELECT * FROM funnel_files WHERE etap_id = '".$step['id']."' AND funnel_id = ".$row['id'];
|
|||
|
|
$q_file = mysql_query($sql_file);
|
|||
|
|
$files = array();
|
|||
|
|
while($file_r = mysql_fetch_assoc($q_file)){
|
|||
|
|
$path = "https://uf.joywork.ru/upload/funnels/".$row['id']."/".$file_r['guid'].".".$file_r['type'];
|
|||
|
|
|
|||
|
|
$files[] = array('guid' => $file_r['guid'],'isUpload' => true, 'uploads' => false, 'name' => $file_r['name']);
|
|||
|
|
}
|
|||
|
|
$row['steps'][$step['id']]['files'] = $files;
|
|||
|
|
|
|||
|
|
$prev_files = array();
|
|||
|
|
if(!empty($step['pole_prev'])){
|
|||
|
|
$pole_prev = json_decode($row['steps'][$step['id']]['pole_prev'], true);
|
|||
|
|
|
|||
|
|
if(!empty($pole_prev['files_attach'])){
|
|||
|
|
foreach($pole_prev['files_attach'] as $file){
|
|||
|
|
|
|||
|
|
$sql_file_prev = "SELECT * FROM files_steps_funnel_prev WHERE id = {$file['id']}";
|
|||
|
|
$q_file_prev = mysql_query($sql_file_prev);
|
|||
|
|
|
|||
|
|
while($file_r = mysql_fetch_assoc($q_file_prev)){
|
|||
|
|
$path = "https://uf.joywork.ru/upload/funnels/prev_steps/".$row['id']."/".$file_r['guid'].".".$file_r['type'];
|
|||
|
|
|
|||
|
|
$prev_files[] = array('guid' => $file_r['guid'],'isUpload' => true, 'uploads' => false, 'name' => $file_r['name']);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
$row['steps'][$step['id']]['prev_files'] = $prev_files;
|
|||
|
|
|
|||
|
|
/* if(!empty($step['pole_dop'])){
|
|||
|
|
|
|||
|
|
}*/
|
|||
|
|
|
|||
|
|
|
|||
|
|
$row['mainsteps'][] = array('id'=>$step['id'], 'name'=>$step['name']);
|
|||
|
|
|
|||
|
|
if($step['main'] == 1){
|
|||
|
|
$row['mainstep'] = array('id'=>$step['id'], 'name'=>$step['name']);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
$response[] = $row;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
echo json_encode($response);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($request == 'get_users_see'){
|
|||
|
|
$result = array();
|
|||
|
|
$user_id = (int)$data->user_id;
|
|||
|
|
$agency_id = (int)$data->agency_id;
|
|||
|
|
if($user_id > 0 && $agency_id > 0){
|
|||
|
|
$name_file_emp = $_SERVER['DOCUMENT_ROOT'] . '/server/emp/'.$agency_id .'/'.$user_id.'/emp.json';
|
|||
|
|
//echo $name_file_emp."\n";
|
|||
|
|
if(!file_exists($name_file_emp)){
|
|||
|
|
require_once($_SERVER['DOCUMENT_ROOT']."/templates/filter_emp.php");
|
|||
|
|
}
|
|||
|
|
$users = [];
|
|||
|
|
$usersIds = [];
|
|||
|
|
$usersIds[] = $agency_id;
|
|||
|
|
$sql_users = "SELECT id FROM users WHERE id in (select id from users where id=$agency_id or id_manager=$agency_id or id_manager in
|
|||
|
|
(select id from users where id_manager=$agency_id or id_manager in
|
|||
|
|
(select id from users where id_manager=$agency_id)))";
|
|||
|
|
$q_users = mysql_query($sql_users);
|
|||
|
|
while($r_users = mysql_fetch_assoc($q_users)){
|
|||
|
|
$usersIds[] = (int)$r_users['id'];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
$sql_d = "SELECT d.name as dep_name, r.name as role_name, r.role, r.department_id, r.id FROM departments as d left join roles as r on d.id = r.department_id WHERE d.agency_id = ".$agency_id;
|
|||
|
|
$q_d = mysql_query($sql_d);
|
|||
|
|
$departments = array();
|
|||
|
|
while($r_d = mysql_fetch_assoc($q_d)){
|
|||
|
|
$departments[$r_d['id']] = $r_d;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$sql_u = "SELECT * FROM users WHERE id in (".implode(',',$usersIds).")";
|
|||
|
|
$q_u = mysql_query($sql_u);
|
|||
|
|
while($row = mysql_fetch_assoc($q_u)){
|
|||
|
|
$users[$row['id']] = $row;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$json_str = file_get_contents($name_file_emp);
|
|||
|
|
$json = json_decode($json_str, true);
|
|||
|
|
//var_dump($json);
|
|||
|
|
$ids = array();
|
|||
|
|
if(isset($json['agency']['id'])){
|
|||
|
|
$result[] = array('code'=>(int)$json['agency']['id'], 'type'=>'agency', 'name'=>'Руководитель агентства');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(isset($json['agency']['managers']['ids'])){
|
|||
|
|
foreach($json['agency']['managers']['ids'] as $id_menager){
|
|||
|
|
if(isset($users[$id_menager])){
|
|||
|
|
$name = '';
|
|||
|
|
if($users[$id_menager]['role_id'] > 0){
|
|||
|
|
$name .= $departments[$users[$id_menager]['role_id']]['dep_name'];
|
|||
|
|
} else {
|
|||
|
|
$name .= "Группа менеджера ";
|
|||
|
|
}
|
|||
|
|
$result[] = array('code'=>'all_'.(int)$id_menager, 'type'=>'otdel', 'name'=>$name);
|
|||
|
|
|
|||
|
|
$name='';
|
|||
|
|
$name .= '-'.trim($users[$id_menager]['last_name'] . ' ' . $users[$id_menager]['first_name'] . ' ' . $users[$id_menager]['middle_name']);
|
|||
|
|
if($users[$id_menager]['role_id'] > 0){
|
|||
|
|
$name .= " (".$departments[$users[$id_menager]['role_id']]['role_name'].")";
|
|||
|
|
} else {
|
|||
|
|
$name .= " (Менеджер)";
|
|||
|
|
}
|
|||
|
|
$result[] = array('code'=>(int)$id_menager, 'type'=>'manager', 'name'=>$name);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(isset($json['agency']['managers'][$id_menager]['agents'])){
|
|||
|
|
foreach($json['agency']['managers'][$id_menager]['agents'] as $id_agent){
|
|||
|
|
if(isset($users[$id_agent])){
|
|||
|
|
$name = '-';
|
|||
|
|
|
|||
|
|
$name .= trim($users[$id_agent]['last_name'] . ' ' . $users[$id_agent]['first_name'] . ' ' . $users[$id_agent]['middle_name']);
|
|||
|
|
if($users[$id_agent]['role_id'] > 0){
|
|||
|
|
$name .= " (".$departments[$users[$id_agent]['role_id']]['role_name'].")";
|
|||
|
|
} else {
|
|||
|
|
$name .= " (Агент)";
|
|||
|
|
}
|
|||
|
|
$result[] = array('code'=>(int)$id_agent, 'type'=>'agent', 'name'=>$name);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
if(isset($json['agency']['agents'])){
|
|||
|
|
foreach($json['agency']['agents'] as $id_agent){
|
|||
|
|
if(isset($users[$id_agent])){
|
|||
|
|
$name = '';
|
|||
|
|
|
|||
|
|
$name .= trim($users[$id_agent]['last_name'] . ' ' . $users[$id_agent]['first_name'] . ' ' . $users[$id_agent]['middle_name']);
|
|||
|
|
if($users[$id_agent]['role_id'] > 0){
|
|||
|
|
$name .= " (".$departments[$users[$id_agent]['role_id']]['role_name'].")";
|
|||
|
|
} else {
|
|||
|
|
$name .= " (Агент)";
|
|||
|
|
}
|
|||
|
|
$result[] = array('code'=>(int)$id_agent, 'type'=>'agent', 'name'=>$name);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
echo json_encode($result, JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//get list steps
|
|||
|
|
if($request == 'get_steps'){
|
|||
|
|
$funnelId = (int)$data->funnel_id;
|
|||
|
|
$row = array();
|
|||
|
|
if($steps = mysql_query("SELECT * FROM funnel_steps WHERE funnel_id = ".$funnelId." and deleted=0")){
|
|||
|
|
while($step = mysql_fetch_assoc($steps)){
|
|||
|
|
$row[$step['id']] = deClearInputElements($step);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
echo mysql_error();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
echo json_encode($row, JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//get list steps
|
|||
|
|
if($request == 'get_steps_order'){
|
|||
|
|
$funnelId = (int)$data->funnel_id;
|
|||
|
|
$row = array();
|
|||
|
|
if($steps = mysql_query("SELECT * FROM funnel_steps WHERE funnel_id = ".$funnelId." and deleted=0 order by branch")){
|
|||
|
|
while($step = mysql_fetch_assoc($steps)){
|
|||
|
|
$step['isHide'] = true;
|
|||
|
|
$row['step_'.$step['id']] = deClearInputElements($step);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
echo mysql_error();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
echo json_encode($row, JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Update funnel_admin on id
|
|||
|
|
if($request == 'updateFunnel'){
|
|||
|
|
//error_reporting(E_ALL | E_STRICT);
|
|||
|
|
//ini_set('display_errors', 1);
|
|||
|
|
$id = $data->id;
|
|||
|
|
$agency_id = $data->agency_id;
|
|||
|
|
$name = clearInputElement($data->name);
|
|||
|
|
if(isset($data->client_type)){
|
|||
|
|
$client_type = clearInputElement($data->client_type);
|
|||
|
|
}
|
|||
|
|
if(isset($data->role)){
|
|||
|
|
$role = clearInputElement($data->role);
|
|||
|
|
}
|
|||
|
|
$is_req = (int)$data->is_req;
|
|||
|
|
$is_client = (int)$data->is_client;
|
|||
|
|
$is_stage = (int)$data->is_stage;
|
|||
|
|
$is_show_funnels = (int)$data->is_show_funnels;
|
|||
|
|
$order_number = (int)$data->order_number;
|
|||
|
|
$is_no_see = (int)$data->is_no_see;
|
|||
|
|
$users_no_see = $data->users_no_see;
|
|||
|
|
$is_agent = (int)$data->is_agent;
|
|||
|
|
$is_agency = (int)$data->is_agency;
|
|||
|
|
$is_dev = (int)$data->is_dev;
|
|||
|
|
|
|||
|
|
if(empty($users_no_see)){
|
|||
|
|
$users_no_see = '';
|
|||
|
|
} else {
|
|||
|
|
$users_no_see = json_encode($users_no_see);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($id == 0){
|
|||
|
|
$cl = new Clients();
|
|||
|
|
$usersIds = $cl -> getUsersFilter([], $_SESSION['id'], true);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($is_client != 1){
|
|||
|
|
$sql_cl = "SELECT COUNT(*) as total FROM clients WHERE funnel_id = {$id}";
|
|||
|
|
if($id == 0){
|
|||
|
|
$sql_cl .= " AND (who_work in (".implode(',',$usersIds).") OR id_agent in (".implode(',',$usersIds)."))";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$q_cl = $pdo->query($sql_cl);
|
|||
|
|
$res = $pdo->result($q_cl);
|
|||
|
|
if($res > 0){
|
|||
|
|
echo json_encode(array('result'=>'error',
|
|||
|
|
'mes'=>'<p>В воронке есть клиенты ('.$res.' шт.).</p><p>Необходимо перенести их в другую воронку.</p>',
|
|||
|
|
'error_close'=>$res, 'type_error'=>'client'),
|
|||
|
|
JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($is_req != 1) {
|
|||
|
|
$sql_r = "SELECT COUNT(*) as total FROM requisitions WHERE funnel_id = {$id} AND cancel = 0";
|
|||
|
|
if($id == 0){
|
|||
|
|
$sql_r .= " AND (who_work in (".implode(',',$usersIds).") OR user_id in (".implode(',',$usersIds)."))";
|
|||
|
|
}
|
|||
|
|
//echo $sql_r;
|
|||
|
|
$q_r = $pdo->query($sql_r);
|
|||
|
|
$res = $pdo->result($q_r);
|
|||
|
|
if($res > 0){
|
|||
|
|
echo json_encode(array('result'=>'error',
|
|||
|
|
'mes'=>'<p>В воронке заявки ('.$res.' шт.).</p><p>Необходимо перенести их в другую воронку</p>',
|
|||
|
|
'error_close'=>$res, 'type_error'=>'req'),
|
|||
|
|
JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$sql_up ="UPDATE funnel_admin SET name = '{$name}', role='{$role}', client_type='{$client_type}', is_req={$is_req}, is_client={$is_client}, order_number={$order_number}, users_no_see = '{$users_no_see}', is_no_see={$is_no_see},
|
|||
|
|
is_agent = {$is_agent}, is_agency = {$is_agency}, is_dev = {$is_dev} WHERE id = {$id}";
|
|||
|
|
if($id == 0){
|
|||
|
|
$sql_d = "SELECT id FROM funnel_default WHERE agency_id = {$agency_id}";
|
|||
|
|
$q_d = $pdo->query($sql_d);
|
|||
|
|
if($pdo->num_rows($q_d) == 0){
|
|||
|
|
$sql_up = "INSERT INTO funnel_default SET agency_id = {$agency_id}, name='{$name}', is_req={$is_req}, is_client={$is_client}, is_stage={$is_stage}, is_show_funnels={$is_show_funnels}, order_number={$order_number}";
|
|||
|
|
} else {
|
|||
|
|
$sql_up = "UPDATE funnel_default SET is_req={$is_req}, is_client={$is_client}, name='{$name}', is_stage={$is_stage}, is_show_funnels={$is_show_funnels}, order_number={$order_number} WHERE agency_id = {$agency_id}";
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(!$pdo->query($sql_up)){
|
|||
|
|
echo json_encode(array('result'=>'error', 'mes'=>$pdo->errorInfo()), JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
echo json_encode(array('result'=>'done'), JSON_UNESCAPED_UNICODE);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Delete funnel_admin
|
|||
|
|
if($request == 'delete_funnel'){
|
|||
|
|
$res['result'] = 'done';
|
|||
|
|
$id = $data->id;
|
|||
|
|
//Есть ли не закрытые клиенты
|
|||
|
|
$sql = "SELECT id FROM clients WHERE funnel_id=".$id;
|
|||
|
|
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
$rows = mysql_num_rows($q);
|
|||
|
|
if($rows > 0){
|
|||
|
|
$res['result'] = 'error';
|
|||
|
|
//$res['mes'] = "Воронку нельзя удалить. Не закрытых клиентов: ".$rows;
|
|||
|
|
$res['error_close'] = $rows;
|
|||
|
|
$res['type_error'] = 'client';
|
|||
|
|
echo json_encode($res, JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
//Есть ли не закрытые клиенты
|
|||
|
|
$sql = "SELECT id FROM requisitions WHERE funnel_id=".$id;
|
|||
|
|
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
$rows = mysql_num_rows($q);
|
|||
|
|
if($rows > 0){
|
|||
|
|
$res['result'] = 'error';
|
|||
|
|
//$res['mes'] = "Воронку нельзя удалить. Не закрытых клиентов: ".$rows;
|
|||
|
|
$res['error_close'] = $rows;
|
|||
|
|
$res['type_error'] = 'req';
|
|||
|
|
echo json_encode($res, JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
if(!mysql_query("UPDATE funnel_admin set deleted = 1 WHERE id = {$id}")){
|
|||
|
|
$res['result'] = 'error';
|
|||
|
|
$res['mes'] = mysql_error();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
echo json_encode($res, JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Delete file
|
|||
|
|
if($request == 'deleteFile'){
|
|||
|
|
$funnel_id = $data->funnelId;
|
|||
|
|
$guid = $data->guid;
|
|||
|
|
$type = $data->type_file;
|
|||
|
|
$path = $_SERVER['DOCUMENT_ROOT']."/upload/funnels/".$funnel_id."/".$guid.".".$type;
|
|||
|
|
|
|||
|
|
unlink($path);
|
|||
|
|
|
|||
|
|
mysql_query("DELETE FROM funnel_files WHERE guid = '".$guid."' and funnel_id = '{$funnel_id}'");
|
|||
|
|
exit;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//Delete file
|
|||
|
|
if($request == 'deleteFilePrev'){
|
|||
|
|
$funnel_id = $data->funnelId;
|
|||
|
|
$guid = $data->guid;
|
|||
|
|
$type = $data->type_file;
|
|||
|
|
$path = $_SERVER['DOCUMENT_ROOT']."/upload/funnels/prev_steps/".$funnel_id."/".$guid.".".$type;
|
|||
|
|
|
|||
|
|
unlink($path);
|
|||
|
|
|
|||
|
|
mysql_query("DELETE FROM files_steps_funnel_prev WHERE guid = '".$guid."' and funnel_id = '{$funnel_id}'");
|
|||
|
|
exit;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($request == 'get_doers'){
|
|||
|
|
|
|||
|
|
$agency_id = clearInputElement($data->agency_id);
|
|||
|
|
|
|||
|
|
//Определение отделов
|
|||
|
|
$sql_d = "SELECT d.name as dep_name, r.name as role_name, r.role, r.department_id, r.id FROM departments as d left join roles as r on d.id = r.department_id WHERE d.agency_id = ".$agency_id;
|
|||
|
|
|
|||
|
|
$q_d = mysql_query($sql_d);
|
|||
|
|
$departments = array();
|
|||
|
|
while($r_d = mysql_fetch_assoc($q_d)){
|
|||
|
|
$departments[$r_d['id']] = $r_d;
|
|||
|
|
}
|
|||
|
|
$sql = "SELECT id, id_manager, agency, manager, first_name, last_name, middle_name, role_id, department_id FROM users WHERE id={$agency_id} or id_manager = {$agency_id}";
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
$res = array();
|
|||
|
|
$res_a = array();
|
|||
|
|
$res_ag = array();
|
|||
|
|
while($r = mysql_fetch_assoc($q)){
|
|||
|
|
$res_ag[$r['id']] = array();
|
|||
|
|
if($r['agency'] > 0){
|
|||
|
|
// if(!isset($res_a)) $res_a = array();
|
|||
|
|
|
|||
|
|
$res_a[$r['id']]['manager'] = array('id' => $r['id'], 'fio' => htmlspecialchars_decode(trim($r['last_name'] . ' ' . $r['first_name'] . ' ' . $r['middle_name'])), 'department' => 'Агенство', 'role' => 'Руководитель');
|
|||
|
|
$res_a[$r['id']]['isSee'] = false;
|
|||
|
|
} else if ($r['manager'] > 0){
|
|||
|
|
//if(!isset($res_m)) $res_m = array();
|
|||
|
|
$department = 'Агенство';
|
|||
|
|
$role = 'Менеджер';
|
|||
|
|
if($r['role_id'] > 0){
|
|||
|
|
$department = $departments[$r['role_id']]['dep_name'];
|
|||
|
|
$role = $departments[$r['role_id']]['role_name'];
|
|||
|
|
}
|
|||
|
|
$res_a[$r['id']]['manager']= array('id' => $r['id'], 'fio' => htmlspecialchars_decode(trim($r['last_name'] . ' ' . $r['first_name'] . ' ' . $r['middle_name'])), 'department' =>$department, 'role' => $role);
|
|||
|
|
$res_a[$r['id']]['isSee'] = false;
|
|||
|
|
$sql_m = "SELECT id, id_manager, agency, manager, first_name, last_name, middle_name, role_id, department_id FROM users WHERE id_manager = ".$r['id']. " order by department_id";
|
|||
|
|
$q_m = mysql_query($sql_m);
|
|||
|
|
while($r_m = mysql_fetch_assoc($q_m)){
|
|||
|
|
$department = 'Агенство';
|
|||
|
|
$role = 'Агент';
|
|||
|
|
if($r_m['role_id'] > 0){
|
|||
|
|
$department = $departments[$r_m['role_id']]['dep_name'];
|
|||
|
|
$role = $departments[$r_m['role_id']]['role_name'];
|
|||
|
|
}
|
|||
|
|
//if(!isset($res_ag)) $res_ag = array();
|
|||
|
|
$res_a[$r['id']]['agents'][] = array('id' => $r_m['id'], 'fio' => htmlspecialchars_decode(trim($r_m['last_name'] . ' ' . $r_m['first_name'] . ' ' . $r_m['middle_name'])), 'department' =>$department, 'role' =>$role);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
$department = 'Агенство';
|
|||
|
|
$role = 'Агент';
|
|||
|
|
if($r['role_id'] > 0){
|
|||
|
|
$department = $departments[$r['role_id']]['dep_name'];
|
|||
|
|
$role = $departments[$r['role_id']]['role_name'];
|
|||
|
|
}
|
|||
|
|
$res_a[$agency_id]['agents'][] = array('id' => $r['id'], 'fio' => htmlspecialchars_decode(trim($r['last_name'] . ' ' . $r['first_name'] . ' ' . $r['middle_name'])), 'department' => $department, 'role' => $role);
|
|||
|
|
}
|
|||
|
|
//$res_a[[$r['id']]['agents']] = $res_ag[$r['id']];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
echo json_encode($res_a, JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($request == 'get_users'){
|
|||
|
|
//Список сотрудников
|
|||
|
|
$data = json_decode(file_get_contents("php://input"));
|
|||
|
|
$agency_id = (int)$data->agency_id;
|
|||
|
|
/*error_reporting(E_ALL | E_STRICT);
|
|||
|
|
ini_set('display_errors', 1);*/
|
|||
|
|
$depClass = new Department();
|
|||
|
|
$departments = $depClass->getDepartments();
|
|||
|
|
$result = array();
|
|||
|
|
$usersArr = array();
|
|||
|
|
$user = new User;
|
|||
|
|
$user->get($agency_id);
|
|||
|
|
$usersArr[] = $agency_id;
|
|||
|
|
|
|||
|
|
$result['emp'][] = array('code'=>0, 'date_employe'=>'Ответственный');
|
|||
|
|
$result['emp'][] = array('code'=>'manager', 'date_employe'=>'Менеджер ответственного');
|
|||
|
|
$sql = "SELECT * FROM users WHERE id=$agency_id AND blocked=0";
|
|||
|
|
$rez = mysql_query($sql);
|
|||
|
|
$agency = mysql_fetch_assoc($rez);
|
|||
|
|
$result['emp'][] = array('code' => $agency_id, 'date_employe' => htmlspecialchars_decode(trim($agency['last_name'] . ' ' . $agency['first_name'] . ' ' . $agency['middle_name']).' (руководитель)'));
|
|||
|
|
|
|||
|
|
if($user->agency){
|
|||
|
|
|
|||
|
|
$agentsOfAgency = User::getAllAgents($user->agencyId);
|
|||
|
|
$agentsOfManager = User::getAllManagers($user->agencyId);
|
|||
|
|
} else if ($user->manager){
|
|||
|
|
$agentsOfAgency = User::getAllAgents($userId);
|
|||
|
|
} else if ($user->id_manager) {
|
|||
|
|
$agentsOfAgency = User::getAllAgents($user->id_manager);
|
|||
|
|
$sql = "SELECT * FROM users WHERE manager=1 AND id=$user->id_manager AND blocked=0";
|
|||
|
|
$agentsOfManager = array();
|
|||
|
|
$rez = mysql_query($sql);
|
|||
|
|
while($manager = mysql_fetch_assoc($rez)) $agentsOfManager[] = $manager;
|
|||
|
|
//$agentsOfManager = User::getMyManagers();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
if($agentsOfManager) {
|
|||
|
|
|
|||
|
|
foreach($agentsOfManager as $mngr)
|
|||
|
|
{
|
|||
|
|
if(!in_array($mngr['id'], $usersArr)){
|
|||
|
|
$usersArr[] = $mngr['id'];
|
|||
|
|
if($mngr['role_id'] > 0){
|
|||
|
|
$result['emp'][] = array('code' => (int)$mngr['id'], 'date_employe' => htmlspecialchars_decode(trim($mngr['last_name'] . ' ' . $mngr['first_name'] . ' ' . $mngr['middle_name']).' ('.$departments[$mngr['role_id']]['role_name'].' '.$departments[$mngr['role_id']]['dep_name'].')'));
|
|||
|
|
} else {
|
|||
|
|
$result['emp'][] = array('code' => (int)$mngr['id'], 'date_employe' => htmlspecialchars_decode(trim($mngr['last_name'] . ' ' . $mngr['first_name'] . ' ' . $mngr['middle_name']).' (менеджер)'));
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if((int)$mngr['role_id'] > 0 && (int)$mngr['department_id'] > 0){
|
|||
|
|
$role_user = $depClass->getRole((int)$mngr['role_id']);
|
|||
|
|
if($role_user['role'] == 'admin_department'){
|
|||
|
|
$menagerDep = User::getDepManagers($role_user['department_id']);
|
|||
|
|
|
|||
|
|
foreach($menagerDep as $md){
|
|||
|
|
if(!in_array($md['id'], $usersArr)){
|
|||
|
|
$usersArr[] = $md['id'];
|
|||
|
|
$result['emp'][] = array('code' => (int)$md['id'], 'date_employe' => htmlspecialchars_decode(trim($md['last_name'] . ' ' . $md['first_name'] . ' ' . $md['middle_name']).' ('.$departments[$md['role_id']]['role_name'].' '.$departments[$md['role_id']]['dep_name'].')'));
|
|||
|
|
}
|
|||
|
|
$thisAgents = User::getAgentsOfAgency($md['id'], true);
|
|||
|
|
|
|||
|
|
foreach($thisAgents as $da){
|
|||
|
|
if (!in_array($da['id'], $usersArr)) {
|
|||
|
|
$usersArr[] = $da['id'];
|
|||
|
|
$result['emp'][] = array('code' => (int)$da['id'], 'date_employe' => htmlspecialchars_decode(trim($da['last_name'] . ' ' . $da['first_name'] . ' ' . $da['middle_name']).' ('.$departments[$da['role_id']]['role_name'].' '.$departments[$da['role_id']]['dep_name'].')'));
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($agentsOfAgency) {
|
|||
|
|
|
|||
|
|
foreach($agentsOfAgency as $agent)
|
|||
|
|
{
|
|||
|
|
if (!in_array($agent['id'], $usersArr)){
|
|||
|
|
$usersArr[] = $agent['id'];
|
|||
|
|
if($agent['role_id'] > 0){
|
|||
|
|
$result['emp'][] = array('code' => (int)$agent['id'], 'date_employe' => htmlspecialchars_decode(trim($agent['last_name'] . ' ' . $agent['first_name'] . ' ' . $agent['middle_name']).' ('.$departments[$agent['role_id']]['role_name'].' '.$departments[$agent['role_id']]['dep_name'].')'));
|
|||
|
|
|
|||
|
|
} else {
|
|||
|
|
$result['emp'][] = array('code' => (int)$agent['id'], 'date_employe' => htmlspecialchars_decode(trim($agent['last_name'] . ' ' . $agent['first_name'] . ' ' . $agent['middle_name']).' (агент)'));
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
header('Content-Type: application/json');
|
|||
|
|
|
|||
|
|
echo json_encode($result, JSON_UNESCAPED_UNICODE);
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//save etap
|
|||
|
|
if($request == 'save_step'){
|
|||
|
|
$stepId = (int)$data->step_id;
|
|||
|
|
$funnel_id = (int)$data->funnel_id;
|
|||
|
|
$name = clearInputElement($data->name_step);
|
|||
|
|
if(!empty($data->order_number)){
|
|||
|
|
$order_number = (int)$data->order_number;
|
|||
|
|
}
|
|||
|
|
$days_step = clearInputElement($data->days_step);
|
|||
|
|
$is_move_end_srok = (int)$data->is_move_end_srok;
|
|||
|
|
$tasks_move = json_encode($data->tasks_move);
|
|||
|
|
$color_step = clearInputElement($data->color_step);
|
|||
|
|
$start_parallel = clearInputElement($data->start_parallel);
|
|||
|
|
$stage = clearInputElement($data->stage);
|
|||
|
|
$files = $data->files;
|
|||
|
|
$doers = clearInputElement($data->doers);
|
|||
|
|
$pole_end_list = clearInputElement($data->poleEndlist);
|
|||
|
|
$tasks_list = clearInputElement($data->tasksList);
|
|||
|
|
$name_step_task = clearInputElement($data->name_step_task);
|
|||
|
|
$docs_step_task = clearInputElement($data->docs_step_task);
|
|||
|
|
$next_step_change = clearInputElement($data->nextStepChange);
|
|||
|
|
$next_step = clearInputElement($data->nextStep);
|
|||
|
|
$is_mes = (int)$data->is_mes;
|
|||
|
|
$users_mes = json_encode($data->users_mes);
|
|||
|
|
$pole_prev = clearInputElement($data->pole_prev);
|
|||
|
|
$temp_pole_prev = json_decode($data->pole_prev, true);
|
|||
|
|
$pole_dop = clearInputElement($data->pole_dop);
|
|||
|
|
$is_select_room = (int)$data->is_select_room;
|
|||
|
|
$complex_status_id = (int)$data->complex_status_id > 0 ? (int)$data->complex_status_id : 'NULL';
|
|||
|
|
|
|||
|
|
//Определение первого этапа
|
|||
|
|
|
|||
|
|
$main = 1;
|
|||
|
|
$sql_m = "SELECT id FROM `funnel_steps` WHERE `funnel_id` = {$funnel_id} and main = 1";
|
|||
|
|
|
|||
|
|
$q_m = mysql_query($sql_m);
|
|||
|
|
|
|||
|
|
if(mysql_num_rows($q_m) > 0){
|
|||
|
|
$main = 0;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$set = "SET `funnel_id` = {$funnel_id}, "
|
|||
|
|
. "`name` = '{$name}', "
|
|||
|
|
. "`days_step` = '{$days_step}', "
|
|||
|
|
. "`is_move_end_srok` = '{$is_move_end_srok}', "
|
|||
|
|
. "`tasks_move` = '{$tasks_move}', "
|
|||
|
|
. "`color_step` = '{$color_step}', "
|
|||
|
|
. "`start_parallel` = '{$start_parallel}', "
|
|||
|
|
. "`stage` = '{$stage}', "
|
|||
|
|
. "`doers` = '{$doers}', "
|
|||
|
|
. "`pole_end_list` = '{$pole_end_list}', "
|
|||
|
|
. "`tasks_list` = '{$tasks_list}', "
|
|||
|
|
. "`name_step_task` = '{$name_step_task}', "
|
|||
|
|
. "`next_step_change` = '{$next_step_change}', "
|
|||
|
|
. "`next_step` = '{$next_step}', "
|
|||
|
|
. "`is_mes` = {$is_mes}, "
|
|||
|
|
. "`users_mes` = '{$users_mes}', "
|
|||
|
|
. "`pole_prev` = '{$pole_prev}', "
|
|||
|
|
. "`pole_dop` = '{$pole_dop}', "
|
|||
|
|
. "`is_select_room` = $is_select_room, "
|
|||
|
|
. "`complex_status_id` = $complex_status_id"
|
|||
|
|
;
|
|||
|
|
|
|||
|
|
if($main == 1) {
|
|||
|
|
$set .= ", `main` = 1";
|
|||
|
|
$order_number = 1;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(isset($order_number)){
|
|||
|
|
$set .= ", order_number=$order_number";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($data->arr_next_steps){
|
|||
|
|
$arr_next_steps = clearInputElement($data->arr_next_steps);
|
|||
|
|
$set .= ", arr_next_steps = '".$arr_next_steps."'";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($stepId <= 0){
|
|||
|
|
$sql = "INSERT INTO `funnel_steps` ".$set;
|
|||
|
|
$stepId = mysql_insert_id();
|
|||
|
|
} else {
|
|||
|
|
$sql = "UPDATE `funnel_steps` ".$set." WHERE `id` = ".$stepId;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(!mysql_query($sql)){
|
|||
|
|
echo mysql_error();
|
|||
|
|
} else {
|
|||
|
|
foreach($files as $file){
|
|||
|
|
mysql_query("UPDATE funnel_files SET etap_id = {$stepId} WHERE guid = '".$file->guid."' and funnel_id = {$funnel_id}");
|
|||
|
|
}
|
|||
|
|
mysql_query("DELETE FROM funnel_files WHERE etap_id = 'temp' AND funnel_id = {$funnel_id}");
|
|||
|
|
|
|||
|
|
if(!empty($temp_pole_prev['files_attach'])){
|
|||
|
|
foreach($temp_pole_prev['files_attach'] as $files_temp){
|
|||
|
|
mysql_query("UPDATE files_steps_funnel_prev SET step_id = {$stepId} WHERE id={$files_temp['id']}");
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
mysql_query("DELETE FROM files_steps_funnel_prev WHERE step_id is null AND funnel_id = {$funnel_id}");
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
|
|||
|
|
getBranch($funnel_id);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($request == 'delete_step'){
|
|||
|
|
$stepId = (int)$data->step_id;
|
|||
|
|
$res['result'] = 'done';
|
|||
|
|
/*if(!mysql_query("DELETE FROM funnel_steps WHERE id=".$stepId)){
|
|||
|
|
echo mysql_error();
|
|||
|
|
}*/
|
|||
|
|
$sql = "SELECT id FROM clients WHERE step_id = ".$stepId." and deleted = 0";
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
$rows = mysql_num_rows($q);
|
|||
|
|
if($rows > 0){
|
|||
|
|
$res['result'] = 'isClients';
|
|||
|
|
$res['mes'] = $rows;
|
|||
|
|
echo json_encode($res, JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if(!mysql_query("UPDATE funnel_steps SET deleted=1 WHERE id=".$stepId)){
|
|||
|
|
$res['result'] = 'error';
|
|||
|
|
$res['mes'] = mysql_error();
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
echo json_encode($res, JSON_UNESCAPED_UNICODE);
|
|||
|
|
exit;
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($request == 'update_clients_step'){
|
|||
|
|
$stepId = (int)$data->step_id;
|
|||
|
|
$userId = (int)$data->user_id;
|
|||
|
|
$sql = "SELECT id FROM clients WHERE step_id = ".$stepId." and deleted = 0";
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
while($r = mysql_fetch_assoc($q)){
|
|||
|
|
$sql_s = "SELECT cfs.*, fs.name, fs.stage, fs.funnel_id FROM `clients_funnel_step` as `cfs` LEFT JOIN `funnel_steps` as `fs` on cfs.step_id = fs.id WHERE cfs.client_id = ".$r['id'];
|
|||
|
|
$q_s = mysql_query($sql_s);
|
|||
|
|
if(mysql_num_rows($q_s) > 0){
|
|||
|
|
$r_s = mysql_fetch_assoc($q_s);
|
|||
|
|
$idCfs = $r_s['id'];
|
|||
|
|
$nameCfs = $r_s['name'];
|
|||
|
|
$funnelId = $r_s['funnel_id'];
|
|||
|
|
$prev_id = 0;
|
|||
|
|
$prev_next_id = 0;
|
|||
|
|
$clientId = $r['id'];
|
|||
|
|
|
|||
|
|
if(!empty($r_s['values'])){
|
|||
|
|
$valarr = json_decode($r_s['values'],true);
|
|||
|
|
$arr = deClearInputElements($valarr);
|
|||
|
|
$stepArr = json_decode($arr[$r_s['step_id']], true);
|
|||
|
|
|
|||
|
|
if(isset($stepArr['prev_id'])){
|
|||
|
|
$prev_id = (int)$stepArr['prev_id'];
|
|||
|
|
$prev_next_id = (int)$stepArr['prev_next_id'];
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($prev_id > 0){
|
|||
|
|
$isStep = mysql_num_rows(mysql_query("SELECT `id` FROM funnel_steps WHERE id = ".$prev_id));
|
|||
|
|
if($isStep == 0){
|
|||
|
|
$prev_id = 0;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($prev_id == 0){
|
|||
|
|
$main_prev = mysql_fetch_assoc(mysql_query("SELECT `id`, `next_step` FROM funnel_steps WHERE funnel_id = ".$funnelId." and main=1"));
|
|||
|
|
$prev_id = (int)$main_prev['id'];
|
|||
|
|
$prev_next_id = (int)json_decode(htmlspecialchars_decode($main_prev['next_step']))[0];
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$sql_s = "UPDATE clients_funnel_step SET step_id = ".$prev_id.", next_id = '".$prev_next_id."' WHERE id = ".$idCfs;
|
|||
|
|
mysql_query($sql_s);
|
|||
|
|
// echo "SELECT `name`, `id`, `funnel_id`,`stage` FROM funnel_steps WHERE id = ".$prev_id;
|
|||
|
|
$sqlname = mysql_query("SELECT `name`, `id`, `funnel_id`,`stage` FROM funnel_steps WHERE id = ".$prev_id);
|
|||
|
|
$prev = mysql_fetch_assoc($sqlname);
|
|||
|
|
|
|||
|
|
$prev_etap = $stepId;
|
|||
|
|
$sqlname = mysql_query("SELECT `name`, `id`, `funnel_id`,`stage` FROM funnel_steps WHERE id = {$prev_etap}");
|
|||
|
|
$prevName = mysql_fetch_assoc($sqlname);
|
|||
|
|
|
|||
|
|
|
|||
|
|
$dop_text = 'c «'.$prevName['name'].'» на «'.$nameCfs.'» (Перенесен при удалении этапа «'.$prevName['name'].'»)';
|
|||
|
|
//echo "INSERT INTO `events_clients` SET user_id = {$userId}, client_id = {$clientId}, event='stageedit', read=1, dop_text='{$dop_text}'";
|
|||
|
|
mysql_query("INSERT INTO `events_clients` SET user_id = {$userId}, client_id = {$clientId}, event='stageedit', `read`=1, from_id = 0, dop_text='{$dop_text}'");
|
|||
|
|
//$res = get_class_etap($clientId, $funnelId);
|
|||
|
|
// echo json_encode($res);
|
|||
|
|
|
|||
|
|
|
|||
|
|
|
|||
|
|
$res = get_class_etap($clientId, $funnelId);
|
|||
|
|
if(!mysql_query("UPDATE funnel_steps SET deleted=1 WHERE id=".$stepId)){
|
|||
|
|
echo mysql_error();
|
|||
|
|
}
|
|||
|
|
//echo json_encode($res);
|
|||
|
|
|
|||
|
|
exit();
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($request == 'save_first_step'){
|
|||
|
|
$stepId = (int)$data->step_id;
|
|||
|
|
$sql = "SELECT funnel_id FROM funnel_steps WHERE id=".$stepId;
|
|||
|
|
$q = mysql_query($sql);
|
|||
|
|
$r=mysql_fetch_assoc($q);
|
|||
|
|
$funnel_id = $r['funnel_id'];
|
|||
|
|
if(!mysql_query("UPDATE funnel_steps set main = 0 WHERE funnel_id=".$funnel_id)){
|
|||
|
|
echo mysql_error();
|
|||
|
|
}
|
|||
|
|
if(!mysql_query("UPDATE funnel_steps set main = 1, order_number = 1 WHERE id=".$stepId)){
|
|||
|
|
echo mysql_error();
|
|||
|
|
}
|
|||
|
|
getBranch($funnel_id);
|
|||
|
|
exit;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
if($request == 'transmite_funnel'){
|
|||
|
|
//error_reporting(E_ALL | E_STRICT);
|
|||
|
|
//ini_set('display_errors', 1);
|
|||
|
|
$type = $data->type;
|
|||
|
|
$funnel_old = (int)$data->funnel_old;
|
|||
|
|
$funnel_old_name = $data->funnel_old_name;
|
|||
|
|
$funnel_new = (int)$data->funnel_new;
|
|||
|
|
|
|||
|
|
|
|||
|
|
if($type == 'client'){
|
|||
|
|
$cl = new Clients();
|
|||
|
|
if($funnel_old == 0){
|
|||
|
|
|
|||
|
|
$usersIds = $cl -> getUsersFilter([], $_SESSION['id'], true);
|
|||
|
|
}
|
|||
|
|
$sql_cl = "SELECT id FROM clients WHERE funnel_id = {$funnel_old}";
|
|||
|
|
if($funnel_old == 0){
|
|||
|
|
$sql_cl .= " AND (who_work in (".implode(',',$usersIds).") OR id_agent in (".implode(',',$usersIds)."))";
|
|||
|
|
}
|
|||
|
|
$q_cl = $pdo->query($sql_cl);
|
|||
|
|
$sql = "UPDATE clients SET funnel_id = '$funnel_new' WHERE funnel_id = {$funnel_old}";
|
|||
|
|
if($funnel_old == 0){
|
|||
|
|
$sql .= " AND (who_work in (".implode(',',$usersIds).") OR id_agent in (".implode(',',$usersIds)."))";
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
$pdo->query($sql);
|
|||
|
|
while ($r_cl = $pdo->fetch_assoc($q_cl)){
|
|||
|
|
$funnelName = "Обычные";
|
|||
|
|
|
|||
|
|
if ($funnel_new > 0) {
|
|||
|
|
$sqlFunnel = "SELECT name FROM funnel_admin WHERE id = $funnel_new";
|
|||
|
|
$resFunnel = $pdo->query($sqlFunnel);
|
|||
|
|
$phRow = $pdo->fetch_assoc($resFunnel);
|
|||
|
|
$funnelName = $phRow['name'];
|
|||
|
|
}
|
|||
|
|
$sqlDeleteOldFunnel = "delete from clients_funnel_step where client_id = {$r_cl['id']}";
|
|||
|
|
$pdo->query($sqlDeleteOldFunnel);
|
|||
|
|
|
|||
|
|
$cl->get_class_etap($r_cl['id'], $funnel_new);
|
|||
|
|
|
|||
|
|
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `client_id`, `from_id`, `event`, `dop_text`, `read`)
|
|||
|
|
VALUES (".$_SESSION['id'].", ".$r_cl['id'].", '0', 'update', 'Передан в воронку «".$funnelName."» при закрытии воронки «".$funnel_old_name."»', '1')";
|
|||
|
|
$pdo->query($sql_conf);
|
|||
|
|
}
|
|||
|
|
} else if ($type == 'req'){
|
|||
|
|
$req = new Requisitions($pdo);
|
|||
|
|
|
|||
|
|
if($funnel_old == 0){
|
|||
|
|
$cl = new Clients();
|
|||
|
|
$usersIds = $cl -> getUsersFilter([], $_SESSION['id'], true);
|
|||
|
|
}
|
|||
|
|
$sql_cl = "SELECT id FROM requisitions WHERE funnel_id = {$funnel_old}";
|
|||
|
|
if($funnel_old == 0){
|
|||
|
|
$sql_cl .= " AND (who_work in (".implode(',',$usersIds).") OR user_id in (".implode(',',$usersIds)."))";
|
|||
|
|
}
|
|||
|
|
$q_cl = $pdo->query($sql_cl);
|
|||
|
|
$sql = "UPDATE requisitions SET funnel_id = '$funnel_new' WHERE funnel_id = {$funnel_old}";
|
|||
|
|
if($funnel_old == 0){
|
|||
|
|
$sql .= " AND (who_work in (".implode(',',$usersIds).") OR user_id in (".implode(',',$usersIds)."))";
|
|||
|
|
}
|
|||
|
|
$pdo->query($sql);
|
|||
|
|
while ($r_cl = $pdo->fetch_assoc($q_cl)){
|
|||
|
|
$funnelName = "Обычные";
|
|||
|
|
|
|||
|
|
if ($funnel_new > 0) {
|
|||
|
|
$sqlFunnel = "SELECT name FROM funnel_admin WHERE id = $funnel_new";
|
|||
|
|
$resFunnel = $pdo->query($sqlFunnel);
|
|||
|
|
$phRow = $pdo->fetch_assoc($resFunnel);
|
|||
|
|
$funnelName = $phRow['name'];
|
|||
|
|
}
|
|||
|
|
$sqlDeleteOldFunnel = "delete from clients_funnel_step where req_id = {$r_cl['id']}";
|
|||
|
|
$pdo->query($sqlDeleteOldFunnel);
|
|||
|
|
|
|||
|
|
$req->get_class_etap($r_cl['id'], $funnel_new);
|
|||
|
|
|
|||
|
|
$sql_conf = "INSERT INTO `events_clients` (`user_id`, `req_id`, `from_id`, `event`, `dop_text`, `read`)
|
|||
|
|
VALUES (".$_SESSION['id'].", ".$r_cl['id'].", '0', 'update', 'Передана в воронку «".$funnelName."» при закрытии воронки «".$funnel_old_name."»', '1')";
|
|||
|
|
$pdo->query($sql_conf);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
}
|