Example #1
0
 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;
 }