Example #1
0
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;
}
Example #2
0
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;
}
Example #3
0
         $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>';
 // Отвечаем скрипту;
Example #4
0
 // Формируем таблицу для вывода;
 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);
                    }
                }
Example #5
0
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;
}
Example #6
0
         $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');
Example #7
0
 /* Создаем итоговый массив где мы будем хранить первый столбец */
 $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']];
Example #8
0
 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>';
Example #9
0
             $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'){
Example #10
0
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;
}
Example #11
0
 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;
 }
Example #12
0
 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;
 }
Example #13
0
 $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;
Example #14
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]);
Example #15
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];
Example #16
0
 $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>';
     // Крыжик - нал/карта;
Example #17
0
 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;
 }
Example #18
0
$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>';
Example #19
0
            $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>';
Example #20
0
        // Зеленый цвет;
        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;
Example #21
0
             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>';
Example #22
0
 $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');
Example #23
0
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;
}
Example #24
0
 }
 /* Даты */
 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 = 'В процессе ремонта';
     }
 }
 /* Гарантийный ремонт */
Example #25
0
 $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)) {
Example #26
0
             <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;
 }