public function init()
 {
     $this->setBuyPopupTemplate('buy_popup_reserve.tpl.php');
     $uid = $this->uid;
     $reserve_id = $this->reserve_id;
     $reqvs = ReservesHelper::getInstance()->getUserReqvs($uid);
     $form_type = $reqvs['form_type'];
     $rez_type = $reqvs['rez_type'];
     $form_id = $this->ID . '_form';
     $rez_id = $this->ID . '_rez';
     $form_name = $form_type == sbr::FT_PHYS ? 'физическое лицо' : 'юридическое лицо';
     //$rez_name = $rez_type == sbr::RT_RU ? 'резидент РФ' : 'нерезидент РФ';
     $rez_name = sbr::getRezTypeText($rez_type);
     $options = array('popup_title_class_bg' => 'b-fon_bg_po', 'popup_title_class_icon' => 'b-icon__po', 'popup_title' => 'Резервирование бюджета', 'popup_subtitle' => '', 'items_title' => 'Сумма оплаты', 'popup_id' => $this->ID, 'unic_name' => $this->UNIC_NAME, 'form_name' => $form_name, 'rez_name' => $rez_name, 'items' => array(array('value' => $reserve_id, 'name' => $form_id), array('value' => $reserve_id, 'name' => $rez_id)), 'payments_title' => 'Способ резервирования', 'payments_exclude' => $this->payments_exclude[$form_type]);
     if ($form_type == sbr::FT_JURI) {
         $options['items'][] = array('value' => 1, 'name' => 'is_reserve_send_docs');
     }
     if ($this->reserveInstance->getReservePrice() >= self::MAX_PAYMEN_WM) {
         $options['payments_exclude'][] = self::PAYMENT_TYPE_WM;
     }
     if ($this->reserveInstance->getReservePrice() >= parent::MAX_PAYMENT_ALFA) {
         $options['payments_exclude'][] = self::PAYMENT_TYPE_ALFACLICK;
     }
     if ($this->reserveInstance->getReservePrice() >= parent::MAX_PAYMENT_SB) {
         $options['payments_exclude'][] = self::PAYMENT_TYPE_SBERBANK;
     }
     $options['payments_exclude'][] = self::PAYMENT_TYPE_PLATIPOTOM;
     parent::init($options);
 }
 /**
  * Возвращает реквизиты заказчика из слепков
  * @return type
  */
 public function getReqv($emp_id = 0)
 {
     $fields = $this->db()->val("SELECT fields FROM {$this->TABLE} WHERE reserve_id = ?i", $this->reserve_id);
     if ($fields) {
         $reqv = mb_unserialize($fields);
     } elseif ($emp_id) {
         $reqvs = ReservesHelper::getInstance()->getUserReqvs($emp_id);
         if ($reqvs && $reqvs['form_type']) {
             $reqv = $reqvs[$reqvs['form_type']];
             $reqv['form_type'] = $reqvs['form_type'];
             $reqv['rez_type'] = $reqvs['rez_type'];
         }
     }
     return $reqv;
 }
 public function init()
 {
     global $js_file;
     $js_file['reserves_payout'] = 'reserves/reserves_payout.js';
     $uid = get_uid(false);
     $reqvs = ReservesHelper::getInstance()->getUserReqvs($uid);
     $form_type = $reqvs['form_type'];
     $rez_type = $reqvs['rez_type'];
     $reqv = $reqvs[$form_type];
     $payments = array(self::PAYMENT_TYPE_CARD => array('title' => 'Пластиковые<br/>карты', 'class' => 'b-button__pm_card', 'num' => @$reqv['el_ccard'], 'wait' => 'Идет выплата суммы.'), self::PAYMENT_TYPE_YA => array('title' => 'Яндекс.Деньги', 'class' => 'b-button__pm_yd', 'num' => @$reqv['el_yd'], 'wait' => 'Идет выплата суммы.'), self::PAYMENT_TYPE_BANK => array('title' => 'Банковский<br/>перевод', 'class' => 'b-button__pm_bank', 'num' => @$reqv['bank_rs'], 'wait' => 'Идет выплата суммы.'), self::PAYMENT_TYPE_RS => array('title' => 'Банковский<br/>перевод', 'class' => 'b-button__pm_bank', 'num' => @$reqv['bank_rs'], 'wait' => 'Идет выплата суммы.'));
     $form_list = array(sbr::FT_PHYS => 'физическое лицо', sbr::FT_JURI => 'юридическое лицо');
     $this->options['form_txt'] = @$form_list[$form_type];
     $this->options['rez_txt'] = sbr::getRezTypeText($rez_type);
     $allowed_payments = ReservesHelper::getInstance()->getAllowedPayoutTypes($form_type, $rez_type, $this->price);
     $this->options['payments'] = array_intersect_key($payments, $allowed_payments);
     $popup_id = self::getPopupId($this->options['idx']);
     $this->options['is_show'] = __paramInit('bool', $popup_id, $popup_id, false);
 }
/**
 * Выставяем счет оплаты по безналу для резерва.
 * 
 * @param string $type - тип платежа (тут всегда bank)
 * @param array  $data
 *
 * @return \xajaxResponse
 */
function quickPaymentReserveBank($type, $data)
{
    $objResponse =& new xajaxResponse();
    $uid = get_uid(false);
    if ($uid <= 0) {
        return $objResponse;
    }
    //Проверка на юрика
    $reqvs = ReservesHelper::getInstance()->getUserReqvs($uid);
    if ($reqvs['form_type'] != sbr::FT_JURI) {
        return $objResponse;
    }
    $reqv = $reqvs[$reqvs['form_type']];
    //Проверка наличия резерва средств
    $reserve_id = intval(@$data['quick_payment_reserve_form']);
    $reserveInstance = ReservesModelFactory::getInstanceById($reserve_id);
    if (!$reserveInstance) {
        return $objResponse;
    }
    $reserve_data = $reserveInstance->getReserveData();
    if ($reserve_data['emp_id'] != $uid || !$reserveInstance->isEmpAllowFinance()) {
        return $objResponse;
    }
    //Если уже был платеж то обновляем страницу
    if (!$reserveInstance->isStatusNew()) {
        $objResponse->script('window.location.reload()');
        return $objResponse;
    }
    $reqv['is_send_docs'] = @$data['is_reserve_send_docs'] == 1;
    $file = $reserveInstance->getReservesBank()->generateInvoice2($reqv, true);
    if (!$file) {
        $objResponse->script("\n            var qp_reserve = quick_payment_factory.getQuickPayment('reserve');\n            if(qp_reserve) qp_reserve.show_error('Не удалось создать файл счета. Попробуйте еще раз.');\n        ");
        return $objResponse;
    }
    $success_text = 'Для резервирования суммы на сайте вам был сформирован ' . '<a href="' . WDCPREFIX . '/' . $file->path . $file->name . '" target="_blank">счет на оплату</a>.<br />' . 'Счет также доступен вам в заказе в списке загруженных документов.';
    $objResponse->script("\n        var qp_reserve = quick_payment_factory.getQuickPayment('reserve');\n        if(qp_reserve) qp_reserve.show_success('" . $success_text . "');\n    ");
    return $objResponse;
}
 protected function getEmpAddress()
 {
     $reqv = ReservesHelper::getInstance()->getUserReqvs($this->order['emp_id']);
     return @$reqv[2]['address'];
 }
                        </a>
                        <?php 
                    }
                    ?>
                    </div>
<?php 
                    if (!$is_frl_feedback && $is_allow_feedback) {
                        $this->widget('TServiceOrderFeedback', array('data' => array('idx' => $order_id, 'hash' => $hash, 'pay_type' => $pay_type, 'rating' => $emp_rating, 'is_close' => true)));
                    }
                } elseif ($reserve->isStatusPayInprogress()) {
                    //------------------------------------------------------------------------------
                    // Заказчик закрыл заказ с отзывом или без.
                    // Статус для исполнителя по схеме резерва средств.
                    // В процессе выплаты. Ожидание ответа сервиса
                    //------------------------------------------------------------------------------
                    $pay_type_txt = ReservesHelper::getInstance()->getPayoutType($reserve_data['id']);
                    $price = tservices_helper::cost_format($reserve->getPrice(), true, false, false);
                    ?>
 
                    <div class="b-layout__txt b-layout__txt_fontsize_11 b-layout_float_right b-layout__txt_float_none_iphone b-layout__txt_padbot_5">
                       <span class="b-icon b-icon_sbr_oask"></span>
                       <a class="b-layout__link" target="_blank" href="https://feedback.fl.ru/list/27457-baza-znanij-flru/?category=12682">
                           О Безопасных сделках
                       </a>
                    </div>
                    <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_15">
                        Заказчик принял и подтвердил результат выполнения работы по заказу.<br />
                        К выплате Исполнителю <?php 
示例#7
0
 /**
  * Проверить доступность выплаты данному юзеру 
  * и вернуть его реквизиты
  * 
  * @param type $uid
  * @param type $type
  * @param type $price
  * @return boolean
  */
 public function getUserReqvs($uid, $type, $price)
 {
     $reqvs = ReservesHelper::getInstance()->getUserReqvs($uid);
     if (!$reqvs) {
         return false;
     }
     $form_type = $reqvs['form_type'];
     $rez_type = $reqvs['rez_type'];
     $reqv = $reqvs[$form_type];
     $reqv['rez_type'] = $rez_type;
     $reqv['form_type'] = $form_type;
     $reqv['moderator_uid'] = $reqvs['moderator_uid'];
     $reqv['moderator_login'] = $reqvs['moderator_login'];
     $payments = ReservesHelper::getInstance()->getAllowedPayoutTypes($form_type, $rez_type, $price);
     if (isset($payments[$type])) {
         $info = explode(',', @$reqv['address']);
         //попытка получить код ISO
         if ((!isset($reqv['country_iso']) || empty($reqv['country_iso'])) && count($info) > 3) {
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php';
             $countryObject = new country();
             $country_name = trim($info[1]);
             $country_iso = $countryObject->getCountryISO($country_name);
             if ($country_iso) {
                 $reqv['country_iso'] = $country_iso;
             }
         }
         //Если поля mob_phone то пробуем получить из phone
         if (!isset($reqv['mob_phone']) || empty($reqv['mob_phone'])) {
             $reqv['mob_phone'] = @$reqv['phone'];
         }
         return $reqv;
     }
     return false;
 }
示例#8
0
 /**
  * Возвращает реквизиты фрилансера из слепков
  * @return type
  */
 public function getFrlReqv()
 {
     $payout_reqv = ReservesHelper::getInstance()->getPayoutReqv($this->getID());
     if ($payout_reqv) {
         $reqv = mb_unserialize($payout_reqv['fields']);
     } else {
         $reqvs = ReservesHelper::getInstance()->getUserReqvs($this->getFrlId());
         if ($reqvs && $reqvs['form_type']) {
             $reqv = $reqvs[$reqvs['form_type']];
             $reqv['form_type'] = $reqvs['form_type'];
             $reqv['rez_type'] = $reqvs['rez_type'];
         }
     }
     return $reqv;
 }