protected function attach_client_to_request_AJAX() { include_once './libs/php/classes/client_class.php'; if ($_POST['client_id'] == 'new_client') { // не админ создаёт клиента if ($this->user_access != 1) { $_POST['AJAX'] = 'insert_new_client'; $client = new Client(); } else { $_POST['client_id'] = '0'; $_POST['manager_id'] = '0'; $this->get_a_list_of_managers_to_be_attached_to_the_request_AJAX(); return; } // $client -> get_new_client_form_from_query(); // echo '321321321sdsad'; // exit; } else { // получаем кураторов по выбранному клиенту // подключаем класс клиента if (isset($_POST['row_id'])) { $_POST['rt_list_id'] = $_POST['row_id']; } $managers_arr = Client::get_relate_managers_2($_POST['client_id']); switch (count($managers_arr)) { case '0': // если у нас не прикреплено к данному клиенту ни одного менеджера - выводим сообщение об ошибке $message = 'К данному клиенту не прикреплено ни одного менеджера.'; //echo '{"response":"show_new_window","title":"Ошибка","html":"'.base64_encode($html).'"}'; $this->responseClass->addMessage($message, 'system_message'); break; case '1': // echo '<pre>'; // print_r($_POST); // echo '</pre>'; // если прикреплен только 1 - никаких проблем. // прикрепляем к запросу клиента и менеджера // Переписываем менеджера, отправляем данные о нем в браузер, вызываем там функцию и меняем имя менеджера на странице global $mysqli; // прикрепить клиента и менеджера к запросу $query = "UPDATE `" . RT_LIST . "` SET "; $query .= "`manager_id` = '" . (int) $managers_arr[0]['id'] . "'"; $query .= ",`client_id` = '" . (int) $_POST['client_id'] . "'"; if ($this->user_id != $managers_arr[0]['id']) { $message = 'Запрос был перенаправлен менеджеру ' . $managers_arr[0]['name'] . ' ' . $managers_arr[0]['last_name'] . ''; $query .= ",`time_attach_manager` = NOW()"; $query .= ",`status` = 'not_process' "; } else { $message = 'Запрос был переведён в работу'; $query .= ",`time_attach_manager` = NOW()"; $query .= ",`status` = 'in_work' "; } $query .= " WHERE `id` = '" . (int) $_POST['rt_list_id'] . "';"; $result = $mysqli->query($query) or die($mysqli->error); // if($this->user_access != 5){ // echo '{"response":"OK","function2":"change_attache_manager","function":"echo_message","message_type":"system_message","message":"'.base64_encode($message).'"}'; // }else{ // echo '{"response":"OK","function":"reload_order_tbl"}'; // } // echo '{"response":"OK","function":"change_attache_manager","rt_list_id":"'.$_POST['rt_list_id'].'", "manager_id":"'.$managers_arr[0]['id'].'","manager_name":"'.$managers_arr[0]['name'].' '.$managers_arr[0]['last_name'].'"}'; // $options['width'] = 1200; // $this->responseClass->addSimpleWindow($query,"",$options); $this->responseClass->addMessage($message, 'system_message'); // $this->responseClass->addResponseFunction('change_attache_manager',array('rt_list_id'=>$_POST['rt_list_id'],'manager_id'=>$managers_arr[0]['id'],'name'=>$manager)); $this->responseClass->addResponseFunction('reload_order_tbl'); break; default: // если к клиенту присоединено несколько кураторов выполняем первый пункт по умолчанию, потом вызываем окно с выбором менеджера /* *************************************************************** временно отключаем прикрепление первого менеджера автоматически *************************************************************** global $mysqli; // прикрепить клиента и менеджера к запросу $query ="UPDATE `".RT_LIST."` SET `manager_id` = '".(int)$managers_arr[0]['id']."', `client_id` = '".(int)$_POST['client_id']."', `time_attach_manager` = NOW(), `status` = 'not_process' WHERE `id` = '".(int)$_POST['rt_list_id']."';"; $result = $mysqli->query($query) or die($mysqli->error); */ global $mysqli; // прикрепить клиента $query = "UPDATE `" . RT_LIST . "` SET \n\t\t\t\t\t\t\t\t`client_id` = '" . (int) $_POST['client_id'] . "', \n\t\t\t\t\t\t\t\t`time_attach_manager` = NOW(),\n\t\t\t\t\t\t\t\t`status` = 'not_process'\n\t\t\t\t\t\t\t\tWHERE `id` = '" . (int) $_POST['rt_list_id'] . "';"; $result = $mysqli->query($query) or die($mysqli->error); ////////////////////////// // осбираем форму для выбора одного из кураторов // ////////////////////////// $html = '<div id="chose_manager_tbl">'; $html .= '<table>'; for ($i = 0; $i < count($managers_arr); $i) { $html .= '<tr>'; for ($j = 1; $j <= 3; $j++) { if (isset($managers_arr[$i])) { //$checked = ($managers_arr[$i]['id'] == $managers_arr[0]['id'])?'class="checked"':''; $checked = ''; $name = trim($managers_arr[$i]['name']) == '' && trim($managers_arr[$i]['last_name']) == '' ? $managers_arr[$i]['nickname'] : $managers_arr[$i]['name'] . ' ' . $managers_arr[$i]['last_name']; $html .= '<td ' . $checked . ' data-id="' . $managers_arr[$i]['id'] . '">' . $name . "</td>"; } else { $html .= "<td></td>"; } $i++; } $html .= '</tr>'; } $html .= '</table>'; $html .= '<input type="hidden" value="attach_manager_to_request" name="AJAX">'; $html .= '<input type="hidden" value="' . (isset($_POST['manager_id']) ? $_POST['manager_id'] : '') . '" name="manager_id">'; $html .= '<input type="hidden" value="' . $_POST['rt_list_id'] . '" name="rt_list_id">'; $html .= '<input type="hidden" value="" name="client_id">'; $html .= '</div>'; // записываем на странице пользователя в строку с установленным клиентом имя первого куратора из списка // затем даём выбрать из иставшихся // echo '{"response":"show_new_window", // "html":"'.base64_encode($html).'", // "title":"Выберите куратора", // "function":"change_attache_manager", // "rt_list_id":"'.$_POST['rt_list_id'].'", // "manager_id":"'.$managers_arr[0]['id'].'", // "manager_name":"'.$managers_arr[0]['name'].' '.$managers_arr[0]['last_name'].'" // }'; $this->responseClass->addPostWindow($html, 'Выберите куратора', array('width' => '1000')); $this->responseClass->addResponseFunction('change_attache_manager', array('rt_list_id' => $_POST['rt_list_id'], 'manager_id' => $managers_arr[0]['id'], 'name' => $managers_arr[0]['name'] . ' ' . $managers_arr[0]['last_name'])); $this->responseClass->addResponseFunction('reload_order_tbl'); break; } if (isset($_POST['row_id']) && (int) $_POST['row_id'] > 0) { $this->Query = $this->get_query((int) $_POST['row_id']); // echo '<pre>'; // print_r($this->Query); // echo '</pre>'; // echo '<pre>'; // print_r($_POST); // echo '</pre>'; if (isset($_POST['query_status']) && $_POST['query_status'] != $this->Query['status']) { if ((int) $_POST['client_id'] != $this->Query['client_id']) { include_once 'cabinet_class.php'; $cabinet = new Cabinet(); $cabinet->responseClass = new responseClass(); $cabinet->command_for_change_status_query_AJAX(); // echo $this->responseClass->getResponse(); exit; } } } } // exit; }