Example #1
0
 protected function client_delete_AJAX()
 {
     $outer = Client::delete_for_manager($_POST['id'], $this->user_id);
     if ($outer == '1') {
         $client_id = $_GET['client_id'];
         $Client = Client::get_client_informationDatabase($client_id);
         $client_name_i = $Client['company'];
         // получаем название клиента
         // сообщение об отказе от клиента
         $text = '';
         $clien_href = '<a href="' . HOST . '/?page=clients&section=client_folder&subsection=client_card_table&client_id=' . $Client['id'] . '">' . $client_name_i . '</a>';
         if (isset($_POST['text'])) {
             $text .= 'Куратор ' . $this->user_name . ' ' . $this->user_last_name . ' отказался от клиента ' . $clien_href . '. ';
             $text .= '<br>Причина: ' . $_POST['text'];
         } else {
             $text .= 'Куратор ' . $this->user_name . ' ' . $this->user_last_name . ' отказался от клиента ' . $clien_href . ' не указав причину.';
         }
         Client::history($this->user_id, $text, 'rejection_of_the_client', $_GET['client_id']);
         // сообщение
         $message = 'Вы успешно откреплены от клиента. Спасибо.<br>';
         $message .= $outer;
         $this->responseClass->addMessage($message, 'successful_message');
         // echo "test";
         // JS function
         $options['href'] = '?page=clients&section=clients_list';
         $this->responseClass->addResponseFunction('location_href', $options);
         include_once 'mail_class.php';
         $mailClass = new Mail();
         // $mailClass->add_bcc('*****@*****.**');
         // $mailClass->send('*****@*****.**','*****@*****.**','Отказ от клиента',$text);
         $mailClass->send('*****@*****.**', '*****@*****.**', 'Отказ от клиента', $text);
     } else {
         // сообщение
         $message = 'Нет смысла отказываться от клиента, куратором которого вы не являетесь.';
         $this->responseClass->addMessage($message, 'error_message');
     }
 }
Example #2
0
 static function create_new_query($client_id, $manager_arr, $data_arr, $query_status = 'new_query')
 {
     global $mysqli;
     $dop_managers_id = '';
     // если передан массив
     if (is_array($manager_arr)) {
         if (empty($manager_arr)) {
             // если массив менеджеров пуст
             $manager_id = 0;
             $query_status = 'new_query';
         } else {
             if (count($manager_arr) > 1) {
                 // если кураторов несколько
                 // echo 'Hellow world';
                 if (!isset($_SESSION['access']['user_id'])) {
                     exit('Не известный юзер!!!');
                 }
                 // если пользователь НЕ является куратором данного клиента
                 if (isset($_SESSION['access']['user_id']) && !in_array($_SESSION['access']['user_id'], $manager_arr)) {
                     // если данный пользователь не найден среди кураторов данного клиента
                     // И
                     // если кураторов несколько
                     $dop_managers_id = implode(',', $manager_arr);
                     $manager_id = 0;
                     $query_status = 'not_process';
                     //////////////////////////////////
                     // шлем оповещение менеджерам на почту
                     //////////////////////////////////
                     // получаем информацию по клиенту
                     include_once ROOT . "/libs/php/classes/client_class.php";
                     $Client = Client::get_client_informationDatabase($client_id);
                     // получаем информацию по кураторам + пользователю, который добавил запрос
                     $managers = self::get_manager_info_by_id("'" . implode("','", $manager_arr) . "','" . $_SESSION['access']['user_id'] . "'");
                     include_once 'mail_class.php';
                     $mailClass = new Mail();
                     $message = 'Пользователь ' . $managers[$_SESSION['access']['user_id']]['name'] . ' ' . $managers[$_SESSION['access']['user_id']]['last_name'] . ' добавил для Вас и ещё нескольких пользователей новый запрос';
                     $message += '<br>чтобы посмотреть перейдите по <a href="http://www.apelburg.ru/os/?page=cabinet&section=requests&subsection=no_worcked_men">ссылке</a>';
                     foreach ($managers as $key => $value) {
                         if (trim($value['email']) != '') {
                             $mailClass->send($value['email'], '*****@*****.**', 'Новый запрос для ' . $Client['company'], $message);
                         } else {
                             if (trim($value['email_2']) != '') {
                                 $mailClass->send($value['email_2'], '*****@*****.**', 'Новый запрос для ' . $Client['company'], $message);
                             }
                         }
                     }
                     // если пользователь является куратором данного клиента
                 } else {
                     if (isset($_SESSION['access']['user_id']) && in_array($_SESSION['access']['user_id'], $manager_arr)) {
                         // если данный пользователь является куратором клиента
                         $manager_id = $_SESSION['access']['user_id'];
                         $query_status = 'in_work';
                         //////////////////////////////////
                         // шлем оповещение менеджерам на почту (всем кроме того у которого заказ в работе)
                         //////////////////////////////////
                         // получаем информацию по клиенту
                         include_once ROOT . "/libs/php/classes/client_class.php";
                         $Client = Client::get_client_informationDatabase($client_id);
                         // получаем информацию по кураторам + пользователю, который добавил запрос
                         $managers = self::get_manager_info_by_id("'" . implode("','", $manager_arr) . "','" . $_SESSION['access']['user_id'] . "'");
                         include_once 'mail_class.php';
                         $mailClass = new Mail();
                         $message = 'Пользователь ' . $managers[$_SESSION['access']['user_id']]['name'] . ' ' . $managers[$_SESSION['access']['user_id']]['last_name'] . ' взял в работу новый запрос для &laquo;' . $Client['company'] . '&raquo; ';
                         // удаляем из адресатов создателя заявки
                         if (isset($_SESSION['access']['user_id'])) {
                             unset($managers[$_SESSION['access']['user_id']]);
                         }
                         // $message += '<br>чтобы посмотреть перейдите по <a href="http://www.apelburg.ru/os/?page=cabinet&section=requests&subsection=no_worcked_men">ссылке</a>';
                         foreach ($managers as $key => $value) {
                             if (trim($value['email']) != '') {
                                 $mailClass->send($value['email'], '*****@*****.**', 'Новый запрос для ' . $Client['company'], $message);
                             } else {
                                 if (trim($value['email_2']) != '') {
                                     $mailClass->send($value['email_2'], '*****@*****.**', 'Новый запрос для ' . $Client['company'], $message);
                                 }
                             }
                         }
                     }
                 }
             } else {
                 // если куратор 1
                 $manager_id = $manager_arr[0];
                 $query_status = 'not_process';
                 // если куратор клиента не тот, кто добавил запрос
                 if ($manager_id != $_SESSION['access']['user_id']) {
                     // шлем оповещение менеджеру на почту
                     // send message
                 }
             }
         }
     } else {
         $manager_id = $manager_arr;
     }
     /*
     				статус - ссылка на вкладку
     				new_query   - ?page=cabinet&section=requests&subsection=query_wait_the_process
     				not_process - ?page=cabinet&section=requests&subsection=no_worcked_men
     				in_work     - ?page=cabinet&section=requests&subsection=query_worcked_men
     */
     // трасформирование данных в случае если есть необходимость склеить вместе артикулы повторяющиеся в корзине
     // эти артикулы могут просто повторяться из-за того что были добавленны в корзину несколько раз
     // или могут повторяться из-за того что они имеют несколько размеров
     // после прохождения обработки мы имеем новый масив с объедененными артикулами
     // echo '<pre>';print_r($data_arr);echo '</pre>';
     $data_arr_new = array();
     if (true) {
         foreach ($data_arr as $key => $data) {
             $flag = true;
             // данные попадают в функцию из разных источников, и могут не содержать элемента dop_info,
             // который отображает (если товар был отправлен сюда из корзины) был ли выделен товар чекбоксом
             // если есть dop_info можем сделать обработку, если нет пропускаем елемент
             if (isset($data['dop_info'])) {
                 if (count($data_arr_new) > 0) {
                     foreach ($data_arr_new as $key_new => $data_new) {
                         //
                         if ($data['art_id'] == $data_new['art_id'] && $data['dop_info']['chkd'] == '1' && $data_new['dop_info']['chkd'] == '1') {
                             $data_arr_new[$key_new]['dop_data'] = array_merge($data_arr_new[$key_new]['dop_data'], $data_arr[$key]['dop_data']);
                             //$data_arr_new[$key_new]['dop_data'][] = $data_arr[$key]['dop_data'][0]
                             $flag = false;
                         }
                     }
                 }
             }
             if ($flag) {
                 $data_arr_new[] = $data;
             }
         }
     } else {
         $data_arr_new = $data;
     }
     // echo '<pre>';print_r($data_arr_new);echo '</pre>';
     // exit;
     // ЗАДАЧА:
     // НА ОСНОВЕ ПОЛУЧЕННЫХ ДАННЫХ СОЗДАТЬ НОВЫЙ ЗАПРОС
     // ДАННЫЕ ДОЛЖНЫ БЫТЬ ПЕРЕДАННЫХ В ВИДЕ МНОГОМЕРНОГО МАССИВА СЛЕДУЮЩЕГО ПОРЯДКА
     //    [0] => Array
     //        (
     //            [art_id] => val
     //            [art] => val
     //            [type] => val
     //            [name] => val
     //            [dop_data] => Array
     //                (
     //                    [0] => Array
     //                        (
     //                            [quantity] => val
     //                            [price_out] => val
     //                            [dop_uslugi] => Array
     //                                (
     //                                    [0] => Array
     //                                        (
     //                                            [glob_type] => val
     //                                            [quantity] => val
     //                                            [price_in] => val
     //                                            [price_out] => val
     //                                        )
     //
     //                                )
     //
     //                        )
     //
     //                )
     //
     //         )
     // СОЗДАТЬ ЗАПИСЬ В ТАБЛИЦЕ RT_LIST
     // СОЗДАТЬ ЗАПИСЬ В ТАБЛИЦЕ RT_MAIN_ROWS
     // СОЗДАТЬ N - ЗАПИСЕЙ В ТАБЛИЦЕ RT_DOP_DATA
     // СОЗДАТЬ N - ЗАПИСЕЙ В ТАБЛИЦЕ RT_DOP_USLUGI
     //print_r($data_arr_new);
     //exit;
     // определяем номер запроса
     $query = "SELECT MAX(query_num) max FROM `" . RT_LIST . "`";
     $result = $mysqli->query($query) or die($mysqli->error);
     $query_num_data = $result->fetch_assoc();
     $query_num = $query_num_data['max'] == 0 ? 10000 : $query_num_data['max'] + 1;
     //echo $query_num;
     // вносим данные заказа в RT_LIST
     $query = "INSERT INTO `" . RT_LIST . "` SET \n\t\t\t\t\t\t\t\t\t\t\t\t`create_time` = NOW(),\n\t\t\t\t\t\t\t\t\t\t\t\t`client_id` = '{$client_id}',\n\t\t\t\t\t\t\t\t\t\t\t\t`manager_id` = '{$manager_id}',\n\t\t\t\t\t\t\t\t\t\t\t\t`query_num` = '" . $query_num . "', \n\t\t\t\t\t\t\t\t\t\t\t\t`dop_managers_id` = '" . $dop_managers_id . "',\n\t\t\t\t\t\t\t\t\t\t\t\t`status` = '" . $query_status . "'";
     // echo  "\r\n".$query;
     // exit;
     $result = $mysqli->query($query) or die($mysqli->error);
     $sort_id = 0;
     foreach ($data_arr_new as $data) {
         unset($data['dop_info']);
         // вносим основные данные о позиции в RT_MAIN_ROWS
         $query = "INSERT INTO `" . RT_MAIN_ROWS . "` SET \n\t\t\t\t\t\t\t\t\t\t\t`sort` = '" . ++$sort_id . "',\n\t\t\t\t\t\t\t\t\t\t\t`query_num` = '{$query_num}' ";
         foreach ($data as $field => $val) {
             if ($field != 'dop_data') {
                 $query .= ", `" . @$field . "` = '" . @$val . "'";
             }
         }
         //echo   "\r\n".$query;
         $result = $mysqli->query($query) or die($mysqli->error);
         $row_id = $mysqli->insert_id;
         if (isset($data['dop_data'])) {
             // если есть расчеты
             foreach ($data['dop_data'] as $dop_data) {
                 // вносим основные данные о количестве RT_DOP_DATA
                 $query = "INSERT INTO `" . RT_DOP_DATA . "` SET \n\t\t\t\t\t\t            `row_id` = '{$row_id}' ";
                 foreach ($dop_data as $field => $val) {
                     if ($field != 'dop_uslugi') {
                         $query .= ", `" . @$field . "` = '" . @$val . "'";
                     }
                 }
                 //echo   "\r\n".$query;
                 $result = $mysqli->query($query) or die($mysqli->error);
                 $dop_row_id = $mysqli->insert_id;
                 if (isset($dop_data['dop_uslugi'])) {
                     // если есть данные о доп услугах
                     foreach ($dop_data['dop_uslugi'] as $dop_uslugi) {
                         $query = "INSERT INTO `" . RT_DOP_USLUGI . "` SET \n\t\t\t\t\t\t\t\t\t\t\t`dop_row_id` = '{$dop_row_id}' ";
                         foreach ($dop_uslugi as $field => $val) {
                             $query .= ", `" . @$field . "` = '" . @$val . "'";
                         }
                         //echo  "\r\n". $query;
                         $result = $mysqli->query($query) or die($mysqli->error);
                     }
                 }
             }
         }
     }
     return $query_num;
 }