/** * Проверяет, может ли в данный момент работодатель сменить лицо (юр/физ). * * @return int 0: может, * 1: не может, потому что есть незавершенные зарезервированные сделки, * 2: не может, потому что в одной из созданных им сделок выбран ЯД, доступный только физикам. */ public function checkChangeFT() { if (($sbr_info = sbr_meta::getUserInfo($this->uid)) && $sbr_info['all_cnt']) { if ($this->getProcessings()) { return 1; } // !!! проверки местами поменять, резервы в цикле посмотреть. if ($sbr_actives = $this->getActives()) { foreach ($sbr_actives as $s) { if ($s->cost_sys == exrates::YM || $s->cost_sys == exrates::WMR) { return 2; } } } } return 0; }
/** * Устанавливает поля в форме редактирования бана пользователя * * @param int $sUid UID пользователя * @param int $edit флаг редактирования причины блокировки * @return object xajaxResponse */ function setUserBanForm($sUid = 0, $edit = 0, $contextId = '', $streamType = '') { session_start(); $objResponse = new xajaxResponse(); if (hasPermissions('users')) { require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php'; require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php'; $sUniqId = "userban_{$sUid}"; $objUser = new users(); $objUser->GetUserByUID($sUid); $sbrInfo = sbr_meta::getUserInfo($sUid); $uncompletedDeals = $sbrInfo['all_cnt'] - $sbrInfo['completed_cnt']; $uncompletedDealsText = 'У данного пользователя сейчас ' . $uncompletedDeals . ending($uncompletedDeals, ' активная «Безопасная Сделка»', ' активные «Безопасные Сделки»', ' активных «Безопасных Сделок»'); if ($objUser->uid) { $sBanTo = 'ban_forever'; $aCurrBan = array('reason' => ''); $sReasonText = ''; $sDay = $sMonth = $sYear = $sCustomReason = ''; if (!$objUser->is_banned && !$objUser->ban_where) { // юзер не забанен $objResponse->assign('ban_none', 'disabled', true); $objResponse->assign('ban_site', 'disabled', false); $objResponse->assign('ban_blog', 'disabled', false); $objResponse->assign('ban_site', 'checked', true); if ($uncompletedDeals) { $objResponse->script('$$("#ban_user_sbrs").removeClass("b-fon_hide")'); $objResponse->script('$$("#uncompleted_deals_count").set("text", "' . $uncompletedDealsText . '")'); if ($contextId == 'moder') { $objResponse->assign('notice_sbr_partners', 'checked', true); } } else { $objResponse->script('$$("#ban_user_sbrs").addClass("b-fon_hide")'); } $nActId = 3; $sSelectOptions = _getAdminActionReasonOptions(3, $aCurrBan['reason']); } else { // юзер где то забанен $objResponse->assign('ban_none', 'disabled', $edit); $objResponse->assign('ban_site', 'disabled', !$edit); $objResponse->assign('ban_blog', 'disabled', !$edit); if ($objUser->is_banned) { // юзер забанен на всем сайте $objResponse->assign('ban_site', 'checked', true); $objResponse->script('$$("#ban_user_sbrs").addClass("b-fon_hide")'); $aCurrBan = $edit ? $objUser->GetBan($objUser->uid, 0) : ''; $nActId = $edit ? 3 : 4; } else { // юзер забанен в блогах $objResponse->assign('ban_blog', 'checked', true); if ($uncompletedDeals) { $objResponse->script('$$("#ban_user_sbrs").removeClass("b-fon_hide")'); $objResponse->script('$$("#uncompleted_deals_count").set("text", ' . $uncompletedDealsText . ')'); if ($contextId == 'moder') { $objResponse->assign('notice_sbr_partners', 'checked', true); } } else { $objResponse->script('$$("#ban_user_sbrs").addClass("b-fon_hide")'); } $aCurrBan = $edit ? $objUser->GetBan($objUser->uid, 1) : ''; $nActId = $edit ? 5 : 4; } $sSelectOptions = _getAdminActionReasonOptions($nActId, $aCurrBan['reason']); if ($edit) { $sReasonText = $aCurrBan['comment']; $sCustomReason = $aCurrBan['reason'] ? '' : $aCurrBan['comment']; $sBanTo = $aCurrBan['to'] ? 'ban_to_date' : 'ban_forever'; $sDay = $aCurrBan['to'] ? date('d', strtotime($aCurrBan['to'])) : ''; $sMonth = $aCurrBan['to'] ? date('m', strtotime($aCurrBan['to'])) : ''; $sYear = $aCurrBan['to'] ? date('Y', strtotime($aCurrBan['to'])) : ''; } else { $nActId = 1; $objResponse->assign('ban_none', 'checked', true); } } $objResponse->script("banned.banUid = '{$sUniqId}';"); $objResponse->script("banned.buffer['{$sUniqId}'].act_id={$nActId};"); $objResponse->script("banned.buffer['{$sUniqId}'].customReason[{$nActId}]='{$sCustomReason}';"); $objResponse->script("banned.buffer['{$sUniqId}'].reasonId[{$nActId}]='{$aCurrBan['reason']}';"); $objResponse->assign($sBanTo, 'checked', true); if ($sBanTo == 'ban_forever') { $objResponse->assign('ban_day', 'disabled', true); $objResponse->assign('ban_month', 'disabled', true); $objResponse->assign('ban_year', 'disabled', true); } $objResponse->script("\$('ban_day').set('value','{$sDay}');"); $objResponse->script("\$('ban_month').set('value','{$sMonth}');"); $objResponse->script("\$('ban_year').set('value','{$sYear}');"); $objResponse->script("banned.userBanToggle();"); $sBanDiv = '<div id="bfrm_div_sel_' . $sUniqId . '"><select id="bfrm_sel_' . $sUniqId . '" class="b-select__select b-select__select_width_full" name="bfrm_sel_' . $sUniqId . '" onchange="banned.setReason(\'userban_' . $sUid . '\');">' . $sSelectOptions . '</select></div>'; $objResponse->assign('ban_div_select', 'innerHTML', $sBanDiv); $sBanDiv = '<textarea id="bfrm_' . $sUniqId . '" name="bfrm_' . $sUniqId . '" cols="" rows="" class="b-textarea__textarea b-textarea__textarea_height_50">' . $sReasonText . '</textarea>'; $objResponse->assign('ban_div_textarea', 'innerHTML', $sBanDiv); $sBanDiv = '<a id="ban_btn" href="javascript:void(0);" class="b-button b-button_flat b-button_flat_green" onclick="banned.commit(banned.banUid,$(\'bfrm_\'+banned.banUid).get(\'value\'))">Сохранить</a> <span class="b-buttons__txt b-buttons__txt_padleft_10">или</span> <a href="javascript:void(0);" class="b-buttons__link b-buttons__link_dot_c10601" onclick="banned.commit(banned.banUid,(banned.buffer[banned.banUid].action=\'close\'));$(\'ov-notice22\').toggleClass(\'b-shadow_hide\');return false;">закрыть, не сохраняя</a>'; $objResponse->assign('div_ban_btn', 'innerHTML', $sBanDiv); if ($contextId == 'moder') { list($s_stream_id, $s_content_id, $s_rec_id, $s_rec_type) = explode('-', $streamType); require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/user_content.php"; $s_nActId = user_content::getReasonGroup($s_content_id, $s_rec_type); $sSelectOptions = _getAdminActionReasonOptions($s_nActId, $reasonId); $sBanDiv = '<div id="bfrm_div_sel_stream_' . $sUniqId . '"><select id="bfrm_sel_stream_' . $sUniqId . '" class="b-select__select b-select__select_width_full" name="bfrm_sel_stream_' . $sUniqId . '" onchange="banned.setReasonStream(\'userban_' . $sUid . '\');">' . $sSelectOptions . '</select></div>'; $objResponse->assign('ban_div_select_stream', 'innerHTML', $sBanDiv); $sBanDiv = '<textarea id="bfrm_stream_' . $sUniqId . '" name="bfrm_stream_' . $sUniqId . '" cols="" rows="" class="b-textarea__textarea b-textarea__textarea_height_50">' . $sReasonText . '</textarea>'; $objResponse->assign('ban_div_textarea_stream', 'innerHTML', $sBanDiv); $objResponse->script("\$('ban_div_select_stream').getParent().getParent().setStyle('display', '');"); $objResponse->script("\$('ban_div_textarea_stream').getParent().getParent().setStyle('display', '');"); $objResponse->script("\$('ban_delreason_title').setStyle('display', '');"); $objResponse->script("banned.buffer['{$sUniqId}'].streamId = '{$s_stream_id}';"); $objResponse->script("banned.context['moder'].contentId = '{$s_content_id}';"); $objResponse->script("banned.context['moder'].streamId = '{$s_stream_id}';"); $objResponse->script("banned.context['moder'].recId = '{$s_rec_id}';"); $sBanDiv = '<a id="ban_btn" href="javascript:void(0);" class="b-button b-button_flat b-button_flat_green" onclick="banned.commit(banned.banUid,$(\'bfrm_\'+banned.banUid).get(\'value\'),$(\'bfrm_stream_\'+banned.banUid).get(\'value\'))">Сохранить</a> <span class="b-buttons__txt b-buttons__txt_padleft_10">или</span> <a href="javascript:void(0);" class="b-buttons__link b-buttons__link_dot_c10601" onclick="banned.commit(banned.banUid,(banned.buffer[banned.banUid].action=\'close\'));$(\'ov-notice22\').toggleClass(\'b-shadow_hide\');return false;">закрыть, не сохраняя</a>'; $objResponse->assign('div_ban_btn', 'innerHTML', $sBanDiv); } $objResponse->assign('ban_title', 'innerHTML', 'Блокировка <a class="b-layout__link b-layout__link_bold" href="/users/' . $objUser->login . '">' . $objUser->uname . ' ' . $objUser->usurname . ' [' . $objUser->login . ']</a>'); $objResponse->script("\$('ov-notice22').toggleClass('b-shadow_hide');"); $objResponse->script("\$('ov-notice22').setStyle('display', '');"); } } return $objResponse; }
/** * Проверяет, может ли в данный момент юзер сменить тип резиденства. * * @return integer 0: может, * 1: не может, потому что есть активные сделки. */ function checkChangeRT() { if (($sbr_info = sbr_meta::getUserInfo($this->uid)) && $sbr_info['all_cnt']) { // !!! упростить. if ($this->isFrl()) { $arb_join = "\n LEFT JOIN\n sbr_stages_arbitrage sa\n ON sa.stage_id = ss.id\n AND sa.resolved IS NOT NULL\n AND sa.frl_percent = 0\n "; $arb_cond = "AND sa.id IS NULL"; } $admin_cond = ""; if (hasPermissions('users')) { $admin_cond = " AND ?i IN (s.frl_id, s.emp_id) "; $admin_cond = $this->db()->parse($admin_cond, $this->uid); } $sql = "\n SELECT 1\n FROM sbr_stages_users su\n INNER JOIN\n sbr_stages ss\n ON ss.id = su.stage_id\n INNER JOIN\n sbr s\n ON s.id = ss.sbr_id\n AND s.is_draft = false\n AND s.status NOT IN (" . sbr::STATUS_CANCELED . ',' . sbr::STATUS_REFUSED . ',' . sbr::STATUS_NEW . ")\n AND s.norisk_id IS NULL\n {$admin_cond}\n {$arb_join}\n WHERE su.user_id = ?i\n AND su.docs_received = false\n AND su.is_removed = false\n {$arb_cond}\n LIMIT 1\n "; $sql = $this->db()->parse($sql, $this->uid); if ($res = pg_query(self::connect(false), $sql)) { return pg_num_rows($res); } } return 0; }
<?php if (!defined('IN_STDF')) { header("HTTP/1.0 404 Not Found"); exit; } require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/rating.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/professions.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/country.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/city.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/teams.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/sbr.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/opinions.php"; require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/payed.php"; global $session; $sbr_info = sbr_meta::getUserInfo($user->uid); //@todo: упростил но это вообще здесь не нужно впринципе см getHeaderData $from = is_emp($user->role) ? 'emp' : 'frl'; $op_data = opinions::getHeaderData($from, $user, $user->uid); if (!$rating || !$rating instanceof rating || $rating->data['user_id'] != $user->uid) { $rating = new rating($user->uid, $user->is_pro, $user->is_verify, $user->is_profi, 1); } $r_data = $rating->data; //$samerank = rating::CountByRank($r_data['rank']); $banblog = $user->GetBan($user->uid, 1); if ($user->birthday && $user->birthday > "1910-01-01") { $user_ago = ElapsedYears(strtotime($user->birthday)); } $info_for_reg = @unserialize($user->info_for_reg); $team = new teams(); // срок окончания ПРО - только для админов