public function run()
 {
     $history = new tservices_order_history($this->order_id);
     $order_history = $history->getHistory();
     //собираем шаблон
     $this->render('t-service-order-history', array('history' => $order_history));
 }
Example #2
0
/**
 * Отклонение арбитража
 * @param int $order_id
 * @return \xajaxResponse
 */
function reservesArbitrageCancel($order_id)
{
    $objResponse = new xajaxResponse();
    //Получаем заказ и проверяем его
    if (!$order_id) {
        return $objResponse;
    }
    $orderModel = TServiceOrderModel::model();
    $orderModel->attributes(array('is_adm' => hasPermissions('tservices')));
    $order = $orderModel->getCard((int) $order_id, get_uid(false));
    if (!$order || !isset($order['reserve_data']['arbitrage_id'])) {
        return $objResponse;
    }
    //Удаляем арбитраж
    $reservesArbitrage = new ReservesArbitrage();
    $ok = $reservesArbitrage->removeArbitrage($order['reserve_data']['id']);
    if ($ok) {
        //Отправляем уведомления
        $reservesSmail = new ReservesSmail();
        $reservesSmail->onRemoveArbitrage($order);
        $history = new tservices_order_history($order_id);
        $history->reserveArbitrageCancel();
        //Новый статус отображаем без перезагрузки
        unset($order['reserve_data']['arbitrage_id']);
        $tserviceOrderStatusWidget = new TServiceOrderStatus();
        $tserviceOrderStatusWidget->setIsOwner(false);
        $tserviceOrderStatusWidget->setOrder($order);
        $tserviceOrderStatusWidget->init();
        ob_start();
        $tserviceOrderStatusWidget->run();
        $sHtml = ob_get_contents();
        ob_end_clean();
        $objResponse->assign('tservices_order_status_' . $order_id, 'innerHTML', $sHtml);
    }
    return $objResponse;
}
/**
 * Редактирование стоимости и сроков заказа ТУ
 * 
 * @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;
}