function get_orders_parts_chat($desk_id) { global $db_rs, $systems; $html = ''; // Подгружаем сообщения из даилога по этой заявке; $sql = "SELECT * FROM `orders_parts_chats` WHERE `order_part_id` = '" . $desk_id . "' ORDER BY `date` DESC;"; write_log($sql, 'orders_parts_show_chat'); $desk_chat_array = $db_rs->all($sql); $html .= '<div class="desk_messages" id="messages_' . $desk_id . '">'; foreach ($desk_chat_array as $message) { // Отпередляем входящее сообщенеи или исходящее; if ($message['author_user_id'] == $_SESSION['user_id']) { $message_class = 'out'; } else { $message_class = 'in'; } $html .= '<div class="' . $message_class . '_desk_message">'; $html .= $systems->get_user_avatar_and_full_name($message['author_user_id']) . '<br>'; $html .= $message['message_text']; $html .= '<div class="desk_mess_date">' . get_local_date_time($message['date'], 1) . '</div>'; $html .= '</div>'; } $html .= '</div>'; return $html; }
function get_conv_report_table_html($table_data) { $html = '<table>'; $html .= '<tr>'; $html .= '<td class="row_top">Номер заказа</td>'; $html .= '<td class="row_top inf_row">ТМП</td>'; $html .= '<td class="row_top inf_row">Ответственный инженер</td>'; $html .= '<td class="row_top inf_row">Неисправность</td>'; $html .= '<td class="row_top inf_row">Дата приема</td>'; $html .= '<td class="row_top inf_row">Статус</td>'; $html .= '<td class="row_top inf_row">Дата и время установки статуса</td>'; $html .= '</tr>'; // Обрабоатываем данные; foreach ($table_data as $key => $data_item) { // Стиль строки; if ($key % 2 != 0) { $class = 'row_1'; } else { $class = 'row_2'; } if (isset($data_item['marker'])) { switch ($data_item['marker']) { case 'MARK': $print = 'color: black;font-weight: bold;'; break; case 'ALERT': $print = 'color: red;font-weight: bold;'; break; } } else { $print = ''; } $html .= '<tr>'; $html .= '<td class="' . $class . ' numm_info" style="' . $print . '" align="center">' . $data_item['numm'] . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . $data_item['tu'] . ' / ' . $data_item['model'] . ' / ' . $data_item['torg'] . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . get_user_full_name(0, $data_item['inj']) . '.</td>'; $html .= '<td class="' . $class . ' inf_row" align="left" width="200px">' . $data_item['a1'] . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . get_local_date_time($data_item['date1'], 1) . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="left">' . get_status_name($data_item['status']) . '</td>'; // Для того что бы определить время установки статуса, нам надо перебрать весь dvj этого заказа; $dvj_array = explode("\r\n", $data_item['dvj']); foreach ($dvj_array as $dvj_item) { // Проверяем, содежит ли эта строка данные; if (find_text(get_status_name($data_item['status']), $dvj_item)) { // Если мы нашли такой текст, выводим эту строку для начала; $dvj_temp = explode('|', $dvj_item); } } $html .= '<td class="' . $class . ' inf_row" align="center">' . get_local_date_time($dvj_temp[0], 1) . '</td>'; $html .= '</tr>'; } $html .= '</table>'; return $html; }
$class = 'td_2'; } // Сначала покажем те браслеты которые online; $last_date_data = strtotime($band['last_update']); $current_data = strtotime(date('Y-m-d H:i:s')); if ($current_data - $last_date_data <= 100) { $status = 'В сети'; } else { $status = 'Не в сети'; } // Если браслет в игре. то пищем что он в игре; if ($band['action'] == 'game') { $status = 'В игре'; } $html .= '<tr>'; $html .= '<td class="' . $class . '">' . ($status == 'В сети' ? '<input class="band_check" band_id="' . $band['id'] . '" type="checkbox">' : '') . '</td><td class="' . $class . '">' . $band['id'] . '</td><td class="' . $class . ' band_name_' . $band['id'] . '" onclick="window.edit_band_name=1;">' . $band['name'] . '</td><td class="' . $class . '">' . $band['mac'] . '</td><td class="' . $class . '"><b>' . $band['battery'] . '</b>' . ($band['battery'] >= 60 ? '<img class="img" src="/exit/templates/battery_full.png" width="16">' : ($band['battery'] < 60 && $band['pulse'] >= 20 ? '<img class="img" src="/exit/templates/battery_half.png" width="16">' : '<img class="img" src="/exit/templates/battery_low.png" width="16">')) . '</td><td class="' . $class . '">' . $status . '</td><td class="' . $class . '">' . get_local_date_time($band['last_update'], 1) . '</td><td class="' . $class . '">' . ($band['add_date'] == '' ? '' : get_local_date_time($band['add_date'], 1)) . '</td>'; $html .= '</tr>'; /* Так же нам надо сделать возможность менять браслетам имена */ $html .= '<script> $(".band_name_' . $band['id'] . '").editable({ callback : function( data ) { if(data.content != false){ // Были изменения надо сохранить; band_change_name(' . $band['id'] . ', data.content); } } }); </script>'; } $html .= '</table>'; // Отвечаем скрипту;
// Формируем таблицу для вывода; foreach ($result_array as $key => $result_item) { if ($key % 2 != 0) { $class = 'row_1'; } else { $class = 'row_2'; } $html .= '<tr>'; $html .= '<td class="' . $class . '" style="text-align: center;">' . $result_item['id'] . '</td>'; $html .= '<td class="' . $class . ' inf_row works_defects_name_' . $result_item['id'] . '">' . $result_item['name'] . '</td>'; $html .= '<td class="' . $class . ' inf_row works_defects_price_' . $result_item['id'] . '" style="text-align: center;">' . $result_item['price'] . '</td>'; $html .= '<td class="' . $class . ' inf_row works_defects_time_' . $result_item['id'] . '" style="text-align: center;">' . $result_item['time'] . '</td>'; $html .= '<td class="' . $class . ' inf_row" style="text-align: center;">' . get_user_full_name($result_item['author_user_id']) . '</td>'; $html .= '<td class="' . $class . ' inf_row" style="text-align: center;">' . get_user_full_name($result_item['accepter_user_id']) . '</td>'; $html .= '<td class="' . $class . ' inf_row" style="text-align: center;">' . get_local_date_time($result_item['date_create'], 1) . '</td>'; $html .= '<td class="' . $class . ' inf_row" style="text-align: center;">' . ($result_item['date_accept'] != '' ? get_local_date_time($result_item['date_accept'], 1) : '-') . '</td>'; $buttons = ''; $buttons .= $elements->button_icon('Одобрить', 'ok4', '', 'accept_list_item', 'display: ' . ($result_item['accepter_user_id'] == '' ? 'inline-block' : 'none') . '; margin: 3px;', '', 'show_type="' . $show_type . '" elements_id="' . $result_item['id'] . '"'); $buttons .= $elements->button_icon('Убрать', 'viewer', '', 'unaccept_list_item', 'display: ' . ($result_item['accepter_user_id'] != '' ? 'inline-block' : 'none') . '; margin: 3px;', '', 'show_type="' . $show_type . '" elements_id="' . $result_item['id'] . '"'); $buttons .= $elements->button_icon('Удалить', 'close', '', 'delete_list_item', 'display: inline-block; margin: 3px;', '', 'show_type="' . $show_type . '" elements_id="' . $result_item['id'] . '"'); $html .= '<td class="' . $class . ' inf_row" style="text-align: center;">' . $buttons . '</td>'; $html .= '</tr>'; // Позволяем редактивровать блоки с ценой и сроками; $html .= '<script> $(\'.works_defects_price_' . $result_item['id'] . '\').editable({ callback : function( data ) { if(data.content != false){ // Были изменения надо сохранить; save_works_defects_data(\'price\', ' . $result_item['id'] . ', \'' . $show_type . '\', data.content); } }
function show_office_extradition_sheet($take_page_data) { // Сначала нам надо проверить можем ли мы показывать пользователю этьот аппарата как выданный, так как у нас документ мог просто открыть ся и кзакрыть; // Даже без выдачи, Но у него типа есть такой комметарий в тексте; $black_list = array(); /* Старый формат выдачи по комментарию */ /* foreach($take_page_data as $item){ $check_change_date = only_dvj_parse($item['dvj'], array(12), 1); // Поулчаем все даты для сравнения; $saved_date = date('Y-m-d', strtotime($item['saved'])); $dvj_date = date('Y-m-d', strtotime($check_change_date['date'])); if ($saved_date != $dvj_date){ $black_list[$item['numm']] = 1; write_log('Чёрный список = '.$item['numm'].' : '.$saved_date.' => '.$dvj_date, 'date_diff'); } else{ write_log($item['numm'].' : '.$saved_date.' => '.$dvj_date, 'date_diff'); } } */ $html = '<div class="page_caption">%itog%</div>'; $html = str_replace('%itog%', 'Всего выдано: <b>' . count($take_page_data) . '</b>', $html); $html .= '<table id="take_items" style="border: 1px solid black" cellspacing="0" cellpadding="0">'; $html .= '<tr>'; $html .= '<td class="row_top" style="padding: 5px;"><b>№ Заказа</b></td>'; $html .= '<td class="row_top" style="padding: 5px;"><b>№ Документа оплаты выдачи</b></td>'; $html .= '<td class="row_top" style="padding: 5px;"><b>Кто выдал</b></td>'; $html .= '<td class="row_top" style="padding: 5px;"><b>Когда выдал</b></td>'; $html .= '<td class="row_top" style="padding: 5px;"><b>Квитанций</b></td>'; $html .= '<td class="row_top" style="padding: 5px;"><b>Доверенностей</b></td>'; $html .= '<td class="row_top" style="padding: 5px;"><b>Статус документов</b></td>'; $html .= '</tr>'; // Забираем данны еи формируем таблицы; foreach ($take_page_data as $key => $item) { if ($black_list[$item['numm']] == '') { /* новый формат выдачи по новой таблице - take_tech. Это более удобный и цивилизованнный способ позволяющий контролировать тип получаемых дкоументов; */ $kvit_doc_count = 2; $dov_doc_count = 0; $rb_kassa_code_id = '-'; // Если у нас есть доверенность - то меняем количество строк; if ($item['client_receive_doc'] == '0') { $kvit_doc_count = 1; $dov_doc_count = 1; } // Если у нас есть документ оплаты, записываем его; if ($item['rb_kassa_code_id'] != '0') { $rb_kassa_code_id = $item['rb_kassa_code_id']; } // Визуальный класс чет нечет; if ($key % 2 != 0) { $class = 'row_1'; } else { $class = 'row_2'; } $html .= '<tr>'; $html .= '<td class="' . $class . '" style="text-align: center;">' . $item['numm'] . '</td>'; $html .= '<td class="' . $class . ' inf_row" style="text-align: center;">' . $rb_kassa_code_id . '</td>'; $html .= '<td class="' . $class . ' inf_row" style="text-align: center;">' . get_user_full_name($item['user_id']) . '</td>'; $html .= '<td class="' . $class . ' inf_row" style="text-align: center;">' . get_local_date_time($item['date'], 1) . '</td>'; $html .= '<td class="kvit ' . $class . ' inf_row" parent_div="' . $item['numm'] . '" style="text-align: center;">' . $kvit_doc_count . '</td>'; $html .= '<td class="dover ' . $class . ' inf_row" parent_div="' . $item['numm'] . '" style="text-align: center;">' . $dov_doc_count . '</td>'; $html .= '<td class="status ' . $class . ' inf_row" id="' . $item['numm'] . '" style="text-align: center;"><img src="/templates/images/icons/ok.png" height="16"></td>'; $html .= '</tr>'; } } if (count($take_page_data) == 0) { $html .= '<tr>'; $html .= '<td>-</td>'; $html .= '<td>-</td>'; $html .= '<td>-</td>'; $html .= '<td>-</td>'; $html .= '<td>-</td>'; $html .= '<td>-</td>'; $html .= '<td>-</td>'; $html .= '</tr>'; } $html .= '</table>'; write_log($html, 'new_take_tech'); return $html; }
$date_to = strtotime($_POST['date_to']); $days_between = ($date_to - $date_from) / 86400; for ($i = 0; $i <= $days_between; $i++) { // Если этот день выходной для инженера, то мы подкрашиваем его; // Даты которые уже добавили или новые доабвленные; $sql = "SELECT `id` FROM `work_day` WHERE `user_id` = '" . $engineer['id'] . "' AND `day_off` = '" . date('Y-m-d', strtotime($_POST['date_from'] . ' +' . $i . ' day')) . "' AND `status` = 1 ORDER BY `day_off` ASC;"; $lazy_day = $db_rs->one($sql); if ($lazy_day != '') { // Выходной; $class = 'free_day_table'; } else { // Рабочий день; $class = 'work_day_table'; } // Наполняем строку датой; $already_days_line .= '<div engineer_id="' . $engineer['id'] . '" class="' . ($can_change == 1 ? 'table_day' : '') . ' ' . $class . '" style="cursor:pointer;display: inline-block; border: 1px solid black; border-radius: 3px; margin: 3px; padding: 3px;">' . get_local_date_time(date('Y-m-d', strtotime($_POST['date_from'] . ' +' . $i . ' day'))) . '</div>'; } // Добавляем дни; $html .= '<div id="added_days_' . $engineer['id'] . '" style="display: inline-block;">' . $already_days_line . '</div>'; $html .= '</div>'; $html .= '</td>'; $html .= '</tr>'; } $html .= '</table>'; echo $html; } // Добавление новой даты в базу; if (isset($_POST['add_date']) && $_POST['add_date'] != '') { // Добавляем дату в базу и возвращаем ID новой записи; $sql = "INSERT INTO `work_day` (`user_id`, `day_off`, `status`) VALUES('" . $_POST['engineer_id'] . "', '" . date('Y-m-d', strtotime(trim($_POST['date']))) . "', 1);"; write_log($sql, 'add_work_date');
/* Создаем итоговый массив где мы будем хранить первый столбец */ $itog_count = array(); foreach ($tech_groups as $tech_group) { $itog_count[$tech_group['name']] = 0; } if ($key % 2 != 0) { $class = 'row_1'; } else { $class = 'row_2'; } // Период недели; $month_days = explode('/', $month_period); $html .= '<tr align="center">'; $html .= '<td class="' . $class . ' ">' . $key . '</td>'; $html .= '<td class="' . $class . ' inf_row">' . get_local_date_time($month_days[0]) . '</td>'; $html .= '<td class="' . $class . ' inf_row">' . get_local_date_time($month_days[1]) . '</td>'; // Далее нам надо выводить столбец с суммами, а так как у нас их пока нет, мы просто наполним его соответсвующими метками; $html .= '<td class="row_top inf_row" style="border-bottom: 1px solid black;font-weight: bold;" valign="middle">%total_count%</td>'; foreach ($tech_groups as $tech_group) { $html .= '<td class="' . $class . ' inf_row" valign="middle">%count_' . $tech_group['name'] . '%</td>'; } /* Теперь нам надо подсичтать суммы по технике в конкретных офиса и датах */ foreach ($week_data as $office => $data_item) { $office_date_sum = 0; $html_date_sum = ''; foreach ($tech_groups as $tech_group) { //write_log(print_r($data_item, true), 'tech_report_table_array'); if (array_key_exists($tech_group['name'], $data_item)) { $html_date_sum .= '<td class="' . $class . ' inf_row">' . $data_item[$tech_group['name']] . '</td>'; $office_date_sum += $data_item[$tech_group['name']]; $itog_count[$tech_group['name']] += $data_item[$tech_group['name']];
foreach ($messages_array as $message) { // Получаем текст уведомления; $sql = "SELECT `text`, `type` FROM `notifications` WHERE `send_id` = '" . $message['id'] . "' LIMIT 1;"; $message_temp = $db_rs->row($sql); if ($message_temp['type'] == '') { $message_temp['type'] = 1; } $html .= '<div class="notification notification_type_' . $message_temp['type'] . ' desk_item" id="message_' . $message['id'] . '" align="center" onclick="" style="vertical-align:top;;display: inline-block;cursor: default;6width: 26em; padding: 5px;">'; $html .= '<table border="0" style="width: 23em;table-layout: fixed;border: none;" cellspacing="0" cellpadding="0">'; $html .= '<tr>'; $html .= '<td style="width: 42px;"></td>'; $html .= '<td style="font-size: 0.8em;padding-bottom: 4px;padding-top: 4px;padding-left: 0px;">' . $systems->get_user_avatar_and_full_name($message['author_user_id']) . '</td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td rowspan="2" class="notification_icon" style="width: 3em;"><img src="/templates/images/icons/admin_notification.png" alt=""></td>'; $html .= '<td class="notification_parent" style="padding-left: 0px; padding-top: 3px;">' . get_local_date_time($message['date'], 1) . '</td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td class="notification_text" valign="top" style="padding-left: 0px; padding-top: 0px;">' . str_replace("\r\n", "<br>", $message_temp['text']) . '</td>'; $html .= '</tr>'; $html .= '</table>'; $html .= '<div align="center" send_id="' . $message['id'] . '">'; $html .= $elements->button('Статистика', 'show_message_status'); if ($message['author_user_id'] == $_SESSION['user_id']) { $html .= $elements->button('Удалить', 'delete_mass_send'); } $html .= '</div>'; // Список тех кому отпарвили уведомления; $sql = "SELECT `users_apps`.`user_full_name`, `notifications`.`status`, `departments`.`name` as `dep_name`, `appointments`.`name` as `app_name` FROM `notifications`\n LEFT JOIN `users_apps` ON `users_apps`.`id` = `notifications`.`user_id`\n LEFT JOIN `appointments` ON `appointments`.`id` = `users_apps`.`app_id`\n LEFT JOIN `departments` ON `departments`.`id` = `users_apps`.`dep_id`\n WHERE `notifications`.`send_id` = '" . $message['id'] . "';"; $users_status = $db_rs->all($sql); $html .= '<div id="status_list_' . $message['id'] . '" hidden>';
$html .= '<td class="row_top inf_row">Дата</td>'; $html .= '<td class="row_top inf_row">Тип</td>'; $html .= '</tr>'; foreach ($money_array as $key => $money) { // Визуальный класс чет нечет; $class = ''; if ($key % 2 != 0) { $class = 'row_1'; } else { $class = 'row_2'; } // Отображаем их в таблице; $html .= '<tr class="search_result">'; $html .= '<td class="' . $class . ' " id="result_table_td" align="center">' . $money['code'] . '</td>'; $html .= '<td class="' . $class . ' inf_row" id="result_table_td" align="left">' . $money['name'] . '</td>'; $html .= '<td class="' . $class . ' inf_row" id="result_table_td" align="center">' . get_local_date_time($money['phone']) . '</td>'; $html .= '<td class="' . $class . ' inf_row" id="result_table_td" align="center">' . $money['doc_type'] . '</td>'; $html .= '<td style="display:none;" id="result_table_td" align="center">' . $money['sum'] . '</td>'; $html .= '</tr>'; } } $html .= '</table>'; } echo $html; } // Создаем разные формы для выбора получателя, так как могут искать и клиента и сотрудника; if (isset($_POST['find_form']) && $_POST['find_form'] != '') { // Получаем форму для поиска и формируем запрос для поиска в источнике; $html = ''; /* if ($_POST['pko_type'] == '4'){
function get_order_parts_item($desks_array, $no_buttons = '') { global $systems, $db_rs, $elements; $html = ''; write_log(print_r($desks_array, true), 'desk_array'); foreach ($desks_array as $desk) { // ID образения; $desk_id = $desk['index_i']; // Номер заказа; $parts_numm = $desk['numm']; // Получаем нормальную дату; $date_create = date('d.m.Y H:i:s', strtotime($desk['date_z'])); // Получаем имя автора; $author = $systems->get_user_avatar_and_full_name('', $desk['login']); // Количество детавлей; $parts_count = $desk['kolv']; // Цена за на запчасть; $parts_price = $desk['price']; // Примечание к запчасти; $parts_prim = $desk['prim']; // Нзвание запчасти; $parts_name = $desk['name']; // Статус обращения; $status = $desk['statusdet']; if ($status == '0') { $status_text = 'Новый заказ'; } if ($status == '1') { $status_text = 'Детали заказаны'; } if ($status == '2') { $status_text = 'Детали получены'; } if ($status == '3') { $status_text = 'Архивный заказ'; } if ($status == '1' || $status == '0') { $move_color = 1; } // Желтый if ($status == '2' || $status == '3') { $move_color = 4; } // Зеленый цвет; if ($status == '7' || $status == '5') { $move_color = 3; } // Красный свет if ($status == '6' || $status == '4') { $move_color = 2; } $html .= '<div class="desk_item notification_type_' . $move_color . '" id="' . $desk_id . '" style="min-height: 478px;font-size: 0.85em; padding: 10px 10px 10px 10px; vertical-align:top;">'; $html .= '<div id="hidden_desk_window_id_' . $desk_id . '" window_id="" style="display: none;"></div>'; $html .= '<table style="border: none;" cellspacing="0" cellpadding="0">'; $html .= '<tr>'; $html .= '<td style="text-align: right">Номер заказа:</td>'; $html .= '<td><b><div style="width: 100px;">' . $desk_id . '</div></b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right">Дата создания:</td>'; $html .= '<td><b><div style="width: 250px;">' . get_local_date_time($date_create, 1) . '</div></b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right; vertical-align: top;">Статус:</td>'; $html .= '<td><b>' . $status_text . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right">Автор:</td>'; $html .= '<td style="width: 398px;font-size: 0.9em;"><b>' . $author . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right">Номер заказа для которого запчасть:</td>'; $html .= '<td style="cursor: pointer;" onclick="show_info_window(' . $parts_numm . ', \'new\');"><b>' . $parts_numm . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right">Стоимость запчасти:</td>'; $html .= '<td><b><div class="part_price" style="width: 100px;">' . $parts_price . '</div></b></td>'; if ($_SESSION['user_login'] == 'root' || $_SESSION['department_id'] == 2 && $_SESSION['appointment_id'] == 4 || $_SESSION['department_id'] == 4) { $html .= '<script> //$(\'.part_price\').editable(); $(\'.part_price\').editable({ callback : function( data ) { if(data.content != false){ // Были изменения надо сохранить; save_order_parts_option(' . $desk_id . ', \'price\', data.content); } } }); </script>'; } $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right">Необходимое количество:</td>'; $html .= '<td><b><div class="part_count" style="width: 100px;">' . $parts_count . '</div></b></td>'; if ($_SESSION['user_login'] == 'root' || $_SESSION['department_id'] == 2 && $_SESSION['appointment_id'] == 4 || $_SESSION['department_id'] == 4) { $html .= '<script> //$(\'.part_price\').editable(); $(\'.part_count\').editable({ callback : function( data ) { if(data.content != false){ // Были изменения надо сохранить; save_order_parts_option(' . $desk_id . ', \'kolv\', data.content); } } }); </script>'; } $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right; vertical-align: top;">Наименование детали:</td>'; $html .= '<td colspan="4" width="200px" style="-ms-word-break: break-all;word-break: break-all;word-break: break-word;-webkit-hyphens: auto;-moz-hyphens: auto;hyphens: auto;"><b>' . $parts_name . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right; vertical-align: top;">Предварительный комментарий:</td>'; $html .= '<td colspan="4" width="200px" style="-ms-word-break: break-all;word-break: break-all;word-break: break-word;-webkit-hyphens: auto;-moz-hyphens: auto;hyphens: auto;"><b>' . $parts_prim . '</b></td>'; $html .= '</tr>'; $html .= '</table>'; //$html .= //$html .= '<div>'; if ($no_buttons == '') { // Здесь мы выводим операционные кнопки для управления состоянием обращения, в зависимости от статуса обращения и пользователя, кнопки мгут быть разными; $html .= '<div id="desk_buttons">'; // Только руководитель отдела может одобрить заявку на выполнение; if ($status == '0') { $html .= '<div class="menu_button" onclick="orders_parts_set_status_new(' . $desk_id . ', 1);">Запчасть заказана</div>'; } // Только исполнитель может начать выполнение заявки; if ($status == '1') { $html .= '<div class="menu_button" onclick="orders_parts_set_status_new(' . $desk_id . ', 2);">Деталь получена</div>'; } // Только исполнитель может завешить выполнение заявки; if ($status == '2') { $html .= '<div class="menu_button" onclick="orders_parts_set_status_new(' . $desk_id . ', 3);">Отправить заявку в архив</div>'; } // Некоторый господам доступный все кнопки в любое время; if ($_SESSION['department_id'] == 4 && $_SESSION['appointment_id'] == 1 || $_SESSION['department_id'] == 2 && $_SESSION['appointment_id'] == 4 || $_SESSION['user_id'] == 50 || $_SESSION['department_id'] == 12) { $html .= $elements->caption('Административная смена статуса - ТОЛЬКО для административного использования'); $html .= '<div style="border: 1px solid black;padding: 3px 3px 9px 3px;margin: 9px;border-radius: 3px;max-width: 36em;background-color: chartreuse;">'; $html .= '<div class="menu_button" onclick="orders_parts_set_status_new(' . $desk_id . ', 0);">Деталь заказана инженером</div>'; $html .= '<div class="menu_button" onclick="orders_parts_set_status_new(' . $desk_id . ', 1);">Запчасть заказана</div>'; $html .= '<div class="menu_button" onclick="orders_parts_set_status_new(' . $desk_id . ', 2);">Деталь получена</div>'; $html .= '<div class="menu_button" onclick="orders_parts_set_status_new(' . $desk_id . ', 3);">Отправить заявку в архив</div>'; $html .= '</div>'; } $html .= '</div>'; } // Заказчик запчасти может всегда отправить запчасть в архив; if ($_SESSION['user_login'] == $desk['login']) { $html .= '<div class="menu_button" onclick="orders_parts_set_status_new(' . $desk_id . ', 3);">Отправить заявку в архив</div>'; } $html .= '<div style="margin-top: 5px; margin-bottom: 5px; margin-right: 10px; font-size: 0.9em;" align="center"><div class="menu_button" onclick="view_orders_parts_dialog(' . $desk_id . ');">Показать диалог</div></div>'; $html .= '<div class="dialog_' . $desk_id . '" style="margin-top: 0.5em;" hidden>'; // Написать сообщение к обращению; //$html .= $elements->button(); $html .= '<div style="display: inline-block;"><input style="width: 46.9em;" type="text" desk_id="' . $desk_id . '" id="desk_message_text_' . $desk_id . '" value="" onkeydown = "if(event.which == 13) add_new_orders_parts_chat_message(this, ' . $desk_id . ')">'; $html .= '</div>'; $html .= get_orders_parts_chat($desk_id); $html .= '</div>'; $html .= '</div>'; } return $html; }
public function get_inj_load($result_type, $user_id, $start_date, $deep = 14, $place_h = '') { // Дни недели; $days = array('1' => 'Пн.', '2' => 'Вт.', '3' => 'Ср.', '4' => 'Чт.', '5' => 'Пт.', '6' => 'Сб.', '0' => 'Вс.'); // Корректируем блубину по умоляанию если она пустая; if ($deep == '') { $deep = 14; } $result_line = ''; for ($i = 1; $i <= $deep; $i++) { // Получаем дату; $date_temp = strtotime($start_date); $date = date('Y-m-d', strtotime("+" . ($i - 1) . " day", $date_temp)); $date_day_week = date('w', strtotime($date)); if ($user_id == '') { // Если оказалось так что у выбранного заказа нет еще инеженера но кто-то уже хочет изменить бокс; // Нам надо вывести просто целочку дат, без отображения нагрузки и выходных дней инженера; $day_weight = 0; $day_status = 'work_day'; } else { // Побегаясь по всем датам пытаемся получить нагрузку; // Получаем нагрузка инженера на эту дату; $day_weight_temp = $this->check_weight_day($user_id, $date); $day_weight_old = count($day_weight_temp['numms']); $day_weight = $day_weight_temp['hours_weight']; // Получаем данные о том, выходной ли это день у инженера; $day_status = $this->check_work_day($user_id, $date); } // Если нам передали place_h, то нам обязательно надо его подсветить в ячейках; if ($place_h != '') { if ($date == $this->convert_placeh_to_date($place_h)) { $add_class = 'selected_box'; } else { $add_class = 'simple_box'; } } else { $add_class = 'simple_box'; } // Дописываем линию; // Переведем вес в часы минуты; $show_weight = $this->get_hours_minutes($day_weight); if ($result_type == 'box') { // Если мы строим боксы; $result_line .= '<div align="center" date="' . $date . '" class="' . ($day_weight >= 480 || $day_status == 'free_day' ? 'box_select_date_fail' : 'box_select_date ' . $add_class) . '" style="' . ($day_weight >= 480 || $day_status == 'free_day' ? 'background-color: #a90707; color: white;' : '') . 'font-size: 0.8em;cursor:pointer;display: inline-block; border: 1px solid black; border-radius: 3px; margin: 3px; padding: 3px;">' . get_local_date_time($date) . ' (' . $days[$date_day_week] . ')' . ($user_id != '' ? '<br>' . $show_weight . ' / ' . ($day_status == 'free_day' ? '0ч.' : '8ч.') : '') . '</div>'; } else { // Если мы строим просто линии для отчета, что бы нельзя было ничего выбрать как у боксов; $result_line .= '<div align="center" date="' . $date . '" class="" style="' . ($day_weight >= 480 || $day_status == 'free_day' ? 'background-color: #a90707; color: white;' : 'color: black; background-color: grey;') . 'font-size: 0.8em;cursor:pointer;display: inline-block; border: 1px solid black; border-radius: 3px; margin: 3px; padding: 3px;">' . get_local_date_time($date) . ' (' . $days[$date_day_week] . ')' . ($user_id != '' ? '<br>' . $show_weight . ' / ' . ($day_status == 'free_day' ? '0ч.' : '8ч.') : '') . '</div>'; } } return $result_line; }
public function show_rko_cards_table($rko_array, $session_marker, $body_only = '') { global $systems, $db_rs; write_log('Запуск функции вывода списка РКО', 'rko'); $html = ''; if (count($rko_array) == 0) { $html .= '<div class="page_caption">Список РКО пуст</div><br><br>'; } if ($body_only == '') { // Вывод таблицы сданнными; $html .= '<table style="max-width: 80em;">'; $html .= '<thead>'; $html .= '<tr>'; $html .= '<td class="row_top">Номер РКО' . $this->sort_arrows('id', $session_marker) . '</td>'; $html .= '<td class="row_top inf_row">Автор РКО' . $this->sort_arrows('author_user_id', $session_marker) . '</td>'; $html .= '<td class="row_top inf_row">Исполнитель РКО' . $this->sort_arrows('receive_user_id', $session_marker) . '</td>'; $html .= '<td class="row_top inf_row">Офис создания' . $this->sort_arrows('office', $session_marker) . '</td>'; $html .= '<td class="row_top inf_row">Текст основания' . $this->sort_arrows('reason', $session_marker) . '</td>'; $html .= '<td class="row_top inf_row">Дата создания' . $this->sort_arrows('create_date', $session_marker) . '</td>'; $html .= '<td class="row_top inf_row">Дата последних изменених' . $this->sort_arrows('date_last_update', $session_marker) . '</td>'; $html .= '<td class="row_top inf_row">Сумма' . $this->sort_arrows('sum', $session_marker) . '</td>'; $html .= '</tr>'; $html .= '</thead>'; $html .= '<tbody>'; } foreach ($rko_array as $rko) { // Цвет блока зависит от состояние документа РКО; $style = ''; write_log('1', 'rko'); // Новый документ; if ($rko['status'] == '1') { $style = 1; } // Согласованный документ; if ($rko['status'] == '2') { $style = 4; } // Несогласованный документ; if ($rko['status'] == '3') { $style = 2; } // Проведенный документ; if ($rko['status'] == '4') { $style = 3; } write_log('2', 'rko'); // Проверяем есть ли уведомления по этому документу; // Получаем ID родителя; $sql = "SELECT `id` FROM `menu_translate` WHERE `db_name` = 'rko';"; $parent_id = $db_rs->one($sql); $sql = "SELECT COUNT(`id`) as `count` FROM `notifications` WHERE `parent_id` = '" . $parent_id . "' AND `doc_id` = '" . $rko['id'] . "' AND `user_id` = '" . $_SESSION['user_id'] . "' AND `status` = 1;"; $noti_count = $db_rs->one($sql); if ($noti_count > 0) { $add_noti_count = '<span class="countList">' . $noti_count . '</span>'; } else { $add_noti_count = ''; } $html .= '<tr onclick="show_rko_window(' . $rko['id'] . ', \'new\')" class="notification_type_' . $style . '" style="cursor:pointer; border:1px solid black;">'; $html .= '<td align="center" style="border-top: 1px solid black;position: relative;">' . $add_noti_count . $rko['id'] . '</td>'; $html .= '<td style="width: 227px; border-top: 1px solid black;">' . $systems->get_user_avatar_and_full_name($rko['author_user_id']) . '</td>'; $html .= '<td style="width: 227px; border-top: 1px solid black;">' . $systems->get_user_avatar_and_full_name($rko['receive_user_id']) . '</td>'; $html .= '<td align="center" style="border-top: 1px solid black;">' . get_office_name($rko['office']) . '</td>'; $html .= '<td align="center" style="border-top: 1px solid black;">' . mb_strimwidth($rko['reason'], 0, 60, '...') . '</td>'; $html .= '<td align="center" style="border-top: 1px solid black;">' . get_local_date_time($rko['create_date'], 1) . '</td>'; $html .= '<td align="center" style="border-top: 1px solid black;">' . get_local_date_time($rko['date_last_update'], 1) . '</td>'; $html .= '<td align="center" style="width: 100px; border-top: 1px solid black;">' . get_money_format($rko['sum']) . ' руб.</td>'; $html .= '</tr>'; } if ($body_only == '') { $html .= '</tbody>'; $html .= '</table>'; } return $html; }
$html .= '<tr>'; $html .= '<td class="row_top">Офис</td>'; $html .= '<td class="row_top inf_row">Сумма Выдано техники</td>'; //$html .= '<td class="row_top inf_row">Сумма Быстрых продаж</td>'; $html .= '<td class="row_top inf_row">Кол-во Принятой техники</td>'; $html .= '<td class="row_top inf_row">Кол-во Принятой техники по гарантии</td>'; $html .= '<td class="row_top inf_row">Кол-во Выданной техники общее</td>'; $html .= '<td class="row_top inf_row">Кол-во Выданной техники с ремонтом</td>'; //$html .= '<td class="row_top inf_row">Кол-во Быстрых продаж</td>'; $html .= '<td class="row_top inf_row" style="width: 150px;">Средний чек выдача</td>'; //$html .= '<td class="row_top inf_row" style="width: 150px;">Средний чек продажи</td>'; if ($_SESSION['department_id'] == 2 || $_SESSION['department_id'] == 12) { $html .= '<td class="row_top inf_row">Поступления наличные</td>'; $html .= '<td class="row_top inf_row">Поступления оплата картой</td>'; $html .= '<td class="row_top inf_row">Поступления оплата кредитом</td>'; $html .= '<td class="row_top inf_row">Остаток в кассах на конец ' . get_local_date_time($_POST['date_to']) . '</td>'; } $html .= '</tr>'; $field_2_sum = 0; $field_3_sum = 0; $field_4_sum = 0; $field_5_sum = 0; $field_6_sum = 0; $field_7_sum = 0; $field_8_sum = 0; $field_9_sum = array('sum' => 0, 'count' => 0); $field_13_sum = array('sum' => 0, 'count' => 0); $field_10_sum = 0; $field_11_sum = 0; $field_12_sum = 0; $field_14_sum = 0;
if ($numm_data['place_h'] != '') { //$html .= '<tr>'; //$html .= '<td>'; $html .= '<div class="info_bordered_field" style="display: inline-block;"><div class="field_title" style="">Бокс</div>' . $numm_data['place_h'] . '</div>'; //$html .= '</td>'; //$html .= '</tr>'; } //$html .= '<tr>'; //$html .= '<td>'; $html .= '<div class="info_bordered_field" style="display: inline-block;"><div class="field_title" style="">Дата приема в ремонт</div>' . get_local_date_time($numm_data['date1'], 1) . '</div>'; $html .= '<br>'; $html .= '<div class="info_bordered_field" style="display: inline-block;min-width: 100px;"><div class="field_title" style="">Кто принимал</div>' . (get_user_full_name('', $numm_data['pri']) != '' ? get_user_full_name('', $numm_data['pri']) : '-') . '</div>'; if ($numm_data['date2'] != '') { $html .= '<div class="info_bordered_field" style="display: inline-block;"><div class="field_title" style="">Дата выдачи заказа</div>' . get_local_date_time($numm_data['date2'], 1) . '</div>'; } $html .= '<div class="info_bordered_field" style="display: inline-block;"><div class="field_title" style="">Последнее сохранение</div>' . get_local_date_time($numm_data['saveds'], 1) . '</div>'; //$html .= '</td>'; //$html .= '</tr>'; //$html .= '<tr>'; //$html .= '<td>'; /* Попробуем получить офис прихода заказа */ // Парсим dvj по строкам; $dvj_array = explode("\n", $numm_data['dvj']); $input_office = ''; for ($i = 0; $i <= count($dvj_array) - 1; $i++) { /* Давайте немного попарсим историю (кроме первой/последней строки) */ if ($i != 0) { // Парсим дату и текст; $dvj_line_array = explode('|', $dvj_array[$i]); // Дата; $dvj_date = trim($dvj_line_array[0]);
$html .= '<td class="row_top inf_row">с 18:00 до 19:00</td>'; $html .= '<td class="row_top inf_row">с 19:00 до 20:00</td>'; $html .= '<td class="row_top inf_row">с 20:00 до 21:00</td>'; $html .= '<td class="row_top inf_row"><b>ИТОГО</b></td>'; $html .= '</tr>'; $sum_array_full = array(); foreach ($answer_call as $key => $answer_item) { $html .= '<tr>'; // Визуальный класс чет нечет; $class = ''; if ($key % 2 != 0) { $class = 'row_1'; } else { $class = 'row_2'; } $html .= '<td class="' . $class . '" align="center">' . get_local_date_time($answer_item['date']) . '</td>'; $temp_sum = 0; for ($i = 9; $i <= 20; $i++) { $sum_array_full[$i] += $answer_item[$i]; $html .= '<td class="' . $class . ' inf_row" align="center">' . $answer_item[$i] . '<br>(' . ceil($full_day_array[$answer_item['date']][$i] * 100 / $answer_item[$i]) . '%)</td>'; $temp_sum += $full_day_array[$answer_item['date']][$i]; } $full_sum_line = $answer_item['9'] + $answer_item['10'] + $answer_item['11'] + $answer_item['12'] + $answer_item['13'] + $answer_item['14'] + $answer_item['15'] + $answer_item['16'] + $answer_item['17'] + $answer_item['18'] + $answer_item['19'] + +$answer_item['20']; $html .= '<td class="row_top inf_row" align="center" style="border-top: 1px solid black">' . $full_sum_line . '<br>(' . ceil($temp_sum * 100 / $full_sum_line) . '%)</td>'; $html .= '</tr>'; } $html .= '<tr>'; $html .= '<td class="row_top"><b>ИТОГО</b></td>'; $full_sum_all = 0; for ($i = 9; $i <= 20; $i++) { $full_sum_all += $sum_array_full[$i];
$html .= '<td class="row_top inf_row">Курьер</td>'; $html .= '<td class="row_top inf_row">Номер заказа</td>'; $html .= '<td class="row_top inf_row">Дата формирования</td>'; $html .= '<td class="row_top inf_row">Операции</td>'; $html .= '</tr>'; foreach ($takes as $key => $later_take) { if ($key % 2 != 0) { $class = 'row_1'; } else { $class = 'row_2'; } $html .= '<tr>'; $html .= '<td class="' . $class . '" align="center">' . $later_take['id'] . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . get_user_full_name($later_take['user_id']) . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . $later_take['numm'] . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . get_local_date_time($later_take['take_date'], 1) . '</td>'; $operations = '<div class="end_later_take">'; //$operations .= $elements->input('Укажите номер(-а) чек(-ов)', $later_take['id'].'_later_take_check', '', '', '', '', 'width:6em;'); $operations .= '<div class="page_caption">Какой документ вы приняли от клиента?</div><br><br>'; $operations .= '<label id="sliderLabel"> <input type="checkbox" id="' . $later_take['id'] . '_client_receive_doc" checked/> <span id="slider"> <span id="sliderOn">Квитанция</span> <span id="sliderOff">Расписка</span> <span id="sliderBlock"></span> </span> </label>'; // Крыжик - что мы приняли денежные средства; $operations .= '<br><div class="page_caption" style="display: block;padding-left: 15px;text-indent: -15px;"><input type="checkbox" id="money_paid_cur" late_take_id="' . $later_take['id'] . '" value="card_pay" style="box-shadow: none;height: 23px;padding: 0;margin: -4px;vertical-align: bottom;position: relative;top: -1px;overflow: hidden; width: 2em;" ' . ($pay_type == '1' ? 'checked' : '') . '> Я полностью принял денежные средства</div>'; $operations .= '<div id="' . $later_take['id'] . '_take_tech_checkbox" hidden>'; // Крыжик - нал/карта;
public function news_item($news) { global $systems; $html = '<div id="new_' . $news['id'] . '" class="desk_item notification notification_type_1" style="cursor: default; border:1px solid black; border-radius: 8px; margin-top: -1px; width: 46em; padding: 10px 10px 10px 10px; margin-bottom: 0.5em; background-color: #d8d8d8;" align="left">'; $html .= '<div id="news_author" style="display: inline-block; margin-right: 15px; margin-top: 0em; font-size: 0.8em; margin-bottom: 5px;">' . $systems->get_user_avatar_and_full_name($news['author_user_id']) . '</div>'; $html .= '<div id="news_date" style="display: inline-block;margin-top: 4px;margin-right: 3px;font-size: 0.9em;float: right;">' . get_local_date_time($news['date']) . '</div><br>'; $html .= '<div id="news_title_' . $news['id'] . '" class="row_top" style="text-align: left; border-radius: 5px; padding-left: 10px; padding-top: 8px; padding-right: 10px; height: 1.7em; font-size: 1em;">' . $news['title'] . '</div>'; $html .= '<div id="news_text_' . $news['id'] . '" style="margin-top: 0.7em; margin-left: 9px; word-wrap: break-word;">' . $news['text'] . '</div>'; if (isset($_SESSION['department_id']) && $_SESSION['department_id'] == 2) { if ($_SESSION['user_id'] == $news['author_user_id'] || $_SESSION['user_login'] == 'root') { $html .= '<div align="center" news_id="' . $news['id'] . '">'; $html .= $this->button('Редактировать', 'edit_news', '', '', ''); $html .= $this->button('Удалить', 'delete_news', '', '', ''); $html .= '</div>'; } } $html .= '</div>'; return $html; }
$html .= '<div class="table_head_middle_cell" style="width: 9em;">Дата добавления</div>'; $html .= '<div class="table_head_right_cell" style="width: 9em;">Операции</div>'; $html .= '</div>'; // Тело таблицы; $html .= '<div class="div_table_body">'; // Смотрим какие уже дефекты у нас обнаружил инеженр; $sql = "SELECT `defects`.`defect`, `defects`.`price`, `defects`.`repair_time`, `diagnostics`.`author_user_id`, `diagnostics`.`date_create` FROM `diagnostics`, `defects` WHERE `diagnostics`.`defect_id` = `defects`.`id` AND `numm` = '" . $numm . "' AND `diagnostics`.`status` != 0;"; $diagnostics_list = $db_rs->all($sql); // Выводим страые запсианные ранее результаты диагностики; if (count($diagnostics_list) > 0) { foreach ($diagnostics_list as $key => $defect) { $defect_name = $defect['defect']; $defect_price = $defect['price']; $defect_inj = get_user_full_name($defect['author_user_id']); $defect_repair_time = $defect['repair_time']; $defect_date = get_local_date_time($defect['date_create'], 1); // Чет нечет; if ($key % 2 != 0) { $class = 'row_1'; } else { $class = 'row_2'; } $html .= '<div id="diag_id_' . $key . '" class="defect_list_line" marker="1">'; // Порядковый номер; $html .= '<div class="diag_number table_body_left_cell ' . $class . '" style="width: 2em;">' . ($key + 1) . '</div>'; $html .= '<div class="diag_name table_body_middle_cell ' . $class . '" style="width: 17em;">' . $defect_name . '</div>'; $html .= '<div class="diag_price table_body_middle_cell ' . $class . '" style="width: 5em;">' . $defect_price . '</div>'; $html .= '<div class="diag_inj table_body_middle_cell ' . $class . '" style="width: 8em;">' . $defect_inj . '</div>'; $html .= '<div class="diag_repair_time table_body_middle_cell ' . $class . '" style="width: 5em;">' . $defect_repair_time . '</div>'; $html .= '<div class="diag_date table_body_middle_cell ' . $class . '" style="width: 9em;">' . $defect_date . '</div>'; $html .= '<div class="diag_oper table_body_right_cell ' . $class . '" style="width: 9em;"><img class="mark_for_delete" title="Пометить на удаление" style="cursor:pointer;" src="/templates/images/icons/close.png" width="24px"></div>';
$html .= '<td class="' . $class . ' inf_row" align="center">' . 0 . '</td>'; $second_line .= '<td class="' . $class . ' inf_row" align="center">' . 0 . '</td>'; } foreach ($snapshot_data as $date_item) { $html .= '<td class="' . $class . ' inf_row" align="center">' . $date_item['count'] . '</td>'; $second_line .= '<td class="' . $class . ' inf_row" align="center">' . $date_item['sum'] . '</td>'; // Считаем суммы; $orders_count += $date_item['count']; $order_sum += $date_item['sum']; } } $html .= '<td class="' . $class . ' inf_row" align="center">' . $orders_count . '</td>'; $html .= '</tr>'; // Дорисоываем вторую строку с датой; $html .= '<tr>'; $html .= '<td class="' . $class . ' " align="center">' . get_local_date_time($snapshot['date_create'], 1) . '</td>'; $html .= $second_line; $html .= '<td class="' . $class . ' inf_row" align="center">' . $order_sum . '</td>'; $html .= '</tr>'; // И дописываем строки итого; } $html .= '</table>'; $html = $systems->excel_export($html, 'orders_analytics_excel_export') . $html; echo $html; /* foreach($all_des as $dep_name){ $html .= '<table style="display: inline-block; margin: 10px;vertical-align: top;">'; $html .= '<tr>'; $html .= '<td class="row_top" colspan="3" style="border-bottom: 1px solid black;font-weight: bold;">'.$dep_name.'</td>'; $html .= '</tr>'; $html .= '<tr>';
// Зеленый цвет; if ($status == '2') { $move_color = 3; } // Красный свет if ($status == '3') { $move_color = 2; } $html .= '<tr onclick="show_justification_window(' . $desk_item['id'] . ', \'new\')" class="notification_type_' . $move_color . '" style="cursor:pointer; border:1px solid black;">'; // Проверяем есть ли уведомления по этому документу; // Получаем ID родителя; $sql = "SELECT `id` FROM `menu_translate` WHERE `db_name` = '" . $parent . "';"; $parent_id = $db_rs->one($sql); $sql = "SELECT COUNT(`id`) as `count` FROM `notifications` WHERE `parent_id` = '" . $parent_id . "' AND `doc_id` = '" . $desk_item['id'] . "' AND `user_id` = '" . $_SESSION['user_id'] . "' AND `status` = 1;"; $noti_count = $db_rs->one($sql); if ($noti_count > 0) { $add_noti_count = '<span class="countList">' . $noti_count . '</span>'; } else { $add_noti_count = ''; } $html .= '<td align="center" style="border-top: 1px solid black;position: relative;">' . $add_noti_count . $desk_item['id'] . '</td>'; $html .= '<td style="width: 450px; border-top: 1px solid black; font-size: 0.8em;">' . $systems->get_user_avatar_and_full_name($desk_item['author_user_id']) . '</td>'; $html .= '<td style="width: 450px; border-top: 1px solid black; font-size: 0.8em;">' . $systems->get_user_avatar_and_full_name($desk_item['accepter_user_id']) . '</td>'; $html .= '<td align="center" style="border-top: 1px solid black;">' . get_local_date_time($desk_item['date_create'], 1) . '</td>'; $html .= '<td align="center" style="border-top: 1px solid black;">' . get_local_date_time($desk_item['date_last_update'], 1) . '</td>'; $html .= '<td align="center" style="border-top: 1px solid black;">' . $status_text . '</td>'; $html .= '</tr>'; } } $html .= "<script>\$('.user_desk').tipsy();</script>"; echo $html;
if ((int) $sales['item_price3'] == (int) $data_array[$key + 1]['item_price3']) { $good_price = (int) $sales['item_price3']; } if ($good_price > 1000) { $user_prize = 200; } if ($good_price <= 1000) { $user_prize = 100; } } else { $user_prize = 0; } } $html .= '<tr>'; $html .= '<td class="' . $class . '" align="center">' . $sales['id'] . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . get_local_date_time($sales['date']) . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . get_office_name($sales['office']) . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . get_user_full_name('', $sales['user_full_name']) . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . $good_name . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . get_money_format($sales['item_price3']) . 'р.</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . ($sales['stock'] == '1' ? 'Да' : 'Нет') . '</td>'; $html .= '<td class="' . $class . ' inf_row" align="center">' . get_money_format($user_prize) . 'р.</td>'; $html .= '</tr>'; // Считаем суммы тоже; //$sums['sales_count'] += $sales['sales_count']; //$sums['sales_sum'] += $sales['sales_sum']; //$sums['sales_profit'] += $sales['sales_profit']; } /* $html .= '<tr>'; $html .= '<td class="row_top">ИТОГО</td>';
$html .= '<div class="work_number table_body_left_cell ' . $class . '" style="width: 2em;">' . ($key + 1) . '</div>'; $html .= '<div class="work_name table_body_middle_cell ' . $class . '" style="width: 17em;">' . str_replace(array('[', ']'), '', $work) . '</div>'; $price = str_replace(array('[', ']'), '', $old_works_price_line[$key]); if ($price == '') { $price = 0; } else { $work_price += $price; } $html .= '<div class="work_price table_body_middle_cell ' . $class . '" style="width: 5em;">' . $price . '</div>'; $html .= '<div class="work_inj table_body_middle_cell ' . $class . '" style="width: 8em;">' . get_user_full_name('', str_replace(array('[', ']'), '', $old_works_inj_line[$key])) . '</div>'; $gar_w = str_replace(array('[', ']'), '', $old_works_gar_w[$key]); if ($gar_w == '') { $gar_w = 0; } $html .= '<div class="work_gar table_body_middle_cell ' . $class . '" style="width: 5em;">' . $gar_w . '</div>'; $html .= '<div class="work_date table_body_middle_cell ' . $class . '" style="width: 9em;">' . get_local_date_time($old_works_date_create, 1) . '</div>'; $html .= '<div class="work_oper table_body_right_cell ' . $class . '" style="width: 9em;"><img class="mark_for_delete" title="Пометить на удаление" style="cursor:pointer;" src="/templates/images/icons/close.png" width="24px"></div>'; // Список запчастей; $html .= '<div id="part_list_' . $key . '" part_list_id="' . $key . '" class="work_parts ' . $class . '" style="margin-top: -2px; width: 58.2em;border: 1px solid black;border-width: 0px 1px 1px 1px;min-height: 4em;">'; $html .= $elements->small_title('Список запчастей к данной работе'); $html .= '<div class="part_list">'; /* Грузим работы - Нового формата */ // Получим ID запчастей из резерва; $sql = "SELECT `id_tab` FROM `detals` WHERE `numm_rem` = '" . $numm . "';"; $parts_temp = $db->one($sql); $parts_temp_array = explode('][', $parts_temp); foreach ($parts_temp_array as $part) { $part_index_i = str_replace(array('[', ']'), '', $part); // Проверяем, если ли связка с такой работой; $sql = "SELECT `id` FROM `works` WHERE `work` = '" . str_replace(array('[', ']'), '', $work) . "' AND `tech_type` = '" . $systems->get_tech_type_id($numm) . "';"; write_log($sql, 'load_parts');
function get_desk_item($desks_array, $no_buttons = '') { global $systems, $db_rs, $elements; $html = ''; write_log(print_r($desks_array, true), 'desk_array'); foreach ($desks_array as $desk) { // ID образения; $desk_id = $desk['id']; // Получаем нормальную дату; $date_create = date('d.m.Y H:i:s', strtotime($desk['datetime_create'])); $date_update = date('d.m.Y H:i:s', strtotime($desk['datetime_last_update'])); // Получаем имя автора; $author = $systems->get_user_avatar_and_full_name($desk['author_user_id']); /* $sql = "SELECT CONCAT(`fam`, ' ', `name`) as `name` FROM `users` WHERE `login` = '".$author_id."';"; $author = $db->one($sql); */ // Текст обращения; $desk_message = str_replace("\n", '<br>', $desk['desk_text']); // Статус обращения; $status = $desk['status']; if ($status == '1') { $status_text = 'Новоя заявка'; } if ($status == '2') { $status_text = 'Заявка принята'; } if ($status == '3') { $status_text = 'Заявка выполняется'; } if ($status == '4') { $status_text = 'Отказ в выполнении'; } if ($status == '5') { $status_text = 'Ожидание подтверждения выполнения'; } if ($status == '6') { $status_text = 'Заявка не выполнена'; } if ($status == '7') { $status_text = 'Заявка выполнена'; } if ($status == '1') { $move_color = 1; } // Желтый if ($status == '2' || $status == '3') { $move_color = 4; } // Зеленый цвет; if ($status == '7' || $status == '5') { $move_color = 3; } // Красный свет if ($status == '6' || $status == '4') { $move_color = 2; } // Но если у заявки нет исполнителя, мы все равно красим ее в красный цвет; if ($desk['todo_user_id'] == '') { $move_color = 2; } $html .= '<div class="desk_item notification_type_' . $move_color . '" id="' . $desk_id . '" style="min-height: 478px;font-size: 0.85em; padding: 10px 10px 10px 10px; vertical-align:top;">'; $html .= '<div id="hidden_desk_window_id_' . $desk_id . '" window_id="" style="display: none;"></div>'; $html .= '<table style="border: none;" cellspacing="0" cellpadding="0">'; $html .= '<tr>'; $html .= '<td style="text-align: right">Номер заявки:</td>'; $html .= '<td><b>' . $desk_id . '</b></td>'; $html .= '<td style="text-align: right">Принадлежность:</td>'; $html .= '<td>'; // Здесь мы выводим принадлежности пользователь к заявке; $html .= "<script>\$('.user_desk').tipsy();</script>"; if ($desk['author'] == '1') { $html .= '<img src="/templates/images/icons/author.png" class="user_desk" title="Вы автор" width="24px" style="margin: 3px;"/>'; } if ($desk['boss'] == '1') { $html .= '<img src="/templates/images/icons/boss.png" class="user_desk" title="Заявка вашего отдела" width="24px" style="margin: 3px;"/>'; } if ($desk['todo'] == '1') { $html .= '<img src="/templates/images/icons/todo.png" class="user_desk" title="Вы исполнитель" width="24px" style="margin: 3px;"/>'; } if ($desk['viewer'] == '1') { $html .= '<img src="/templates/images/icons/viewer.png" class="user_desk" title="Вы наблюдатель" width="24px" style="margin: 3px;"/>'; } // Если у нас есть вложенные заявки, надо их отобразить; $sql = "SELECT `id` FROM `service_desk` WHERE `parent_id` = '" . $desk_id . "';"; $child_desk = $db_rs->all($sql); if (count($child_desk) > 0) { $html .= '<img src="/templates/images/icons/parent_desk.png" class="user_desk" title="Эта заявка имеет вложенные заявки" width="24px" style="margin: 3px;"/>'; } if ($desk['parent_id'] != '') { $html .= '<img src="/templates/images/icons/desk_child.png" class="user_desk" title="Это вложенная заявка" width="24px" style="margin: 3px;"/>'; } if ($desk['date_todo_view'] != '') { $html .= '<img src="/templates/images/icons/desk_opened.png" class="user_desk" title="Исполнитель просмотрел заявку в: ' . get_local_date_time($desk['date_todo_view'], 1) . '" width="20px" style="margin: 3px;"/>'; } $html .= '</td>'; $html .= '</tr>'; // Если у нас есть вложенные заявки, надо их отобразить; $sql = "SELECT `id` FROM `service_desk` WHERE `parent_id` = '" . $desk_id . "';"; $child_desk = $db_rs->all($sql); if (count($child_desk) > 0) { // Осталвляем ссылки на детей этой заявки; $html .= '<tr>'; $html .= '<td style="text-align: right; vertical-align: top;">Вложенные заявки:</td>'; $html .= '<td><b>'; foreach ($child_desk as $child) { // Получаем статус вложенной заявки; $sql = "SELECT `status` FROM `service_desk` WHERE `id` = '" . $child['id'] . "';"; $child_desk_status = $db_rs->one($sql); if ($child_desk_status == '1') { $child_status_text = 'Новоя заявка'; } if ($child_desk_status == '2') { $child_status_text = 'Заявка принята'; } if ($child_desk_status == '3') { $child_status_text = 'Заявка выполняется'; } if ($child_desk_status == '4') { $child_status_text = 'Отказ в выполнении'; } if ($child_desk_status == '5') { $child_status_text = 'Ожидание подтверждения выполнения'; } if ($child_desk_status == '6') { $child_status_text = 'Заявка не выполнена'; } if ($child_desk_status == '7') { $child_status_text = 'Заявка выполнена'; } $html .= '<div onclick="show_desk_window(' . $child['id'] . ', \'new\')" style="cursor:pointer;">' . $child['id'] . ' ( ' . $child_status_text . ' )</div>'; } $html .= '</b></td>'; $html .= '</tr>'; } // Если заявка имеет родителя, то нам надо оставить ссылку на родительскую заявку; if ($desk['parent_id'] != '') { // Получаем статус вложенной заявки; $sql = "SELECT `status` FROM `service_desk` WHERE `id` = '" . $desk['parent_id'] . "';"; $parent_desk_status = $db_rs->one($sql); if ($parent_desk_status == '1') { $parent_status_text = 'Новоя заявка'; } if ($parent_desk_status == '2') { $parent_status_text = 'Заявка принята'; } if ($parent_desk_status == '3') { $parent_status_text = 'Заявка выполняется'; } if ($parent_desk_status == '4') { $parent_status_text = 'Отказ в выполнении'; } if ($parent_desk_status == '5') { $parent_status_text = 'Ожидание подтверждения выполнения'; } if ($parent_desk_status == '6') { $parent_status_text = 'Заявка не выполнена'; } if ($parent_desk_status == '7') { $parent_status_text = 'Заявка выполнена'; } $html .= '<tr>'; $html .= '<td style="text-align: right; vertical-align: top;">Родительская заявка:</td>'; $html .= '<td onclick="show_desk_window(' . $desk['parent_id'] . ', \'new\')" style="cursor:pointer;"><b>' . $desk['parent_id'] . ' ( ' . $parent_status_text . ' )</b></td>'; $html .= '</tr>'; } $html .= '<tr>'; $html .= '<td style="text-align: right">Автор:</td>'; $html .= '<td style="width: 398px;font-size: 0.9em;"><b>' . $author . '</b></td>'; $html .= '<td style="text-align: right">Исполнитель:</td>'; // Если пользователь у нас руководитель отдела по этому заявке, ему надо дать возможность менять испольнителя; if (get_desk_boss_id($desk_id) == 1 && $status != '7') { // Здесь мы будем строить выпдашку с пользователями; $sql = "select `id`, `user_full_name` as `name` FROM `users_apps` WHERE `dep_id` = '" . $_SESSION['department_id'] . "';"; $users = $db_rs->all($sql); $html .= '<td><select id="desk_todo_user" desk_id="' . $desk_id . '" style="height: 39px; text-align: center; background-color: #ffffff; padding: 5px 5px 5px 5px; border-radius: 7px; opacity: 0.9; border: 1px solid #5f5f5f;">'; $html .= '<option value="none" disabled selected>Выберите исполнителя для заявки</option>'; foreach ($users as $user) { $html .= '<option value="' . $user['id'] . '" ' . ($desk['todo_user_id'] == $user['id'] ? 'selected' : '') . '>' . $user['name'] . '</option>'; } $html .= '</select></td>'; } else { $html .= '<td style="font-size: 0.9em;width: 398px;"><b>' . $systems->get_user_avatar_and_full_name($desk['todo_user_id']) . '</b></td>'; } $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right">Офис в котором делалась заявка:</td>'; $html .= '<td><b>' . get_office_name($desk['author_office']) . '</b></td>'; $html .= '<td style="text-align: right">Для какого отдела заявка:</td>'; $html .= '<td><b>' . get_department_name($desk['department_id']) . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right">Тип заявки:</td>'; $html .= '<td><b>' . get_desk_type_name($desk['type_id']) . '</b></td>'; $html .= '<td style="text-align: right">Когда создано:</td>'; $html .= '<td><b>' . $date_create . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right">Предпочтительная дата исполнения:</td>'; $html .= '<td><b>' . get_local_date_time($desk['date_dead_line']) . '</b></td>'; $html .= '<td style="text-align: right">Последнее обновление:</td>'; $html .= '<td><b>' . $date_update . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td style="text-align: right; vertical-align: top;">Статус:</td>'; $html .= '<td><b>' . $status_text . '</b></td>'; $html .= '</tr>'; if ($desk['attache'] != '') { $html .= '<tr>'; $html .= '<td style="text-align: right; vertical-align: top;">Прикрепленный заказ:</td>'; $html .= '<td style="cursor: pointer;" onclick="show_info_window(' . $desk['attache'] . ', \'new\');"><b>' . $desk['attache'] . '</b></td>'; $html .= '</tr>'; } $html .= '<tr>'; $html .= '<td style="text-align: right; vertical-align: top;">Текст обращения:</td>'; $html .= '<td colspan="4" width="200px" style="-ms-word-break: break-all;word-break: break-all;word-break: break-word;-webkit-hyphens: auto;-moz-hyphens: auto;hyphens: auto;"><b>' . $desk_message . '</b></td>'; $html .= '</tr>'; $html .= '</table>'; //$html .= //$html .= '<div>'; if ($no_buttons == '') { // Здесь мы выводим операционные кнопки для управления состоянием обращения, в зависимости от статуса обращения и пользователя, кнопки мгут быть разными; $html .= '<div id="desk_buttons">'; // Если ты автор, исполнитель, или же руководитель отдела, ты можешь создать дочернюю заявку; $boss_array = get_department_boss(get_desk_department($desk_id)); $boss = 0; foreach ($boss_array as $boss) { if ($boss == $_SESSION['user_id']) { $boss = 1; } } if (($boss == 1 || get_desk_author_user($desk_id) == $_SESSION['user_id'] || get_desk_todo_user($desk_id) == $_SESSION['user_id']) && $status != '7') { $html .= $elements->button('Создать вложенную заявку', 'create_child_desk', '', '', '', 'desk_id="' . $desk_id . '"'); } // Важно, что работать с наблюдателями может только либо автор заявки, либо реководитель отдела на который создана заявка; $boss_array = get_department_boss(get_desk_department($desk_id)); $boss = 0; foreach ($boss_array as $boss) { if ($boss == $_SESSION['user_id']) { $boss = 1; break; } } if ((get_desk_author_user($desk_id) == $_SESSION['user_id'] || $boss == 1 || $_SESSION['department_id'] == 2) && $status != '7') { // Кнопки управления наблюдателями; $html .= '<div class="menu_button" onclick="$(\'#viewers_list_' . $desk_id . '\').toggle(\'fast\')">Работа с наблюдателями заявки</div><br>'; // Форма для работы с наблюдателями; $html .= '<div id="viewers_list_' . $desk_id . '" style="display: none;">'; $sql = "SELECT `users_apps`.`id`, `users_apps`.`user_full_name` as `user` FROM `service_desk_viewers`\n LEFT JOIN `users_apps` ON `users_apps`.`id` = `service_desk_viewers`.`viewer_user_id`\n WHERE `service_desk_id` = '" . $desk_id . "' AND `service_desk_viewers`.`status` != 0;"; $viewers_array = $db_rs->all($sql); $html .= $elements->caption('Список наблюдателей'); $html .= "<script>\$('.unview_desk').tipsy();</script>"; $html .= '<br>'; $html .= '<table style="margin-top: -8px;">'; $html .= '<tr>'; $html .= '<td class="row_top">Имя пользователя</td>'; $html .= '<td class="inf_row row_top">Действие</td>'; $html .= '</tr>'; foreach ($viewers_array as $key => $viewers) { // Визуальный класс чет нечет; $class = ''; if ($key % 2 != 0) { $class = 'row_1'; } else { $class = 'row_2'; } $html .= '<tr>'; $html .= '<td align="center" class="' . $class . '">' . $viewers['user'] . '</td>'; $html .= '<td align="center" class="' . $class . ' inf_row"><img class="unview_desk" desk_id="' . $desk_id . '" user_id="' . $viewers['id'] . '" style="cursor:pointer;" src="/templates/images/icons/close.png" title="Убрать пользователя из наблюдателей" height="16px"></td>'; $html .= '</tr>'; } $html .= '</table>'; // Получаем список всез сотрудников компании достпуных в новой системе $sql = "SELECT `users_apps`.`id`, CONCAT(`user_full_name`, ' (', `appointments`.`name`, ')') as `name` FROM `users_apps`\n LEFT JOIN `departments` ON `departments`.`id` = `users_apps`.`dep_id`\n LEFT JOIN `appointments` ON `appointments`.`id` = `users_apps`.`app_id`\n WHERE `users_apps`.`id` != '" . $_SESSION['user_id'] . "' ORDER BY `departments`.`id`;"; $users = $db_rs->all($sql); $html .= $elements->caption('Вы можете добавить нового наблюдателя за заявкой'); $html .= '<br>'; $html .= '<select id="add_desk_viewer" desk_id="' . $desk_id . '" style="margin-top: -9px;height: 39px; text-align: center; background-color: #ffffff; padding: 5px 5px 5px 5px; border-radius: 7px; opacity: 0.9; border: 1px solid #5f5f5f;">'; $html .= '<option value="none" disabled selected>Выберите нового наблюдателя за заявкой</option>'; foreach ($users as $user) { $html .= '<option value="' . $user['id'] . '">' . $user['name'] . '</option>'; } $html .= '</select>'; $html .= '</div>'; } // Всякие другие кнопки чисто для заявок; $boss_array = get_department_boss(get_desk_department($desk_id)); $boss = 0; foreach ($boss_array as $boss) { if ($boss == $_SESSION['user_id']) { $boss = 1; } } // Только руководитель отдела может одобрить заявку на выполнение; if ($boss == 1 && $status == '1') { $html .= '<div class="menu_button" onclick="desk_set_status_new(' . $desk_id . ', 2);">Одобрить заявку для исполнения</div>'; } // $html .= '<div class="menu_button" onclick="desk_set_status_new(' . $desk_id . ', 4);">Отказать в выполнении</div>'; // Только исполнитель может начать выполнение заявки; if (get_desk_todo_user($desk_id) == $_SESSION['user_id'] && $status == '2') { $html .= '<div class="menu_button" onclick="desk_set_status_new(' . $desk_id . ', 3);$(\'#' . $desk_id . '\').closest(\'.refresh_window\').trigger(\'click\');">Начать выполнение</div>'; } // Только исполнитель может завешить выполнение заявки; if (get_desk_todo_user($desk_id) == $_SESSION['user_id'] && ($status == '3' || $status == '6')) { // Важный момент, мы не можем "выполнить" заявку, если у нее есть не выполненные дочерние заявки; $sql = "SELECT COUNT(`id`) FROM `service_desk` WHERE `parent_id` = '" . $desk_id . "' AND `status` != 7;"; $bad_child = $db_rs->one($sql); // Если все вложенные заявки выполнены, мы можем провести и родителя; if ($bad_child == 0) { $html .= '<div class="menu_button" onclick="desk_set_status_new(' . $desk_id . ', 5);">Заявка выполнена</div>'; } } // Только автор заявки может подтверджить выполнение заявки; if (get_desk_author_user($desk_id) == $_SESSION['user_id'] && ($status == '4' || $status == '5')) { $html .= '<div class="menu_button" onclick="desk_set_status_new(' . $desk_id . ', 7);">Выполнение проверено</div>'; $html .= '<div class="menu_button" onclick="desk_set_status_new(' . $desk_id . ', 6);">Заявка не выполнена</div>'; } $html .= '</div>'; } $html .= '<div style="margin-top: 5px; margin-bottom: 5px; margin-right: 10px; font-size: 0.9em;" align="center"><div class="menu_button" onclick="view_desk_dialog(' . $desk_id . ');">Показать диалог</div></div>'; $html .= '<div class="dialog_' . $desk_id . '" style="margin-top: 0.5em;" hidden>'; // Написать сообщение к обращению; //$html .= $elements->button(); $html .= '<div style="display: inline-block;"><input style="width: 46.9em;" type="text" desk_id="' . $desk_id . '" id="desk_message_text_' . $desk_id . '" value="" onkeydown = "if(event.which == 13) add_new_desk_chat_message(this, ' . $desk_id . ')">'; $html .= '</div>'; $html .= get_desk_chat($desk_id); $html .= '</div>'; $html .= '</div>'; } return $html; }
} /* Даты */ if ($systems->find_text($fields, 'date') == true || $systems->find_text($fields, 'saved') == true || $systems->find_text($fields, 'saveds') == true) { $field_name = get_local_date_time($item[$fields]); } /* Инженер и кто принял */ if ($systems->find_text($fields, 'inj') == true || $systems->find_text($fields, 'pri') == true) { $field_name = get_user_full_name('', $item[$fields]); } /* Офисы */ if ($systems->find_text($fields, 'office') == true) { $field_name = $_SESSION['offices'][$item[$fields]]; } /* Боксы */ if ($systems->find_text($fields, 'place_h') == true) { $field_name = get_local_date_time($systems->convert_placeh_to_date($item[$fields])); } /* Результат ремонта */ if ($systems->find_text($fields, 'ok_rem') == true) { switch ($item[$fields]) { case '1': $field_name = 'С ремонтом'; break; case '0': $field_name = 'Без ремонта'; break; default: $field_name = 'В процессе ремонта'; } } /* Гарантийный ремонт */
$itog_sum_pay = array(); $itog_sum_profit = array(); foreach ($tech_groups as $tech_group) { $itog_count[$tech_group['name']] = 0; $itog_sum_det[$tech_group['name']] = 0; $itog_sum_pay[$tech_group['name']] = 0; $itog_sum_profit[$tech_group['name']] = 0; } if ($key % 2 != 0) { $class = 'row_1'; } else { $class = 'row_2'; } $html .= '<tr align="center">'; $html .= '<td class="' . $class . ' ">' . $key . '</td>'; $html .= '<td class="' . $class . ' inf_row">' . get_local_date_time($cell_date) . '</td>'; // Далее нам надо выводить столбец с суммами, а так как у нас их пока нет, мы просто наполним его соответсвующими метками; $html .= '<td class="row_top inf_row" style="border-bottom: 1px solid black;font-weight: bold;" valign="middle">%total_count%<br>%total_sum_pay%<br>%total_sum_det%<br>%total_sum_profit%</td>'; foreach ($tech_groups as $tech_group) { $html .= '<td class="' . $class . ' inf_row" valign="middle">%count_' . $tech_group['name'] . '%<br>%sum_pay_' . $tech_group['name'] . '%<br>%sum_det_' . $tech_group['name'] . '%<br>%sum_profit_' . $tech_group['name'] . '%</td>'; } /* Теперь нам надо подсичтать суммы по технике в конкретных офиса и датах */ foreach ($date_data as $office => $data_item) { $office_date_sum_count = 0; $office_date_sum_det = 0; $office_date_sum_pay = 0; $office_date_sum_profit = 0; $html_date_sum = ''; foreach ($tech_groups as $tech_group) { //write_log(print_r($data_item, true), 'tech_report_table_array'); if (array_key_exists($tech_group['name'], $data_item)) {
<td class="row_top inf_row">ФИО</td> <td class="row_top inf_row">Автор</td> <td class="row_top inf_row">Дата регситрации</td> <td class="row_top inf_row">Дата создания заказа</td> <td class="row_top inf_row">Номер заказа</td> <td class="row_top inf_row">Операции</td>'; $html .= '</tr>'; // Строим таблицу с обращниями; foreach ($current_handlings as $key => $handling) { if ($key % 2 != 0) { $class = 'row_1'; } else { $class = 'row_2'; } $html .= '<tr handling_id="' . $handling['id'] . '" numm="' . $handling['numm'] . '" class="' . $class . ' handling_in_list">'; $html .= '<td align="center">' . $handling['id'] . '</td><td>' . $handling['client_fam'] . ' ' . $handling['client_name'] . ' ' . $handling['client_otch'] . '</td><td>' . get_user_full_name($handling['author_user_id']) . '</td><td align="center">' . get_local_date_time($handling['date_start'], 1) . '</td><td align="center">' . ($handling['date_finish'] != '' ? get_local_date_time($handling['date_finish'], 1) : '-') . '</td> <td align="center">' . ($handling['numm'] != '' ? $handling['numm'] : '-') . '</td>'; // Если у нас нет номера заказа, то даем созможность удалить пользователю это обращение; // Проверяем есть ли у нас оптравление в которых в заказе есть это оращение; $sql = "SELECT `id` FROM `couriers_packages` WHERE `package_handling` = '" . $handling['id'] . "';"; $exist_package = $db_rs->one($sql); if ($handling['numm'] == '' && $exist_package == '') { $html .= '<td align="center" class="' . $class . '"><img class="delete_handling" handling_id="' . $handling['id'] . '" style="cursor:pointer;" src="/templates/images/icons/close.png" title="Удалить обращение" height="16px"></td>'; } else { $html .= '<td align="center">-</td>'; } $html .= '</tr>'; } $html .= '</table>'; echo $html; }