/**
 * Резервирование средств через яндекс кассу.
 * 
 * @param type $type
 * @param type $data
 *
 * @return \xajaxResponse
 */
function quickPaymentReserveYandexKassa($type, $data)
{
    $uid = get_uid(false);
    $objResponse =& new xajaxResponse();
    $pay_methods = array(quickPaymentPopup::PAYMENT_TYPE_CARD => yandex_kassa::PAYMENT_AC, quickPaymentPopup::PAYMENT_TYPE_YA => yandex_kassa::PAYMENT_YD, quickPaymentPopup::PAYMENT_TYPE_WM => yandex_kassa::PAYMENT_WM, quickPaymentPopup::PAYMENT_TYPE_ALFACLICK => yandex_kassa::PAYMENT_AB, quickPaymentPopup::PAYMENT_TYPE_SBERBANK => yandex_kassa::PAYMENT_SB);
    if (!isset($pay_methods[$type])) {
        return $objResponse;
    }
    $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;
    }
    //Формируем заказ
    $bill = new billing($uid);
    $billReserveId = $bill->addServiceAndCheckout(ReservesModel::OPCODE_RESERVE, array('acc_sum' => $reserve_data['reserve_price'], 'reserve_data' => $reserve_data));
    $payment = $pay_methods[$type];
    $yandex_kassa = new yandex_kassa();
    $yandex_kassa->setShop(yandex_kassa::SHOPID_SBR);
    $html_form = $yandex_kassa->render($bill->getOrderPayedSum(), $bill->getAccId(), $payment, $billReserveId);
    $objResponse->script("\n        var qp_form_wrapper = \$\$('#quick_payment_reserve .__quick_payment_form');\n        if(qp_form_wrapper){    \n            qp_form_wrapper.set('html','{$html_form}');\n            qp_form_wrapper.getElement('form')[0].submit();\n        }\n    ");
    $_SESSION[quickPaymentPopup::QPP_REDIRECT] = $reserveInstance->getTypeUrl();
    return $objResponse;
}