Joywork/ajax/funnel_step_check_close.php
2026-05-22 21:21:54 +03:00

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);
}