예제 #1
0
파일: plan.php 프로젝트: uvaron/BDparser
function draw_office_plan($office, $fact_array)
{
    global $db_rs;
    // Массив для средних показателей по всей компании;
    $full_sum_out_plan = array();
    $full_sum_out_fact = array();
    $full_sum_out_plan_complete = array();
    $full_count_out_plan = array();
    $full_count_out_fact = array();
    $full_count_out_plan_complete = array();
    $full_round_check_plan = array();
    $full_round_check_fact = array();
    $full_round_check_plan_complete = array();
    $full_count_in_plan = array();
    $full_count_in_fact = array();
    $full_count_in_plan_complete = array();
    // Если офис не указан, выводим все офисы;
    // Получаме все офисы которым стоит план;
    $sql = "SELECT * FROM `money_plan` WHERE `month_plan` = '" . date('m/Y') . "' " . ($office == '' ? '' : "AND `office` = '" . $office . "'") . ";";
    $office_array = $db_rs->all($sql);
    /*if(count($office_array) == 0){
            $sql = "SELECT * FROM `money_plan` WHERE `month_plan` = '".date('m/Y', strtotime("-1 months", strtotime(date('Y-m-d H:i:s'))))."' ".($office == '' ? '' : "AND `office` = '".$office."'").";";
            $office_array = $db_rs->all($sql);
        }
    */
    $html = '';
    $html .= '<table style="font-size: 0.8em; width: 800px;background-color: #d8d8d8;">';
    $html .= '<tr align="center"><td></td><td>План</td><td colspan="2">Факт</td><td colspan="2">Прогноз</td></tr>';
    foreach ($office_array as $key => $office) {
        /*
         * План по офису;
         * */
        // План на выдачу;
        $tech_out_money = $office['sum_out_tech'];
        // План по кличеству выдачи;
        $count_out_tech = $office['count_out_tech'];
        // Средний чек пвыдачи;
        $avr_out_tech_check = $office['avr_out_tech_check'];
        // Прием кол-во;
        $count_in_tech = $office['count_in_tech'];
        /*
        // Быстрые продажи;
        $fast_sale = $office['sales'];
        // Количество продаж;
        $fast_sale_count = $office['sales_count'];
        */
        /*
         *  Забираем данные из факта по этому офису
         * */
        $office_data = array();
        foreach ($fact_array as $fact) {
            if ($fact['code'] == $office['office']) {
                $office_data['take_sum'] = $fact['take_sum'];
                $office_data['take_count'] = $fact['out_tech_with_money_count'];
                $office_data['count_in_tech'] = $fact['in_tech_count'];
                break;
            }
        }
        /*
         * Далее считаем прогноз;
         * */
        // Сколько дней прошло с начала месяца;
        $days_from_start = (strtotime(date('Y-m-d')) - strtotime(date('Y-m') . '-01')) / 86400 + 1;
        // Сколько дней осталось до конца месяца;
        $day_to_finish = (strtotime("+1 month", strtotime(date('Y-m'))) - strtotime(date('Y-m-d'))) / 86400 - 1;
        /*
         * Высчитываем прогноз для каждой статьи;
         * */
        $tech_out_money_forecast = $office_data['take_sum'] + round($office_data['take_sum'] / $days_from_start * $day_to_finish);
        $tech_out_count_forecast = $office_data['take_count'] + round($office_data['take_count'] / $days_from_start * $day_to_finish);
        $tech_in_count_forecast = $office_data['count_in_tech'] + round($office_data['count_in_tech'] / $days_from_start * $day_to_finish);
        $avr_out_tech_check_forecast = $office_data['take_count'] + round($office_data['take_count'] / $days_from_start * $day_to_finish);
        $avr_out_tech_check_forecast = $tech_out_money_forecast / $avr_out_tech_check_forecast;
        /*
        $fast_sale_forecast = $office_data['sale_sum'] + round(($office_data['sale_sum'] / $days_from_start) * $day_to_finish);
        $fast_sale_count_forecast = $office_data['sale_count'] + round(($office_data['sale_count'] / $days_from_start) * $day_to_finish);
        */
        /*
        echo $days_from_start.'<br>';
        echo $day_to_finish.'<br>';
        */
        /**
                Вывод ля информареа
        */
        /*
                $html .= '<b>'.get_office_name($office['office']).'</b><br>';
                $html .= '</div>';
                $html .= '</div>';
                $html .= '</div>';
                $html .= '</div>';
        */
        /**
                Вывод для страницы - табличный вывод;
        */
        $html .= '<tr>';
        $html .= '<td colspan="6" align="center"><b>' . get_office_name($office['office']) . '</b></td>';
        $html .= '</tr>';
        $full_sum_out_plan[] = $tech_out_money;
        $full_sum_out_fact[] = $office_data['take_sum'];
        $full_sum_out_plan_complete[] = round($office_data['take_sum'] * 100 / $tech_out_money, 0);
        $html .= '<tr>';
        $html .= '<td>Сумма выдачи</td>';
        $html .= '<td><div class="money_plan" title="План">' . get_money_format($tech_out_money) . ' р.</div></td>';
        $html .= '<td><div class="money_fact" title="Факт">' . get_money_format($office_data['take_sum']) . ' р.</div></td>';
        $html .= '<td><div class="plan_percent" title="% выполнения">' . round($office_data['take_sum'] * 100 / $tech_out_money, 0) . '%</div></td>';
        $html .= '<td><div class="forecast_plan_percent" title="Прогноз выполнения">' . get_money_format($tech_out_money_forecast) . ' р.</div></td>';
        $html .= '<td><div class="forecast_plan_percent" title="Прогноз %">' . round($tech_out_money_forecast * 100 / $tech_out_money, 0) . '%</div></td>';
        $html .= '</tr>';
        $full_count_out_plan[] = $count_out_tech;
        $full_count_out_fact[] = $office_data['take_count'];
        $full_count_out_plan_complete[] = round($office_data['take_count'] * 100 / $count_out_tech, 0);
        $html .= '<tr>';
        $html .= '<td>Кол-во выдачи</td>';
        $html .= '<td><div class="money_plan" title="План">' . $count_out_tech . '</div></td>';
        $html .= '<td><div class="money_fact" title="Факт">' . $office_data['take_count'] . '</div></td>';
        $html .= '<td><div class="plan_percent" title="% выполнения">' . round($office_data['take_count'] * 100 / $count_out_tech, 0) . '%</div></td>';
        $html .= '<td><div class="forecast_plan_percent" title="Прогноз выполнения">' . $tech_out_count_forecast . '</div></td>';
        $html .= '<td><div class="forecast_plan_percent" title="Прогноз %">' . round($tech_out_count_forecast * 100 / $count_out_tech, 0) . '%</div></td>';
        $html .= '</tr>';
        $full_round_check_plan[] = $avr_out_tech_check;
        $full_round_check_fact[] = round($office_data['take_sum'] / $office_data['take_count']);
        $full_round_check_plan_complete[] = round($office_data['take_sum'] / $office_data['take_count'] * 100 / $avr_out_tech_check, 0);
        $html .= '<tr>';
        $html .= '<td>Средний чек выдачи</td>';
        $html .= '<td><div class="money_plan" title="План">' . get_money_format($avr_out_tech_check) . ' р.</div></td>';
        $html .= '<td><div class="money_fact" title="Факт">' . get_money_format(round($office_data['take_sum'] / $office_data['take_count'])) . ' р.</div></td>';
        $html .= '<td><div class="plan_percent" title="% выполнения">' . round($office_data['take_sum'] / $office_data['take_count'] * 100 / $avr_out_tech_check, 0) . '%</div></td>';
        $html .= '<td><div class="forecast_plan_percent" title="Прогноз выполнения">' . get_money_format($avr_out_tech_check_forecast) . ' р.</div></td>';
        $html .= '<td><div class="forecast_plan_percent" title="Прогноз %">' . round($avr_out_tech_check_forecast * 100 / $avr_out_tech_check, 0) . '%</div></td>';
        $html .= '</tr>';
        $full_count_in_plan[] = $count_in_tech;
        $full_count_in_fact[] = $office_data['count_in_tech'];
        $full_count_in_plan_complete[] = round($office_data['count_in_tech'] * 100 / $count_in_tech, 0);
        $html .= '<tr>';
        $html .= '<td>Кол-во приёма</td>';
        $html .= '<td><div class="money_plan" title="План">' . $count_in_tech . '</div></td>';
        $html .= '<td><div class="money_fact" title="Факт">' . $office_data['count_in_tech'] . '</div></td>';
        $html .= '<td><div class="plan_percent" title="% выполнения">' . round($office_data['count_in_tech'] * 100 / $count_in_tech, 0) . '%</div></td>';
        $html .= '<td><div class="forecast_plan_percent" title="Прогноз выполнения">' . $tech_in_count_forecast . '</div></td>';
        $html .= '<td><div class="forecast_plan_percent" title="Прогноз %">' . round($tech_in_count_forecast * 100 / $count_in_tech, 0) . '%</div></td>';
        $html .= '</tr>';
        /*
        $html .= '<div style="font-size: 0.8em;">Быстрые продажи <div class="money_plan" title="План">'.get_money_format($fast_sale).' р.</div><div class="money_fact" title="Факт">'.get_money_format($office_data['sale_sum']).' р.</div><div class="plan_percent" title="% выполнения">'.round($office_data['sale_sum']*100/$fast_sale, 0).'%</div><div class="forecast_plan_percent" title="Прогноз выполнения">'.get_money_format($fast_sale_forecast).' р.</div><div class="forecast_plan_percent" title="Прогноз %">'.round($fast_sale_forecast*100/$fast_sale, 0).'%</div></div>';
        $html .= '<div style="font-size: 0.8em;">Количество продаж <div class="money_plan" title="План">'.$fast_sale_count.'</div><div class="money_fact" title="Факт">'.$office_data['sale_count'].'</div><div class="plan_percent" title="% выполнения">'.round($office_data['sale_count']*100/$fast_sale_count, 0).'%</div><div class="forecast_plan_percent" title="Прогноз выполнения">'.$fast_sale_count_forecast.'</div><div class="forecast_plan_percent" title="Прогноз %">'.round($fast_sale_count_forecast*100/$fast_sale_count, 0).'%</div></div>';
        */
        if ($key != count($office_array) - 1) {
            ///$html .= '<br>';
        }
    }
    // Сколько дней прошло с начала месяца;
    $days_from_start = (strtotime(date('Y-m-d')) - strtotime(date('Y-m') . '-01')) / 86400 + 1;
    // Сколько дней осталось до конца месяца;
    $day_to_finish = (strtotime("+1 month", strtotime(date('Y-m'))) - strtotime(date('Y-m-d'))) / 86400 - 1;
    $average_tech_out_money_forecast = array_sum($full_sum_out_fact) + round(array_sum($full_sum_out_fact) / $days_from_start * $day_to_finish);
    $average_tech_out_count_forecast = array_sum($full_count_out_fact) + round(array_sum($full_count_out_fact) / $days_from_start * $day_to_finish);
    $average_tech_in_count_forecast = array_sum($full_count_in_fact) + round(array_sum($full_count_in_fact) / $days_from_start * $day_to_finish);
    $average_avr_out_tech_check_forecast = array_sum($full_count_out_fact) / count($full_count_out_fact) + round(array_sum($full_count_out_fact) / count($full_count_out_fact) / $days_from_start * $day_to_finish);
    $average_avr_out_tech_check_forecast = $average_tech_out_money_forecast / count($full_sum_out_fact) / $average_avr_out_tech_check_forecast;
    // Выводим средние показатели по всей компании;
    $html .= '<tr>';
    $html .= '<td colspan="6" align="center"><b>Показатели по всей компании</b></td>';
    $html .= '</tr>';
    $html .= '<tr align="center"><td></td><td>План</td><td colspan="2">Факт</td><td colspan="2">Прогноз</td></tr>';
    $html .= '<tr>';
    $html .= '<td>Сумма выдачи</td>';
    $html .= '<td><div class="money_plan" title="План">' . get_money_format(array_sum($full_sum_out_plan)) . ' р.</div></td>';
    $html .= '<td><div class="money_fact" title="Факт">' . get_money_format(array_sum($full_sum_out_fact)) . ' р.</div></td>';
    $html .= '<td><div class="plan_percent" title="% выполнения">' . round(array_sum($full_sum_out_plan_complete) / count($full_sum_out_plan_complete)) . '%</div></td>';
    $html .= '<td><div class="forecast_plan_percent" title="Прогноз выполнения">' . get_money_format($average_tech_out_money_forecast) . ' р.</div></td>';
    $html .= '<td><div class="forecast_plan_percent" title="Прогноз %">' . round($average_tech_out_money_forecast * 100 / array_sum($full_sum_out_plan)) . '%</div></td>';
    $html .= '</tr>';
    $html .= '<tr>';
    $html .= '<td>Кол-во выдачи</td>';
    $html .= '<td><div class="money_plan" title="План">' . array_sum($full_count_out_plan) . '</div></td>';
    $html .= '<td><div class="money_fact" title="Факт">' . array_sum($full_count_out_fact) . '</div></td>';
    $html .= '<td><div class="plan_percent" title="% выполнения">' . round(array_sum($full_count_out_plan_complete) / count($full_count_out_plan_complete)) . '%</div></td>';
    $html .= '<td><div class="forecast_plan_percent" title="Прогноз выполнения">' . $average_tech_out_count_forecast . '</div></td>';
    $html .= '<td><div class="forecast_plan_percent" title="Прогноз %">' . round($average_tech_out_count_forecast * 100 / array_sum($full_count_out_plan)) . '%</div></td>';
    $html .= '</tr>';
    $html .= '<tr>';
    $html .= '<td>Средний чек выдачи</td>';
    $html .= '<td><div class="money_plan" title="План">' . get_money_format(array_sum($full_round_check_plan) / count($full_round_check_plan)) . ' р.</div></td>';
    $html .= '<td><div class="money_fact" title="Факт">' . get_money_format(array_sum($full_round_check_fact) / count($full_round_check_fact)) . ' р.</div></td>';
    $html .= '<td><div class="plan_percent" title="% выполнения">' . round(array_sum($full_round_check_plan_complete) / count($full_round_check_plan_complete)) . '%</div></td>';
    $html .= '<td><div class="forecast_plan_percent" title="Прогноз выполнения">' . get_money_format($average_avr_out_tech_check_forecast) . ' р.</div></td>';
    $html .= '<td><div class="forecast_plan_percent" title="Прогноз %">' . round($average_avr_out_tech_check_forecast * 100 / (array_sum($full_round_check_plan) / count($full_round_check_plan))) . '%</div></td>';
    $html .= '</tr>';
    $html .= '<tr>';
    $html .= '<td>Кол-во приёма</td>';
    $html .= '<td><div class="money_plan" title="План">' . array_sum($full_count_in_plan) . '</div></td>';
    $html .= '<td><div class="money_fact" title="Факт">' . array_sum($full_count_in_fact) . '</div></td>';
    $html .= '<td><div class="plan_percent" title="% выполнения">' . round(array_sum($full_count_in_plan_complete) / count($full_count_in_plan_complete)) . '%</div></td>';
    $html .= '<td><div class="forecast_plan_percent" title="Прогноз выполнения">' . $average_tech_in_count_forecast . '</div></td>';
    $html .= '<td><div class="forecast_plan_percent" title="Прогноз %">' . round($average_tech_in_count_forecast * 100 / array_sum($full_count_in_plan)) . '%</div></td>';
    $html .= '</tr>';
    $html .= '</table>';
    $html .= '
                <script>
                    $(\'.money_plan\').tipsy();
                    $(\'.money_fact\').tipsy();
                    $(\'.plan_percent\').tipsy();
                    $(\'.forecast_plan_percent\').tipsy();
                </script>
            ';
    return $html;
}
예제 #2
0
                 $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 .= '<td class="row_top inf_row">'.$sums['sales_count'].'</td>';
예제 #3
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;
}
예제 #4
0
function show_rko_card($rko_array)
{
    global $db_rs, $db;
    write_log('Запуск функции вывода списка РКО', 'rko');
    $html = '';
    if (count($rko_array) == 0) {
        $html .= '<div class="page_caption">Данный документ РКО не найден.<br>Возможно он удален или вообще не существует.</div><br><br>';
    }
    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');
        $html .= '<div id="rko_' . $rko['id'] . '" class="notification_type_' . $style . ' desk_item" style="min-height: 478px;font-size: 0.85em; padding: 10px 10px 10px 10px; vertical-align:top;">';
        $html .= '<table style="border: none;" cellspacing="0" cellpadding="0">';
        $html .= '<tr>';
        $html .= '<td>ID РКО</td>';
        $html .= '<td><b>' . $rko['id'] . '</b></td>';
        $html .= '</tr>';
        $html .= '<tr>';
        $html .= '<td>Тип оплаты</td>';
        $pay_type = 'Наличные';
        if ($rko['card_pay'] == '1') {
            $pay_type = 'Оплата картой';
        }
        $html .= '<td><b>' . $pay_type . '</b></td>';
        $html .= '</tr>';
        $html .= '<tr>';
        $html .= '<td>Автор</td>';
        $html .= '<td><b>' . get_user_full_name($rko['author_user_id']) . '</b></td>';
        $html .= '</tr>';
        $html .= '<tr>';
        $html .= '<td>Дата создания</td>';
        $html .= '<td><b>' . date('d.m.Y H:i:s', strtotime($rko['create_date'])) . '</b></td>';
        $html .= '</tr>';
        $html .= '<tr>';
        $html .= '<td>Офис исполнения</td>';
        if (($_SESSION['department_id'] == 2 || $_SESSION['department_id'] == 12) && $rko['status'] != '4') {
            // Здесь мы будем строить выпдашку с пользователями;
            $sql = "select * from `office` where `kassa_list` = '1';";
            write_log($sql, 'rko');
            $office = $db->all($sql);
            $html .= '<td>';
            $html .= '<select id="rko_office" onchange="set_new_office(' . $rko['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 ($office as $office_item) {
                $html .= '<option value="' . $office_item['code'] . '" ' . ($rko['office'] == $office_item['code'] ? 'selected' : '') . '>' . get_office_name($office_item['code']) . '</option>';
            }
            $html .= '</select>';
            $html .= '</td>';
        } else {
            $html .= '<td><b>' . get_office_name($rko['office']) . '</b></td>';
        }
        $html .= '</tr>';
        if ($rko['accept_date'] != '') {
            $html .= '<tr>';
            $html .= '<td>Согласовал</td>';
            $html .= '<td><b>' . get_user_full_name($rko['accepter_user_id']) . '</b></td>';
            $html .= '</tr>';
            $html .= '<tr>';
            $html .= '<td>Дата согласования</td>';
            $html .= '<td><b>' . date('d.m.Y H:i:s', strtotime($rko['accept_date'])) . '</b></td>';
            $html .= '</tr>';
        }
        $html .= '<tr>';
        $html .= '<td>Исполненитель</td>';
        // Если унас нет получателя и мы администрация - мы можем указать получателя;
        write_log('3', 'rko');
        if (($_SESSION['department_id'] == 2 || $_SESSION['department_id'] == 12 || $_SESSION['appointment_id'] == 1 && $_SESSION['office'] == $rko['office']) && $rko['status'] != '4') {
            // Здесь мы будем строить выпдашку с пользователями;
            $sql = "SELECT `users_apps`.`id`, CONCAT(`user_full_name`, ' (', `departments`.`name`, ')') as `name` FROM `users_apps`\n                    LEFT JOIN `departments` ON `departments`.`id` = `users_apps`.`dep_id`\n                    WHERE (`app_id` IN (1, 8) AND `dep_id` != 1 " . ($_SESSION['appointment_id'] == 1 && $_SESSION['department_id'] != 2 ? " AND `dep_id` = '" . $_SESSION['department_id'] . "'" : '') . ") or (`users_apps`.`user_name` in ('0', 'admin', 'root', '3', 'galina')) ORDER BY `departments`.`name`;";
            write_log($sql, 'rko');
            $users = $db_rs->all($sql);
            $receive_html = '<select id="rko_receiver" onchange="set_new_receiver(' . $rko['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;">';
            $receive_html .= '<option value="none" disabled selected>Выберите исполнителя РКО</option>';
            foreach ($users as $user) {
                $receive_html .= '<option value="' . $user['id'] . '" ' . ($rko['receive_user_id'] == $user['id'] ? 'selected' : '') . '>' . $user['name'] . '</option>';
            }
            $receive_html .= '</select>';
        } else {
            $receive_html = get_user_full_name($rko['receive_user_id']);
        }
        $html .= '<td><b>' . $receive_html . '</b></td>';
        $html .= '</tr>';
        /* Если пользоватлеь из блока администрации, то он может видеть кассу и может  */
        if ($_SESSION['department_id'] == 2) {
            $html .= '<tr>';
            $html .= '<td>Касса документа</td>';
            if (($_SESSION['department_id'] == 12 || $_SESSION['appointment_id'] == 18 && $_SESSION['department_id'] == 2) && $rko['status'] != '4') {
                // Здесь мы будем строить выпдашку с кассами;
                $sql = "SELECT `id`, `name` FROM `kassa` WHERE `office` = 'buh' AND `status` = 2;";
                write_log($sql, 'rko');
                $kassa = $db_rs->all($sql);
                $kassa_html = '<select id="selected_kassa" onchange="set_new_kassa(' . $rko['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;">';
                $kassa_html .= '<option value="0" disabled selected>Выберите кассу для РКО</option>';
                foreach ($kassa as $kassa_item) {
                    $kassa_html .= '<option value="' . $kassa_item['id'] . '" ' . ($rko['kassa_id'] == $kassa_item['id'] ? 'selected' : '') . '>' . $kassa_item['name'] . '</option>';
                }
                $kassa_html .= '</select>';
            } else {
                // Получаем имя кассы;
                $sql = "SELECT `name` FROM `kassa` WHERE `id` = '" . $rko['kassa_id'] . "';";
                $kassa_name = $db_rs->one($sql);
                $kassa_html = $kassa_name;
            }
            $html .= '<td><b>' . $kassa_html . '</b></td>';
            $html .= '</tr>';
        }
        if ($rko['receive_date'] != '') {
            $html .= '<tr>';
            $html .= '<td>Дата исполнения</td>';
            $html .= '<td><b>' . date('d.m.Y H:i:s', strtotime($rko['receive_date'])) . '</b></td>';
            $html .= '</tr>';
        }
        $html .= '<tr>';
        $html .= '<td>Дата последних изменений</td>';
        $html .= '<td><b>' . date('d.m.Y H:i:s', strtotime($rko['date_last_update'])) . '</b></td>';
        $html .= '</tr>';
        $html .= '<tr>';
        $html .= '<td>Основание</td>';
        $html .= '<td><b>' . $rko['reason'] . '</b></td>';
        $html .= '</tr>';
        $html .= '<tr>';
        $html .= '<td>Получатель денежных средств</td>';
        $receiver = $rko['selected_name'];
        $html .= '<td><b>' . ($receiver != '' ? '' . $receiver . '' : '') . '</b></td>';
        $html .= '</tr>';
        $html .= '<tr>';
        $html .= '<td>Сумма</td>';
        $html .= '<td><b>' . number_format($rko['sum'], 2, '.', ' ') . ' руб.</b></td>';
        $html .= '</tr>';
        $html .= '</table>';
        // Редактироват и Удалять можно только Новое и не согласованное РКО;
        // Данил Иванович может удалять воооообще все РКО на свете;
        if (($_SESSION['department_id'] == 2 && $_SESSION['appointment_id'] == 20 || $_SESSION['department_id'] == 12 || ($rko['status'] == '1' || $rko['status'] == '3') && ($_SESSION['user_id'] == $rko['author_user_id'] || $_SESSION['user_id'] == $rko['receive_user_id'])) && $rko['status'] != '4') {
            $html .= '<div class="menu_button" onclick="rko_delete(' . $rko['id'] . ')">Удалить</div>';
            //$html .= '<div id="edit_rko_doc" doc_id="'.$rko['id'].'" class="menu_button" >Редактировать</div>';
        }
        // Кнопка согласования есть только у администрации;
        if (($_SESSION['department_id'] == 2 || $_SESSION['department_id'] == 12) && $rko['status'] != '4') {
            if ($rko['status'] == '2') {
            }
            if ($rko['status'] == '3' || $rko['status'] == '1') {
                $can_accept = false;
                // Теперь сверимся с таблице прав на согласование;
                $sql = "SELECT * FROM `rko_accepts` WHERE `user_id` = '" . $_SESSION['user_id'] . "' AND `rko_template_id` IS NULL AND `status` != '0';";
                write_log($sql, 'rko');
                if (count($db_rs->all($sql)) > 0) {
                    $can_accept = true;
                }
                // Снова получим родителя тип основания РКО;
                $sql = "SELECT `template_id` FROM `rko` WHERE `id` = '" . $rko['id'] . "';";
                write_log($sql, 'rko');
                $template_id = $db_rs->one($sql);
                // имещ родителя этого основания;
                try_again2:
                $sql = "SELECT `parent_id` FROM `rko_templates` WHERE `id` = '" . $template_id . "' AND `status` != '0';";
                $temp_id = $db_rs->one($sql);
                if ($temp_id != '') {
                    $template_id = $temp_id;
                    goto try_again2;
                }
                // Проверяем, можно ли нам его согласовывать;
                $sql = "SELECT `id` FROM `rko_accepts` WHERE `user_id` = '" . $_SESSION['user_id'] . "' AND `status` !='0' AND `rko_template_id` = '" . $template_id . "';";
                // echo $sql;
                $accept_id = $db_rs->one($sql);
                if ($accept_id != '') {
                    $can_accept = true;
                }
                if ($can_accept == true && $rko['receive_user_id'] != '') {
                    $html .= '<div class="menu_button" onclick="rko_not_accept(' . $rko['id'] . ')">Отказать</div>';
                    $html .= '<div class="menu_button" onclick="rko_accept(' . $rko['id'] . ')">Согласовать</div>';
                }
            }
        }
        // Провести РКО можно ТОЛЬКО когда оно согласовано
        if ($rko['status'] == '2') {
            // Так же для появления кнопки для проведения документа, нужно знать что у РКО ест ь исполнитель и провести может только исполнитель;
            write_log($rko['receive_user_id'] . " = " . $_SESSION['user_id'], 'WARNING');
            if ($rko['receive_user_id'] != '' && ($rko['receive_user_id'] == $_SESSION['user_id'] || ($_SESSION['user_login'] == 'root' || $_SESSION['user_login'] == '0' || $_SESSION['user_login'] == '3' || $_SESSION['user_login'] == 'admin'))) {
                // так же нам надо проверить если у пользователя который собирается провести документ - открытая касса;
                $operator_data = get_kassa_data($_SESSION['user_id']);
                if ($operator_data['kassa_id'] == 0 && $operator_data['operator_id'] == 0 && $_SESSION['user_login'] != 'admin') {
                    $html .= '<div style="border: 1px solid black; padding: 2px; border-radius: 3px; font-weight: bold; margin: 3px; background-color: red;">Вы не можете провести этот документ, так как не являетесь оператором кассы с открытым ОД!</div>';
                } else {
                    $html .= '<div id="accept_rko_button" class="menu_button apply_rko_button" rko_id="' . $rko['id'] . '">Провести документ РКО</div>';
                }
            }
        }
        // Печатать РКО можно только у проведенного либо у согласованного документа;
        if ($rko['status'] == '4') {
            $html .= '<div class="menu_button" onclick="PrintRKO(' . $rko['id'] . ')">Печать РКО</div>';
        }
        write_log('Конец загрузки', 'rko');
        $html .= '</div>';
    }
    return $html;
}
예제 #5
0
파일: classes.php 프로젝트: uvaron/BDparser
 private function draw_office_plan($office, $fact_array)
 {
     global $db_rs;
     // Если офис не указан, выводим все офисы;
     // Получаме все офисы которым стоит план;
     $sql = "SELECT * FROM `money_plan` WHERE `month_plan` = '" . date('m/Y') . "' " . ($office == '' ? '' : "AND `office` = '" . $office . "'") . ";";
     $office_array = $db_rs->all($sql);
     $html = '';
     foreach ($office_array as $key => $office) {
         /*
          * План по офису;
          * */
         // План на выдачу;
         $tech_out_money = $office['sum_out_tech'];
         // План по кличеству выдачи;
         $count_out_tech = $office['count_out_tech'];
         // Средний чек пвыдачи;
         $avr_out_tech_check = $office['avr_out_tech_check'];
         // Прием кол-во;
         $count_in_tech = $office['count_in_tech'];
         /*
         // Быстрые продажи;
         $fast_sale = $office['sales'];
         // Количество продаж;
         $fast_sale_count = $office['sales_count'];
         */
         /*
          *  Забираем данные из факта по этому офису
          * */
         $office_data = array();
         foreach ($fact_array as $fact) {
             if ($fact['code'] == $office['office']) {
                 $office_data['take_sum'] = $fact['take_sum'];
                 $office_data['take_count'] = $fact['out_tech_with_money_count'];
                 $office_data['count_in_tech'] = $fact['in_tech_count'];
                 break;
             }
         }
         /*
         echo $days_from_start.'<br>';
         echo $day_to_finish.'<br>';
         */
         $html .= get_office_name($office['office']) . ':' . "\n";
         // Сумма выдачи;
         $html .= 'Сумма выдачи - ' . get_money_format($tech_out_money) . ' р. / ' . get_money_format($office_data['take_sum']) . ' р. / ' . round($office_data['take_sum'] * 100 / $tech_out_money, 0) . '%' . "\n";
         // Кол-во выдачи;
         $html .= 'Кол-во выдачи - ' . $count_out_tech . ' / ' . $office_data['take_count'] . ' / ' . round($office_data['take_count'] * 100 / $count_out_tech, 0) . '%' . "\n";
         // Средний чек выдачи;
         $html .= 'Средний чек выдачи - ' . get_money_format($avr_out_tech_check) . ' р. / ' . get_money_format(round($office_data['take_sum'] / $office_data['take_count'])) . ' р. / ' . round($office_data['take_sum'] / $office_data['take_count'] * 100 / $avr_out_tech_check, 0) . '%' . "\n";
         // Кол-во принятой техники;
         $html .= 'Кол-во приёма - ' . $count_in_tech . ' / ' . $office_data['count_in_tech'] . ' / ' . round($office_data['count_in_tech'] * 100 / $count_in_tech, 0) . '%' . "\n";
         if ($key != count($office_array) - 1) {
             $html .= "\n";
         }
     }
     write_log($html, 'bot');
     return $html;
 }
예제 #6
0
     $just_button = '<img title="Подать апелляцию" class="add_justification" parent_id="' . $parent_id . '" doc_numm="' . $docs['doc_number'] . '" src="/templates/images/icons/receipt_share.png" width="24">';
 }
 $html .= '<td class="' . $class . '" align="center"><div class="justification_button_' . $docs['doc_number'] . '" style="display: inline-block; vertical-align: middle; margin-right: 5px; cursor: pointer;">' . $just_button . '</div><div style="display: inline-block; vertical-align: middle;" class="numm_info">' . $docs['doc_number'] . '</div></td>';
 $html .= '<td class="' . $class . ' inf_row" align="center">%' . $docs['doc_number'] . '_fail_count%</td>';
 // Свой пункт для ОТК;
 if ($parent_id == 6) {
     $fail = 0;
     for ($i = 1; $i <= $days_between; $i++) {
         $date_temp = strtotime($date_from);
         $day_date = date('Y-m-d', strtotime("+" . ($i - 1) . " day", $date_temp));
         $sql = "SELECT * FROM `black_journal` WHERE date(`black_date`) = '" . $day_date . "' AND `parent_id` = 6 AND `doc_number` = '" . $docs['doc_number'] . "';";
         write_log($sql, 'black_journal');
         $in_docs = $db_rs->row($sql);
         if (count($in_docs) > 0) {
             $fail++;
             $html .= '<td class="' . $class . ' inf_row" align="center">' . get_office_name($in_docs['black_office']) . '</td>';
             // Поулчаем всех приемщиков;
             $sql = "SELECT `black_user_id` FROM `black_journal` WHERE date(`black_date`) = '" . $day_date . "' AND `parent_id` = 6 AND `doc_number` = '" . $docs['doc_number'] . "';";
             write_log($sql, 'black_journal');
             $operators = $db_rs->all($sql);
             $html .= '<td class="' . $class . ' inf_row" align="center">';
             foreach ($operators as $o_key => $operator) {
                 $html .= get_user_full_name($operator['black_user_id']) . ($o_key != count($operators) - 1 ? '<br>' : '');
             }
             // В конце выводим время вхождения данного заказа в ОТК;
             if ($in_docs['enter_date'] != '') {
                 $html .= '<div style="font-size: 0.8em;">Дата вхождения в статус: <b>' . get_local_date_time($in_docs['enter_date'], 1) . '</b></div>';
             }
             $html .= '</td>';
         } else {
             $html .= '<td class="' . $class . ' inf_row" align="center">-</td>';
예제 #7
0
파일: deliver.php 프로젝트: uvaron/BDparser
 $result .= '<div align="left" style="margin-left: -9px;">' . $elements->small_title('Куда') . '</div>';
 $result .= '<div align="left" style="margin-left: 2px;">';
 $result .= '<div class="page_caption" style="display: inline-block;padding-left: 15px;text-indent: -15px;margin-top: 4px;">
                     <input type="radio" id="to_office" class="to_type" name="group_to" checked value="discount" style="box-shadow: none;height: 23px;padding: 0;margin: -4px;vertical-align: bottom;position: relative;top: -1px;overflow: hidden; width: 2em;" >';
 $result .= '   Офис';
 $result .= '</div>';
 $result .= '<div class="page_caption" style="display: inline-block;padding-left: 15px;text-indent: -15px;margin-top: 4px;">
                     <input type="radio" id="to_address" class="to_type" name="group_to" value="discount" style="box-shadow: none;height: 23px;padding: 0;margin: -4px;vertical-align: bottom;position: relative;top: -1px;overflow: hidden; width: 2em;" >';
 $result .= '   Адрес';
 $result .= '</div>';
 $result .= '</div>';
 $result .= '<div class="to_office" style="display: inline-block;text-align: left;">';
 $result .= '<select id="to_office_select" style="width: 16em;height: 35px;text-align: center;background-color: #ffffff;padding: 5px 5px 5px 5px;border-radius: 7px;opacity: 0.9;margin-top: 5px;border: 1px solid #5f5f5f;">';
 $result .= '<option value="none" disabled selected>Выберите офис получения</option>';
 foreach ($office as $office_item) {
     $result .= '<option value="' . $office_item['code'] . '">' . get_office_name($office_item['code']) . '</option>';
 }
 $result .= '</select>';
 $result .= '</div>';
 $result .= '<div class="to_address"  style="display: none;text-align: left;">' . $elements->input('', 'package_hand_to', '', '', '', '', 'width: 14em;') . '</div>';
 $result .= '</div>';
 $result .= '<div align="center">' . $elements->small_title('Что нужно доставить') . '</div>';
 $result .= '<div class="page_caption" style="display: inline-block;padding-left: 15px;text-indent: -15px;margin-top: 4px;">
                 <input type="radio" id="numm_or_handling_deliver" class="package_type" name="group_package" checked value="discount" style="box-shadow: none;height: 23px;padding: 0;margin: -4px;vertical-align: bottom;position: relative;top: -1px;overflow: hidden; width: 2em;" >';
 $result .= '   Заказ / Обращение';
 $result .= '</div>';
 $result .= '<div class="page_caption" style="display: inline-block;padding-left: 15px;text-indent: -15px;margin-top: 4px;">
                 <input type="radio" id="other_deliver" class="package_type" name="group_package" value="discount" style="box-shadow: none;height: 23px;padding: 0;margin: -4px;vertical-align: bottom;position: relative;top: -1px;overflow: hidden; width: 2em;" >';
 $result .= '   Другое';
 $result .= '</div>';
 // Отрисовываем формы для ввода данных об содержимом пасылки;
예제 #8
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;
 }
예제 #9
0
 public function get_data_filers($filter_id, $sql_request_on_data, $show_fields, $db_for_view = '')
 {
     global $db, $db_rs, $elements;
     // После того как мы получили эти данные, нам надо составить фильтры для них;
     if ($db_for_view != '') {
         $data_array = $db->all($sql_request_on_data);
     } else {
         $data_array = $db_rs->all($sql_request_on_data);
     }
     // Результирующий масив;
     $result = array();
     // Здесь мы будем хранить заголовки полей и их содержимое;
     $filters_title = array();
     // Сначала получим заголовки;
     foreach ($data_array as $key => $item) {
         // Нам надо по работать
         if ($key == 0) {
             foreach ($item as $title => $data) {
                 // Теперь пишем загноловки в массив;
                 $filters_title[] = $title;
             }
         } else {
             break;
         }
     }
     // Теперь нам надо получить уникальные значения под этими заголовками;
     foreach ($filters_title as $title) {
         $sql = "SELECT `" . $title . "` FROM (" . $sql_request_on_data . ") AS `filter_table` GROUP BY `" . $title . "`;";
         // Поулчаем данные о уникалдьных значениях;
         if ($db_for_view != '') {
             $unique_data = $db->all($sql);
         } else {
             $unique_data = $db_rs->all($sql);
         }
         // Поулчаем данные;
         foreach ($unique_data as $data) {
             $result[$title][] = $data[$title];
         }
     }
     write_log(print_r($result, true), 'filters');
     // Теперь у нас есть резхультирующий массив и нам надо посторить ввизуаль ные фильтры;
     $html = '';
     $session_temp_array = array();
     // Пробегаемся по масииву с результатати;
     foreach ($result as $filter_title => $result_item) {
         $select_array = array();
         $what_view = 0;
         foreach ($show_fields as $field_title => $field_name) {
             if ($field_title == $filter_title) {
                 write_log($field_title . ' = ' . $filter_title, 'filters');
                 $what_view = $field_name;
                 goto next;
             }
         }
         if ($what_view == 0) {
             continue;
         }
         next:
         // Так же важно сохранить в сессии информацию о фильтрах для их дальней шего применения;
         // Важно еще учесть тот факт, что у нас уже может существовать фильтр в памяти;
         if (!isset($_SESSION[$filter_id])) {
             // если у нас в сессии никакого фильтра нет - сорздаем его;
             $session_temp_array[$filter_title] = '-1';
         }
         // Перебираем все филтры и создаем селекты с вариантам уникального значения;
         $select_array[] = array('caption' => $what_view, 'value' => '-1', 'selected' => '1', 'disabled' => '');
         foreach ($result_item as $result_data) {
             // Так же, мы можем подменять caption для выпадающего списка;
             $caption = $result_data;
             // Если столбец у нас содержить user_id - получаем его полное имя;
             if ($this->find_text($filter_title, 'user_id') == true) {
                 $caption = get_user_full_name($result_data);
             }
             // Если столбец у нас содержит user_login - получаем полное имя по логину;
             if ($this->find_text($filter_title, 'user_login') == true) {
                 $caption = get_user_full_name('', $result_data);
             }
             // Если содержит дату - меняем на локальную;
             // Без времени;
             if ($this->find_text($filter_title, 'date') == true) {
                 $caption = get_local_date_time($result_data);
             }
             // Со временем;
             if ($this->find_text($filter_title, 'datetime') == true) {
                 $caption = get_local_date_time($result_data, 1);
             }
             // С офисом;
             if ($this->find_text($filter_title, 'office') == true) {
                 $caption = get_office_name($result_data);
             }
             // Курьер;
             if ($this->find_text($filter_title, 'courier_id') == true) {
                 $sql = "SELECT `couriers`.`id`, `couriers`.`name`, `couriers_type`.`name` AS `courier_type_name`, `couriers_type`.`id` as `courier_type_id`, `couriers_type`.`max_weight`\n                        FROM `couriers`, `couriers_type`\n                        WHERE `couriers`.`courier_type` = `couriers_type`.`id` AND `couriers`.`id` = '" . $result_data . "' AND `status` != 0;";
                 if ($db_for_view != '') {
                     $courier_data = $db->row($sql);
                 } else {
                     $courier_data = $db_rs->row($sql);
                 }
                 $caption = $courier_data['name'];
             }
             // Иофсы в доставке;
             if ($this->find_text($filter_title, 'from_point') == true) {
                 $caption = get_office_name($result_data);
                 if ($caption == '') {
                     $caption = $result_data;
                 }
             }
             if ($this->find_text($filter_title, 'to_point') == true) {
                 $caption = get_office_name($result_data);
                 if ($caption == '') {
                     $caption = $result_data;
                 }
             }
             // Статус заявки на доставку;
             // Если у нас статус service desk;
             if ($this->find_text($filter_title, 'package_status') == true) {
                 $status = array(0 => 'Удаленная заявка', 1 => 'Новая заявка', 2 => 'Заявка принята', 3 => 'Заявка выполнена', 4 => 'Отправление подготавливается', 5 => 'Отправление готово к отправке', 6 => 'Отправление передано курьеру', 7 => 'Отправление доставлено', 8 => 'Отправление возвращено', 9 => 'Курьер прибыл на точку', 10 => 'Курьер убыл из точки');
                 $caption = $status[$result_data];
             }
             // Если у нас статус service desk;
             if ($this->find_text($filter_title, 'desk_status') == true) {
                 $status = $result_data;
                 if ($status == '1') {
                     $caption = 'Новое обращение';
                 }
                 if ($status == '2') {
                     $caption = 'Обращение принято';
                 }
                 if ($status == '3') {
                     $caption = 'Обращение выполняется';
                 }
                 if ($status == '4') {
                     $caption = 'Отказ в выполнении';
                 }
                 if ($status == '5') {
                     $caption = 'Ожидание подтверждения выполнения';
                 }
                 if ($status == '6') {
                     $caption = 'Обращение не выполнено';
                 }
                 if ($status == '7') {
                     $caption = 'Обращение выполнено';
                 }
             }
             // Статусы для апелляций;
             if ($this->find_text($filter_title, 'just_status') == true) {
                 $status = $result_data;
                 if ($status == '1') {
                     $caption = 'Новая апелляция';
                 }
                 if ($status == '2') {
                     $caption = 'Утвержденная апелляция';
                 }
                 if ($status == '3') {
                     $caption = 'Не утвержденная апелляция';
                 }
             }
             // Наименование родительского раздела;
             if ($this->find_text($filter_title, 'parent_id') == true) {
                 $caption = $this->get_menu_parent_name($result_data);
             }
             // Статусы заявки на запчасти orders_parts;
             if ($this->find_text($filter_title, 'orders_parts_status') == true) {
                 $status = $result_data;
                 if ($status == '0') {
                     $caption = 'Новый заказ';
                 }
                 if ($status == '1') {
                     $caption = 'Детали заказаны';
                 }
                 if ($status == '2') {
                     $caption = 'Детали получены';
                 }
                 if ($status == '3') {
                     $caption = 'Архивный заказ';
                 }
             }
             // Если у нас есть формируемый фильтр в сессии, мы должны его выбрать;
             $selected = '';
             //write_log($filter_title.' = '.$_SESSION[$filter_id][$filter_title], 'tesxt_filter');
             if (isset($_SESSION[$filter_id]) && $_SESSION[$filter_id][$filter_title] != '-1' && $result_data == $_SESSION[$filter_id][$filter_title]) {
                 $selected = 1;
             }
             //write_log(print_r($_SESSION[$filter_id], true), 'test_filter');
             // Делаем запись в массив;
             $select_array[] = array('caption' => $caption, 'value' => $result_data, 'selected' => $selected, 'disabled' => '');
         }
         $html .= $elements->combobox('', $select_array, 'table_filter_for_' . $filter_title, 'table_filter', 'margin: 5px;', 'filter_id = ' . $filter_id . ' filter_name=' . $filter_title);
     }
     $html .= '<br><br>';
     // Проверяем, был ли у нас в сесси фильтр;
     if (!isset($_SESSION[$filter_id])) {
         // если у нас в сессии никакого фильтра нет - сорздаем его;
         $_SESSION[$filter_id] = $session_temp_array;
     }
     write_log(print_r($_SESSION[$filter_id], true), 'filter_session');
     return $html;
 }
예제 #10
0
파일: money.php 프로젝트: uvaron/BDparser
     if ($temp_array['code'] != $_SESSION['office']) {
         continue;
     }
 }
 // Обрабоатываем переменные перед выводдом;
 // Визуальный класс чет нечет;
 $class = '';
 if ($key % 2 != 0) {
     $class = 'row_1';
 } else {
     $class = 'row_2';
 }
 // Отображаем их в таблице;
 $html .= '<tr>';
 // Офис;
 $field_1 = get_office_name($temp_array['code']);
 $html .= '<td class="' . $class . '">' . $field_1 . '</td>';
 // Сумма Выдано техники;
 $field_2 = $temp_array['take_sum'];
 $field_2_sum += $field_2;
 $html .= '<td class="' . $class . ' inf_row" align="right">' . get_money_format($field_2) . ' руб.</td>';
 // Сумма Быстрых продаж;
 $field_3 = $temp_array['sale_sum'];
 $field_3_sum += $field_3;
 //$html .= '<td class="' . $class . ' inf_row" align="right">' . get_money_format($field_3) . ' руб.</td>';
 // Кол-во Принятой техники;
 $field_4 = $temp_array['in_tech_count'] == '' ? 0 : $temp_array['in_tech_count'];
 $field_4_sum += $field_4;
 $html .= '<td class="' . $class . ' inf_row" align="right">' . $field_4 . ' шт.</td>';
 // Кол-во Принятой техники по гарантии;
 $field_5 = $temp_array['in_tech_predy_count'] == '' ? 0 : $temp_array['in_tech_predy_count'];
예제 #11
0
 }
 $html .= '</tr>';
 $html .= '</table>';
 /** Кнопки для переключения статусов заявки */
 // Удаленная заявка вообще не имеет кнопок для манипуляций;
 if ($package_data['status'] != 0) {
     $status = $package_data['status'];
     /* Выоди доступные кнопки в зависимости от роли пользователя и статуса отправления */
     /** Давайте определим тип отправления */
     $package_type = 0;
     // Для этого нам надо знать что куда и откуда мы везем;
     $from = $package_data['from_point'];
     $to = $package_data['to_point'];
     $package = $package_data['package'];
     // Если отправитель и поулчатель у нас офис - доставка считается внутренней;
     if (get_office_name($from) != '' && get_office_name($to) != '') {
         $package_type = 1;
     }
     // Определяем что у нас в посылку, заказ/обращение или же хуйня;
     $package_array = explode(' ', $package);
     if ($package_array[0] == 'Заказа' || $package_array[0] == 'Обращение') {
         //$package =
     } else {
     }
     /** ПРИЕМ ЗАЯВКИ*/
     // Только склад и Айрат могут принимать заявку;
     if ($_SESSION['department_id'] == 4 || $_SESSION['department_id'] == 2 && $_SESSION['app_id'] == 4 || $_SESSION['department_id'] == 12) {
         // Принять можно только новое обращение;
         if ($status == 1) {
             $html .= '<div class="menu_button" onclick="package_set_status_new(' . $package_data['id'] . ', 2);">Принять заявку</div>';
         }
예제 #12
0
  * Расчет по офисам;
  ********************************/
 $sum_array = array();
 $html .= '<table>';
 // Одеваем шапку;
 $html .= $html_head;
 foreach ($office_array as $key => $office) {
     // Визуальный класс чет нечет;
     $class = '';
     if ($key % 2 != 0) {
         $class = 'row_1';
     } else {
         $class = 'row_2';
     }
     $html .= '<tr class="' . $class . '">';
     $html .= '<td>' . get_office_name($office) . '</td>';
     /*
      * Далее перебираем существующие в отчете месяца;
      * */
     foreach ($data_months as $month) {
         $all_numm_count = 0;
         $out_numm_count = 0;
         $out_with_money = 0;
         $out_money = 0;
         // А тут мы пробегаем по массиву данных и высчитываем их для пользователя;
         foreach ($data_array as $data_item) {
             if ($data_item['office'] == $office) {
                 // Принято всего;
                 if (date('m', strtotime($data_item['date'])) == $month && $data_item['state'] == 'in') {
                     $all_numm_count++;
                 }
예제 #13
0
         // Если у нас первая смена офиса;
         if (trim($level_2[0]) == 'Смена офиса') {
             // Рвем по символу ->
             $level3 = explode('->', $level_2[1]);
             // Получаем офис где был принят
             $input_office = trim($level3[0]);
             break;
         }
     }
 }
 if ($input_office == '') {
     $input_office = $numm_data['office'];
 }
 $html .= '<div class="info_bordered_field" style="display: inline-block; min-width: 100px;"><div class="field_title" style="">Офис приёма</div>' . get_office_name($input_office) . '</div>';
 $html .= '<div class="info_bordered_field" style="display: inline-block; min-width: 100px;"><div class="field_title" style="">Офис нахождения</div>' . get_office_name($numm_data['office']) . '</div>';
 $html .= '<div class="info_bordered_field" style="display: inline-block; min-width: 100px;"><div class="field_title" style="">Офис выдачи</div>' . ($numm_data['status'] == '12' || $numm_data['status'] == '16' ? get_office_name($numm_data['office2']) : '-') . '</div>';
 $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['inj']) != '' ? get_user_full_name('', $numm_data['inj']) : '-') . '</div>';
 //$html .= '</td>';
 //$html .= '</tr>';
 switch ($numm_data['ok_rem']) {
     case '1':
         $work_result = 'Ремонт успешен';
         break;
     case '0':
         $work_result = 'Без ремонта';
         break;
     case '':
         $work_result = '<div style="color: red; font-weight: bold;">Маркер отсутствует</div>';
         break;
 }
 $html .= '<div class="info_bordered_field" style="display: inline-block; min-width: 100px;"><div class="field_title" style="">Результат ремонта</div>' . $work_result . '</div>';
예제 #14
0
<table width="1000" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="33%"><div align="left">' . $bar_code_img . '</div></td>
    <td width="33%"><div align="center">' . $bar_code_img . '</div></td>
    <td width="33%"><div align="right">' . $bar_code_img . '</div></td>
  </tr>
  <tr>
    <td><div align="center"></div></td>
    <td rowspan="2"><div align="center" style="padding-top: 15px; width: 43em;">

        <div class="style6" style="display: inline-block;">№ ' . ($print_type == 'handling' ? 'Обращения / квитанции:' : 'Заказа / квитанции:') . '<br>
          <span class="style7">' . $numm_data['numm'] . '</span>
        </div>
        ' . '' . '
        <div class="style6" style="display: inline-block;">Офис приема:<br>
          <span class="style7">' . get_office_name($_SESSION['office']) . '</span>
        </div>
    ' . ($numm_data['predy'] != '' ? '<div class="style6">Гарантия: <b>' . $numm_data['predy'] . '</b></div>' : '') . '
    </td>
    <td valign="top" style="padding-top: 11px;"><div align="right"><span class="style6"><span class="style1" style="margin-right: 5px;">' . date('d.m.Y') . '</span></span></div></td>
  </tr>
  <tr>
    <td height="32"><div align="center" class="style1"></div></td>
    <td></td>
  </tr>
</table>
<br>
<table width="1000" border="0" cellspacing="0" cellpadding="0" style="border: 1px solid black;">
  <tr>
    <td width="117"><div align="right" style="padding: 5px;border-bottom: 1px solid black;">Заказчик:</div></td>
    <td width="382"><div align="center" style="padding: 5px;border-bottom: 1px solid black;border-right: 1px solid black;"><strong>' . $numm_data['fam_z'] . ' ' . $numm_data['name_z'] . ' ' . $numm_data['otch_z'] . '</strong></div></td>