예제 #1
0
파일: functions.php 프로젝트: yonkon/diplom
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');
    }
}