$r = $tbl->NewColumn(); $r->Caption = "Комментарий автора"; $r->Key = "comment"; $r = $tbl->NewColumn(); $r->Caption = "Отправить сообщение"; $r->Process = "send_message_to_author"; $r = $tbl->NewColumn(); $r->Caption = "Назначить/снять"; $r->Process = "generate_assign_button"; $tbl->FilterMYSQL("order_id = " . $order_id); } elseif ($_SESSION["user"]["data"]["group_id"] == 6) { if ($order_status == "ASSIGNED") { $GUI->ERR("Этот заказ уже назначен"); page_reloadSec(); } if ($offer_info = AuthorOffer::findOneBy(array('order_id' => $order_id, 'author_id' => $_SESSION['user']['data']['id']))) { $frm = $GUI->Form("Редактировать предложение к заказу №" . $order_id, 400, 270); $frm->OnExecute = "edit_offer"; } else { $offer_info = array('price' => '', 'comment' => ''); $frm = $GUI->Form("Новое предложение к заказу №" . $order_id, 400, 270); $frm->OnExecute = "add_offer"; } $ypos = 10; $h = $frm->Hidden($order_id); $h->linkName = "order_id"; $h = $frm->Hidden($_SESSION["user"]["data"]["id"]); $h->linkName = "author_id"; $frm->Label("Цена:", 10, $ypos); if ($order_info['cost_auth'] != 0) { $frm->Label($order_info['cost_auth'] . " " . $ofc_currency, 60, $ypos);
function assign_order_to_author($Frm, $Err) { if (!$Err) { $order_id = $Frm->GetNmValueI("order_id"); try { $order_info = Order::find($order_id); } catch (Exception $e) { ErrorLogger::add('assign_order_to_author', 'Sessia', $_SESSION); ErrorLogger::add('assign_order_to_author', 'REQUEST', $_REQUEST); ErrorLogger::add('assign_order_to_author', 'GET', $_GET); ErrorLogger::add('assign_order_to_author', 'POST', $_POST); $Frm->_gui->ERR("Произошла ошибка"); page_reloadAll(); } $author_id = $Frm->GetNmValueI("author_id"); $status_id = get_status_id_by_iname("ASSIGNED"); if (!$status_id) { $Frm->_gui->ERR("Статус не найден"); page_reloadAll(); } Order::update($order_id, array('author_id' => $author_id, 'status_id' => $status_id)); if ($Frm->GetNmValueI("need_offer")) { if (!AuthorOffer::findOneBy(array('order_id' => $order_id, 'author_id' => $author_id))) { AuthorOffer::create(array('order_id' => $order_id, 'author_id' => $author_id, 'price' => $order_info['cost_auth'], 'comment' => '')); } } if ($order_info['disc_id'] == 0) { $spec = $order_info['disc_user']; } else { $spec = get_discipline_name($order_info['disc_id']); } $txt = "Заказ закреплен"; if (\Components\Entity\EmailNotificationType::isPersistable(\Components\Entity\EmailNotification::TO_AUTHOR_ON_ASSIGN)) { $body = "На вас назначен заказ №" . $order_id . ' ' . ucfirst($spec) . "<br>" . "<b>Обязательно подтвердите закрепление за Вами данного заказа</b>, достаточно в ответном письме написать \"OK\""; $message_id = mls_Send("u" . $author_id, "u" . $_SESSION["user"]["data"]["id"], "На вас назначен заказ №" . $order_id . ' ' . ucfirst($spec), $body, 1, 0); Author::enqueue_message_to_email($message_id, array($author_id), \Components\Entity\EmailNotification::TO_AUTHOR_ON_ASSIGN); $txt = "Заказ закреплен, уведомление отправлено"; } $old_author_id = $Frm->GetNmValueI("old_author_id"); if ($old_author_id != 0) { if (\Components\Entity\EmailNotificationType::isPersistable(\Components\Entity\EmailNotification::TO_AUTHOR_ON_UNASSIGN)) { $message_id = mls_Send("u" . $old_author_id, "u" . $_SESSION["user"]["data"]["id"], "Вы сняты с заказа №" . $order_id, "Вас сняли с заказа №" . $order_id . "<br>Причина: " . $Frm->GetNmValueH("reason"), 1, 0); Author::enqueue_message_to_email($message_id, array($old_author_id), \Components\Entity\EmailNotification::TO_AUTHOR_ON_UNASSIGN); } } // Author::sendEmail($order_id, array($author_id), 'Закрепление заказа №' . $order_id . ' ' . ucfirst($spec), 'Заказ №' . $order_id . ' ' . ucfirst($spec) . ' закреплен за вами'); $Frm->_gui->OK($txt); redirect('index.php?section=ord&subsection=2&order=' . $order_id . '&p=3'); } }