/** * Оплата с личного счета. * * @param type $type * @param array $data (weeks, prof_id, is_spec) * * @return type */ function quickPaymentMasssendingAccount($type, $data) { $is_error = true; $uid = get_uid(false); $objResponse =& new xajaxResponse(); $send_id = (int) $data['send_id']; $promo_code = (string) @$data['promo']; $masssending = new masssending(); $params = $masssending->getAccepted($send_id, $uid); if ($params) { $bill = new billing(get_uid(false)); //Допустимо использование промокодов $bill->setPromoCodes('SERVICE_MASSSENDING', $promo_code); $option = array('amount' => $params['pre_sum'], 'masssending_id' => $params['id']); $complete = $bill->addServiceAndPayFromAccount(masssending::OPER_CODE, $option); if ($complete) { $is_error = false; $_SESSION['quickmss_ok'] = 1; $objResponse->script("window.location = '/bill/history/?period=3';"); } } // Показываем предупреждение в случае ошибки if ($is_error) { $objResponse->script("\n var qp = window.quick_payment_factory.getQuickPayment('masssending');\n if(qp) qp.show_error('Возникла ошибка при оплате рассылки!');\n "); } return $objResponse; }
/** * Оплата с личного счета. * * @param type $type * @param array $data (weeks, prof_id, is_spec) * * @return type */ function quickPaymentTservicebindAccount($type, $data) { $is_error = true; $uid = get_uid(false); $objResponse =& new xajaxResponse(); $kind = (int) @$data['kind']; $tservice_id = (int) @$data['tservice_text_db_id']; $prof_id = (int) @$data['prof_id']; $is_prolong = (bool) @$data['is_prolong']; $promo_code = (string) @$data['promo']; $tservices_binds = new tservices_binds($kind); $tservices = new tservices($uid); $allow = $tservices_binds->isAllowBind($uid, $tservice_id, $kind, $prof_id); $valid = $tservices->isExists($tservice_id) && ($is_prolong ? !$allow : $allow); if ($valid) { $bill = new billing($uid); //Допустимо использование промокодов $bill->setPromoCodes('SERVICE_TSERVICEBIND', $promo_code); $op_code = $tservices_binds->getOpCode(); $option = array('weeks' => (int) @$data['weeks'], 'prof_id' => $prof_id, 'tservice_id' => $tservice_id, 'is_prolong' => $is_prolong); $ok = $bill->addServiceAndPayFromAccount($op_code, $option); if ($ok) { $is_error = false; $objResponse->script('window.location.reload();'); } } // Показываем предупреждение в случае ошибки if ($is_error) { $idx = quickPaymentPopupTservicebind::getPopupId($is_prolong ? $tservice_id : 0); $action = $is_prolong ? 'продлении закрепления' : 'закреплении'; $objResponse->script("\n var qp = window.quick_payment_factory.getQuickPaymentById('tservicebind', '" . $idx . "');\n if(qp) qp.show_error('Возникла ошибка при {$action} услуги!');\n "); } return $objResponse; }
/** * Оплата с личного счета * @param type $type * @param array $data (weeks, prof_id, is_spec) * @return type */ function quickPaymentTservicebindupAccount($type, $data) { $is_error = true; $uid = get_uid(false); $objResponse =& new xajaxResponse(); $kind = (int) @$data['kind']; $tservice_id = (int) @$data['tservice_text_db_id']; $prof_id = (int) @$data['prof_id']; $promo_code = (string) @$data['promo']; $tservices_binds = new tservices_binds($kind); $bind = $tservices_binds->getItem($uid, $tservice_id, $prof_id); if ($bind) { $bill = new billing($uid); //Допустимо использование промокодов $bill->setPromoCodes('SERVICE_TSERVICEBIND', $promo_code); $op_code = $tservices_binds->getOpCode(true); $option = array('bind_id' => $bind['id'], 'prof_id' => $prof_id); $ok = $bill->addServiceAndPayFromAccount($op_code, $option); if ($ok) { $is_error = false; $objResponse->script("window.location.reload();"); } } // Показываем предупреждение в случае ошибки if ($is_error) { $idx = quickPaymentPopupTservicebindup::getPopupId($tservice_id); $objResponse->script("\n var qp = window.quick_payment_factory.getQuickPaymentById('tservicebindup', '" . $idx . "');\n if(qp) qp.show_error('Возникла ошибка при поднятии закрепления услуги!');\n "); } return $objResponse; }
/** * Оплата с личного счета * @param type $type * @param array $data (weeks, prof_id, is_spec) * @return type */ function quickPaymentFrlbindAccount($type, $data) { $is_error = true; $uid = get_uid(false); $objResponse =& new xajaxResponse(); $prof_id = (int) @$data['prof_id']; $is_spec = (bool) @$data['is_spec']; $is_prolong = (bool) @$data['is_prolong']; $promo_code = (string) @$data['promo']; $freelancer_binds = new freelancer_binds(); $valid = $is_prolong ? $freelancer_binds->isUserBinded($uid, $prof_id, $is_spec) : $freelancer_binds->isAllowBind($uid, $prof_id, $is_spec); if ($valid) { $bill = new billing($uid); //Допустимо использование промокодов $bill->setPromoCodes('SERVICE_FRLBIND', $promo_code); $op_code = $freelancer_binds->getOpCode($prof_id, $is_spec, $is_prolong); $option = array('weeks' => (int) @$data['weeks'], 'prof_id' => $prof_id); $ok = $bill->addServiceAndPayFromAccount($op_code, $option); if ($ok) { $is_error = false; $link = '/freelancers/'; if ($prof_id) { if ($is_spec) { $link .= professions::GetProfLink($prof_id) . '/'; } else { $group = professions::GetGroup($prof_id, $error); $link .= $group['link'] . '/'; } } $objResponse->script("window.location.href = '{$link}';"); } } // Показываем предупреждение в случае ошибки if ($is_error) { $action = $is_prolong ? 'продлении закрепления' : 'закреплении'; $objResponse->script("\n var qp = window.quick_payment_factory.getQuickPayment('frlbind');\n if(qp) qp.show_error('Возникла ошибка при {$action} в каталоге!');\n "); } return $objResponse; }
/** * Оплата с личного счета * * @param type $type * @param array $data * @return type */ function quickPaymentProAccount($type, $data) { $uid = get_uid(false); $objResponse = new xajaxResponse(); if (!($uid > 0)) { return $objResponse; } $is_emp = is_emp(); $form = new ProForm($is_emp); if (!$form->isValid($data)) { $objResponse->script("\n var qp = window.quick_ext_payment_factory.getQuickPayment('pro');\n if(qp) qp.show_error('К сожалению, в процессе оплаты произошла ошибка, и платеж не был завершен. Попробуйте провести оплату еще раз.');\n "); return $objResponse; } $data = $form->getValues(); $opcode = $data['type']; $promo_code = isset($data['promo']) ? $data['promo'] : ""; $bill = new billing($uid); //Допустимо использование промокодов $bill->setPromoCodes('SERVICE_PRO', $promo_code); $complete = $bill->addServiceAndPayFromAccount($opcode); if ($complete) { $payed_sum = $bill->getOrderPayedSum(); $_SESSION['quickbuypro_success_opcode'] = $payed_sum; $uri = isset($_SESSION['quickbuypro_redirect']) ? $_SESSION['quickbuypro_redirect'] : ''; $uri .= '?quickpro_ok=1'; //@todo: ПРОФИ пока игнорируем /* if ($opcode == 164) { $uri = '/profi/?quickprofi_ok=1'; } */ $objResponse->script("window.location = '{$uri}';"); } return $objResponse; }
/** * Оплата с личного счета * * @param type $type * @param array $data * @return type */ function quickPaymentCaruselAccount($type, $data) { $uid = get_uid(false); $objResponse =& new xajaxResponse(); if (!$uid || is_emp()) { return $objResponse; } $promo = isset($data['promo']) ? $data['promo'] : ""; $form = new CaruselForm(); if (!$form->isValid($data)) { $params = addslashes(urldecode(http_build_query($form->getAllMessages('<br/>')))); $objResponse->script("\n var qp = window.quick_ext_payment_factory.getQuickPayment('carusel');\n if(qp) qp.showElementsError('{$params}');\n "); return $objResponse; } $data = $form->getValues(); $bill = new billing($uid); $bill->setPromoCodes('SERVICE_CARUSEL', $promo); $options = array('ad_header' => $data['title'], 'ad_text' => $data['description'], 'num' => $data['num']); if ($data['num'] > 1) { $options['hours'] = $data['hours']; } //Каталог //@todo: неиспользуется разделение платный мест в карусели //$tarif = 73; //Главная //@todo: сейчас общий раздел для всех $tarif = 65; $complete = $bill->addServiceAndPayFromAccount($tarif, $options); if ($complete) { $objResponse->script("window.location.reload();"); } return $objResponse; }