Example #1
0
 case 'oplata_kln':
 case 'cost_kln':
 case 'cost_auth':
 case 'author_paid':
 case 'company_paid':
 case 'about_mng':
     //коментарий
     $result[] = $value = $_GET['value'];
     break;
 case 'time_auth':
     $value = utils_cvt_date2i(str_replace('.', '-', $_GET['value']));
     $result[] = $_GET['value'];
     $author_info = db::get_single_row("\n              SELECT u.id, u.email, u.fio\n              FROM " . TABLE_USERS . " u\n              JOIN " . TABLE_ORDERS . " o ON o.author_id = u.id\n              WHERE o.id = " . db::input($_GET['order_id']) . "\n            ");
     if ($author_info) {
         //              Author::sendEmail($_GET['order_id'], array($author_info['id']), '№' . $_GET['order_id'] . ' ИЗМЕНИЛАСЬ ДАТА', '№' . $_GET['order_id'] . ' ИЗМЕНИЛАСЬ ДАТА на ' . $_GET['value']);
         $message_id = mls_Send("u" . $author_info['id'], "u" . $_SESSION["user"]["data"]["id"], '№' . $_GET['order_id'] . ' ИЗМЕНИЛАСЬ ДАТА', '№' . $_GET['order_id'] . ' ИЗМЕНИЛАСЬ ДАТА на ' . $_GET['value'], 1, 0);
         Author::enqueue_message_to_email($message_id, array($author_info['id']), \Components\Entity\EmailNotification::TO_AUTHOR_ON_ORDER_CHANGE);
     }
     break;
 case 'debt_to_author':
     $bDoUpdate = false;
     $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);
         Order::update($order_id, array('author_paid' => $order_info['cost_auth']));
         $data = array('change_date' => time(), 'change_user_id' => $_SESSION['user']['data']['id'], 'order_id' => $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['cost_auth'], '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']);
         OrderHistory::create($data);
Example #2
0
function sendmessage_exec($Frm, $Err)
{
    global $data_users;
    if (!$Err) {
        // Авторам запрещено писать клиентам
        $to_kln = $_SESSION["user"]["data"]["group_id"] != 6;
        //Декодирование адресатов
        $adrs = strtolower($Frm->GetNmValue("to"));
        $adrs = preg_replace("[^uk0-9;]", "", $adrs);
        $adrs = explode(";", $adrs);
        $adrs_k = array();
        $adrs_u = array();
        foreach ($adrs as $v) {
            $ind = intval(substr($v, 1));
            $s = substr($v, 0, 1);
            if ($to_kln && $s == 'k' && $ind) {
                $adrs_k[] = $ind;
            } else {
                if ($s == 'u' && $ind) {
                    $adrs_u[] = $ind;
                }
            }
        }
        if (!count($adrs_u) && !count($adrs_k)) {
            $Frm->_gui->informer->ERR("Неверно указан получатель");
            return;
        }
        foreach ($adrs_u as $v) {
            if (!isset($data_users[$v])) {
                $Frm->_gui->informer->ERR("Указан несуществующий получатель");
                return;
            }
        }
        $srok = 0;
        if (strlen($Frm->GetNmValue("date"))) {
            $d = explode("-", $Frm->GetNmValue("date"));
            $srok = mktime(0, 0, 0, $d[1], $d[0], $d[2]);
            if ($srok < mktime(0, 0, 0, date("n"), date("j"), date("Y"))) {
                $Frm->_gui->informer->ERR("Неверно указан срок ответа");
                return;
            }
        }
        $subj = $Frm->GetNmValueH("subj");
        $text = $Frm->GetNmValueH("txt");
        $prior = $Frm->GetNmValueI("prior");
        $parent_id = 0;
        if ($Frm->GetNmValue("ans")) {
            $parent_id = $Frm->GetNmValue("ans");
        }
        // Для каждого получателя формирутеся свой экземпляр
        foreach ($adrs_k as $a) {
            $message_id = mls_Send("k" . $a, "u" . $_SESSION["user"]["data"]["id"], $subj, $text, $prior, $srok, $parent_id, 0, $a, 0, 0);
            $client = \Components\Entity\Client::find($a);
            if (!empty($message_id) && !empty($client['email'])) {
                enqueue_message_to_email($message_id, $client['email'], EmailNotification::TO_RECEIVER_ON_MESSAGE_COMMON);
            }
        }
        foreach ($adrs_u as $a) {
            $message_id = mls_Send("u" . $a, "u" . $_SESSION["user"]["data"]["id"], $subj, $text, $prior, $srok, $parent_id, 0, 0, 0, 0);
            \Components\Classes\Author::enqueue_message_to_email($message_id, array($a), EmailNotification::TO_RECEIVER_ON_MESSAGE_COMMON);
        }
        $Frm->_gui->informer->OK("Сообщение создано");
        page_reloadToSec(3);
    }
}
Example #3
0
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();
    }
}
Example #4
0
use Components\Classes\db;
use Components\Entity\Message;
if (!is_client_logged() || $_SESSION["frame"]["client"]["blocked"]) {
    echo 'Доступ запрещен.';
} else {
    if (!empty($_REQUEST['new']) && !empty($_REQUEST['r'])) {
        try {
            $receiver = Employee::find($_REQUEST['r']);
        } catch (Exception $e) {
            redirect("?type=cabinet&messages");
        }
        if (!empty($_REQUEST['send'])) {
            if ($receiver['id'] != $_REQUEST['receiver']) {
                redirect("?type=cabinet&messages");
            }
            $message_id = mls_Send('u' . $receiver['id'], 'k' . $_SESSION['frame']['client']['id'], $_REQUEST['subject'], $_REQUEST['text'], 1, 0);
            \Components\Classes\Author::enqueue_message_to_email($message_id, array($receiver['id']), \Components\Entity\EmailNotificationType::TO_RECEIVER_ON_MESSAGE_COMMON);
            redirect("?type=cabinet&messages");
        }
        $receiver_full_name = db::get_single_value("SELECT sname FROM " . TABLE_ROLES . " WHERE id = " . $receiver['group_id']) . ' ' . $receiver['fio'];
        $subject = '';
        if (!empty($_REQUEST['o'])) {
            $subject = 'Вопрос по заказу №' . $_REQUEST['o'];
        }
        echo "<div style='margin-bottom: 5px'><a href='?type=cabinet&messages'><< к списку сообщений</a></div>";
        echo <<<HTML
<div id="cgui_form_0" class="cgui_form_box" style="width:600px; height: 270px; margin: 0 auto;">
<div class="cgui_form_capt">Новое сообщение</div>
<form class="cgui_form" method="post">
<input type="hidden" name="send" value="1"/>
<div class="cgui_form_text" style="width: 530px; height: 50px; margin-left:50px; margin-top: 10px;">
Example #5
0
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);
        }
    }
}