public function init()
 {
     $uid = get_uid(false);
     $reqvs = sbr_meta::getUserReqvs($uid);
     $form_type = @$reqvs['form_type'];
     $rez_type = @$reqvs['rez_type'];
     if ($form_type) {
         $reqvs = $reqvs[$form_type];
         if ($rez_type == sbr::RT_RU) {
             $reqvs_data = array(array('label' => 'ИНН', 'value' => @$reqvs['inn']), array('label' => 'КПП', 'value' => @$reqvs['kpp'], 'padbot' => 10), array('label' => 'Расчетный счет', 'value' => @$reqvs['bank_rs']), array('label' => 'Банк', 'value' => @$reqvs['bank_name']), array('label' => 'Корр.счет', 'value' => @$reqvs['bank_ks']), array('label' => 'БИК банка', 'value' => @$reqvs['bank_bik']), array('label' => 'ИНН банка', 'value' => @$reqvs['bank_inn']));
         } else {
             $reqvs_data = array(array('label' => 'Расчетный счет', 'value' => @$reqvs['bank_rs']), array('label' => 'Банк', 'value' => @$reqvs['bank_name']), array('label' => 'Уполномоченный Банк', 'value' => @$reqvs['bank_rf_name']), array('label' => 'Корр.счет вашего банка в уполномоченном банке', 'value' => @$reqvs['bank_rf_ks']), array('label' => 'БИК уполномоченного банка', 'value' => @$reqvs['bank_rf_bik']), array('label' => 'ИНН уполномоченного банка', 'value' => @$reqvs['bank_rf_inn']));
         }
     } else {
         $this->stopRender();
         return;
     }
     $options = array('popup_title' => 'Формирование счета', 'payments' => array(self::PAYMENT_TYPE_BANK => array('title' => 'Сформировать счет', 'class' => '', 'wait' => 'Идет создание счета')), 'reqvs' => $reqvs_data, 'rt_ru' => $rez_type == sbr::RT_RU);
     require_once 'forms/BillInvoiceForm.php';
     $form = new BillInvoiceForm();
     $this->setContent($form->render());
     /*
     $this->addWaitMessageForAll(
         //только индикатор
     );
     */
     parent::init($options);
 }
예제 #2
0
 /**
  * Получить реквизиты юзера
  * даже если их нет
  * 
  * @param int $uid
  * @return array
  */
 public function getUserReqvs($uid = null, $rewrite = false)
 {
     if (!$uid) {
         $uid = get_uid(false);
     }
     if (!isset($this->reqs_list[$uid]) || $rewrite) {
         $this->reqs_list[$uid] = sbr_meta::getUserReqvs($uid);
     }
     return $this->reqs_list[$uid];
 }
예제 #3
0
 /**
  * Создаем сами себя
  * @return projects_sms
  */
 public static function model($uid)
 {
     $phone = '';
     $reqv = sbr_meta::getUserReqvs($uid);
     if ($reqv) {
         $ureqv = $reqv[$reqv['form_type']];
         $phone = $ureqv['mob_phone'];
     }
     $class = get_called_class();
     return new $class($phone);
 }
예제 #4
0
 /**
  * Определяет, нужно ли показывать привязку телефона
  * Показываем уведомление только авторизованным фрилансерам, у которых не привязан номер телефона
  * 
  * @return true/false
  */
 public function checkAllow()
 {
     if ($this->_allow === null) {
         $uid = get_uid(false);
         if ($uid && !is_emp()) {
             $reqv = sbr_meta::getUserReqvs($uid);
             if ($reqv['is_activate_mob'] != 't') {
                 $this->_allow = true;
                 return $this->_allow;
             }
         }
         $this->_allow = false;
     }
     return $this->_allow;
 }
예제 #5
0
<?php

$pdrd_disabled = $sbr->scheme_type != sbr::SCHEME_PDRD && time() < strtotime('2011-01-01');
$categories = professions::GetAllGroupsLite(true, true);
$sub_categories = professions::GetProfList();
$frl_ftype = sbr::FT_PHYS;
if ($sbr->frl_id) {
    $frl = new freelancer();
    $frl->GetUserByUID($sbr->frl_id);
    if (!$sbr->frl_login) {
        $sbr->data['frl_login'] = $frl->login;
    }
    if ($frl_reqvs = sbr_meta::getUserReqvs($frl->uid)) {
        $frl_ftype = (int) $frl_reqvs['form_type'];
        $frl_rtype = $frl_reqvs['rez_type'];
    }
}
?>
<script type="text/javascript">
Sbr.prototype.DEBUG=0;
var SBR = new Sbr('createFrm');
window.addEvent('domready', function() { SBR = new Sbr('createFrm'); } );
Sbr.prototype.CATEGORIES={<?php 
// категории/подкатегории: {ид_кат:{имя_кат:{ид_подкат:имя_подкат,ид_подкат:...}},ид_кат:...}
foreach ($sub_categories as $sc) {
    $cc = $sc['prof_group'];
    $ccname = str_replace("'", "\\'", $categories[$cc]['name']);
    $scname = str_replace("'", "\\'", $sc['name']);
    if ($lcc != $cc) {
        echo ($lcc ? '}},' : '') . "{$cc}:{'{$ccname}':{";
        $lcc = $cc;
예제 #6
0
     } elseif ($o_only_phone == 't' && $o_only_phone != $only_phone || $reqv['is_safety_mob'] == 't' && $reqv['is_safety_mob'] != $finance_safety_phone) {
         $error_phone['code'] = true;
     }
     // Включение, без проверки СМС
     if ($o_only_phone == 'f' && $only_phone == 't' && !$safety_complete) {
         $o_only_phone = 't';
         $user->updateSafetyPhone($uid, true);
     }
     if ($reqv['is_safety_mob'] == 'f' && $finance_safety_phone == 't' && !$safety_complete) {
         $reqv['is_safety_mob'] = 't';
         sbr_meta::safetyMobPhone($uid, true);
     }
     break;
 case "safety_update":
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php';
     $reqv = sbr_meta::getUserReqvs(get_uid(false));
     $ureqv = $reqv[$reqv['form_type']];
     $ip_addresses = change_q(trim(stripslashes($_POST['ip_addresses'])), true);
     $bind_ip = $_POST['bind_ip'];
     if ($bind_ip != 't') {
         $bind_ip = 'f';
     }
     $password = trim(stripslashes($_POST['password']));
     $error_flag = 0;
     $frl = new users();
     // Проверям IP
     $c_ip = $frl->CheckSafetyIP($ip_addresses);
     $ip_addresses = $c_ip['ip_addresses'];
     $alert[1] = $c_ip['alert'][1];
     $error_flag = $c_ip['error_flag'];
     // Проверям правильность пароля
예제 #7
0
$o_only_phone = $u->GetField($uid, $ee, 'safety_only_phone');
$bind_ip_current = $bind_ip;
if ($_POST['action'] != 'safety_update') {
    $phone = $u->GetField($uid, $ee, 'safety_phone');
    $only_phone = $u->GetField($uid, $ee, 'safety_only_phone');
    $bind_ip_current = $bind_ip = $u->GetField($uid, $ee, 'safety_bind_ip');
    $array_ip_addresses = $u->GetSafetyIP($uid);
    while (list($k, $v) = each($array_ip_addresses)) {
        $ip_addresses .= $v . "\r\n";
    }
} else {
    if ($error_flag) {
        $bind_ip_current = $u->GetField($uid, $ee, 'safety_bind_ip');
    }
}
$reqv = sbr_meta::getUserReqvs($uid);
$ureqv = $reqv[$reqv['form_type']];
if ($_SESSION['alert']) {
    $alert = $_SESSION['alert'];
    unset($_SESSION['alert']);
}
if ($_SESSION['info_msg']) {
    $info_msg = $_SESSION['info_msg'];
    unset($_SESSION['info_msg']);
}
?>

<div class="b-layout b-layout_padtop_20">
	<h2 class="b-layout__title b-layout__title_padbot_30">Безопасность аккаунта</h2>
	<?php 
if ($info_msg) {
예제 #8
0
 /**
  * Вывод страницы для оплаты пластиковыми картами.
  */
 public function cardAction()
 {
     front::og('tpl')->page = 'index';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/card_account.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php';
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/settings.php';
     $user = new users();
     $user->GetUser($_SESSION['login']);
     $city = $user->city ? city::GetCityName($user->city) : '';
     $reqv = sbr_meta::getUserReqvs($user->uid);
     $card_account = new card_account();
     $card_account->account_id = $this->account->id;
     $order_id = $card_account->Add();
     $sum = round(trim($_REQUEST['sum']), 4);
     $merchant = settings::GetVariable('billing', 'card_merchant');
     front::og('tpl')->sum = $sum;
     front::og('tpl')->card_account = $card_account;
     front::og('tpl')->order_id = $order_id;
     front::og('tpl')->city = $city;
     front::og('tpl')->user = $user;
     front::og('tpl')->reqv = $reqv[sbr::FT_PHYS];
     front::og('tpl')->script = '/scripts/bill2.js';
     if ($order_id > 0) {
         $tpl_file = '';
         if ($merchant) {
             $tpl_file = '_dol';
         }
         front::og('tpl')->display("bill/bill_card_step2{$tpl_file}.tpl");
     }
 }
예제 #9
0
function RemindByEmail($email, $rnd, $captchanum, $role)
{
    global $DB;
    session_start();
    $objResponse = new xajaxResponse();
    $captcha = new captcha($captchanum);
    $error_type = '';
    $show_role = false;
    if (!$captcha->checkNumber(trim($rnd))) {
        $error = 'Вы ввели неверную комбинацию символов. Попробуйте еще раз';
        $error_type = 'captcha';
    } else {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sms_gate_a1.php';
        $email = trim(stripslashes($email));
        if (preg_match("/^[-^!#\$%&'*+\\/=?`{|}~.\\w]+@[-a-zA-Z0-9]+(\\.[-a-zA-Z0-9]+)+\$/", $email)) {
            $error_type = 'email';
            $ok_type = 'email';
            // email
            require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
            $u = new users();
            $u->GetUser($email, true, $email);
            if (!$u->uid) {
                $error = 'E-mail не зарегистрирован. Укажите корректный логин/телефон/e-mail.';
            } else {
                if ($u->is_banned) {
                    $error = 'Аккаунт с этим адресом заблокирован. К сожалению, вы не можете восстановить к нему доступ.';
                } else {
                    if ($u->isRemindByPhoneOnly($u->login)) {
                        $ok_type = 'phone';
                        $reqv = sbr_meta::getUserReqvs($u->uid);
                        $ureqv = $reqv[$reqv['form_type']];
                        $phone = $ureqv['mob_phone'];
                        $passwd = users::ResetPasswordSMS($u->uid, $phone);
                        $sms_gate = new sms_gate_a1($phone);
                        $sms_gate->sendSMS(preg_replace('/-LOGIN-/', $u->login, $sms_gate->getTextMessage(sms_gate::TYPE_PASS, $passwd)));
                        if ($sms_gate->getHTTPCode() == 200) {
                            // OK ТЕЛЕФОН
                        } else {
                            $error = 'Ошибка отправки СМС на указанный номер';
                        }
                    } else {
                        $sm = new smail();
                        $sm->remind($u->email);
                    }
                }
            }
        } elseif (preg_match("/^\\+\\d{1,}\$/", $email) || preg_match("/^\\d{1,}\$/", $email)) {
            $error_type = 'email';
            $ok_type = 'phone';
            // телефон
            if (!preg_match("/^\\+\\d{1,}\$/", $email)) {
                $email = '+' . $email;
            }
            $phone = $email;
            $safety_frl = (int) $role !== 2 ? sbr_meta::findSafetyPhone($phone, 'frl') : array();
            $safety_emp = (int) $role !== 1 ? sbr_meta::findSafetyPhone($phone, 'emp') : array();
            $safety = null;
            if (!empty($safety_emp) && !empty($safety_frl)) {
                $error = 'Номер телефона привязан к двум аккаунтам. Пожалуйста, укажите, к какому аккаунту вы хотите восстановить доступ.';
                $show_role = true;
            } elseif (empty($safety_emp) && empty($safety_frl)) {
                $error = 'Номер не связан ни с одним аккаунтом. Укажите корректный логин/телефон/e-mail.';
            } else {
                $safety = !empty($safety_frl) ? $safety_frl : $safety_emp;
                $u = new users();
                $u->GetUserByUID($safety['uid']);
                if ($u->is_banned) {
                    $error = 'Аккаунт с этим номером заблокирован. К сожалению, вы не можете восстановить к нему доступ.';
                } else {
                    $passwd = users::ResetPasswordSMS($safety['uid'], $phone);
                    $sms_gate = new sms_gate_a1($phone);
                    $sms_gate->sendSMS(preg_replace('/-LOGIN-/', $u->login, $sms_gate->getTextMessage(sms_gate::TYPE_PASS, $passwd)));
                    if ($sms_gate->getHTTPCode() == 200) {
                        // OK ТЕЛЕФОН
                    } else {
                        $error = 'Ошибка отправки СМС на указанный номер';
                    }
                }
            }
        } else {
            $error_type = 'email';
            $ok_type = 'email';
            // логин
            require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
            $login = $email;
            $u = new users();
            $u->GetUser($login);
            if (!$u->uid) {
                $error = 'Логин не зарегистрирован. Укажите корректный логин/телефон/e-mail.';
            } else {
                if ($u->is_banned) {
                    $error = 'Аккаунт с этим логином заблокирован. К сожалению, вы не можете восстановить к нему доступ.';
                } else {
                    if ($u->isRemindByPhoneOnly($u->login)) {
                        $ok_type = 'phone';
                        $error_type = 'email';
                        $reqv = sbr_meta::getUserReqvs($u->uid);
                        $ureqv = $reqv[$reqv['form_type']];
                        $phone = $ureqv['mob_phone'];
                        $passwd = users::ResetPasswordSMS($u->uid, $phone);
                        $sms_gate = new sms_gate_a1($phone);
                        $sms_gate->sendSMS(preg_replace('/-LOGIN-/', $u->login, $sms_gate->getTextMessage(sms_gate::TYPE_PASS, $passwd)));
                        if ($sms_gate->getHTTPCode() == 200) {
                            // OK ТЕЛЕФОН
                        } else {
                            $error = 'Ошибка отправки СМС на указанный номер';
                        }
                    } else {
                        $sm = new smail();
                        $sm->remind($u->email);
                    }
                }
            }
        }
    }
    if ($error) {
        if (!$show_role) {
            $captcha->setNumber();
            $objResponse->assign('image_rnd', 'src', '/image.php?num=' . $captchanum . '&t=' . time());
            $objResponse->assign('remind_captcha', 'value', '');
        }
        $objResponse->assign('remind_' . $error_type . '_error_txt', 'innerHTML', $error);
        $objResponse->script('$("remind_' . $error_type . '_error").removeClass("b-shadow_hide");');
        $objResponse->assign('remind_email', 'value', $email);
        $objResponse->script("\$('remind_button_email').addClass('b-button_disabled')");
        $objResponse->script('$("block_role").' . ($show_role ? 'remove' : 'add') . 'Class("b-layout_hide");');
    } else {
        switch ($ok_type) {
            case 'phone':
                $objResponse->script("\$('email_remind').hide();");
                $objResponse->script("\$('remind_ok_phone').show();");
                $objResponse->script("\$('remind_ok_phone_txt').set('html', '" . preg_replace("/^(\\+\\d{1,})\\d{4}(\\d{2})\$/", '$1****$2', $phone) . "');");
                break;
            case 'email':
                $objResponse->script("\$('email_remind').hide();");
                $objResponse->script("\$('remind_ok_email').show();");
                $a = explode('@', $u->email);
                $b = explode('.', $a[1]);
                $c = substr($b[0], 0, 1) . '****' . substr($b[0], strlen($b[0]) - 1, 1);
                if ($b[1]) {
                    foreach ($b as $k => $v) {
                        if ($k != 0) {
                            $c .= '.' . $b[$k];
                        }
                    }
                }
                $email = substr($a[0], 0, 2) . '****' . substr($a[0], strlen($a[0]) - 2, 2) . '@' . $c;
                $objResponse->script("\$('remind_ok_email_txt').set('html', '" . $email . "');");
                break;
        }
    }
    return $objResponse;
}
예제 #10
0
 public function generateBankInvoice($uid, $login, $sum)
 {
     global $DB;
     require_once ABS_PATH . '/classes/sbr.php';
     require_once ABS_PATH . '/classes/sbr_meta.php';
     $reqvs = sbr_meta::getUserReqvs($uid);
     $form_type = @$reqvs['form_type'];
     if (!$form_type) {
         throw new DocGenBillException(DocGenBillException::BANK_INVOICE_ERROR_MSG);
     }
     $reqv = $reqvs[$form_type];
     $num_id = $DB->insert(self::BANK_INVOICE_TABLE, array('user_id' => $uid, 'price' => $sum, 'form_type' => $form_type, 'rez_type' => $reqvs['rez_type'], 'fields' => serialize($reqv)), 'id');
     if (!$num_id) {
         throw new DocGenBillException(DocGenBillException::BANK_INVOICE_ERROR_MSG);
     }
     $this->setFilePath($login);
     $this->setFileSrcId($uid);
     $this->setField('id', $num_id);
     $this->setField('login', $login);
     $this->setField('num_id', $num_id);
     $this->setField('datetext_1', date('Y-m-d H:i:s'));
     $this->setField('fio_emp', $reqvs);
     $phone = empty($reqv['phone']) ? $reqv['phone'] : $reqv['mob_phone'];
     $this->setField('phone', $phone);
     $this->setField('nonds_sum', $sum);
     $this->setField('nds_sum', $sum);
     $this->setField('price_sum', $sum);
     $this->setField('pricelong_sum', $sum);
     $original_name = $this->docs[self::BANK_INVOICE_TYPE]['name'];
     $this->docs[self::BANK_INVOICE_TYPE]['name'] = sprintf($original_name, $this->data['$num_id']);
     $file = $this->generate(self::BANK_INVOICE_TYPE);
     if (!$file) {
         throw new DocGenBillException(DocGenBillException::BANK_INVOICE_ERROR_MSG);
     }
     $is_done = $DB->update(self::BANK_INVOICE_TABLE, array('file_id' => $file->id), 'id = ?i', $num_id);
     if (!$is_done) {
         throw new DocGenBillException(DocGenBillException::BANK_INVOICE_ERROR_MSG);
     }
     return $file;
 }
예제 #11
0
function checkCode($phone, $code, $type = "bind")
{
    $objResponse = new xajaxResponse();
    $success = 0;
    $reqv = sbr_meta::getUserReqvs(get_uid(false));
    $ureqv = $reqv[$reqv['form_type']];
    $uid = get_uid(false);
    if ($type == 'unbind') {
        $phone = $ureqv['mob_phone'];
    }
    $error = false;
    if ($code == $_SESSION['send_sms_code'] && $phone == $_SESSION['send_sms_phone']) {
        unset($_SESSION['send_sms_code'], $_SESSION['send_sms_phone']);
        $user = new users();
        $ureqv['mob_phone'] = $phone;
        $save_reqv['mob_phone'] = $phone;
        if ($type == 'bind') {
            if (!($text_error = sbr_meta::setUserReqv($uid, $reqv['rez_type'], $reqv['form_type'], $save_reqv))) {
                sbr_meta::authMobPhone($uid, true);
                $reqv['is_activate_mob'] = 't';
                unset($_SESSION["unbind_phone_action"]);
                unset($_SESSION['send_sms_time']);
                $success = 2;
            } else {
                $error = current($text_error);
                // Телефон забит
            }
        } else {
            if ($type == 'unbind') {
                // Сбрасываем все
                $phone = '';
                $save_reqv['mob_phone'] = '';
                $ureqv['mob_phone'] = '';
                sbr_meta::setUserReqv($uid, $reqv['rez_type'], $reqv['form_type'], $save_reqv);
                // Удаляем телефон
                sbr_meta::authMobPhone($uid, false);
                sbr_meta::safetyMobPhone($uid, false);
                $user->updateSafetyPhone($uid, false);
                $reqv['is_activate_mob'] = 'f';
                $_SESSION["unbind_phone_action"] = true;
                $success = 3;
            }
        }
    } else {
        $error = 'Неправильный код';
    }
    switch ($success) {
        case 2:
            //Прицепили телефон
            $objResponse->script("\$('safety_status')" . ".set('text', 'включена')" . ".removeClass('b-layout__txt_color_c10600')" . ".addClass('b-layout__txt_color_6db335');");
            $objResponse->script("\$('mob_phone_text').set('html', " . "'<a href=\"javascript:void(0)\" onclick=\"User_Phone.unbindStart();\" " . "class=\"b-layout__link b-layout__link_fontsize_11 b-layout__link_bordbot_dot_0f71c8\">Отвязать</a>')");
            $objResponse->script("\$('mob_phone_text').removeClass('b-layout__txt_hide')");
            $objResponse->script("\$('mob_code_block').addClass('b-layout__txt_hide');");
            $objResponse->script("\$('buttons_step1').addClass('b-layout__txt_hide');");
            $objResponse->script("\$('buttons_step2').removeClass('b-layout__txt_hide');");
            break;
        case 3:
            //Отцепили телефон
            $objResponse->script("\$('safety_status')" . ".set('text', 'выключена')" . ".removeClass('b-layout__txt_color_6db335')" . ".addClass('b-layout__txt_color_c10600');");
            $objResponse->script("\$('mob_phone_text').set('text', 'без пробелов и дефиса')");
            $objResponse->script("\$('sms_sent_ok').addClass('b-layout__txt_hide');");
            $objResponse->script("\$('smscode').set('value', '');");
            $objResponse->script("\$('buttons_step1').removeClass('b-layout__txt_hide');");
            $objResponse->script("\$('buttons_step3').addClass('b-layout__txt_hide');");
            break;
        case 0:
        default:
            $objResponse->script("\$('smscode').getParent().addClass('b-combo__input_error');");
    }
    if ($error) {
        $objResponse->script("\$('sms_error').set('html', '{$error}').removeClass('b-layout__txt_hide');");
    } else {
        $objResponse->script("\$('sms_error').addClass('b-layout__txt_hide');");
    }
    $objResponse->script("shadow_center();");
    return $objResponse;
}
예제 #12
0
function sendCode()
{
    $objResponse = new xajaxResponse();
    require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sms_gate_a1.php';
    $uid = get_uid(false);
    if (!$uid) {
        return $objResponse;
    }
    $reqv = sbr_meta::getUserReqvs($uid);
    $ureqv = $reqv[$reqv['form_type']];
    $sms_gate = new sms_gate_a1($ureqv['mob_phone']);
    $info = $sms_gate->getInfoSend();
    if (!$sms_gate->isNextSend()) {
        $sms_gate->sendAuthCellCode();
        $_SESSION['sms_auth_code_now'] = $sms_gate->getAuthCode();
        if (SMS_GATE_DEBUG) {
            $code_debug = $sms_gate->getAuthCode();
        }
    } else {
        $timer = $sms_gate->next_time_send - time();
        if ($timer > 0) {
            $objResponse->alert("Следующее сообщение можно будет послать через {$timer} " . ending($timer, 'секунду', 'секунды', 'секунд'));
        }
    }
    if (SMS_GATE_DEBUG && !$code_debug) {
        $code_debug = $info['data'];
    }
    $callback_js = 'a_sms_disabled_safety';
    $callback_resend = 'sendCode';
    $sms_title = 'Подтверждение действий';
    $sms_btn = 'Отправить';
    ob_start();
    include $_SERVER['DOCUMENT_ROOT'] . '/sbr/tpl.auth_sms_popup.php';
    $out = ob_get_clean();
    $objResponse->assign('auth_popup', 'innerHTML', $out);
    $objResponse->script("\$('auth_popup').show(); \$('auth_popup').removeClass('b-shadow_hide'); shadow_popup();");
    return $objResponse;
}
예제 #13
0
 foreach ($sbr->stages as $i => $curr_stage) {
     if ($curr_stage->data['frl_agree'] == 'f') {
         $all_agree = false;
         $active_stage = $curr_stage;
         $position = $i + 1;
         break;
     }
 }
 if ($all_agree) {
     $active_stage = false;
     $position = count($sbr->stages);
 }
 $is_filled = explode(',', preg_replace('/[}{]/', '', $sbr->user_reqvs['is_filled']));
 $isReqvsFilled[sbr::FT_PHYS] = $is_filled[sbr::FT_PHYS - 1] == 't';
 $isReqvsFilled[sbr::FT_JURI] = $is_filled[sbr::FT_JURI - 1] == 't';
 $frl_reqvs = sbr_meta::getUserReqvs(get_uid(false));
 $sbr_schemes = $sbr->getSchemes();
 $frl_reqvs['form_type'] = sbr::FT_PHYS;
 $sbr_schemes_phys = sbr_meta::jsSchemeTaxes($sbr_schemes, $frl_reqvs, $sbr->getUserReqvs(), sbr::FRL);
 $frl_reqvs['form_type'] = sbr::FT_JURI;
 $sbr_schemes_jury = sbr_meta::jsSchemeTaxes($sbr_schemes, $frl_reqvs, $sbr->getUserReqvs(), sbr::FRL);
 $sbr_schemes = $sbr->getSchemes();
 //        $frl_reqvs = $sbr->getFrlReqvs();
 if ($sbr->scheme_type == sbr::SCHEME_LC) {
     $sbr->checkEnableMethodPayments();
     $pskb_frl = new pskb_user($sbr->getFrlReqvs(), 0, $sbr->getTotalCost());
     $pskb_frl->setOnlyWW($sbr->is_only_ww);
     $paysystems = $pskb_frl->getPsystems();
 } else {
     $totalSum = 0;
     foreach ($sbr->stages as $stg) {
예제 #14
0
 /**
  * Инициализируем тип оплаты на странице.
  *
  * @todo: более данный механизм не используется, хотя можно было на его базе попробовать использовать ЯДКассу
  * 
  * @param string $type_payment Название тип оплаты (передается в $_GET['type'])
  */
 public function setPaymentMethod($type_payment)
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/exrates.php';
     switch ($type_payment) {
         case 'sber_print':
             $this->payment_template = 'bank/tpl.bank_fiz_print.php';
             $this->type_menu_block = 'bank';
             $this->payment_type = exrates::BANK;
             break;
         case 'sber':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/bank_payments.php';
             $this->payment_template = 'bank/tpl.bank_fiz.php';
             $this->type_menu_block = 'bank';
             $this->payment_type = exrates::BANK;
             $this->pm = new bank_payments();
             $this->pm->bank_code = __paramInit('int', null, 'bc', bank_payments::BC_SB);
             $this->pm->sum = __paramInit('float', null, 'Sum');
             $bp_reqv = bank_payments::GetLastReqv($this->pm->bank_code, $this->user['uid']);
             $this->pm->fio = $bp_reqv['fio'];
             $this->pm->address = $bp_reqv['address'];
             if (!$this->pm->bill_num) {
                 $this->pm->bill_num = bank_payments::GenBillNum($this->pm->bank_code, $this->user['uid'], $this->acc['id']);
             }
             if (isset($_POST['action']) && $_POST['action'] == 'payment') {
                 $this->pm->fio = substr(__paramInit('string', null, 'fio'), 0, 128);
                 $this->pm->is_gift = false;
                 $this->pm->address = substr(__paramInit('string', null, 'address'), 0, 255);
                 $this->pm->bank_code = __paramInit('int', null, 'bc');
                 $this->pm->sum = __paramInit('float', null, 'sum');
                 setlocale(LC_ALL, 'en_US.UTF-8');
                 // гребанная бета! (это не мое)
                 $this->pm->fm_sum = $bp->sum / EXCH_TR;
                 $id = __paramInit('int', null, 'id');
                 if ($this->pm->sum < 10) {
                     $alert['sum'] = 'Минимальная сумма платежа 10 рублей';
                 }
                 if (!$this->pm->fio) {
                     $alert['fio'] = 'Поле заполнено некорректно.';
                 }
                 if (!$this->pm->address) {
                     $alert['address'] = 'Поле заполнено некорректно.';
                 }
                 if (!$alert) {
                     if ($id) {
                         $this->pm->bank_code = null;
                         $this->pm->Update($id, " AND user_id = {$this->user['uid']} AND accepted_time IS NULL");
                     } else {
                         $this->pm->bill_num = bank_payments::GenBillNum($this->pm->bank_code, $this->user['uid'], $this->acc['id']);
                         $this->pm->user_id = $this->user['uid'];
                         $this->pm->op_code = 12;
                         $id = $this->pm->Add($error, true);
                     }
                     if (!$error) {
                         $prepare = $this->preparePayments($this->getTotalAmmountOrders());
                         if ($prepare) {
                             header("Location: /bill/payment/print/?type=sber_print&id={$id}");
                             exit;
                         }
                     }
                 }
                 $this->error = $alert;
             }
             $this->bank = bank_payments::GetBank($bp->bank_code);
             break;
         case 'bank_print':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv_ordered.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php';
             if ($_GET['order'] > 0) {
                 $this->payment_template = 'bank/tpl.bank_jur_transfer.php';
                 $this->tid = intval($_GET['order']);
             } else {
                 $this->payment_template = 'bank/tpl.bank_jur_print.php';
             }
             $this->type_menu_block = 'bank';
             $this->payment_type = exrates::BANK;
             $this->bank_sum = $_SESSION['sum_bank_print'];
             $this->bank_id = $_SESSION['id_bank_print'];
             unset($_SESSION['sum_bank_print'], $_SESSION['id_bank_print']);
             break;
         case 'bank':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/reqv_ordered.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/country.php';
             $this->payment_template = 'bank/tpl.bank_jur.php';
             $this->type_menu_block = 'bank';
             $this->payment_type = exrates::BANK;
             $this->pm = new reqv();
             $reqvByUid = $this->pm->GetByUid($this->user['uid']);
             $reqvs_ord = new reqv_ordered();
             $this->pm->billNum = sizeof($reqvs_ord->GetByUid($this->user['uid']));
             $this->pm->BindRequest($reqvByUid[0]);
             if (isset($_POST['action']) && $_POST['action'] == 'payment') {
                 $_POST['country'] = country::getCountryName($_POST['country_db_id']);
                 $_POST['city'] = city::getCityName($_POST['city_db_id']);
                 $this->pm->BindRequest($_POST);
                 $this->error = $this->pm->CheckInput();
                 if ($_POST['sum'] < 10) {
                     $this->error['sum'] = 'Минимальная сумма платежа 10 рублей';
                 }
                 if (!$this->error) {
                     $this->pm->user_id = $this->user['uid'];
                     if ($reqvByUid[0]['id'] > 0) {
                         $id = $reqvByUid[0]['id'];
                         $this->pm->Update($id, " AND user_id= {$this->user['uid']}");
                     } else {
                         $id = $this->pm->Add($err, true);
                     }
                     $prepare = $this->preparePayments($this->getTotalAmmountOrders());
                     if ($prepare) {
                         $_SESSION['id_bank_print'] = $id;
                         $_SESSION['sum_bank_print'] = intval($_POST['sum']);
                         header('Location: /bill/payment/print/?type=bank_print');
                         exit;
                     }
                 }
             }
             break;
         case 'alphabank':
             $this->payment_template = 'bank/tpl.alphabank.php';
             $this->type_menu_block = 'bank';
             $this->payment_type = exrates::BANK;
             if (isset($_POST['action']) && $_POST['action'] == 'reserve') {
                 header('Location: /bill/');
                 exit;
             }
             break;
         case 'card':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/settings.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/card_account.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/cardpay.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/city.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/onlinedengi_cards.php';
             $this->payment_template = 'card/tpl.card.php';
             $this->type_menu_block = 'card';
             $this->payment_type = exrates::CARD;
             $this->card_merchant = settings::GetVariable('billing', 'card_merchant');
             if ($this->card_merchant) {
                 $card_account = new card_account();
                 $card_account->account_id = $this->acc['id'];
                 $this->pm = new onlinedengi_cards();
                 if (!$this->not_init_pm) {
                     $this->pm->order_id = $card_account->Add();
                 }
             } else {
                 $this->pm = new card_account();
                 $this->pm->account_id = $this->acc['id'];
                 if (!$this->not_init_pm) {
                     $this->pm->order_id = $this->pm->Add();
                 }
                 $this->pm->reqv = sbr_meta::getUserReqvs($this->user['uid']);
             }
             break;
         case 'qiwi':
             $this->payment_template = 'terminal/tpl.qiwi.php';
         case 'svyasnoy':
             $this->payment_template = $this->payment_template ? $this->payment_template : 'terminal/tpl.svyasnoy.php';
         case 'euroset':
             $this->payment_template = $this->payment_template ? $this->payment_template : 'terminal/tpl.euroset.php';
             $this->type_menu_block = 'terminal';
             $this->payment_type = exrates::OSMP;
             if ($_POST['action'] == 'osmp') {
                 $prepare = $this->preparePayments($this->getTotalAmmountOrders());
                 if (!$this->test && $prepare !== false) {
                     header('Location: /bill/');
                     exit;
                 }
             } else {
                 $this->error = 'Ошибка создания списка оплаты';
             }
             break;
         case 'megafon_mobile':
             $this->payment_template = 'mobile/tpl.m_megafon.php';
         case 'beeline_mobile':
             $this->payment_template = $this->payment_template ? $this->payment_template : 'mobile/tpl.m_beeline.php';
         case 'mts_mobile':
             $this->payment_template = $this->payment_template ? $this->payment_template : 'mobile/tpl.m_mts.php';
         case 'matrix_mobile':
             $this->payment_template = $this->payment_template ? $this->payment_template : 'mobile/tpl.m_matrix.php';
             $this->type_menu_block = 'mobilesys';
             $this->payment_type = exrates::MOBILE;
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/qiwipay.php';
             $this->pm = new qiwipay($this->user['uid']);
             if ($_POST['operator'] == 'megafon' || $_POST['operator'] == 'beeline' || $_POST['operator'] == 'mts' || $_POST['operator'] == 'matrix') {
                 $phone = __paramValue('string', $_POST['phone']);
                 $phone = str_replace(array('+7', '+77'), '', $phone);
                 $err = 0;
                 switch ($_POST['operator']) {
                     case 'megafon':
                         if (!(strpos($phone, '34') === 0 || strpos($phone, '62') === 0 || strpos($phone, '82') === 0 || strpos($phone, '92') === 0 || strpos($phone, '35') === 0 || strpos($phone, '63') === 0 || strpos($phone, '83') === 0 || strpos($phone, '93') === 0 || strpos($phone, '69') === 0 || strpos($phone, '99') === 0)) {
                             $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети Мегафон';
                             $err = 1;
                         }
                         break;
                     case 'beeline':
                         if (!(strpos($phone, '90') === 0 || strpos($phone, '96') === 0)) {
                             $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети Beeline';
                             $err = 1;
                         }
                         break;
                     case 'mts':
                         if (!(strpos($phone, '91') === 0 || strpos($phone, '98') === 0)) {
                             $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети МТС';
                             $err = 1;
                         }
                         break;
                     case 'matrix':
                         if (!(strpos($phone, '958') === 0)) {
                             $this->error['phone'] = 'Проверьте, верно ли выбран оператор. Указанный номер не относится в сети Matrix';
                             $err = 1;
                         }
                         break;
                 }
                 if (!$err) {
                     $sum = __paramValue('float', $_POST['sum']);
                     $request = array('phone' => $phone, 'sum' => $sum, 'oper_code' => $_POST['operator']);
                     $created = $this->pm->createBill($request);
                     if (!$created) {
                         $prepare = $this->preparePayments($this->getTotalAmmountOrders());
                         if (!$this->test && $prepare !== false) {
                             header('Location: /bill/');
                             exit;
                         }
                     } else {
                         $this->error = $created;
                     }
                 }
             }
             break;
         case 'webpay':
             $this->type_menu_block = 'psys';
             $this->payment_type = exrates::WEBM;
             $this->payment_template = 'psys/tpl.webpay.php';
             break;
         case 'qiwipurse':
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/qiwipay.php';
             $this->pm = new qiwipay($this->user['uid']);
             $this->type_menu_block = 'psys';
             $this->payment_type = exrates::QIWIPURSE;
             $this->payment_template = 'psys/tpl.qiwipurse.php';
             if ($_POST['action'] == 'qiwipurse') {
                 $phone = __paramValue('string', $_POST['phone']);
                 $phone = str_replace(array('+7', '+77'), '', $phone);
                 $sum = __paramValue('float', $_POST['sum']);
                 $request = array('phone' => $phone, 'sum' => $sum);
                 $created = $this->pm->createBill($request);
                 if (!$created) {
                     $prepare = $this->preparePayments($this->getTotalAmmountOrders());
                     if (!$this->test && $prepare !== false) {
                         header('Location: /bill/');
                         exit;
                     }
                 } else {
                     $this->error = $created;
                 }
             }
             break;
         case 'yandex':
             $this->type_menu_block = 'psys';
             $this->payment_type = exrates::YM;
             $this->payment_template = 'psys/tpl.yandex.php';
             break;
         case 'webmoney':
             $this->type_menu_block = 'psys';
             require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/pmpay.php';
             $this->payment_type = exrates::WMR;
             $this->payment_template = 'psys/tpl.webmoney.php';
             $this->pm = new pmpay();
             break;
         case 'okpay':
             $this->type_menu_block = 'psys';
             $this->payment_type = exrates::OKPAY;
             $this->payment_template = 'psys/tpl.okpay.php';
             break;
     }
     $this->type_payment = $type_payment;
 }
예제 #15
0
파일: sbr.php 프로젝트: amage/fl-ru-damp
 /**
  * Взять СБР-реквизиты работодателя (со страницы информации, вкладка "Финансы")
  * 
  * @return array массив с реквизитами, индексированный: [1] -- реквизиты физ. лица, [2] -- реквизиты юр. лица, [any] -- др. поля, флаги.
  */
 function getEmpReqvs($force = false)
 {
     if ($this->emp_reqvs === false && $this->emp_id || $force === true) {
         $this->emp_reqvs = parent::getUserReqvs($this->emp_id);
     }
     return $this->emp_reqvs;
 }
예제 #16
0
 /**
  * Функция для вывода и обработки редактирования финансов в попап окне
  *  
  */
 public static function view_finance_popup($redirect_url = "")
 {
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/account.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/smail.php";
     require_once $_SERVER['DOCUMENT_ROOT'] . "/classes/attachedfiles.php";
     $action = __paramInit('string', NULL, 'action');
     $sbr_id = __paramInit('int', 'id');
     $account = new account();
     $uid = $_SESSION['uid'];
     $ok = $account->GetInfo($uid, true);
     $reqvs = sbr_meta::getUserReqvs($uid);
     $sbr = sbr_meta::getInstance();
     $form_type = $reqvs['form_type'];
     $rez_type = __paramInit('int', NULL, 'rez_type');
     if ($rt_disabled = $sbr->checkChangeRT()) {
         if (!($rez_type = $reqvs['rez_type'])) {
             $rez_type = sbr::RT_RU;
         }
         $reqvs['rez_type'] = $rez_type;
     }
     if (!isset($rez_type)) {
         $rez_type = $reqvs['rez_type'];
     }
     $reqvs['rez_type'] = $rez_type;
     // !!!
     if ($action == 'updfin') {
         $popup_open = true;
         $error = array();
         $form_type = __paramInit('int', NULL, 'form_type');
         if ($form_type || $rez_type || isset($_POST['ft' . $form_type])) {
             if (!$ft_disabled) {
                 $reqvs['form_type'] = $form_type;
             }
             $reqvs[$form_type] = $_POST['ft' . $form_type];
             //@todo: запрещаем изменять финансы в старой СБР #29196
             $error['sbr'] = 'Прекращена поддержка СБР.';
             //if ($err = sbr_meta::setUserReqv($uid, $rez_type, $form_type, $reqvs[$form_type], $ft_disabled))
             //    $error['sbr'] = $err;
         }
         // обработка загруженных и удаленных файлов
         $attachedFiles = new attachedfiles($_POST['attachedfiles_session']);
         $attachedFiles_files = $attachedFiles->getFiles(array(1, 4));
         $err = $account->addAttach2($attachedFiles_files);
         // сохраняем файлы
         if ($err) {
             $error['all']['err_attach'] = $err;
         }
         if (!$error) {
             if ($stage) {
                 $stage->setPayoutSys((int) $_POST['credit_sys'], true);
             }
             //$_SESSION['users.setup.fin_success'] = 1;
             if (!hasPermissions('users')) {
                 $smail = new smail();
                 $smail->FinanceChanged($login);
             }
             header_location_exit($redirect_url, 1);
         }
         $finance_error = $error;
     }
     $attach = $account->getAllAttach();
     $prepared = sbr_meta::prepareFinanceFiles($attach);
     $attachDoc = $prepared['attachDoc'];
     $attachOther = $prepared['attachOther'];
     $attachedFilesDoc = $prepared['attachedFilesDoc'];
     $attachedFilesOther = $prepared['attachedFilesOther'];
     include $_SERVER['DOCUMENT_ROOT'] . '/sbr/tpl.finance.php';
 }
예제 #17
0
if ($email) {
    $user = new users();
    $user = $user->getUserBySocialEmail($email);
    if (empty($user['login'])) {
        $action = '';
    } else {
        $login = $user['login'];
    }
}
if ($login) {
    $user = new users();
    if ($action == 'info') {
        $user->GetUserByLoginPasswd($login, $user->hashPasswd($pass));
    } else {
        $user->GetUser($login);
    }
    if (empty($user->login)) {
        $action = '';
    }
}
switch ($action) {
    case 'role':
        $result = array('result' => 'ok', 'role' => is_emp($user->role) ? 1 : 2);
        break;
    case 'info':
        $sbr = sbr_meta::getUserReqvs($user->uid);
        $result = array('result' => 'ok', 'user' => array('login' => $user->login, 'email' => $user->email, 'phone' => $sbr[$sbr['form_type']]['mob_phone'] != '' ? $sbr[$sbr['form_type']]['mob_phone'] : '', 'firstname' => $user->uname ? iconv('CP1251', 'UTF-8', $user->uname) : '', 'lastname' => $user->usurname ? iconv('CP1251', 'UTF-8', $user->usurname) : '', 'role' => is_emp($user->role) ? 1 : 2, 'avatar' => $user->photo != '' ? WDCPREFIX . '/users/' . $user->login . '/foto/' . $user->photo : ''));
        break;
}
$mem->set($key, $result, 600);
echo json_encode($result);
예제 #18
0
        ) ORDER BY sbr_id";
*/
$data = $DB->rows($sql);
//$sbr = sbr_meta::getInstance( sbr_meta::ADMIN_ACCESS );
$sbr = new sbr_adm(103, 'admin');
if ($data) {
    foreach ($data as $row) {
        $user = new users();
        $user->GetUser($row['login']);
        $letter = array();
        $letter['title'] = "СБР-{$row['sbr_id']}-Б/О#{$row['lc_id']}";
        $letter['user_add'] = 57748;
        $letter['user_1'] = 6;
        $letter['user_2'] = $user->uid;
        $letter['user_status_2'] = 11;
        $recipient = sbr_meta::getUserReqvs($letter['user_2']);
        if ($row['form_type'] == 1) {
            $address = (bool) trim($recipient[1]['address']);
        } else {
            $address = (bool) trim($recipient[2]['address']) || (bool) trim($recipient[2]['address_fct']) || (bool) trim($recipient[2]['address_jry']);
        }
        if (empty($address)) {
            $res['a'][] = $row['sbr_id'];
            echo "{$row['sbr_id']} - Havn't address!\n";
            continue;
        }
        $sbr->initFromId($row['sbr_id']);
        //$letter['user1_i']['form_type']==1 ? $letter['user1_i'][1]['address'] : $letter['user1_i'][2]['address']
        /*
        $pdf_f_name = "/tmp/" . uniqid().".pdf";
        $recipient = sbr_meta::getUserReqvs($letter['user_2']);
예제 #19
0
/**
 * Изменить данные привязки аккаунта к телефону.
 * 
 * @param int    $sUid       UID пользователя
 * @param string $sPhone     телефон
 * @param string $sPhoneOnly отправлять восстановление пароля только на телефон - 't' или 'f'
 * @param string $sSafetyMob Входить в финансы только по СМС - 't' или 'f'
 *
 * @return object xajaxResponse
 */
function updateSafetyPhone($sUid = 0, $sPhone = '', $sPhoneOnly = 'f', $sSafetyMob = 'f')
{
    session_start();
    $objResponse = new xajaxResponse();
    if (hasPermissions('users')) {
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/users.php';
        require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr.php';
        $sPhone = '+' . str_replace('+', '', $sPhone);
        $reqv = sbr_meta::getUserReqvs($sUid);
        if ($reqv[$reqv['form_type']]['mob_phone'] != $sPhone) {
            $nreqv['mob_phone'] = $sPhone;
            $cnt = 0;
            $filter = array('search_phone_exact' => true, 'search_phone' => $nreqv['mob_phone']);
            sbr_meta::searchUsersPhone($cnt, $filter);
            if ($cnt > 0) {
                $res = "Телефон {$sPhone} уже зарегистрирован в системе.";
                $objResponse->assign("safety_phone{$sUid}", 'value', $reqv[$reqv['form_type']]['mob_phone']);
            } else {
                sbr_meta::$reqv_fields[$reqv['form_type']]['mob_phone']['maxlength'] = 15;
                $error = sbr_meta::setUserReqv($sUid, $reqv['rez_type'], $reqv['form_type'], $nreqv);
            }
        }
        $res = users::ChangeSafetyPhone($sUid, $sPhone, $sPhoneOnly);
        $error = sbr_meta::safetyMobPhone($sUid, $sSafetyMob);
        if ($res) {
            $objResponse->alert($res);
            $objResponse->script("\$('safety_phone_show{$sUid}').setStyle('display', '');");
        } else {
            $sChecked = $sPhoneOnly == 't' ? 'true' : 'false';
            $sDisplay = $sPhoneOnly == 't' ? '' : 'none';
            $sSafetyMobDisplay = $sSafetyMob == 't' ? '' : 'none';
            $objResponse->assign("safety_phone_value{$sUid}", 'innerHTML', $sPhone);
            $objResponse->assign("safety_phone_hidden{$sUid}", 'value', $sPhone);
            $objResponse->script("\$('safety_only_phone_show{$sUid}').setStyle('display', '{$sDisplay}');");
            $objResponse->script("\$('is_safety_mob_show{$sUid}').setStyle('display', '{$sSafetyMobDisplay}');");
            $sDisplay = trim($sPhone) ? '' : 'none';
            $objResponse->script("\$('safety_phone_show{$sUid}').setStyle('display', '{$sDisplay}');");
        }
        $objResponse->script("\$('safety_phone_edit{$sUid}').setStyle('display', 'none');");
    }
    return $objResponse;
}
예제 #20
0
 /**
  * Получить данные о пользователе. Обертка для sbr_meta::getUserReqvs()
  * 
  * @param  type $uid  uid пользователя
  * @return array      данные пользователя
  */
 function getUserReqvs($uid)
 {
     $user = sbr_meta::getUserReqvs($uid);
     if ($user && $user['form_type'] == 2 && trim($user[2]['address']) == '') {
         if (trim($user[2]['address_fct']) != '') {
             $user[2]['address'] = trim($user[2]['address_fct']);
         } else {
             if (trim($user[2]['address_jry']) != '') {
                 $user[2]['address'] = trim($user[2]['address_jry']);
             }
         }
     }
     return $user;
 }
예제 #21
0
 /**
  * Возвращает информацию о выплате ЯД
  * 
  * @param  int $user_id UID пользователя
  * @return object yd_payments
  */
 function getWmPaymentInfo($user_id)
 {
     if (!$this->sbr->isAdmin()) {
         return;
     }
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/wm_payments.php';
     if (!$this->getPayouts($user_id)) {
         return NULL;
     }
     $payout = $this->payouts[$user_id];
     $wm = new wm_payments($payout['id'], wm_payments::SRC_SBR);
     if (!is_release()) {
         $wm->DEBUG = array('address' => $GLOBALS['host'] . '/norisk2/admin/wm-server-test.php');
         if (defined('BASIC_AUTH')) {
             $wm->DEBUG['headers'] = 'Authorization: Basic ' . base64_encode(BASIC_AUTH) . "\r\n";
         }
     }
     $pmt = $wm->getPayment();
     $reqvs = sbr_meta::getUserReqvs($user_id);
     if ($pmt) {
         $tr = $wm->getTr($pmt['ltr_id']);
         $pmt['dstacnt_nr'] = $tr ? $tr['purse'] : $reqvs[sbr::FT_PHYS]['el_wmr'];
         $pmt['performed_dt'] = $tr['dateupd'];
     } else {
         $pmt = array('src_id' => $payout['id'], 'src_type' => wm_payments::SRC_SBR, 'in_amt' => $payout['credit_sum'], 'dstacnt_nr' => $reqvs[sbr::FT_PHYS]['el_wmr']);
     }
     // $pmt['balance'] = $wm->balance();
     $pmt['errors'] = $wm->errors;
     $pmt['amt_sys'] = exrates::WMR;
     return $pmt;
 }
예제 #22
0
 /**
  * Получает информацию о пользователях, участвующих в сделках.
  *
  * @return array
  */
 private function getUsers()
 {
     $sql = 'SELECT u.uid, u.login, u.email
         FROM users u
         WHERE u.uid IN (?l)';
     $users = $this->db()->rows($sql, $this->uids);
     $form_types = sbr_meta::$types;
     $data1 = $data4 = array();
     foreach ($users as $user) {
         $user_reqvs = sbr_meta::getUserReqvs($user['uid']);
         $reqvs = $user_reqvs[$user_reqvs['form_type']];
         $fio = explode(' ', $reqvs['fio']);
         if (!isset($fio[0])) {
             $fio[0] = '';
         }
         if (!isset($fio[1])) {
             $fio[1] = '';
         }
         if (!isset($fio[2])) {
             $fio[2] = '';
         }
         if (count($fio > 3)) {
             $max = count($fio) - 2;
             $fio[2] = implode(' ', array_slice($fio, 2, $max));
         }
         $is_phis = $user_reqvs['form_type'] == sbr::FT_PHYS;
         $is_rus = in_array($user_reqvs['rez_type'], array(sbr::RT_RU, sbr::RT_REFUGEE, sbr::RT_RESIDENCE));
         if (!$is_rus) {
             $this->foreign_logins[] = $user['login'];
         }
         $q = $reqvs['type'] == sbr_meta::TYPE_IP ? '' : '"';
         $name_corp = $is_phis ? '' : ($is_rus ? $form_types[(int) $reqvs['type']] . ' ' . $q . $reqvs['full_name'] . $q : $reqvs['full_name']);
         if ($is_phis && $user_reqvs['validate_status'] != sbr_meta::VALIDATE_STATUS_OK) {
             $data1[] = array('id_contragent' => !$is_phis && $is_rus ? $reqvs['inn'] : $user['login'], 'login' => $user['login'], 'i_name' => '', 'o_name' => '', 'f_name' => '', 'country' => 'Россия', 'status' => 0, 'ser_pass' => '', 'num_pass' => '', 'date_pass' => '', 'org_pass' => '', 'reg_addr' => '', 'post_addr' => '', 'name_comp' => '', 'short_name' => '', 'inn_comp' => '', 'kpp_comp' => '', 'pay_nds' => 0, 'rs_bank' => '', 'bik_bank' => '', 'name_bank' => '', 'ks_bank' => '', 'name_ubank' => '', 'ks_ubank' => '', 'inn_ubank' => '', 'bik_ubank' => '');
         } else {
             $data1[] = array('id_contragent' => !$is_phis && $is_rus ? $reqvs['inn'] : $user['login'], 'login' => $user['login'], 'i_name' => $fio[1], 'o_name' => $fio[2], 'f_name' => $fio[0], 'country' => $is_rus ? 'Россия' : $reqvs['country'], 'status' => $is_phis ? 0 : 1, 'ser_pass' => $is_phis ? $reqvs['idcard_ser'] : '', 'num_pass' => $is_phis ? $reqvs['idcard'] : '', 'date_pass' => $is_phis ? $reqvs['idcard_from'] : '', 'org_pass' => $is_phis ? $reqvs['idcard_by'] : '', 'reg_addr' => $is_phis ? $reqvs['address_reg'] : $reqvs['address_jry'], 'post_addr' => $reqvs['address'], 'name_comp' => $name_corp, 'short_name' => $reqvs['full_name'], 'inn_comp' => $is_phis ? '' : ($is_rus ? $reqvs['inn'] : $reqvs['rnn']), 'kpp_comp' => $is_phis || !$is_rus ? '' : $reqvs['kpp'], 'pay_nds' => $is_phis || !$is_rus ? 0 : 1, 'rs_bank' => $is_phis && $is_rus ? '' : $reqvs['bank_rs'], 'bik_bank' => $is_phis || !$is_rus ? '' : $reqvs['bank_bik'], 'name_bank' => $is_phis && $is_rus ? '' : $reqvs['bank_name'], 'ks_bank' => $is_phis || !$is_rus ? '' : $reqvs['bank_ks'], 'name_ubank' => $is_rus ? '' : $reqvs['bank_rf_name'], 'ks_ubank' => $is_rus ? '' : $reqvs['bank_rf_ks'], 'inn_ubank' => $is_rus ? '' : $reqvs['bank_rf_inn'], 'bik_ubank' => $is_rus ? '' : $reqvs['bank_rf_bik']);
         }
         $data4[] = array('login' => $user['login'], 'i_name' => $fio[1], 'o_name' => $fio[2], 'f_name' => $fio[0], 'phone' => $reqvs['mob_phone'], 'email' => $user['email']);
     }
     return array(1 => $data1, 4 => $data4);
 }
?>
                <a class="b-button b-button_flat b-button_flat_green b-button_disabled <?//= ($disableButton ? "b-button_disabled" : "")?>" id="agree_btn" href="javascript:void(0)" onclick="if(!$(this).hasClass('b-button_disabled'))submitForm(document.getElementById('currentsFrm<?php 
echo $sbr->id;
?>
'),{ok:1})">Согласиться на сделку
                            <img width="26" height="6" alt="" src="/css/block/b-button/b-button__load.gif" class="b-button__load b-layout_hide"></a>
                <span class="b-buttons__txt b-buttons__txt_padleft_10">или</span> <a href="javascript:void(0)" onclick="$('rrbox<?php 
echo $sbr->data['id'];
?>
').toggleClass('b-shadow_hide'); return false;"  class="b-buttons__link b-buttons__link_dot_c10601">отказаться</a>	
            </div>
        </td>
    </tr>
</table>
<?php 
$frlReqvs = sbr_meta::getUserReqvs($sbr->data['emp_id']);
?>
<script type="text/javascript">
    var finance = new Finance({form_type: '<?php 
echo $sbr->user_reqvs['form_type'];
?>
'});
    <?php 
if (!$sbr->is_diff_method) {
    ?>
    var taxes   = new Taxes({
        'cost' :        '<?php 
    echo $sbr->cost;
    ?>
',
        'rating':       '<?php 
예제 #24
0
 /**
  * Верификация через OKPAY. 
  * 
  * @param  integer $uid  uid пользователя
  * @return boolean       результат операции
  */
 public function okpay($uid)
 {
     global $DB;
     if (empty($uid)) {
         $this->error = 'Вы не авторизованы.';
         return false;
     }
     $logId = $DB->insert('verify_okpay', array('user_id' => $uid), 'id');
     require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/sbr_meta.php';
     $this->aUserReqvs = sbr_meta::getUserReqvs($uid);
     if (empty($this->aUserReqvs[1]['mob_phone']) || $this->aUserReqvs['is_activate_mob'] == 'f') {
         $this->error = 'Для верификации у вас должен быть активирован номер телефона в <a href="/users/' . $_SESSION['login'] . '/setup/main/">основных настройках</a> аккаунта.';
         return false;
     }
     $is_verify = false;
     $phone = str_replace("+", "", $this->aUserReqvs[1]['mob_phone']);
     $sql = "SELECT COUNT(user_id) FROM sbr_reqv WHERE _1_mob_phone=?";
     $foundPhones = $DB->val($sql, "+" . $phone);
     if ($foundPhones > 1) {
         $this->error = 'Данный номер телефона уже был использован при верификации кем-то из пользователей.';
         return false;
     }
     $datePart = gmdate("Ymd");
     $timePart = gmdate("H");
     $authString = self::OKPAY_CLIENT_SECRET . ":" . $datePart . ":" . $timePart;
     $secToken = hash('SHA256', $authString);
     $secToken = strtoupper($secToken);
     try {
         $client = new SoapClient(self::OKPAY_URI_API);
     } catch (Exception $e) {
         header('Location: /promo/verification/?service=okpay&error=1');
         exit;
     }
     $obj = new stdClass();
     $obj->WalletID = self::OKPAY_WALLETID;
     $obj->SecurityToken = $secToken;
     $obj->Account = $phone;
     $webService = $client->Account_Check($obj);
     $res = $webService->Account_CheckResult;
     $DB->update('verify_okpay', array('phone' => $phone, 'log' => $res), "id = ?", $logId);
     if ($res) {
         $is_verify = true;
     } else {
         $this->error = 'Для верификации у вас должен быть верифицированный кошелек.';
         return false;
     }
     if ($is_verify) {
         $DB->update('verify_okpay', array('result' => true), "id = ?", $logId);
         $DB->query("UPDATE users SET is_verify = TRUE WHERE uid = ?", $uid);
         return true;
     }
     return false;
 }