$orders = explode(',', $_GET['order_id']); foreach ($orders as $order_id) { $order_id = trim($order_id); if (empty($order_id)) { continue; } $order_info = get_order_info($order_id); if ($order_info['referrer_payment_status'] == 0) { Order::update($order_id, array('referrer_payment_status' => 1, 'referrer_payment_date' => date('Y-m-d H:i:s'))); } } $result[] = 'Оплачено'; break; } if ($bDoUpdate) { Order::update($_GET['order_id'], array($_GET['field'] => $value)); $order_info = Order::find($_GET['order_id']); if ($bDoHistoryUpdate) { $data = array('change_date' => time(), 'change_user_id' => $_SESSION['user']['data']['id'], 'order_id' => $_GET['order_id'], 'filial_id_new' => $order_info['filial_id'], 'klient_id_new' => $order_info['klient_id'], 'vuz_id_new' => $order_info['vuz_id'], 'vuz_user_new' => $order_info['vuz_user'], 'type_id_new' => $order_info['type_id'], 'type_user_new' => $order_info['type_user'], 'napr_id_new' => $order_info['napr_id'], 'disc_id_new' => $order_info['disc_id'], 'disc_user_new' => $order_info['disc_user'], 'time_kln_new' => $order_info['time_kln'], 'cost_kln_new' => $order_info['cost_kln'], 'payment_id_new' => $order_info['payment_id'], 'subject_new' => $order_info['subject'], 'about_kln_new' => $order_info['about_kln'], 'about_mng_new' => $order_info['about_mng'], 'kurs_new' => $order_info['kurs'], 'prakt_pc_new' => $order_info['prakt_pc'], 'pages_min_new' => $order_info['pages_min'], 'pages_max_new' => $order_info['pages_max'], 'src_min_new' => $order_info['src_min'], 'src_max_new' => $order_info['src_max'], 'from_id_new' => $order_info['from_id'], 'oform_new' => $order_info['oform'], 'next_rel_date_new' => $order_info['next_rel_date'], 'status_id_new' => $order_info['status_id'], 'ok_comment_new' => $order_info['ok_comment'], 'ok_comment_date_new' => $order_info['ok_comment_date'], 'payment_comment_new' => $order_info['payment_comment'], 'cost_auth_new' => $order_info['cost_auth'], 'time_auth_new' => $order_info['time_auth'], 'oplata_kln_new' => $order_info['oplata_kln'], 'author_paid_new' => $order_info['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']); $data[$_GET['field'] . '_new'] = $_GET['value']; OrderHistory::create($data); } } } break; case 'get': if (!empty($_GET['field'])) { switch ($_GET['field']) { case 'status_id': $result[] = db::get_select("SELECT id, status_name FROM " . TBL_PREF . "orders_status", 'status', '', $_GET['value'], 'class="instantEditNewValue"'); break;
public static function makeOrdersDefault($napravl_id) { foreach (db::get_single_values_array("SELECT id FROM " . TABLE_ORDERS . " WHERE napr_id = " . db::input($napravl_id)) as $order_id) { Order::update($order_id, array('napr_id' => self::getDefaultID())); } }
function assign_order_to_manager($Frm, $Err) { if (!$Err) { $order_id = $Frm->GetNmValueI("order_id"); $manager_id = $Frm->GetNmValueI("manager_id"); Order::update($order_id, array('manager_id' => $manager_id)); $do_msg = \Components\Entity\EmailNotificationType::isPersistable(\Components\Entity\EmailNotification::TO_MANAGERS_ON_MANAGER_CHANGE); if ($do_msg) { $message_id = mls_Send("u" . $manager_id, "u" . $_SESSION["user"]["data"]["id"], "На вас назначен заказ №" . $order_id, "На вас назначен заказ №" . $order_id, 1, 0); Author::enqueue_message_to_email($message_id, array($manager_id), \Components\Entity\EmailNotification::TO_MANAGERS_ON_MANAGER_CHANGE); } $old_manager_id = $Frm->GetNmValueI("old_manager_id"); if ($do_msg && $old_manager_id != 0) { $message_id = mls_Send("u" . $old_manager_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_manager_id), \Components\Entity\EmailNotification::TO_MANAGERS_ON_MANAGER_CHANGE); } $txt = "Заказ закреплен"; if ($do_msg) { $txt .= ", уведомления отправлены"; } $Frm->_gui->OK($txt); page_reloadAll(); } }
function change_order_status($order_id, $new_status) { try { $order_status = OrderStatus::findOneBy(array('internal_name' => $new_status)); } catch (Exception $e) { return 'Не существует статуса с именем ' . $new_status; } Order::update($order_id, array('status_id' => $order_status['id'])); switch ($new_status) { case 'RECEIVED_FILE_FROM_AUTHOR': Order::update($order_id, array('time_auth_r' => time())); break; default: break; } return true; }
function editvisit_exec($Frm, $Err) { global $vis_statuses; if (!$Err) { $changes = array(); $vis = Meeting::find($Frm->GetNmValueI("vid")); if (!$vis) { $Frm->_gui->ERR("Встреча не найдена"); return false; } $sum = $Frm->GetNmValueI("summa"); $sumf = $Frm->GetNmValueI("summaf"); $targ = $Frm->GetNmValueH("about"); $stat = $Frm->GetNmValueI("status"); $rep = $Frm->GetNmValueH("report"); $dt = explode("-", $Frm->GetNmValue("date")); $dt = mktime(0, 0, 0, $dt[1], $dt[0], $dt[2]); $tms = $Frm->GetNmValueI("start"); $tme = $Frm->GetNmValueI("finish"); if ($stat != 1 && $sumf > 0) { $Frm->_gui->ERR("Фактическая сумма не может быть изменена, если встреча не проведена"); return false; } if ($stat == 1 && $sum > $sumf) { $Frm->_gui->ERR("Фактическая сумма " . $sumf . " " . $GLOBALS["ofc_currency"] . " меньше суммы, которую нужно получить " . $sum . " " . $GLOBALS["ofc_currency"]); return false; } if ($sum != $vis["summa"]) { $changes[] = "'деньги' с " . $vis["summa"] . " на " . $sum . " " . $GLOBALS["ofc_currency"]; } if ($sumf != $vis["summaf"]) { $changes[] = "'деньги фактически' с " . $vis["summaf"] . " на " . $sumf . " " . $GLOBALS["ofc_currency"]; } if ($targ != $vis["about"]) { $changes[] = "'цель'"; } if ($stat != $vis["status"]) { $changes[] = "'статус' с '" . $vis_statuses[$vis["status"]] . "' на '" . $vis_statuses[$stat] . "'"; } if ($rep != $vis["report"]) { $changes[] = "'отчет'"; } if ($dt != $vis["date"]) { $changes[] = "'дата встречи' с " . date("d-m-Y", $vis["date"]) . " на " . date("d-m-Y", $dt); } if ($tms != $vis["tm_start"]) { $changes[] = "'начало' с " . utils_cvt_i2times($vis["tm_start"]) . " на " . utils_cvt_i2times($tms); } if ($tme != $vis["tm_finish"]) { $changes[] = "'окончание' с " . utils_cvt_i2times($vis["tm_finish"]) . " на " . utils_cvt_i2times($tme); } $station_id = 0; $opisanie_klienta = ""; $opisanie_pyti = ""; if ($vis['filial_id'] == -1) { $station_id = $Frm->GetNmValueI("station"); $opisanie_klienta = $Frm->GetNmValueH("opisanie_klienta"); $opisanie_pyti = $Frm->GetNmValueH("opisanie_pyti"); if ($station_id != $vis["station_id"]) { $changes[] = "'станция' с " . get_station_name($vis["station_id"]) . " на " . get_station_name($station_id); } if ($opisanie_klienta != $vis["opisanie_klienta"]) { $changes[] = "'описание клиента' с '" . $vis["opisanie_klienta"] . "' на '" . $opisanie_klienta . "'"; } if ($opisanie_pyti != $vis["opisanie_pyti"]) { $changes[] = "'описание пути' с '" . $vis["opisanie_pyti"] . "' на '" . $opisanie_pyti . "'"; } } if ($sumf > $sum) { $Frm->_gui->ERR("Фактическая сумма не может превышать " . $sum . " " . $GLOBALS["ofc_currency"]); return; } if ($tms > $tme) { $Frm->_gui->ERR("Некорректно задано время"); return; } if ($stat && !$rep) { $Frm->_gui->ERR("Необходим отчет о встрече"); return; } $msg = "Произошли следующие изменения по встрече №" . $vis["id"] . ":<br>"; foreach ($changes as $c) { $msg .= $c . "<br>"; } $msg .= "<a href='?section=vis&subsection=2&visit=" . $vis["id"] . "'>Перейти к просмотру</a>"; Meeting::update($vis["id"], array("date" => $dt, "status" => $stat, "tm_start" => $tms, "tm_finish" => $tme, "about" => $targ, "summa" => $sum, "summaf" => $sumf, "report" => $rep, "opisanie_klienta" => $opisanie_klienta, "opisanie_pyti" => $opisanie_pyti, "station_id" => $station_id)); Order::update($vis["order_id"], array('oplata_kln' => $sumf)); $Frm->_gui->OK("Сохранено"); // Письмо тому кто проводит если статус 0 if (count($changes) && $vis["status"] == 0) { //$to, $from, $subj, $text, $prior, $srok, $parent=0, $order=0, $klient=0, $visit=0, $tender=0 $msg_id = mls_Send("u" . $vis["user_id"], "u" . $_SESSION["user"]["data"]["id"], "Изменение параметров встречи №" . $vis["id"], $msg, 1, 0, 0, $vis["order_id"], $vis["client_id"], $vis["id"], 0); \Components\Classes\Author::enqueue_message_to_email($msg_id, array($vis["user_id"]), \Components\Entity\EmailNotificationType::TO_AUTHOR_ON_ORDER_CHANGE); } } }