예제 #1
0
파일: edit.php 프로젝트: yonkon/diplom
<?php

use Components\Entity\Meeting;
use Components\Entity\Order;
//Редактирование встречи
//      if (!user_has_right("vis_w")) {
//        page_reloadSec();
//      }
$GUI->mmenu->selected->selected->caption = "Редактирование встречи";
$vis_id = intval($_REQUEST["visit"]);
$vis = Meeting::find($vis_id);
if (!$vis) {
    $GUI->ERR("Встреча не найдена");
    page_reloadSec();
}
$kln = kln_get($vis["client_id"]);
$ypos = 0;
$frm = $GUI->Form("Редактирование встречи №" . $vis["id"], "600", "0");
$frm->OnExecute = "editvisit_exec";
$h = $frm->Hidden($vis["id"]);
$h->linkName = "vid";
$frm->Label("Клиент: <b>" . $kln["fio"] . "</b>", 10, $ypos += 10);
$b = $frm->Button("Инфо", 520, $ypos, 70);
$b->Event = 'window.open("?section=kln&subsection=2&edit=' . $kln["id"] . '");';
$ord = false;
if ($vis["order_id"]) {
    $ord = Order::find($vis["order_id"]);
    $frm->Label("Заказ: <b>" . $ord["id"] . ". " . utils_crop_text($ord["subject"], 110) . "</b>", 10, $ypos += 30);
    $b = $frm->Button("Инфо", 520, $ypos, 70);
    $b->Event = 'window.open("?section=ord&subsection=2&p=1&order=' . $ord["id"] . '");';
}
예제 #2
0
<?php

use Components\Entity\Meeting;
use Components\Entity\SubwayStation;
use Components\Exceptions\Exception;
if (!is_client_logged() || $_SESSION["frame"]["client"]["blocked"]) {
    echo 'Доступ запрещен.';
} else {
    $visits = Meeting::findBy(array('client_id' => $_SESSION["frame"]["client"]["id"]), array('date' => 'DESC'));
    function print_visits_table($vs)
    {
        $status_name = array("не проведена", "проведена", "отменена");
        print "<div style='height: 450px; overflow: auto;'>" . "<table cellpadding='4' cellspacing='1' width='100%'><tr class='header'>" . "<td>№</td><td>Дата</td><td>Время</td><td>Место</td><td>Статус</td><td>Описание</td></tr>";
        foreach ($vs as $v) {
            $place = "";
            if ($v["filial_id"] == -1) {
                $place = "курьер";
                if ($v["station_id"] > 0) {
                    try {
                        $subway_station = SubwayStation::find($v["station_id"]);
                        $place .= " (ст. " . $subway_station["name"] . ")";
                    } catch (Exception $e) {
                        $place = '';
                    }
                }
            } else {
                $place = "офис";
            }
            $ts = sprintf("%02d:%02d", floor($v["tm_start"] / 60), $v["tm_start"] % 60);
            $tf = sprintf("%02d:%02d", floor($v["tm_finish"] / 60), $v["tm_finish"] % 60);
            print "<tr><td>" . $v["id"] . "</td><td>" . date("d.m.Y", $v["date"]) . "</td>" . "<td>" . $ts . "-" . $tf . "</td>" . "<td>" . $place . "</td>" . "<td>" . $status_name[$v["status"]] . "</td>" . "<td>" . $v["about"] . "</td></tr>";
예제 #3
0
파일: functions.php 프로젝트: yonkon/diplom
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);
        }
    }
}