<?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/>
Вы можете перейти к заказу и обговорить условия сотрудничества, начать выполнение заказа или отказаться от него.
Esempio n. 2
0
            echo 'javascript:void(0)';
        } else {
            echo $url;
        }
        ?>
"
               class="b-pic__lnk b-pic__lnk_relative <?php 
        if ($el['is_blocked'] == 't') {
            ?>
 b-pic__lnk_cursor_default<?php 
        }
        ?>
">
                <div class="b-pic__price-box">
                    <?php 
        echo tservices_helper::cost_format($el['price'], true);
        ?>
                </div>
                <?php 
        if (isset($video['image']) && !empty($video['image'])) {
            ?>
                <div class="b-icon b-icon__play b-icon_absolute b-icon_bot_14 b-icon_left_4"></div>
                <?php 
        }
        ?>
                <?php 
        if ($el['file']) {
            ?>
                <img width="200" height="150" class="b-pic b-pic_margbot_10" src="<?php 
            echo tservices_helper::image_src($el['file'], $user->login);
            ?>
<?php

/**
 * Попап при заказе ТУ для заказчика.
 */
$title = reformat($title, 30, 0, 1);
$price = tservices_helper::cost_format($price, true, false, false);
$days = $days . ' ' . ending($days, 'день', 'дня', 'дней');
$show_popup = isset($_POST['popup']);
?>
<div id="tservices_orders_status_popup" class="b-shadow b-shadow_center b-shadow_width_520 <?php 
if (!$show_popup) {
    ?>
b-shadow_hide <?php 
}
?>
b-shadow__quick" style="display:block;">
    <div class="b-shadow__body b-shadow__body_pad_15_20">
        <h2 class="b-layout__title">
            Заказ услуги
        </h2>
        <div class="b-layout__txt b-layout__txt_padbot_10">
            Вы заказываете у исполнителя <b><?php 
echo $frl_fullname;
?>
</b><br/> 
            услугу &laquo;<b><?php 
echo $title;
?>
</b>&raquo;
            <br/>
                        ?>
">
                            Отзыв заказчика
                        </a>
                        <?php 
                    }
                    ?>
                    </div>
<?php 
                    //рендерим попап для подтверждения оплаты
                    if (!$is_list && $reserve->isFrlAllowFinance()) {
                        $ndfl = null;
                        if ($reserve->getNDFL()) {
                            $ndfl = tservices_helper::cost_format($reserve->getNDFL(), true, false, false);
                        }
                        $this->widget('ReservesPayoutPopup', array('price' => $reserve->getPrice(), 'options' => array('idx' => $order_id, 'hash' => $hash, 'is_feedback' => $is_frl_feedback, 'is_allow_feedback' => $is_allow_feedback, 'price' => $price, 'price_ndfl' => $ndfl, 'price_all' => tservices_helper::cost_format($reserve->getPriceWithOutNDFL(), true, false, false), 'fn_url' => $reserve->isAllowEditFinance($reserve_data['frl_id'], false) ? $fn_url : false)));
                    }
                }
            } else {
                ?>
                    <div class="b-layout__txt b-layout__txt_padbot_10 b-layout__txt_bold">
                        Заказ с прямой оплатой &mdash; заказ закрыт
                    </div>
                    
                    <div class="b-layout__txt b-layout__txt_padbot_5">
                        Заказчик завершил заказ, спасибо за сотрудничество!
                        <?php 
                if (!$is_emp_feedback && $is_allow_feedback) {
                    ?>
                            <br />Не забудьте до <?php 
                    echo $date_feedback;
Esempio n. 5
0
                                            <?php 
                echo reformat($theme['sbr_name'], 40, 0, 1);
                ?>
                                    </a> 
                                    <?php 
            } else {
                ?>
                                        <b><?php 
                echo reformat(htmlspecialchars($theme['sbr_name']), 40, 0, 1);
                ?>
</b>
                                    <?php 
            }
            ?>
                                на сумму <?php 
            echo tservices_helper::cost_format($theme['num'], true, false, false);
            ?>
                            <?php 
        } elseif ($theme['opinion_type'] == 3) {
            ?>
                                <?php 
            if ($is_emp) {
                ?>
за проект<?php 
            } else {
                ?>
за выполнение проекта<?php 
            }
            ?>
                                <?php 
            if ($theme['kind'] == 9) {
 /**
  * Возвращает общую сумму резерва за указанную дату
  * 
  * @return boolean
  */
 public function getSummary()
 {
     $filterData = $this->getFilterData();
     if (!isset($filterData['date_reserve']) || !$filterData['date_reserve']) {
         return false;
     }
     return tservices_helper::cost_format($this->getReservesListPrice(), false);
 }
Esempio n. 7
0
<?php

$smail->subject = "Подозрительная сделка на FL.ru";
$order_url = $GLOBALS['host'] . tservices_helper::getOrderCardUrl($order_id);
if ($date_reserve) {
    $date_reserve = date('d.m.Y H:i:s', strtotime($date_reserve));
}
$date_payout = date('d.m.Y H:i:s');
$price = tservices_helper::cost_format($price);
?>
Номер сделки: <a href="<?php 
echo $order_url;
?>
"><?php 
echo $num;
?>
</a><br/>
Логин и ФИО Заказчика: <?php 
echo $emp;
?>
<br/>
Логин и ФИО Исполнителя: <?php 
echo $frl;
?>
<br/>
Invoice ID: <?php 
echo $invoiceId;
?>
<br/>
Дата и время резервирования: <?php 
echo $date_reserve;
<?php

/**
 * П-21 - Исполнителю об успешно зарезервированной сумме
 */
$smail->subject = "Сумма по заказу «{$order['title']}» зарезервирована";
$title = reformat(htmlspecialchars($order['title']), 30, 0, 1);
$order_url = $GLOBALS['host'] . tservices_helper::getOrderCardUrl($order['id']);
$reserve_price = tservices_helper::cost_format($order['reserve_data']['price'], true, false, false);
?>
Заказчик зарезервировал сумму <?php 
echo $reserve_price;
?>
 в заказе &laquo;<a href="<?php 
echo $order_url;
?>
"><?php 
echo $title;
?>
</a>&raquo;. Далее вы можете начать выполнение работы по заказу.
Успешного вам сотрудничества!

<a href="<?php 
echo $order_url;
?>
">Перейти к заказу</a>
<?php

/**
 * Попап при заказе ТУ для заказчика c интерфейсом резерва по "новой БС".
 */
$title = reformat($title, 30, 0, 1);
$days = $days . ' ' . ending($days, 'день', 'дня', 'дней');
$priceFormated = tservices_helper::cost_format($price, true, false, false);
$priceWithTaxFormated = tservices_helper::cost_format($priceWithTax, true, false, false);
$show_popup = isset($_POST['popup']);
?>
<script type="text/javascript">
    var RESERVE_ALL_TAX = <?php 
echo $reserveAllTaxJSON;
?>
;
</script>
<div id="tservices_orders_status_popup" class="b-shadow b-shadow_center b-shadow_width_520 <?php 
if (!$show_popup) {
    ?>
b-shadow_hide <?php 
}
?>
b-shadow__quick" style="display:block;">
    <div class="b-shadow__body b-shadow__body_pad_20">
        <h2 class="b-layout__title">
            Заказ услуги
        </h2>
        <div class="b-layout__txt b-layout__txt_padbot_20">
            Для заказа услуги вам необходимо выбрать способ оплаты работы (с резервированием суммы или без него).
        </div>
Esempio n. 10
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;
/**
 * Редактирование стоимости и сроков заказа ТУ
 * 
 * @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. 12
0
    <div class="b-layout__txt b-layout__txt_lineheight_1 b-layout__txt_padbot_20 b-layout_padbot_10_ipad">
        Исполнитель: 
        <a class="b-layout__link b-layout__link_bold b-layout__link_color_000" href="/users/<?php 
        echo $order['login'];
        ?>
/"><?php 
        echo "{$order['uname']} {$order['usurname']} [{$order['login']}]";
        ?>
</a> 
        <?php 
        echo view_mark_user2($order);
        ?>
    </div>
    <div class="b-layout__txt b-layout__txt_padbot_10 b-page__ipad b-page__iphone">
        Стоимость: <span class="b-layout__bold"><?php 
        echo tservices_helper::cost_format($order['order_price'], true);
        ?>
</span><br/>
        Срок: <span class="b-layout__bold"><?php 
        echo tservices_helper::days_format($order['order_days']);
        ?>
</span>
    </div>
    <div class="b-layout b-layout_float_right b-layout_width_240 b-page__desktop">
        <div class="b-layout__txt b-layout__txt_right"><a class="b-layout__link" href="<?php 
        echo tservices_helper::getOrderCardUrl($order['id']);
        ?>
#messages">Переписка в заказе</a><br>(<?php 
        if ($count['all']) {
            echo $count['all'] . ' ' . ending($count['all'], 'сообщение', 'сообщения', 'сообщений');
            if ($count['new']) {
 /**
  * Сумма возвращена заказчику
  * 
  * @param type $price
  */
 public function reservePayback($price)
 {
     $this->addEvent(sprintf(self::MES_RESERVE_PAYBACK, tservices_helper::cost_format($price, true, false, false)));
 }
Esempio n. 14
0
" type="checkbox" value="1" name="is_express" class="b-check__input __tservice_on_express" id="is_express">
               </td>
               <td class="b-layout__td b-layout__td_padleft_15 b-layout__td_padtb_15 b-layout__td_width_full b-layout__td_line-height_1">
                   <label class="b-check__label b-check__label_ptsans" for="is_express">
                       Могу выполнить срочно за <strong><?php 
    echo $data['express_days'];
    ?>
 <?php 
    echo ending($data['express_days'], 'день', 'дня', 'дней');
    ?>
</strong>
                   </label>
               </td>
               <td class="b-layout__td b-layout__td_padleft_15 b-layout__td_padright_35 b-layout__td_padtb_15 b-layout__td_nowrap b-layout__td_right b-layout__td_line-height_1 b-post__price_ptsans">
                   <?php 
    echo tservices_helper::cost_format($data['express_price'], true, true);
    ?>
               </td>
          </tr>
   </table>
   <?php 
}
?>
 
        <input type="hidden" name="tu_id" id="tu_id" value="<?php 
echo $data['id'];
?>
" />
    </form>
    
<div class="b-layout__side <?php 
Esempio n. 15
0
                       <?php 
    } else {
        ?>
                       onclick="TServices_Order_Auth.showPopup();" href="javascript:void(0)"
                       <?php 
    }
    ?>
                       class="b-button b-button_flat <?php 
    if (true) {
        ?>
b-button_flat_green<?php 
    } else {
        ?>
b-button_flat_grey b-button_flat_grey_pad_10_20 b-button_disabled i-shadow __tservice_emp_only<?php 
    }
    ?>
">
                      Заказать за <span class="__tservice_price" data-price="<?php 
    echo $data['price'];
    ?>
"><?php 
    echo tservices_helper::cost_format($data['price'], false);
    ?>
</span> p.
                   </a>
                   <?php 
}
?>
               </td>
           </tr>
       </table>
Esempio n. 16
0
 /**
  * Уведомить участников сделки об успешном резервировании средств.
  * 
  * @return boolean
  */
 public function _onReserveOrder()
 {
     if (empty($this->order)) {
         return FALSE;
     }
     $this->is_emp = true;
     $result_frl = $this->sendFromTemplate('reserve_order');
     $this->is_emp = false;
     $result_emp = $this->sendFromTemplate('reserve_order');
     $price_txt = tservices_helper::cost_format($this->order['reserve_data']['price'], false, false, false);
     ReservesSms::model($this->order['emp_id'])->sendByStatus(ReservesSms::STATUS_RESERVE_DONE_EMP, $price_txt, $this->order['id']);
     ReservesSms::model($this->order['frl_id'])->sendByStatus(ReservesSms::STATUS_RESERVE_DONE_FRL, $price_txt, $this->order['id']);
     return $result_frl['ret'] && $result_emp['ret'];
 }