Beispiel #1
0
 /**
  * Проверяет, может ли в данный момент работодатель сменить лицо (юр/физ).
  *
  * @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;
 }
Beispiel #2
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;
}
Beispiel #3
0
 /**
  * Проверяет, может ли в данный момент юзер сменить тип резиденства.
  *
  * @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;
 }
Beispiel #4
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();
// срок окончания ПРО - только для админов