$h->linkName = "order_id"; $h = $frm->Hidden($order_info['manager_id']); $h->linkName = "old_manager_id"; $frm->VLine(10, $ypos += 40, 280); $frm->Button("Назначить", 110, $ypos += 20, 80, true); $GUI->Vars["page_top"] .= "<br><a href='#' onclick='cgui_form_modal(\"" . $frm->idname . "\");return false;'>Назначить менеджера</a>"; //отправить заказ на почту // die; $frm2 = $GUI->Form("Отправить заказ на почту", 300, 320, CGUI_FORM_FLAG_MODAL); $frm2->OnExecute = "send_order_by_email"; $ypos = 0; $frm2->Label("Выберите авторов для отправки заказа", 10, $ypos += 10); $frm2->VLine(10, $ypos += 20, 280); $discipline_id = $order_info['disc_id']; $authors = get_users_by_group_name('Автор', null, false, true); $authors = Disciplines::getAuthors($discipline_id); arsort($authors); if (count($authors) > 1) { $authors[join(", ", array_keys($authors))] = 'Отправить всем подписавшимся'; $authors = array_reverse($authors, true); } $s = $frm2->Select(10, $ypos += 20, 280, $authors, ''); $s->Multiple = true; $s->RowSize = 10; $s->linkName = 'authors'; $s->name = 'authors'; $hid = $frm2->Hidden($order_id); $hid->linkName = 'order_id'; $frm2->VLine(10, $ypos += 180, 280); $frm2->Button("Отправить", 110, $ypos += 20, 80, true); $GUI->Vars["page_top"] .= "<br><a href='#' onclick='cgui_form_modal(\"" . $frm2->idname . "\");return false;'>Отправить заказ на почту</a>";
function assign_order($Frm, $Err) { if (!$Err) { $author_time = utils_cvt_date2i($Frm->GetNmValueH("time_auth")); $raspred_time = utils_cvt_date2i($Frm->GetNmValueH("raspred_srok")); if ($author_time < time() || $raspred_time < time()) { $Frm->_gui->ERR("Нельзя указывать дату прошлым числом"); page_reloadAll(); } $order_id = $Frm->GetNmValueI("order_id"); $status_id = get_status_id_by_iname("ON_THE_DISTRIBUTION"); $manager_id = $Frm->GetNmValueI("manager_id"); Order::update($order_id, array("manager_id" => $manager_id, "time_auth" => $author_time, "raspred_srok" => $raspred_time, "cost_auth" => $Frm->GetNmValueI("author_price"), "payment_comment" => $Frm->GetNmValueH("payment_comment"), "status_id" => $status_id)); Author::saveMessageAndEnqueueEmail($order_id, array($manager_id), 'u' . $_SESSION['user']['data']['id'], "Распределение заказа №" . $order_id, "Вас назначили менеджером заказа №" . $order_id, \Components\Entity\EmailNotification::TO_MANAGER_ON_FIRST_ASSIGN); $send_author_msgs = null !== $Frm->GetNmValue("send_for_authors") ? true : false; if ($send_author_msgs) { $order_info = get_order_info($order_id); $discipline_id = $order_info['disc_id']; if ($discipline_id > 0) { // Выслать уведомления авторам $authors = array_keys(Disciplines::getAuthors($discipline_id)); send_order_by_email($Frm, $Err, $authors); // само генерит сообщение } else { $Frm->_gui->OK("Заказ поставлен на распределение, уведомления не высланы - нет дисциплины"); } } else { $Frm->_gui->OK("Заказ поставлен на распределение без уведомлений"); } page_reloadAll(); } }