/**
  * Сохранить историю заказа
  * 
  * @param type $new_order
  * @param type $old_order
  */
 public function save($new_order, $old_order = null)
 {
     if (!$old_order) {
         $this->addEvent(sprintf(self::MES_CREATE, htmlspecialchars($new_order['title']), tservices_helper::days_format($new_order['order_days']), tservices_helper::cost_format($new_order['order_price'], true), tservices_helper::isOrderReserve($new_order['pay_type']) ? self::TEXT_RESERVE : self::TEXT_NORESERVE));
     } else {
         if ($old_order['order_price'] != $new_order['order_price']) {
             $this->addEvent(sprintf(self::MES_UPD_PRICE, tservices_helper::cost_format($old_order['order_price'], true), tservices_helper::cost_format($new_order['order_price'], true)));
         }
         if ($old_order['order_days'] != $new_order['order_days']) {
             $this->addEvent(sprintf(self::MES_UPD_DAYS, tservices_helper::days_format($old_order['order_days']), tservices_helper::days_format($new_order['order_days'])));
         }
         if ($old_order['pay_type'] != $new_order['pay_type']) {
             $is_reserve = tservices_helper::isOrderReserve($new_order['pay_type']);
             $str_from = $is_reserve ? self::TEXT_NORESERVE : self::TEXT_RESERVE;
             $str_to = !$is_reserve ? self::TEXT_NORESERVE : self::TEXT_RESERVE;
             $this->addEvent(sprintf(self::MES_UPD_RESERVE, $str_from, $str_to));
         }
     }
 }
<?php

/**
 * Если создан заказ, предложен исполнителю, и в течение суток от него не было никаких действий 
 * (отказа или подтверждения), то отправляем исполнителю почтовое уведомление:.
 */
$title = reformat(htmlspecialchars($order['title']), 30, 0, 1);
$order_url = $GLOBALS['host'] . tservices_helper::getOrderCardUrl($order['id']);
$order_price = tservices_helper::cost_format($order['order_price'], true, false, false);
$order_days = tservices_helper::days_format($order['order_days']);
$accept_url = $GLOBALS['host'] . tservices_helper::getOrderStatusUrl($order['id'], 'accept', $order['frl_id']);
$decline_url = $GLOBALS['host'] . tservices_helper::getOrderStatusUrl($order['id'], 'decline', $order['frl_id']);
?>
Напоминаем, что вчера Заказчик <?php 
echo $emp_fullname;
?>
 предложил вам заказ на услугу 
&laquo;<a href="<?php 
echo $order_url;
?>
"><?php 
echo $title;
?>
</a>&raquo; на сумму <?php 
echo $order_price;
?>
 со сроком выполнения <?php 
echo $order_days;
?>
.<br/>
Вы можете перейти к заказу и обговорить условия сотрудничества, начать выполнение заказа или отказаться от него.
 public function getSrcDays()
 {
     return tservices_helper::days_format(@$this->reserve_data['order_days']);
 }
/**
 * Редактирование стоимости и сроков заказа ТУ
 * 
 * @param type $order_id
 * @param type $price
 * @param type $days
 * 
 * @return \xajaxResponse
 */
function tservicesOrdersSetPrice($order_id, $price, $days, $paytype)
{
    $objResponse =& new xajaxResponse();
    $uid = get_uid(false);
    $price = intval($price);
    $days = intval($days);
    $paytype = intval($paytype);
    //Валидация входных параметров
    $validator = new validation();
    $valid = $validator->is_natural_no_zero($price) && $validator->greater_than_equal_to($price, 300);
    $valid = $valid && $validator->is_natural_no_zero($days) && $validator->numeric_interval($days, 1, 730);
    $valid = $valid && in_array($valid, array(TServiceOrderModel::PAYTYPE_DEFAULT, TServiceOrderModel::PAYTYPE_RESERVE));
    if (!$valid) {
        return $objResponse;
    }
    //Получение заказа
    $orderModel = TServiceOrderModel::model();
    $order_id = intval($order_id);
    $old_order = $orderModel->getCard($order_id, $uid);
    if (!$old_order) {
        return $objResponse;
    }
    //Валидация возможности изменений
    $is_new_status = $old_order['status'] == TServiceOrderModel::STATUS_NEW;
    $is_owner = $old_order['emp_id'] == $uid;
    $is_reserve_accepted = isset($old_order['reserve_data']);
    if (!($is_new_status && $is_owner && !$is_reserve_accepted)) {
        return $objResponse;
    }
    //Проверка возможности смены типа оплаты
    $is_reserve = tservices_helper::isOrderReserve($paytype);
    if ($is_reserve && !tservices_helper::isAllowOrderReserve($old_order['category_id'])) {
        return $objResponse;
    }
    if (!$is_reserve) {
        $paytype = TServiceOrderModel::PAYTYPE_DEFAULT;
    }
    $data = array('order_price' => $price, 'order_days' => $days, 'pay_type' => $paytype);
    //Меняем
    if ($orderModel->edit($order_id, $data, $old_order['tax'])) {
        $order = $old_order;
        $order['order_price'] = $price;
        $order['order_days'] = $days;
        $order['pay_type'] = $paytype;
        //Сохранить действие в историю
        $history = new tservices_order_history($order_id);
        $history->save($order, $old_order);
        //Уведомление на почту
        $tservices_smail = new tservices_smail();
        $tservices_smail->changeOrder2($order, $old_order);
        //Обновляем интерфейс цен и сроков
        $objResponse->script("\$('tu-container-price').set('html', '" . tservices_helper::cost_format($price) . "');");
        $objResponse->script("\$('tu-container-days').set('html', '" . tservices_helper::days_format($days) . "');");
        $objResponse->script("\$('tu_edit_budjet_price').set('value', '" . $price . "');");
        $objResponse->script("\$('tu_edit_budjet_days').set('value', '" . $days . "');");
        //Обновляем сообщение статуса, т.к. вторая сторона тоже могла его изменить
        $tserviceOrderStatusWidget = new TServiceOrderStatus();
        $tserviceOrderStatusWidget->setIsEmp(true);
        $tserviceOrderStatusWidget->setOrder($order);
        $tserviceOrderStatusWidget->init();
        ob_start();
        $tserviceOrderStatusWidget->run();
        $statusHtml = ob_get_contents();
        ob_end_clean();
        $objResponse->assign('tservices_order_status_' . $order_id, 'innerHTML', $statusHtml);
        $objResponse->script("\n            \$('tu-container-price').getParent()\n            .removeClass('b-layout__link_bordbot_dot_" . ($is_reserve ? '000' : 'ee1d16') . "')\n            .addClass('b-layout__link_bordbot_dot_" . ($is_reserve ? 'ee1d16' : '000') . "');\n            \$('tu-container-price').getPrevious('span').set('html','" . ($is_reserve ? 'Бюджет:' : 'Стоимость:') . "');    \n        ");
    }
    return $objResponse;
}
Esempio n. 5
0
<?php

/**
 * Часть шаблона письма уведомление исполнителю об изменении заказа
 * содержащая изменения в заказе
 */
$templ = '%s >> %s';
$order_price_txt = isset($order['old_order_price']) ? sprintf($templ, tservices_helper::cost_format($order['old_order_price'], false), tservices_helper::cost_format($order['order_price'], true, false, false)) : tservices_helper::cost_format($order['order_price'], true, false, false);
$order_days_txt = isset($order['old_order_days']) ? sprintf($templ, $order['old_order_days'], tservices_helper::days_format($order['order_days'])) : tservices_helper::days_format($order['order_days']);
$is_new_reserve = tservices_helper::isOrderReserve($order['pay_type']);
$order_paytype_txt = $is_new_reserve ? "С резервированием" : "Без резервирования";
if (isset($order['old_pay_type'])) {
    $is_old_reserve = tservices_helper::isOrderReserve($order['old_pay_type']);
    $from_txt = $is_old_reserve ? "С резервированием" : "Без резервирования";
    $to_txt = !$is_old_reserve ? "С резервированием" : "Без резервирования";
    $order_paytype_txt = sprintf($templ, $from_txt, $to_txt);
}
?>
Бюджет: <?php 
echo $order_price_txt . PHP_EOL;
?>
Срок: <?php 
echo $order_days_txt . PHP_EOL;
?>
Тип оплаты: <?php 
echo $order_paytype_txt . PHP_EOL;
 public function daytext($value)
 {
     return tservices_helper::days_format($value);
 }