Ejemplo n.º 1
0
 function add_order($client_id, &$err)
 {
     $err = "";
     try {
         $client = Client::find($client_id);
     } catch (Exception $e) {
         $err = "Ошибка - не указан клиент";
         return false;
     }
     try {
         $filial = Filial::find($client['filial_id']);
     } catch (Exception $e) {
         $filial = Filials::getDefault();
         Client::update($client['id'], array('filial_id' => $filial['id']));
         db::update(TABLE_ORDERS, array('filial_id' => $filial['id']), 'klient_id = ' . $client['id']);
     }
     $pgs = get_min_max_from_str($_SESSION["zf_work_pages"]);
     // disc id
     try {
         $discipline = Discipline::find($_SESSION["zf_work_predm"]);
         $disc_id = $discipline['id'];
     } catch (Exception $e) {
         $discipline = Discipline::findOneBy(array('name' => $_SESSION["zf_work_predm"]));
         if ($discipline) {
             $disc_id = $discipline['id'];
         } else {
             $disc_id = Discipline::create(array('name' => $_SESSION["zf_work_predm"]));
         }
     }
     $info = $_SESSION["zf_work_dopinfo"];
     $worktype_custom = '';
     $worktype = null;
     try {
         $worktype = Worktypes::find($_SESSION["zf_work_type"]);
     } catch (Exception $e) {
         $worktype = Worktypes::findOneBy(array('name' => $_SESSION["zf_work_type"]));
         if (!$worktype) {
             $worktype_custom = $_SESSION["zf_work_type"];
             $worktype['id'] = null;
         }
     }
     $id = Order::create(array("filial_id" => $filial['id'], "klient_id" => $client['id'], "type_id" => $worktype['id'], "type_user" => $worktype_custom, "disc_id" => $disc_id, "time_kln" => strtotime($_SESSION["zf_work_date"]), "subject" => $_SESSION["zf_work_tema"], "about_kln" => $info, "pages_min" => $pgs["min"], "pages_max" => $pgs["max"]));
     if ($id > 0) {
         ////////////////////////
         // Текст клиенту
         $txt = "<p>Здравствуйте, " . $client["fio"] . "!</p>";
         // Если первый раз
         if (@$_SESSION["new_klient_added"]) {
             $txt .= "<p>Мы очень рады, что Вы решили воспользоваться нашими услугами и высоко ценим Ваше доверие!</p>" . "<p>Теперь Вы можете войти в личный кабинет:<br>" . "&nbsp;Логин: " . $client["email"] . "<br>" . "&nbsp;Пароль: " . $client["password"] . "<br></p>";
         } else {
             $txt .= "<p>Спасибо, что Вы с нами! Для постоянных клиентов у нас всегда есть интересные и выгодные предложения!</p>";
         }
         $zak = "<p>Номер заказа: " . $id . "<br>" . "Дата: " . date("d.m.Y") . "<br>";
         $zak .= "Вид работы: ";
         if (!empty($worktype_custom)) {
             $zak .= $worktype_custom . "<br>";
         } else {
             $zak .= $worktype["name"] . "<br>";
         }
         $zak .= "Дисциплина: ";
         if ($discipline) {
             $zak .= $discipline['name'] . "<br>";
         } else {
             $zak .= $_SESSION["zf_work_predm"] . "<br>";
         }
         $zak .= "Тема работы: " . $_SESSION["zf_work_tema"] . "<br>" . "Требования: " . $_SESSION["zf_work_dopinfo"] . "<br>" . "Дата сдачи: " . $_SESSION["zf_work_date"] . "<br>" . "Число страниц: " . $_SESSION["zf_work_pages"] . "<br>" . ($txt .= "<p>Ваш заказ принят, и в ближайшее время наш менеджер свяжется с Вами.</p>" . "<p>Содержание заказа: <br>" . $zak . "</p>");
         $txt .= "<p><i>С уважением, компания по написанию студенческих работ.</i></p>";
         $email = new Email();
         $email->setData(array('email' => $client['email'], 'name' => $client['fio']), "Ваш заказ принят!", $txt, array(), true, array(), array('email' => $filial['email'], 'name' => $filial['name']));
         //$m->SMTPDebug = true;
         if ($email->send()) {
             $user_send_res = "Письмо клиенту отправлено";
         } else {
             $user_send_res = "Ошибки при отправке письма клиенту: " . $email->ErrorInfo;
         }
         ////////////////////////
         // Текст в приемную заказов
         $zak .= "<p>Заказчик:<br>";
         if (@$_SESSION["new_klient_added"]) {
             $zak .= "Новая регистрация<br>";
         }
         $zak .= "id: " . $client["id"] . "<br>" . "Имя: " . $client["fio"] . "<br>" . "Почта: " . $client["email"] . "<br>" . "Телефон: " . $client["telnum"] . "<br>" . "Город: " . $client["city"] . "<br>" . "Другие контакты: " . $client["contacts"] . "<br>";
         $zak .= $user_send_res;
         // Прикалываем файлы
         $files = check_user_files();
         $message_id = \Components\Entity\Message::create(array('parent_id' => 0, 'order_id' => $id, 'klient_id' => $client["id"], 'visit_id' => 0, 'tender_id' => 0, 'created' => time(), 'creator_id' => 'k' . $client["id"], 'addr' => 'u' . $filial['id'], 'subject' => "Поступил новый заказ #" . $id, 'text' => $zak, 'prior' => 1, 'uvedom' => 1, 'readed' => 0, 'needansv' => 0, 'basket' => 0));
         if (!empty($message_id)) {
             \Components\Classes\Author::enqueue_message_to_email($message_id, $filial['id'], EmailNotification::TO_MANAGER_ON_CLIENT_CREATED_ORDER);
         }
         /* ОТПРАВИТЬ В РЕАЛЬНОМ ВРЕМЕНИ
            $email = new Email();
            $email->setData(array(
              'email' => FIRM_ORD_MAIL,
              'name' => 'Приемная заказов',
            ), "Поступил новый заказ #" . $id, $zak, $files, true, array(), array(
              'email' => $filial['email'],
              'name' => $filial['name'],
            ));
            $email->send();
            ENDOF ОТПРАВИТЬ В РЕАЛЬНОМ ВРЕМЕНИ */
         // move file
         if (count($files)) {
             $path = DIR_FS_ORDER_FILES . $id;
             if (!file_exists($path)) {
                 mkdir($path);
             }
             foreach ($files as $f) {
                 $fid = OrderFile::create(array('order_id' => $id, 'creator_id' => 0, 'created' => time(), 'name' => $f["name"], 'size' => $f["size"]));
                 if ($fid > 0) {
                     $ext = substr($f["name"], strrpos($f["name"], ".") + 1);
                     $f_s = fopen($f["path"], "r");
                     $f_d = fopen($path . "/" . $fid . "." . $ext, "w");
                     fwrite($f_d, fread($f_s, $f["size"]));
                     fclose($f_s);
                     fclose($f_d);
                 }
                 unlink($f["path"]);
             }
         }
         $path = TMPFILES_PATH . session_id();
         if (file_exists($path)) {
             rmdir($path);
         }
         return true;
     } else {
         return false;
     }
 }
Ejemplo n.º 2
0
// 5
$t->linkName = "work_usr";
$ypos += 30;
$s->AddJsEvent("change", " jQuery('#" . $t->idname . "').val(''); ");
$t->AddJsEvent("keyup", " jQuery('#" . $s->idname . "').val(0); ");
$frm->Label("Направление (факультет)", 10, $ypos);
$frm->Label("Дисциплина", 190, $ypos);
$ypos += 20;
$s = $frm->Select(10, $ypos, 160, array(0 => array("name" => "-выберите-")) + $data_napravl, "name", $order_info["napr_id"]);
//6
$s->linkName = "napr";
$t = $frm->Hidden(isset($data_discip[$order_info["disc_id"]]) ? $order_info["disc_id"] : $order_info["disc_user"]);
// 8
$t->linkName = "disc_usr";
$t->class = 'discipline_select2';
$disciplines = Discipline::findAll();
foreach ($disciplines as &$discipline) {
    $discipline['authors_qt'] = Disciplines::getAuthorsQt($discipline['id']);
}
unset($discipline);
page_AddScriptText('var disciplines = ' . json_encode($disciplines) . ';');
$ypos += 30;
$frm->Label("Тема работы", 10, $ypos);
$ypos += 20;
$t = $frm->TextArea(10, $ypos, 625, 60, $order_info["subject"]);
//9
$t->linkName = "subj";
$t->AddValidator(new CGUI_VALIDATOR_NOEMPTY());
$t->AddValidator(new CGUI_VALIDATOR_MAXLEN(512));
$ypos += 70;
$frm->Label("Дата сдачи", 10, $ypos);
Ejemplo n.º 3
0
function impdiscip_exec($Frm, $Err)
{
    if (!$Err) {
        $v = $Frm->GetValue(0);
        if (!strpos($v["type"], "ms-excel")) {
            $Frm->_gui->informer->ERR("Неправильный тип файла");
            page_reloadSubSec();
        } else {
            $s = "";
            if ($Frm->GetValue(1)) {
                db::truncate(TABLE_DISCIPLINE);
                db::truncate(TABLE_DISCIPLINE_TO_NAPRAVL);
                db::truncate(TABLE_AUTHOR_TO_DISCIPLINE);
                $s = "Таблица очищена. ";
            }
            require_once DIR_FS_DOCUMENT_ROOT . "/ext/PHPExcel/PHPExcel.php";
            $loader = PHPExcel_IOFactory::load($v['tmp_name']);
            $loader->setActiveSheetIndex(0);
            $sheet = $loader->getActiveSheet();
            $colNumber = PHPExcel_Cell::columnIndexFromString($sheet->getHighestColumn());
            if ($colNumber < 1 or $colNumber > 2) {
                $Frm->_gui->informer->ERR("В таблице должно быть от 1 до 2 колонок(сейчас " . $colNumber . ")");
                page_reloadSubSec();
            }
            $rowIterator = $sheet->getRowIterator();
            $addcnt = 0;
            foreach ($rowIterator as $row) {
                // Получили ячейки текущей строки и обойдем их в цикле
                $cellIterator = $row->getCellIterator();
                foreach ($cellIterator as $cell) {
                    $value = trim($cell->getValue());
                    $color = $sheet->getStyle($cell->getCoordinate())->getFill()->getEndColor()->getRGB();
                    if ($color == '000000') {
                        $napravl = db::get_single_row("SELECT * FROM " . TABLE_NAPRAVL . " WHERE LOWER(name) = '" . db::input(strtolower($value)) . "'");
                        if ($napravl) {
                            $napravl_id = $napravl['id'];
                        } else {
                            $napravl_id = Napravl::create(array('name' => $value));
                        }
                    } else {
                        if (empty($napravl_id)) {
                            continue 2;
                        }
                        $discipline = db::get_single_row("SELECT * FROM " . TABLE_DISCIPLINE . " WHERE LOWER(name) = '" . db::input(strtolower($value)) . "'");
                        if ($discipline) {
                            Disciplines::addToNaprav($discipline['id'], $napravl_id);
                            continue 2;
                        } else {
                            $discipline_id = Discipline::create(array('name' => $value));
                            Disciplines::addToNaprav($discipline_id, $napravl_id);
                            $addcnt++;
                        }
                    }
                }
            }
            $Frm->_gui->informer->OK($s . "Добавлено " . $addcnt . " строк");
            page_reloadSubSec();
        }
    }
}
Ejemplo n.º 4
0
/**
 * @deprecated
 * @param $disc_id
 * @return mixed
 */
function get_discipline_name($disc_id)
{
    try {
        $discipline = Discipline::find($disc_id);
        return $discipline['name'];
    } catch (InvalidArgumentException $e) {
        return 'не указана';
    } catch (EntityNotFoundException $e) {
        return 'не указана';
    }
}
Ejemplo n.º 5
0
    $r = $tbl->NewColumn();
    $r->Caption = "Название";
    $r->DoSort = true;
    $r->Key = "name";
    $r->Align = "left";
    $r = $tbl->NewColumn();
    $r->Caption = "Направление";
    $r->Align = "left";
    $r->Process = "get_discipline_napravl";
    $r = $tbl->NewColumn();
    $r->Caption = "Количество авторов";
    $r->Process = "get_authors_qt_for_discipline";
    $r = $tbl->NewColumn();
    $r->Caption = "";
    $r->Process = "tp_discip_cmds";
    foreach (Discipline::findAll() as $d) {
        $tbl->AddRow($d, "id");
    }
    $tbl->InlineSort(true);
    if (user_can($GUI->mmenu->selected->id, $GUI->mmenu->selected->selected->id, $_SESSION["user"]["data"]["group_id"], "Добавить")) {
        $GUI->cmdmenu->AddItem("Добавить", "?section=sprav&subsection=5&add");
    }
    if (user_can($GUI->mmenu->selected->id, $GUI->mmenu->selected->selected->id, $_SESSION["user"]["data"]["group_id"], "Импорт Excel")) {
        $GUI->cmdmenu->AddItem("Импорт Excel", "?section=sprav&subsection=5&imp");
    }
}
function get_discipline_napravl($value, $row, $table, $info)
{
    return Disciplines::get_napravl_list_as_string($row['id']);
}
function get_authors_qt_for_discipline($value, $row, $table, $info)
Ejemplo n.º 6
0
 public static function create_order($order_parameters)
 {
     $result = array('status' => false, 'msg' => '');
     $message = array();
     if (empty($order_parameters['client_id'])) {
         $result['msg'] = "Id клиента не указан";
         return $result;
     }
     if ($order_parameters['work'] == 0 && !strlen($order_parameters['work_usr'])) {
         $order_parameters['work_usr'] = "******";
         //            $message[] = "Не указан вид работы";
     }
     if ($order_parameters['disc'] == 0 && !strlen($order_parameters['disc_usr'])) {
         $order_parameters['disc_usr'] = "******";
         //          $message[] = "Не указана дисциплина";
     }
     if ($order_parameters['pgmax'] && $order_parameters['pgmax'] < $order_parameters['pgmin']) {
         $message[] = "Неверно указано макс. число страниц";
     }
     if ($order_parameters['srcmax'] && $order_parameters['srcmax'] < $order_parameters['srcmin']) {
         $message[] = "Неверно указано макс. число источников";
     }
     if (count($message)) {
         $result['msg'] = join("\n", $message);
         return $result;
     }
     $date = mktime();
     $filial_id = db::get_single_value("SELECT filial_id FROM " . TBL_PREF . "clients WHERE id = " . db::input($order_parameters['client_id']) . "");
     if (!$filial_id) {
         $filial_id = $order_parameters['filial_id'];
     }
     if (!$filial_id) {
         $query = "SELECT ftc.filial_id FROM " . TBL_PREF . "clients c  JOIN " . TBL_PREF . "data_city dc ON dc.name = c.city JOIN " . TBL_PREF . "filial_to_city ftc ON ftc.city_id = dc.id" . " WHERE c.id = " . db::input($order_parameters['client_id']) . "";
         $filial_id = db::get_single_value($query);
     }
     $order_id = Order::create(array("filial_id" => $filial_id, "klient_id" => $order_parameters['client_id'], "vuz_id" => $order_parameters['vuz'], "vuz_user" => $order_parameters['vuz_usr'], "type_id" => $order_parameters['work'], "type_user" => $order_parameters['work_usr'], "napr_id" => $order_parameters['napr'], "disc_id" => $order_parameters['disc'], "disc_user" => $order_parameters['disc_usr'], "time_kln" => $order_parameters['time_kln'], "payment_id" => $order_parameters['opl'], "subject" => $order_parameters['subj'], "about_kln" => $order_parameters['treb'], "kurs" => $order_parameters['kurs'], "prakt_pc" => $order_parameters['prakt'], "pages_min" => $order_parameters['pgmin'], "pages_max" => $order_parameters['pgmax'], "src_min" => $order_parameters['srcmin'], "src_max" => $order_parameters['srcmax'], "from_id" => 4));
     //        foreach ($_FILES as $file) {
     //            if (is_uploaded_file($file["tmp_name"])) {
     //                $extension = pathinfo($file['name']);
     //                $extension = strtolower($extension['extension']);
     //
     //                $file_id = \Components\Entity\OrderFile::create() ::attachFile($order_id, 0, $file["name"], $file["size"]);
     //
     //                if (!$file_id) {
     //                    $result['msg'] = "Ошибка при загрузке файла";
     //                    return $result;
     //                } else {
     //                    $dir = DIR_FS_ORDER_FILES . $order_id . '/';
     //                    if (!is_dir(DIR_FS_ORDER_FILES)) {
     //                        create_path('order_files', DIR_FS_DOCUMENT_ROOT);
     //                    }
     //                    if (!is_dir($dir)) {
     //                        create_path($order_id, DIR_FS_ORDER_FILES);
     //                    }
     //
     //                    $file_name = $file_id . '.' . $extension;
     //
     //                    if (!move_uploaded_file($file['tmp_name'], $dir . $file_name)) {
     //                        Order::deleteAttachedFile($file_id);
     //                        $result['msg'] = "Ошибка при сохранении файла";
     //                        return $result;
     //                    }
     //                }
     //            }
     //        }
     if ($order_id) {
         ////////////////////////
         // Текст клиенту
         $client = Client::find($order_parameters['client_id']);
         $filial = \Components\Entity\Filial::find($filial_id);
         $txt = "<p>Здравствуйте" . (empty($client["fio"]) ? "" : ", " . $client["fio"]) . "!</p>";
         // Если первый раз
         if (@$_SESSION["new_klient_added"]) {
             $txt .= "<p>Мы очень рады, что Вы решили воспользоваться нашими услугами и высоко ценим Ваше доверие!</p>";
         } else {
             $txt .= "<p>Спасибо, что Вы с нами! Для постоянных клиентов у нас всегда есть интересные и выгодные предложения!</p>";
         }
         $zak = "<p>Номер заказа: " . $order_id . "<br>" . "Дата: " . date("d.m.Y") . "<br>";
         $zak .= "Вид работы: ";
         if (!empty($order_parameters['work_usr'])) {
             $zak .= $order_parameters['work_usr'] . "<br>";
         } else {
             $worktype = \Components\Entity\Worktypes::find($order_parameters['work']);
             $zak .= $worktype['name'] . "<br>";
         }
         $zak .= "Дисциплина: ";
         if ($order_parameters['disc_usr']) {
             $zak .= $order_parameters['disc_usr'] . "<br>";
         } else {
             $discipline = \Components\Entity\Discipline::find($order_parameters['disc']);
             $zak .= $discipline['name'] . "<br>";
             //                $zak .= $_SESSION["zf_work_predm"] . "<br>";
         }
         if ($order_parameters['subj']) {
             $zak .= "Тема работы: " . $order_parameters['subj'] . "<br>";
         }
         if ($order_parameters['treb']) {
             $zak .= "Требования: " . $order_parameters['treb'] . "<br>";
         }
         if ($order_parameters['time_kln']) {
             $zak .= "Дата сдачи: " . $order_parameters['time_kln'] . "<br>";
         }
         if ($order_parameters['pgmin'] && $order_parameters['pgmax']) {
             $zak .= "Число страниц: " . $order_parameters['pgmin'] . "-" . $order_parameters['pgmax'] . "<br>";
         }
         $txt .= "<p>Ваш заказ принят, и в ближайшее время наш менеджер свяжется с Вами.</p>" . "<p>Содержание заказа: <br>" . $zak . "</p>";
         $txt .= "<p><i>С уважением, компания по написанию студенческих работ.</i></p>";
         $email = new \Components\Classes\Email();
         $email->setData(array('email' => $client['email'], 'name' => $client['fio']), "Ваш заказ принят!", $txt, array(), true, array(), array('email' => $filial['email'], 'name' => $filial['name']));
         //$m->SMTPDebug = true;
         $mailErrors = array();
         if (!$email->send()) {
             $mailErrors[] = "Ошибки при отправке письма клиенту: " . $email->ErrorInfo;
         }
         ////////////////////////
         // Текст в приемную заказов
         $zak .= "<p>Заказчик:<br>";
         if (@$_SESSION["new_klient_added"]) {
             $zak .= "Новая регистрация<br>";
         }
         $zak .= "id: " . $client["id"] . "<br>" . "Имя: " . $client["fio"] . "<br>" . "Почта: " . $client["email"] . "<br>" . "Телефон: " . $client["telnum"] . "<br>" . "Город: " . $client["city"] . "<br>" . "Другие контакты: " . $client["contacts"] . "<br>";
         if (!empty($mailErrors)) {
             $zak .= join('<br>', $mailErrors);
         }
         $message_id = \Components\Entity\Message::create(array('parent_id' => 0, 'order_id' => $order_id, 'klient_id' => $client["id"], 'visit_id' => 0, 'tender_id' => 0, 'created' => time(), 'creator_id' => 'k' . $client["id"], 'addr' => 'u' . $filial['user_id'], 'subject' => "Поступил новый заказ #" . $order_id, 'text' => $zak, 'prior' => 1, 'uvedom' => 1, 'readed' => 0, 'needansv' => 0, 'basket' => 0));
         if (!empty($message_id)) {
             \Components\Classes\Author::enqueue_message_to_email($message_id, $filial['user_id'], \Components\Entity\EmailNotification::TO_MANAGER_ON_CLIENT_CREATED_ORDER);
         }
         // Прикалываем файлы
         $files = $_FILES;
         // move file
         if (count($files)) {
             $path = DIR_FS_ORDER_FILES . $order_id;
             if (!file_exists($path)) {
                 mkdir($path);
             }
             foreach ($files as $f) {
                 $fid = \Components\Entity\OrderFile::create(array('order_id' => $order_id, 'creator_id' => 0, 'created' => time(), 'name' => $f["name"], 'size' => $f["size"]));
                 if ($fid > 0) {
                     $ext = substr($f["name"], strrpos($f["name"], ".") + 1);
                     $f_s = fopen($f["tmp_name"], "r");
                     $f_d = fopen($path . "/" . $fid . "." . $ext, "w");
                     fwrite($f_d, fread($f_s, $f["size"]));
                     fclose($f_s);
                     fclose($f_d);
                 }
                 //                    unlink($f["path"]);
             }
         }
     }
     return self::generate_response(true, "OK", array('id' => $order_id, 'date' => $date));
 }
Ejemplo n.º 7
0
function edit_order($Frm, $Err)
{
    if (!$Err) {
        $order_id = $Frm->GetNmValueI('id');
        $order_info = Order::find($order_id);
        $klient = kln_get($Frm->GetNmValueI("klient"));
        if (!$klient) {
            $Frm->_gui->ERR("Клиент не найден");
            return;
        }
        // Филиал клиента соотв филиалу сотрудника, если сотрудник рук то неважно
        if ($_SESSION["user"]["data"]["group_id"] == 1 || $_SESSION["user"]["data"]["group_id"] == 0 || $_SESSION["user"]["data"]["filial_id"] == $klient["filial_id"]) {
        } else {
            $Frm->_gui->ERR("Филиал клиента и сотрудника не совпадают");
            return;
        }
        if ($Frm->GetNmValue("work") == 0 && !strlen($Frm->GetNmValue("work_usr"))) {
            $Frm->_gui->ERR("Не указан вид работы");
            return;
        }
        $disciplina = trim($Frm->GetNmValue("disc_usr"));
        if (!strlen($disciplina)) {
            $Frm->_gui->ERR("Не указана дисциплина");
            return;
        }
        $pmin = $Frm->GetNmValueI("pgmin");
        $pmax = $Frm->GetNmValueI("pgmax");
        //    if ($pmax && ($pmax < $pmin)) {
        //      $Frm->_gui->ERR("Неверно указано макс. число страниц");
        //      return;
        //    }
        $pmin = $Frm->GetNmValueI("srcmin");
        $pmax = $Frm->GetNmValueI("srcmax");
        //    if ($pmax && ($pmax < $pmin)) {
        //      $Frm->_gui->ERR("Неверно указано макс. число источников");
        //      return;
        //    }
        if (!$Frm->GetNmValueI("pole_t") || !$Frm->GetNmValueI("pole_b") || !$Frm->GetNmValueI("pole_l") || !$Frm->GetNmValueI("pole_r")) {
            $Frm->_gui->ERR("Не указаны размеры полей в оформлении");
            return;
        }
        $changes = array();
        $kln_date = utils_cvt_date2i($Frm->GetNmValueH("date"));
        $rel_date = utils_cvt_date2i($Frm->GetNmValueH("next_rel_date"));
        $showOtdelKcomment = is_otdel_K($_SESSION["user"]["data"]['id']) || is_director($_SESSION["user"]["data"]['id']) || is_manager($_SESSION["user"]["data"]['id']);
        if ($showOtdelKcomment) {
            $ok_comment = $Frm->GetNmValueH("ok_comment");
        } else {
            $ok_comment = $order_info['ok_comment'];
        }
        if ($ok_comment != $order_info['ok_comment']) {
            $changes[] = "'комментарий ОК' с " . $order_info['ok_comment'] . " на " . $ok_comment;
            $ok_comment_date = time();
        } else {
            $ok_comment_date = $order_info['ok_comment_date'];
        }
        $oform = array();
        $oform[] = $Frm->GetNmValueI("fontnm");
        $oform[] = $Frm->GetNmValueI("fontsz");
        $oform[] = $Frm->GetNmValueI("interval");
        $oform[] = $Frm->GetNmValueI("links");
        $oform[] = $Frm->GetNmValueI("pole_t");
        $oform[] = $Frm->GetNmValueI("pole_b");
        $oform[] = $Frm->GetNmValueI("pole_l");
        $oform[] = $Frm->GetNmValueI("pole_r");
        $oform[] = $Frm->GetNmValueI("pagenums");
        $oform = serialize($oform);
        try {
            $discipline = Discipline::find($disciplina);
        } catch (Exception $e) {
            $discipline = Discipline::findOneBy(array('name' => $disciplina));
        }
        if (!$discipline) {
            $disc_id = Discipline::create(array('name' => $disciplina, 'code' => ''));
            Disciplines::addToDefaultNaprav($disc_id);
        } else {
            $disc_id = $discipline['id'];
        }
        $order_status_id = $Frm->GetNmValueI("status_id");
        db::insert("orders_changes_history", array('change_date' => time(), 'change_user_id' => $_SESSION['user']['data']['id'], 'order_id' => $order_id, 'filial_id_new' => $klient["filial_id"], 'klient_id_new' => $klient["id"], 'vuz_id_new' => $Frm->GetNmValueI("vuz"), 'vuz_user_new' => $Frm->GetNmValueH("vuz_usr"), 'type_id_new' => $Frm->GetNmValueI("work"), 'type_user_new' => $Frm->GetNmValueH("work_usr"), 'napr_id_new' => $Frm->GetNmValueI("napr"), 'disc_id_new' => $disc_id, 'disc_user_new' => $Frm->GetNmValueH("disc_usr"), 'time_kln_new' => $kln_date, 'cost_kln_new' => $Frm->GetNmValueI("cost"), 'payment_id_new' => $Frm->GetNmValueI("opl"), 'subject_new' => $Frm->GetNmValueH("subj"), 'about_kln_new' => $Frm->GetNmValueH("treb"), 'about_mng_new' => $Frm->GetNmValueH("rem"), 'kurs_new' => $Frm->GetNmValueI("kurs"), 'prakt_pc_new' => $Frm->GetNmValueI("prakt"), 'pages_min_new' => $Frm->GetNmValueI("pgmin"), 'pages_max_new' => $Frm->GetNmValueI("pgmax"), 'src_min_new' => $Frm->GetNmValueI("srcmin"), 'src_max_new' => $Frm->GetNmValueI("srcmax"), 'from_id_new' => $Frm->GetNmValueI("take"), 'oform_new' => $oform, 'next_rel_date_new' => $rel_date, 'status_id_new' => $order_status_id, 'ok_comment_new' => $ok_comment, 'ok_comment_date_new' => $ok_comment_date, 'payment_comment_new' => $Frm->GetNmValueH("payment_comment"), 'cost_auth_new' => $Frm->GetNmValueI("cost_auth"), 'time_auth_new' => $kln_date, 'oplata_kln_new' => $Frm->GetNmValueI("oplata_kln"), 'author_paid_new' => $Frm->GetNmValueI("author_paid"), 'company_paid_new' => $order_info['company_paid'], 'filial_id_old' => $order_info['filial_id'], 'klient_id_old' => $order_info['klient_id'], 'vuz_id_old' => $order_info['vuz_id'], 'vuz_user_old' => $order_info['vuz_user'], 'type_id_old' => $order_info['type_id'], 'type_user_old' => $order_info['type_user'], 'napr_id_old' => $order_info['napr_id'], 'disc_id_old' => $order_info['disc_id'], 'disc_user_old' => $order_info['disc_user'], 'time_kln_old' => $order_info['time_kln'], 'cost_kln_old' => $order_info['cost_kln'], 'payment_id_old' => $order_info['payment_id'], 'subject_old' => $order_info['subject'], 'about_kln_old' => $order_info['about_kln'], 'about_mng_old' => $order_info['about_mng'], 'kurs_old' => $order_info['kurs'], 'prakt_pc_old' => $order_info['prakt_pc'], 'pages_min_old' => $order_info['pages_min'], 'pages_max_old' => $order_info['pages_max'], 'src_min_old' => $order_info['src_min'], 'src_max_old' => $order_info['src_max'], 'from_id_old' => $order_info['from_id'], 'oform_old' => $order_info['oform'], 'next_rel_date_old' => $order_info['next_rel_date'], 'status_id_old' => $order_info['status_id'], 'ok_comment_old' => $order_info['ok_comment'], 'ok_comment_date_old' => $order_info['ok_comment_date'], 'payment_comment_old' => $order_info['payment_comment'], 'cost_auth_old' => $order_info['cost_auth'], 'time_auth_old' => $order_info['time_auth'], 'oplata_kln_old' => $order_info['oplata_kln'], 'author_paid_old' => $order_info['author_paid'], 'company_paid_old' => $order_info['company_paid']));
        $time_kln_r = 0;
        if (get_status_iname($order_status_id) == 'ORDER_GIVEN') {
            $time_kln_r = time();
        }
        if (get_order_status($order_id) == 'ORDER_GIVEN') {
            $time_kln_r = $order_info['time_kln_r'];
        }
        Order::update($order_id, array("filial_id" => $klient["filial_id"], "manager_id" => $order_info['manager_id'], "author_id" => $order_info['author_id'], "klient_id" => $klient["id"], "parent_id" => 0, "vuz_id" => $Frm->GetNmValueI("vuz"), "vuz_user" => $Frm->GetNmValueH("vuz_usr"), "type_id" => $Frm->GetNmValueI("work"), "type_user" => $Frm->GetNmValueH("work_usr"), "napr_id" => $Frm->GetNmValueI("napr"), "disc_id" => $disc_id, "disc_user" => '', "time_kln" => $kln_date, "time_kln_r" => $time_kln_r, "cost_kln" => $Frm->GetNmValueI("cost"), "cost_auth" => $Frm->GetNmValueI("cost_auth"), "oplata_kln" => $Frm->GetNmValueI("oplata_kln"), "payment_id" => $Frm->GetNmValueI("opl"), "raspred_srok" => 0, "raspred_auth" => "", "subject" => $Frm->GetNmValueH("subj"), "about_kln" => $Frm->GetNmValueH("treb"), "about_mng" => $Frm->GetNmValueH("rem"), "kurs" => $Frm->GetNmValueI("kurs"), "prakt_pc" => $Frm->GetNmValueI("prakt"), "pages_min" => $Frm->GetNmValueI("pgmin"), "pages_max" => $Frm->GetNmValueI("pgmax"), "src_min" => $Frm->GetNmValueI("srcmin"), "src_max" => $Frm->GetNmValueI("srcmax"), "from_id" => $Frm->GetNmValueI("take"), "oform" => $oform, "next_rel_date" => $rel_date, 'status_id' => $order_status_id, 'ok_comment' => $ok_comment, 'ok_comment_date' => $ok_comment_date, 'author_paid' => $Frm->GetNmValueI("author_paid")));
        $Frm->_gui->OK("Заказ обновлен");
        switch ($Frm->GetNmValueI("next")) {
            case 1:
                unset($_SESSION["repeat_order"]);
                header("location: /index.php?section=ord&subsection=2&p=2&order=" . $order_id);
                die;
                break;
            case 2:
                $_SESSION["repeat_order"] = $Frm->GetAllNmValues();
                page_reloadToSec(1);
                break;
            case 0:
            default:
                unset($_SESSION["repeat_order"]);
                header("location: /index.php?section=ord&subsection=2");
                die;
                break;
        }
    }
}