$kassa_id = $rko_data['kassa_id']; $author_user = $_SESSION['user_login'] . '_' . $kassa_id; $user_office = 'office1'; $sql = "SELECT `last_operator_id` FROM `kassa` WHERE `id` = '" . $kassa_id . "';"; $operator_id = $db_rs->one($sql); } else { if ($_SESSION['user_login'] == 'admin') { $kassa_id = $rko_data['kassa_id']; if ($kassa_id == '') { $kassa_data = get_kassa_data($_SESSION['user_id']); $kassa_id = $kassa_data['kassa_id']; $operator_id = $kassa_data['operator_id']; } } // Поулчаем ID кассы и оператора; $kassa_data = get_kassa_data($_SESSION['user_id']); $kassa_id = $kassa_data['kassa_id']; $operator_id = $kassa_data['operator_id']; } $sql = "INSERT INTO `kassa` (`type_m`, `summ`, `doc`, `login`, `primech`, `date_time_p`, `uni_s`, `office`, `wom`, `clientp`)\n VALUES ('1', -" . $rko_sum . ", '" . ($rko_kontr_code != '' ? $rko_kontr_code : '0') . "', '" . $author_user . "', '" . $rko_reason . "', '" . $date . "', '" . $date_hueit . "', '" . $user_office . "', '" . $rko_pay_type . "', '" . ($clientp != '' ? $clientp : '0') . "');"; write_log($sql, 'apply_rko'); //$double = $db->check('kassa', array('type_m', 'summ', 'doc', 'login', 'primech', 'date_time_p', 'uni_s', 'office', 'wom', 'clientp'), array('1', -$rko_sum, ($rko_kontr_code != '' ? $rko_kontr_code : '0'), $author_user, $rko_reason, $date, $date_hueit, $user_office, $rko_pay_type, ($clientp != '' ? $clientp : '0'))); //if($double == true){ $db->query($sql); //} $print_num = mysqli_insert_id($db->link_id); /* Опять же, если у нас бухгалтер, ты мо сразу добавляем транщзакцию в нужную кассу */ //if($_SESSION['appointment_id'] == 18){ // Зная кассу, давайте посмотрим какой ID у текущего оператора; // Определяем doc_type_id; switch ($template_id) {
function show_pko_card($pko_array) { global $db_rs; write_log('Запуск функции вывода списка ПКО', 'pko'); $html = ''; if (count($pko_array) == 0) { $html .= '<div class="page_caption">Список ПКО пуст</div><br><br>'; } foreach ($pko_array as $pko) { // Определение роидтельского дкоумента - если таковой есть; $parent_doc = ''; $doc_parent_temp = explode('=', $pko['selected_numm']); if ($doc_parent_temp[0] == 'parent_doc') { $parent_doc = $doc_parent_temp[1]; } // Цвет блока зависит от состояние документа ПКО; $style = ''; write_log('1', 'pko'); // Новый документ; if ($pko['status'] == '1') { $style = 1; } // Согласованный документ; if ($pko['status'] == '2') { $style = 4; } // Несогласованный документ; if ($pko['status'] == '3') { $style = 2; } // Проведенный документ; if ($pko['status'] == '4') { $style = 3; } write_log('2', 'pko'); $html .= '<div id="pko_' . $pko['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>' . $pko['id'] . '</b></td>'; $html .= '</tr>'; if ($parent_doc != '') { $html .= '<tr>'; $html .= '<td>Родительский документ РКО</td>'; $html .= '<td onclick="show_rko_window(' . $parent_doc . ', \'new\')" style="cursor: pointer;"><b>' . $parent_doc . '</b></td>'; $html .= '</tr>'; } $html .= '<tr>'; $html .= '<td>Тип оплаты</td>'; $pay_type = 'Наличные'; if ($pko['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($pko['author_user_id']) . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td>Дата создания</td>'; $html .= '<td><b>' . date('d.m.Y H:i:s', strtotime($pko['create_date'])) . '</b></td>'; $html .= '</tr>'; if ($pko['accept_date'] != '') { $html .= '<tr>'; $html .= '<td>Согласовал</td>'; $html .= '<td><b>' . get_user_full_name($pko['accepter_user_id']) . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td>Дата согласования</td>'; $html .= '<td><b>' . date('d.m.Y H:i:s', strtotime($pko['accept_date'])) . '</b></td>'; $html .= '</tr>'; } /* $html .= '<tr>'; $html .= '<td>Исполненитель</td>'; // Если унас нет получателя и мы администрация - мы можем указать получателя; write_log('3', 'pko'); if ($_SESSION['department_id'] == 2 || $_SESSION['department_id'] == 12){ // Здесь мы будем строить выпдашку с пользователями; $sql = "SELECT `users_apps`.`id`, CONCAT(`user_full_name`, ' (', `departments`.`name`, ')') as `name` FROM `users_apps` LEFT JOIN `departments` ON `departments`.`id` = `users_apps`.`dep_id` WHERE `app_id` IN (1, 8) AND `dep_id` != 1 ORDER BY `departments`.`name`;"; write_log($sql, 'pko'); $users = $db_rs->all($sql); $receive_html = '<select id="pko_receiver" onchange="set_new_receiver('.$pko['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'].'" '.($pko['receive_user_id'] == $user['id'] ? 'selected': '').'>'.$user['name'].'</option>'; } $receive_html .= '</select>'; } else{ $receive_html = get_user_full_name($pko['receive_user_id']); } $html .= '<td><b>'.$receive_html.'</b></td>'; $html .= '</tr>'; */ /* Если пользоватлеь из блока администрации, то он может видеть кассу и может */ if ($_SESSION['department_id'] == 2) { $html .= '<tr>'; $html .= '<td>Касса документа</td>'; if ($_SESSION['appointment_id'] == 18 && $_SESSION['department_id'] == 2 && $pko['status'] != '4') { // Здесь мы будем строить выпдашку с кассами; $sql = "SELECT `id`, `name` FROM `kassa` WHERE `office` = 'buh' AND `status` = 2;"; write_log($sql, 'pko'); $kassa = $db_rs->all($sql); $kassa_html = '<select id="selected_kassa" onchange="set_new_pko_kassa(' . $pko['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'] . '" ' . ($pko['kassa_id'] == $kassa_item['id'] ? 'selected' : '') . '>' . $kassa_item['name'] . '</option>'; } $kassa_html .= '</select>'; } else { // Получаем имя кассы; $sql = "SELECT `name` FROM `kassa` WHERE `id` = '" . $pko['kassa_id'] . "';"; $kassa_name = $db_rs->one($sql); $kassa_html = $kassa_name; } $html .= '<td><b>' . $kassa_html . '</b></td>'; $html .= '</tr>'; } if ($pko['receive_date'] != '') { $html .= '<tr>'; $html .= '<td>Дата исполнения</td>'; $html .= '<td><b>' . date('d.m.Y H:i:s', strtotime($pko['receive_date'])) . '</b></td>'; $html .= '</tr>'; } $html .= '<tr>'; $html .= '<td>Дата последних изменений</td>'; $html .= '<td><b>' . date('d.m.Y H:i:s', strtotime($pko['date_last_update'])) . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td>Основание</td>'; $html .= '<td><b>' . $pko['reason'] . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td>Платильщик денежных средств</td>'; $receiver = $pko['selected_name']; $html .= '<td><b>' . ($receiver != '' ? '' . $receiver . '' : '') . '</b></td>'; $html .= '</tr>'; $html .= '<tr>'; $html .= '<td>Сумма</td>'; $html .= '<td><b>' . number_format($pko['sum'], 2, '.', ' ') . ' руб.</b></td>'; $html .= '</tr>'; $html .= '</table>'; // Редактироват и Удалять можно только Новое и не согласованное ПКО; if ($pko['status'] == '2') { $html .= '<div class="menu_button" onclick="pko_delete(' . $pko['id'] . ')">Удалить</div>'; //$html .= '<div class="menu_button" onclick="create_new_pko('.$pko['id'].')">Редактировать</div>'; } // Кнопка согласования есть только у администрации; if (($_SESSION['department_id'] == 2 || $_SESSION['department_id'] == 12) && $pko['status'] != '4') { if ($pko['status'] == '2') { } if ($pko['status'] == '3' || $pko['status'] == '1') { $can_accept = false; // Теперь сверимся с таблице прав на согласование; $sql = "SELECT * FROM `pko_accepts` WHERE `user_id` = '" . $_SESSION['user_id'] . "' AND `pko_template_id` IS NULL AND `status` != '0';"; write_log($sql, 'pko'); if (count($db_rs->all($sql)) > 0) { $can_accept = true; } // Снова получим родителя тип основания ПКО; $sql = "SELECT `template_id` FROM `pko` WHERE `id` = '" . $pko['id'] . "';"; write_log($sql, 'pko'); $template_id = $db_rs->one($sql); // имещ родителя этого основания; try_again2: $sql = "SELECT `parent_id` FROM `pko_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 `pko_accepts` WHERE `user_id` = '" . $_SESSION['user_id'] . "' AND `status` !='0' AND `pko_template_id` = '" . $template_id . "';"; // echo $sql; $accept_id = $db_rs->one($sql); if ($accept_id != '') { $can_accept = true; } if ($can_accept == true) { $html .= '<div class="menu_button" onclick="pko_not_accept(' . $pko['id'] . ')">Отказать</div>'; $html .= '<div class="menu_button" onclick="pko_accept(' . $pko['id'] . ')">Согласовать</div>'; } } } // Провести ПКО можно ТОЛЬКО когда оно согласовано if ($pko['status'] == '2') { // Так же для появления кнопки для проведения документа, нужно знать что у ПКО ест ь исполнитель и провести может только исполнитель; if (($pko['receive_user_id'] != '' || $parent_doc != '') && ($parent_doc != '' || $pko['receive_user_id'] == $_SESSION['user_id'] || $_SESSION['user_login'] == 'root')) { // так же нам надо проверить если у пользователя который собирается провести документ - открытая касса; $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 class="menu_button apply_pko_button" pko_id="' . $pko['id'] . '">Провести документ ПКО</div>'; } } } // Печатать ПКО можно только у проведенного либо у согласованного документа; if ($pko['status'] == '4') { $html .= '<div class="menu_button" onclick="print_pko(' . $pko['id'] . ')">Печать ПКО</div>'; } write_log('Конец загрузки', 'pko'); $html .= '</div>'; } return $html; }
public function black_journal($parent_name, $doc_number, $enter_date = '') { global $db_rs; // Так же, не стоит забывать что документы должны попадать в журнал только в определенное время суток; if (date('H') >= 9 && date('H') <= 21) { write_log('in_bj', 'black_list'); // Получаем ID родителя; $parent_id = $this->get_parent_id($parent_name); // Так же, в первой редакции нашего класса, запись документ в черный список не будет дублироваться; $sql = "SELECT `id` FROM `black_journal` WHERE `parent_id` = '" . $parent_id . "' AND `doc_number` = '" . $doc_number . "' AND date(`black_date`) = '" . date('Y-m-d') . "';"; write_log(date('Y-m-d H:i:s'), 'black_journal_check_exist'); $exist_doc = $db_rs->one($sql); // Если за сегодня такой документ еще не оказывался в черном списке, то нам надо его добавить в список; if ($exist_doc == '') { // Для инженеров; if ($parent_id == 4) { $inj_user_id = $this->get_inj_user_id_in_numm($doc_number); if ($inj_user_id != '') { $sql = "INSERT INTO `black_journal` (`parent_id`, `doc_number`, `black_date`, `black_user_id`) VALUES('" . $parent_id . "', '" . $doc_number . "', NOW(), '" . $inj_user_id . "');"; write_log($sql, 'black_list'); $db_rs->query($sql); } } // Для кол центра; if ($parent_id == 5) { $sql = "INSERT INTO `black_journal` (`parent_id`, `doc_number`, `black_date`) VALUES('" . $parent_id . "', '" . $doc_number . "', NOW());"; write_log($sql, 'black_list'); $db_rs->query($sql); } } // Для ОТК; if ($parent_id == 6) { // Не добавляем запись если она от руководителей или айти, что бы не записать левый офис; if ($_SESSION['department_id'] != 2) { $kassa_data = get_kassa_data($_SESSION['user_id']); $sql = "SELECT `operator_user_id` FROM `kassa_operators` WHERE `id` = '" . $kassa_data['operator_id'] . "';"; write_log($sql, 'black_list'); $otk_user_id = $db_rs->one($sql); // Проверяем есть ли у нас уже записаь от этого пользователя; $sql = "SELECT `id` FROM `black_journal` WHERE `parent_id` = '" . $parent_id . "' AND `black_user_id` = '" . $otk_user_id . "' AND `doc_number` = '" . $doc_number . "' AND date(`black_date`) = '" . date('Y-m-d') . "';"; write_log($sql, 'black_list'); $exist_id = $db_rs->one($sql); if ($exist_id == '' && $otk_user_id != '') { $sql = "INSERT INTO `black_journal` (`parent_id`, `doc_number`, `black_date`, `black_user_id`, `black_office`, `enter_date`) VALUES('" . $parent_id . "', '" . $doc_number . "', NOW(), '" . $otk_user_id . "', '" . $_SESSION['office'] . "', '" . date('Y-m-d H:i:s', strtotime($enter_date)) . "');"; write_log($sql, 'black_list'); $db_rs->query($sql); } } } } else { write_log('not_in_bj', 'black_list'); } return 'OK'; }