<?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; ?> предложил вам заказ на услугу «<a href="<?php echo $order_url; ?> "><?php echo $title; ?> </a>» на сумму <?php echo $order_price; ?> со сроком выполнения <?php echo $order_days; ?> .<br/> Вы можете перейти к заказу и обговорить условия сотрудничества, начать выполнение заказа или отказаться от него.
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/> услугу «<b><?php echo $title; ?> </b>» <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"> Заказ с прямой оплатой — заказ закрыт </div> <div class="b-layout__txt b-layout__txt_padbot_5"> Заказчик завершил заказ, спасибо за сотрудничество! <?php if (!$is_emp_feedback && $is_allow_feedback) { ?> <br />Не забудьте до <?php echo $date_feedback;
<?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); }
<?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; ?> в заказе «<a href="<?php echo $order_url; ?> "><?php echo $title; ?> </a>». Далее вы можете начать выполнение работы по заказу. Успешного вам сотрудничества! <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>
<?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; }
<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))); }
" 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
<?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>
/** * Уведомить участников сделки об успешном резервировании средств. * * @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']; }