.<?php 
                        }
                        ?>
               
                        <br/>Для перехода к процессу выплаты укажите, пожалуйста, корректные данные.
                    </div>
                    <?php 
                    }
                    ?>
                    <div class="b-buttons b-buttons_padbot_20">
                    <?php 
                    if ($reserve->isFrlAllowFinance()) {
                        ?>
                        <a class="b-button b-button_flat b-button_flat_green" 
                           data-popup="<?php 
                        echo ReservesPayoutPopup::getPopupId($order_id);
                        ?>
" 
                           data-url="<?php 
                        echo $order_url;
                        ?>
" 
                           href="javascript:void(0);">
                            <?php 
                        if ($is_reserve_error) {
                            ?>
                                Повторно подтвердить выплату
                            <?php 
                        } else {
                            ?>
                                Подтвердить выплату суммы
Example #2
0
/**
 * Выплата по резерву
 * 
 * @todo: пока только приспособлено только для заказа
 * но возможна доработка при работе резерва с любым другим объектом
 * 
 * @param type $type - тип способа выплаты
 * @param type $params - данные
 * @return \xajaxResponse
 */
function reservesPayoutProcess($type, $params)
{
    $objResponse =& new xajaxResponse();
    $orderModel = TServiceOrderModel::model();
    $uid = get_uid(false);
    $order_id = intval(@$params['oid']);
    $hash = @$params['hash'];
    $test_hash = md5(TServiceOrderModel::SOLT . $order_id);
    $error = false;
    try {
        if ($uid <= 0 || $hash !== $test_hash || !in_array($type, ReservesPayoutPopup::$payment_list)) {
            throw new Exception();
        }
        $orderData = $orderModel->getCard($order_id, $uid);
        if (!$orderData || !$orderModel->isStatusEmpClose() || !$orderModel->isReserve()) {
            throw new Exception();
        }
        $reserveInstance = $orderModel->getReserve();
        if (!$reserveInstance->isAllowPayout($uid) || !$reserveInstance->isFrlAllowFinance()) {
            throw new Exception();
        }
        $history = new tservices_order_history($order_id);
        $reservesPayout = new ReservesPayout();
        $status = $reservesPayout->requestPayout($reserveInstance, $type);
        $is_done = $reserveInstance->changePayStatus($status);
        if ($is_done) {
            //@todo: передача данных устаревший способ но оставляем для поддержки пока
            //посностью не передем на обьекты
            $orderData['reserve_data'] = $reserveInstance->getReserveData();
            //@todo: правильный способ - нужно оперировать обьектами
            $orderData['reserve'] = $reserveInstance;
            try {
                $doc = new DocGenReserves($orderData);
                $doc->generateInformLetterFRL();
            } catch (Exception $e) {
                require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/log.php';
                $log = new log('reserves_docs/' . SERVER . '-%d%m%Y.log', 'a', "%d.%m.%Y %H:%M:%S: ");
                $log->writeln(sprintf("Order Id = %s: %s", $orderData['id'], iconv('CP1251', 'UTF-8', $e->getMessage())));
                //$sHtml = tservices_helper::getMessage($e->getMessage(),'error');
                //$objResponse->call('TServices_Order.showBeforeStatus', $order_id, $sHtml);
            }
        }
        $feedback = @$params['feedback'];
        $is_feedback = !empty($feedback);
        $fbtype = @$params['fbtype'];
        //Сохраняем отзыв если он есть
        if ($is_feedback && !$orderModel->isFrlFeedback()) {
            $is_emp = false;
            $orderFeedbackModel = new TServiceOrderFeedbackModel();
            $is_valid = $orderFeedbackModel->attributes(array('feedback' => $feedback, 'rating' => $fbtype, 'is_emp' => $is_emp, 'user_id' => $uid));
            //Тут обрабатывать ошибки при валидации
            if (!$is_valid || !$orderFeedbackModel->addFeedback($order_id)) {
                return $objResponse;
            }
            $attributes = $orderFeedbackModel->attributes();
            $orderData['frl_feedback'] = $attributes['feedback'];
            $orderData['frl_rating'] = $attributes['rating'];
            //Сохранить действие в историю
            $history->saveFeedback($is_emp, $fbtype);
            //Чистим кеш кол-во новых сообщений юзера после написания комментария
            $orderModel->clearCountEvent($orderData["emp_id"]);
        }
        $tserviceOrderStatusWidget = new TServiceOrderStatus();
        $tserviceOrderStatusWidget->setIsEmp(false);
        $tserviceOrderStatusWidget->setOrder($orderData);
        $tserviceOrderStatusWidget->init();
        ob_start();
        $tserviceOrderStatusWidget->run();
        $sHtml = ob_get_contents();
        ob_end_clean();
        $objResponse->assign('tservices_order_status_' . $order_id, 'innerHTML', $sHtml);
        $objResponse->script('window.order_feedback_factory = new OrderFeedbackFactory();');
    } catch (Exception $e) {
        $error = $e->getMessage();
    }
    if ($error !== false) {
        //Если есть ошибки то статус не обновляется и
        //в окошке попапа можно их показать или просто закрыть его
        $idx = ReservesPayoutPopup::getPopupId($order_id);
        $objResponse->script("\n            var rp = window.reserves_payout_factory.getReservesPayout('{$idx}');\n            if(rp) " . (!empty($error) ? "rp.show_error('{$error}');" : "rp.close_popup();\n        "));
    } else {
        //иначе статус обновился и нужно обновить JS события
        $objResponse->script("\n            Bar_Ext.popuper();\n            window.reserves_payout_factory = new ReservesPayoutFactory();\n        ");
    }
    return $objResponse;
}
Example #3
0
<?php

/**
 * Шаблон popup-окна подтверждения выплаты средств
 */
//$fn_url = sprintf("/users/%s/setup/finance/", $_SESSION['login']);
?>
<div id="<?php 
echo ReservesPayoutPopup::getPopupId($idx);
?>
" 
     data-reserves-payout="true" 
     class="b-shadow b-shadow_block b-shadow_center b-shadow_width_520 <?php 
echo !@$is_show ? 'b-shadow_hide' : '';
?>
 b-shadow__quick">
    <div class="b-shadow__body b-shadow__body_pad_15_20">
        <h2 class="b-layout__title">
            Выплата суммы
        </h2>

        <div class="b-layout <?php 
//b-layout_waiting
?>
">

            <?php 
if ($is_feedback || !$is_allow_feedback) {
    ?>
                <form action="" method="post">
                    <input type="hidden" name="oid" value="<?php