Exemple #1
0
function addvisit_2_exec($Frm, $Err)
{
    if (!$Err) {
        if (!isset($_SESSION["make_visit_tmp"]["klient"])) {
            $Frm->_gui->ERR("Клиент не определен");
            return;
        }
        $kln = kln_get($_SESSION["make_visit_tmp"]["klient"]);
        if (!$kln) {
            $Frm->_gui->ERR("Клиент не определен");
            return;
        }
        $ord_id = 0;
        if (isset($_SESSION["make_visit_tmp"]["order"]) && intval($_SESSION["make_visit_tmp"]["order"])) {
            $ord_id = intval($_SESSION["make_visit_tmp"]["order"]);
            if (!Order::find($ord_id)) {
                $Frm->_gui->ERR("Заказ не найден");
                return;
            }
        }
        // Проверить время
        $t1 = $Frm->GetNmValue("start");
        $t2 = $Frm->GetNmValue("finish");
        if ($t2 <= $t1) {
            $Frm->_gui->ERR("Некорректно задано время");
            return;
        }
        $dt = explode("-", $_SESSION["make_visit_tmp"]["date"]);
        $dt = mktime(0, 0, 0, $dt[1], $dt[0], $dt[2]);
        $fil = intval($_SESSION["make_visit_tmp"]["filial_id"]);
        if ($fil <= 0) {
            $Frm->_gui->ERR("Некорректный филиал");
            return false;
        }
        $courier_id = $Frm->GetNmValueI("user");
        $visits = db::get_single_value("SELECT COUNT(*) FROM " . TABLE_VISITS . " WHERE user_id = " . db::input($courier_id) . " AND tm_start <= " . db::input($t1) . " AND tm_finish > " . db::input($t1) . " AND date = " . db::input($dt));
        if ($visits) {
            $Frm->_gui->ERR("На это время уже назначена встреча");
            return false;
        }
        $vis_id = Meeting::create(array("user_id" => $courier_id, "date" => $dt, "status" => 0, "tm_start" => $t1, "tm_finish" => $t2, "client_id" => $kln["id"], "order_id" => $ord_id, "filial_id" => $fil, "created" => time(), "creator_id" => $_SESSION["user"]["data"]["id"], "summa" => $_SESSION["make_visit_tmp"]["summa1"], "about" => $_SESSION["make_visit_tmp"]["about"], "opisanie_klienta" => $Frm->GetNmValueH("opisanie_klienta"), "opisanie_pyti" => $Frm->GetNmValueH("opisanie_pyti"), "station_id" => $Frm->GetNmValueI("station")));
        $Frm->_gui->OK("Встреча создана");
        // Создаем сообщение при необходимости
        if ($courier_id != $_SESSION["user"]["data"]["id"]) {
            $prior = 1;
            $msg_id = mls_Send("u" . $courier_id, "u" . $_SESSION["user"]["data"]["id"], "Новая встреча №" . $vis_id, "Вы проводите встречу " . date("d.m.Y", $dt) . " c " . utils_cvt_i2times($t1) . " по " . utils_cvt_i2times($t2) . "." . " <a href='?section=vis&subsection=2&visit=" . $vis_id . "'>Подробнее...</a><br>Внимание! Ответ на данное сообщение обязателен!", $prior, 0, 0, 0, 0, $vis_id, 0);
            if ($msg_id) {
                \Components\Classes\Author::enqueue_message_to_email($msg_id, array($courier_id), \Components\Entity\EmailNotificationType::TO_CLIENT_ON_ORDER_CHANGE);
                Meeting::update($vis_id, array('uved_umsg' => $msg_id));
            }
        }
        page_reloadToSec("2");
    }
}