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