Joywork/ajax/modals/linkingClientReq.php

161 lines
4.5 KiB
PHP
Raw Normal View History

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