本文整理汇总了PHP中payed::SetOrderedTarif方法的典型用法代码示例。如果您正苦于以下问题:PHP payed::SetOrderedTarif方法的具体用法?PHP payed::SetOrderedTarif怎么用?PHP payed::SetOrderedTarif使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类payed
的用法示例。
在下文中一共展示了payed::SetOrderedTarif方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: billingOperation
/**
* Обработка и оплата операций
*
* @global type $DB
* @param type $option
* @return boolean
*/
function billingOperation($option, $transaction_id)
{
global $DB;
$ok = false;
$account = new account();
switch ($option['op_code']) {
// Аккаунт ПРО у фрилансера
case 48:
case 49:
case 50:
case 51:
case 76:
// Удаляем операции по покупке ответов - публикуем ответы
$prof = new payed();
$ok = $prof->SetOrderedTarif($this->uid, $transaction_id, 1, "Аккаунт PRO", $option['op_code'], $error);
if ($ok) {
$_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
$_SESSION['pro_last'] = $_SESSION['pro_last']['freeze_to'] ? false : $_SESSION['pro_last']['cnt'];
$userdata = new users();
$_SESSION['pro_test'] = $userdata->GetField($this->uid, $error2, 'is_pro_test', false);
$this->clearBlockedOperations(step_freelancer::OFFERS_OP_CODE);
$step_frl = new step_freelancer();
$offers = $step_frl->getWizardOffers($this->uid, 'all', false);
if ($offers) {
require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/users.php";
$step_frl->log = $this->log;
$step_frl->user = new users();
$step_frl->user->GetUserByUID($this->uid);
$step_frl->transferOffers($offers);
}
$this->showProjectsFeedbacks();
}
break;
// Аккаунт ПРО у работодателя
// Аккаунт ПРО у работодателя
case 15:
$prof = new payed();
$ok = $prof->SetOrderedTarif($this->uid, $transaction_id, 1, "Аккаунт PRO", $option['op_code'], $error);
if ($ok) {
$_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
$_SESSION['pro_last'] = $_SESSION['pro_last']['freeze_to'] ? false : $_SESSION['pro_last']['cnt'];
$userdata = new users();
$_SESSION['pro_test'] = $userdata->GetField($this->uid, $error2, 'is_pro_test', false);
}
// Обновляем выбор цвета для проектов тк он для ПРО бесплатный
$colorProjects = $this->updateColorProject();
$prj = new new_projects();
foreach ($colorProjects as $k => $project) {
$delete_color[] = $project['op_id'];
if ($project['country'] == null) {
$project['country'] = 'null';
}
if ($project['city'] == null) {
$project['city'] = 'null';
}
$project['name'] = addslashes($project['name']);
$project['descr'] = addslashes($project['descr']);
if ($project['logo_id'] <= 0) {
$project['logo_id'] = 'null';
}
$project['payed_items'] = $project['payed_items'] | '010';
$project['is_color'] = 't';
$prj->editPrj($project, false);
}
// Удаляем данные операции
if ($delete_color) {
$this->deleteDraftAccountOperation($delete_color);
}
break;
// Публикация конкурса
// Публикация конкурса
case new_projects::OPCODE_KON:
case new_projects::OPCODE_KON_NOPRO:
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wizard/step_wizard_registration.php';
$drafts = new drafts();
$draft = $drafts->getDraft($option['parent_id'], $this->uid, 1);
// Если еще не опубликован
if (!$draft['prj_id']) {
$project_id = $draft['id'];
$error = $account->Buy($bill_id, $transaction_id, $option['op_code'], $this->uid, $option['descr'], $option['comment'], 1, 0);
$ok = $bill_id > 0;
if ($bill_id) {
$color = $DB->val("SELECT id FROM draft_account_operations WHERE parent_id = ? AND op_type = 'contest' AND option = 'color' AND uid = ?", $project_id, wizard::getUserIDReg());
$draft['billing_id'] = $bill_id;
$draft['folder_id'] = 'null';
$draft['payed'] = '0';
$draft['payed_items'] = '000';
if (is_pro() && $color > 0) {
$draft['is_color'] = 't';
} else {
$draft['is_color'] = 'f';
}
$draft['win_date'] = date('d-m-Y', strtotime($draft['win_date']));
//.........这里部分代码省略.........
示例2: header
if (!$action || !$mnth) {
header("Location: ./");
exit;
}
$prof = new payed();
$tr_id = $_REQUEST['transaction_id'];
if (!$tr_id) {
$account = new account();
$account->view_error("Невозможно завершить транзакцию. Попробуйте повторить операцию с самого начала.");
}
if ($mnth > 0) {
$oppro = intval(trim($_POST['oppro']));
if ($oppro <= 0) {
$oppro = is_emp() ? 15 : 48;
}
$ok = $prof->SetOrderedTarif($user_id, $tr_id, $mnth, "Аккаунт PRO", $oppro, $error);
}
if (!$ok) {
$_SESSION['bill.GET']['error'] = $error;
header('Location: /bill/fail/');
exit;
} else {
$content = "content.php";
$js_file = array('payed.js');
}
$_SESSION['pro_last'] = payed::ProLast($_SESSION['login']);
if ($_SESSION['pro_last']['is_freezed']) {
$_SESSION['payed_to'] = $_SESSION['pro_last']['cnt'];
}
$_SESSION['pro_last'] = $_SESSION['pro_last']['is_freezed'] ? false : $_SESSION['pro_last']['cnt'];
$userdata = new users();
示例3: paymentOrder
//.........这里部分代码省略.........
// Про на 3 месяца (emp)
// Про на 3 месяца (emp)
case 49:
// Про на 3 месяца (frl)
// Про на 3 месяца (frl)
case 119:
// Про на 6 месяцeв (emp)
// Про на 6 месяцeв (emp)
case 50:
// Про на 6 месяцев (frl)
// Про на 6 месяцев (frl)
case 120:
// Про на 1 год (emp)
// Про на 1 год (emp)
case 51:
// Про на 1 год (frl)
// Про на 1 год (frl)
case 132:
// Про на 1 день (frl)
// Про на 1 день (frl)
case 131:
// Про на 1 неделю (frl)
// Про на 1 неделю (frl)
case 163:
// Тестовый ПРО на месяц
// Тестовый ПРО на месяц
case 164:
// PROFI на 1 месяц
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/payed.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/freelancer.php';
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/employer.php';
$payed = new payed();
$user = is_emp($this->user['role']) ? new employer() : new freelancer();
$success = $payed->SetOrderedTarif($this->user['uid'], $this->transaction, $order['op_count'], $order['comment'], $order['op_code'], $order['promo_code'], $error);
if ($success) {
if (isset($payed->account_operation_id) && $payed->account_operation_id > 0) {
$account_operation_id = $payed->account_operation_id;
}
// Обновим сессию сразу!
if (get_uid(false) == $this->user['uid']) {
$_SESSION['pro_last'] = payed::ProLast($this->user['login']);
$_SESSION['pro_last'] = $_SESSION['pro_last']['is_freezed'] ? false : $_SESSION['pro_last']['cnt'];
if ($_SESSION['pro_last']['is_freezed']) {
$_SESSION['payed_to'] = $_SESSION['pro_last']['cnt'];
}
} else {
$membuff = new memBuff();
$membuff->set('is_changed_pro_' . $this->user['uid'], true);
//Этот подход не работает
//$session = new session();
//$session->UpdateProEndingDate($this->user['login']);
}
if ($order['auto'] == 't') {
$user->setPROAutoProlong('on', $this->user['uid']);
} else {
$user->setPROAutoProlong('off', $this->user['uid']);
}
//Опубликовать перемещенные вакансии при покупке ПРО
//@todo: Теперь вакансии для всех платные разница лишь в цене для ПРО дешевле
//поэтому отключаем публикацию после покупки ПРО
//https://beta.free-lance.ru/mantis/view.php?id=28579
/*
if (is_emp($this->user['role'])) {
require_once($_SERVER['DOCUMENT_ROOT'] . "/classes/projects.php");
$project = new projects();
$project->publishedMovedToVacancy($this->user);
示例4: setProMonth
/**
* Установка ПРО для произвольного пользователя.
*
* @param $count - если равен 1, значит покупаем ПРО на несколько месяцев в зависимости от значения $_REQUEST['type']
* если больше 1, значит аккаунт покупается на несколько ($count) недель
* */
private function setProMonth($count = 1)
{
global $DB;
$uid = (int) $_POST['uid'];
$uid = $DB->val("SELECT uid FROM users WHERE uid = {$uid}");
$date = $_POST['date'];
$f = preg_match("#[0-9]{4}\\-[0-9]{2}\\-[0-9]{2}#", $date, $m);
if (!$f) {
$date = false;
}
if ($uid) {
$account = new account();
$transaction_id = $account->start_transaction($uid, $tr_id);
$oppro = intval(trim($_POST['type']));
$prof = new payed();
if ($oppro <= 0) {
$oppro = is_emp() ? 15 : 48;
}
if ($oppro == 47) {
//позволить пользователю купить тестовый про
$sql = "DELETE FROM orders WHERE id IN (SELECT id FROM orders WHERE from_id = '{$uid}' AND ordered = '1' AND payed = 't' AND tarif IN (1,2,3,4,5,6,15,16,28,35,42,47,48,49,50,51,52,76))";
$DB->query($sql);
}
$rewriteFromDate = false;
//переписывать ли дату начала действия PRO у добавленной записи
if ($date !== false && $date != date('Y-m-d')) {
//если заказана дата покупки PRO ранее чем текущая дата удаляем историю покупок PRO которые были куплены после заказаной даты
$sql = "DELETE FROM orders WHERE id \n IN (SELECT id FROM orders \n WHERE from_id = '{$uid}' AND ordered = '1' AND payed = 't' \n AND tarif IN (1,2,3,4,5,6,15,16,28,35,42,47,48,49,50,51,52,76)\n AND from_date > '{$date}'\n )";
$res = $DB->query($sql);
$num = pg_affected_rows($res);
if ($num) {
$rewriteFromDate = true;
}
}
//используем ранее написаный в системе код для покупки про
$ok = $prof->SetOrderedTarif($uid, $transaction_id, $count, 'Аккаунт PRO', $oppro, $error);
if ($ok) {
if (!$rewriteFromDate) {
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/session_Memcached.php';
$session = new session();
$login = $DB->val("SELECT login FROM users WHERE uid = {$uid}");
$session->UpdateProEndingDate($login);
}
} else {
$this->json('status', 'error', 'msg', $error ? $error : 'Неизвестная ошибка');
}
if ($rewriteFromDate) {
//если заказана дата покупки PRO ранее чем текущая дата устанавливаем дату последней покупки в заказанную дату
$sql = "SELECT id FROM orders WHERE posted = (SELECT MAX(posted) FROM orders WHERE from_id = {$uid})";
$id = $DB->val($sql);
if ($id) {
$date .= ' ' . date('H:i:s') . '.' . date('u');
$sql = "UPDATE orders SET from_date = '{$date}' WHERE id = {$id}";
$DB->query($sql);
require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/session_Memcached.php';
$session = new session();
$login = $DB->val("SELECT login FROM users WHERE uid = {$uid}");
$session->UpdateProEndingDate($login);
} else {
$this->json('status', 'error', 'msg', "Ошибка при установке даты покупки ПРО '{$date}'");
}
}
/**/
$this->json('status', 'ok');
} else {
$this->json('status', 'error', 'msg', 'Пользователь не найден');
}
}