111 lines
3.2 KiB
PHP
111 lines
3.2 KiB
PHP
|
|
<?php
|
||
|
|
require_once($_SERVER['DOCUMENT_ROOT']."/ajax/vue_php_function.php");
|
||
|
|
|
||
|
|
if(isset($_POST['step'])){
|
||
|
|
$res = array();
|
||
|
|
$id = (int)$_POST['step'];
|
||
|
|
$clientId = (int)$_POST['client'];
|
||
|
|
$req_id = 0;
|
||
|
|
if(isset($_POST['req_id'])){
|
||
|
|
$req_id = (int)$req_id;
|
||
|
|
}
|
||
|
|
|
||
|
|
$change_step_query = mysql_query("SELECT * FROM clients_funnel_step WHERE client_id = " . $clientId);
|
||
|
|
if($req_id > 0){
|
||
|
|
$change_step_query = mysql_query("SELECT * FROM clients_funnel_step WHERE req_id = " . $req_id);
|
||
|
|
}
|
||
|
|
//echo $change_step_query;
|
||
|
|
$next_id = 0;
|
||
|
|
$change_step = array('step_id' => 0);
|
||
|
|
if (mysql_num_rows($change_step_query) > 0) {
|
||
|
|
$change_step = mysql_fetch_assoc($change_step_query);
|
||
|
|
$next_id = $change_step['next_id'];
|
||
|
|
}
|
||
|
|
$next_steps = array();
|
||
|
|
$funnel_step = mysql_query("SELECT * FROM funnel_steps WHERE funnel_id = (select funnel_id from funnel_steps where id=$id) and deleted=0 order by order_number, branch");
|
||
|
|
$isActive = true;
|
||
|
|
$classF = ' active';
|
||
|
|
$stage = null;
|
||
|
|
if ((int)$change_step['step_id'] == 0) {
|
||
|
|
$isActive = false;
|
||
|
|
}
|
||
|
|
$arr_steps = array();
|
||
|
|
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']){
|
||
|
|
$next_steps = json_decode( htmlspecialchars_decode($step['next_step']));
|
||
|
|
if($next_id == 0){
|
||
|
|
$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) {
|
||
|
|
if (in_array($idstep, $next_steps)) {
|
||
|
|
$stage = $step;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($stage == null) {
|
||
|
|
foreach ($arr_steps as $idstep => $step) {
|
||
|
|
if ($step['stage'] == 'Закрыт') {
|
||
|
|
$stage = $step;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($stage == null) {
|
||
|
|
$stage['id'] = -1;
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach ($arr_steps as $idstep => $step) {
|
||
|
|
if ($idstep == $stage['id']) {
|
||
|
|
$next_steps = json_decode(htmlspecialchars_decode($step['next_step']));
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
$canMove = false;
|
||
|
|
$sql_c = "select step_id from clients where id=$clientId";
|
||
|
|
$q_c = mysql_query($sql_c);
|
||
|
|
$r_c = mysql_fetch_assoc($q_c);
|
||
|
|
$prev_step = $r_c['step_id'];
|
||
|
|
$isPrev = false;
|
||
|
|
//echo
|
||
|
|
//var_dump($arr_steps);
|
||
|
|
foreach ($arr_steps as $idstep => $step) {
|
||
|
|
// if (in_array($idstep, $next_steps)) {
|
||
|
|
// echo $prev_step.' --- '.$idstep."\n";
|
||
|
|
if($prev_step == $idstep){
|
||
|
|
$isPrev = true;
|
||
|
|
}
|
||
|
|
if ($idstep == $id && $isPrev) {
|
||
|
|
$canMove = true;
|
||
|
|
}
|
||
|
|
// }
|
||
|
|
}
|
||
|
|
|
||
|
|
if ($canMove) {
|
||
|
|
$res['result'] = '1';
|
||
|
|
} else {
|
||
|
|
$res['result'] = '0';
|
||
|
|
}
|
||
|
|
$res['etap'] = $stage['id'];
|
||
|
|
echo json_encode($res, JSON_UNESCAPED_UNICODE);
|
||
|
|
}
|