161 lines
4.5 KiB
PHP
161 lines
4.5 KiB
PHP
|
|
<?php
|
||
|
|
|
||
|
|
require_once($_SERVER['DOCUMENT_ROOT']."/ajax/vue_php_function.php");
|
||
|
|
|
||
|
|
error_reporting(E_ALL | E_STRICT);
|
||
|
|
ini_set('display_errors', 1);
|
||
|
|
|
||
|
|
$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_fields'){
|
||
|
|
$fields = array();
|
||
|
|
$agency_id = (int)$data->agency_id;
|
||
|
|
$step_id = (int)$data->step_id;
|
||
|
|
$linking_steps = array();
|
||
|
|
if($step_id > 0){
|
||
|
|
//Проверка на уже установленные
|
||
|
|
$sql_check = "SELECT * FROM linking_steps_client_req WHERE step_id = {$step_id}";
|
||
|
|
$q_check = $pdo->query($sql_check);
|
||
|
|
while($r_check = $pdo->fetch_assoc($q_check)){
|
||
|
|
$linking_steps[$r_check['field_id']] = $r_check;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
$sql = "SELECT * FROM client_req_fields WHERE `agency_id`=$agency_id order by id desc";
|
||
|
|
// echo $sql;
|
||
|
|
|
||
|
|
//Стационарные поля
|
||
|
|
$linkingClass = new LinkingClass();
|
||
|
|
$fields = $linkingClass->getFixFields();
|
||
|
|
|
||
|
|
//Кастомные поля
|
||
|
|
if ($query = $pdo->query($sql)) {
|
||
|
|
|
||
|
|
if ($pdo->num_rows($query) > 0) {
|
||
|
|
while($row = $pdo->fetch_assoc($query)) {
|
||
|
|
|
||
|
|
$fields[] = [
|
||
|
|
'id' => $row['id'],
|
||
|
|
'title' => $row['title'],
|
||
|
|
'is_filtrable' => $row['is_filtrable'],
|
||
|
|
'type' => $row['type'],
|
||
|
|
'is_client' => $row['is_client'],
|
||
|
|
'is_req' => $row['is_req'],
|
||
|
|
'req_type' => $row['req_type'],
|
||
|
|
'is_required' => $row['is_required'],
|
||
|
|
'params' => $row['params'],
|
||
|
|
'is_podgroup' => $row['is_podgroup'],
|
||
|
|
'is_check_req' => 0,
|
||
|
|
'is_check_client' => 0,
|
||
|
|
];
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
} else {
|
||
|
|
//echo $pdo->error();
|
||
|
|
}
|
||
|
|
|
||
|
|
//var_dump($linking_steps);
|
||
|
|
|
||
|
|
foreach($fields as $key => $field){
|
||
|
|
if(isset($linking_steps[$field['id']])){
|
||
|
|
if($linking_steps[$field['id']]['is_req'] > 0){
|
||
|
|
$fields[$key]['is_check_req'] = 1;
|
||
|
|
}
|
||
|
|
if($linking_steps[$field['id']]['is_client'] > 0){
|
||
|
|
$fields[$key]['is_check_client'] = 1;
|
||
|
|
}
|
||
|
|
$fields[$key]['is_required'] = (int)$linking_steps[$field['id']]['is_required'];
|
||
|
|
$fields[$key]['view_next'] = !empty($linking_steps[$field['id']]['view_next']) ? json_decode($linking_steps[$field['id']]['view_next'], true) : null;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
echo json_encode($fields);
|
||
|
|
exit();
|
||
|
|
}
|
||
|
|
|
||
|
|
//Сохранение
|
||
|
|
if($request == 'save_fields'){
|
||
|
|
$agency_id = $data->agency_id;
|
||
|
|
$step_id = $data->step_id;
|
||
|
|
$fields = $data->fields;
|
||
|
|
|
||
|
|
if(!empty($fields) && $step_id > 0){
|
||
|
|
$pdo->query("DELETE FROM linking_steps_client_req WHERE step_id = {$step_id}");
|
||
|
|
foreach($fields as $field){
|
||
|
|
if((int)$field->is_check_req > 0 || (int)$field->is_check_client > 0){
|
||
|
|
$sql_in = "INSERT INTO linking_steps_client_req SET
|
||
|
|
step_id = {$step_id},
|
||
|
|
field_id = '{$field->id}',
|
||
|
|
is_req={$field->is_check_req},
|
||
|
|
is_client={$field->is_check_client},
|
||
|
|
is_required={$field->is_required}
|
||
|
|
";
|
||
|
|
if(!empty($field->view_next) && is_array($field->view_next)){
|
||
|
|
$sql_in .= ", view_next='".json_encode($field->view_next)."'";
|
||
|
|
}
|
||
|
|
$pdo->query($sql_in);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
//var_dump($fields);
|
||
|
|
}
|
||
|
|
|
||
|
|
if($request == 'get_forms'){
|
||
|
|
$forms = array();
|
||
|
|
$agency_id = (int)$data->agency_id;
|
||
|
|
$step_id = (int)$data->step_id;
|
||
|
|
$linkingClass = new LinkingClass();
|
||
|
|
$forms = $linkingClass->getFixetForm();
|
||
|
|
$linking_steps = array();
|
||
|
|
if($step_id > 0){
|
||
|
|
//Проверка на уже установленные
|
||
|
|
$sql_check = "SELECT * FROM linkingform_steps_client_req WHERE step_id = {$step_id}";
|
||
|
|
$q_check = $pdo->query($sql_check);
|
||
|
|
while($r_check = $pdo->fetch_assoc($q_check)){
|
||
|
|
$linking_steps[$r_check['form_id']] = $r_check;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
foreach($forms as $key => $form){
|
||
|
|
if(isset($linking_steps[$form['id']])){
|
||
|
|
if($linking_steps[$form['id']]['is_req'] > 0){
|
||
|
|
$forms[$key]['is_check_req'] = 1;
|
||
|
|
}
|
||
|
|
if($linking_steps[$form['id']]['is_client'] > 0){
|
||
|
|
$forms[$key]['is_check_client'] = 1;
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
|
||
|
|
echo json_encode($forms);
|
||
|
|
exit();
|
||
|
|
}
|
||
|
|
|
||
|
|
//Сохранение форм
|
||
|
|
if($request == 'save_forms'){
|
||
|
|
$agency_id = $data->agency_id;
|
||
|
|
$step_id = $data->step_id;
|
||
|
|
$forms = $data->forms;
|
||
|
|
if(!empty($forms) && $step_id > 0){
|
||
|
|
$pdo->query("DELETE FROM linkingform_steps_client_req WHERE step_id = {$step_id}");
|
||
|
|
foreach($forms as $form){
|
||
|
|
if((int)$form->is_check_req > 0 || (int)$form->is_check_client > 0){
|
||
|
|
$sql_in = "INSERT INTO linkingform_steps_client_req SET step_id = {$step_id}, form_id = '{$form->id}', is_req={$form->is_check_req}, is_client={$form->is_check_client}";
|
||
|
|
//echo $sql_in."\n";
|
||
|
|
$pdo->query($sql_in);
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|