require 'vendor/autoload.php';
class DefaultController extends Controller
{
public $page_title;
public $meta_desc;
public $bottom_desc;
public $title;
public $descript;
public $breadcrumbs;
public $nofound;
// public $partner_products_sberbank = [
// ['our_title' => 'Доверительный кредит с комиссиями', 'partner_title' => 'Доверительный кредит'],
// ['our_title' => 'Кредитный лимит на платежную карту', 'partner_title' => 'Кредитная карта'],
// ['our_title' => 'Образовательный кредит', 'partner_title' => 'Образовательный кредит'],
// ['our_title' => 'Кредитование под залог депозита', 'partner_title' => 'Кредитование под залог депозита'],
// ['our_title' => 'Кредит на неотложные нужды под залог недвижимости потребительские цели', 'partner_title' => 'Неотложные нужды потреб цели'],
// ['our_title' => 'Кредит на неотложные нужды под залог недвижимости не потребительские цели', 'partner_title' => 'Неотложные нужды на цели, не относящиеся к потребительским'],
// ['our_title' => 'Неотложные нужды', 'partner_title' => 'Неотложные нужды'],
// ['our_title' => 'Жилищный кредит', 'partner_title' => 'Жилищный кредит'],
// ['our_title' => 'Жилищный кредит с упрощенным финансовым анализом', 'partner_title' => 'Жилищный УФА'],
// ['our_title' => 'Субсидированная ипотека – Нурлы жер (покупка первичного жилья)', 'partner_title' => 'Ипотека - гос.программа "Нурлы жер"'],
// ['our_title' => 'Ипотека – 175 квартир', 'partner_title' => 'Жилищный кредит – Акция «175 квартир»'],
// ];
public $qf = array (
'ipoteka-bez-pervonachalnogo-vznosa'=> array (
//'cond'=>"Obesp_bez='да'",
'name'=>'Без первоначльного взноса',
'preset'=>'$filt[\'Prepay\']=\'да\';',
'num' =>0,),
'ipoteka-na-kvartiru'=> array (
//'cond'=>"Obesp_nedvizhimost='да'",
'name'=>'На квартиру',
'preset'=>'$filt[\'Vid\']=\'Vid_apartamenty\';',
'num' =>0,),
'zhile-na-vtorichnom-rynke'=> array (
//'cond'=>"Sroki_rassmotreniya=0",
'name'=>'На вторичное жилье',
'preset'=>'$filt[\'Vid\']=\'Vid_vtorichnyy\';',
'num' =>0,),
'zhile-na-pervichnom-rynke'=> array (
//'cond'=>"Vydacha_nalichnye='да'",
'name'=>'На первичное жилье',
'preset'=>'$filt[\'Vid\']=\'Vid_novostroyka\';',
'num' =>0,),
'ipoteka-na-stroitelstvo'=> array (
//'cond'=>"(Oformlenie_ipotekaa='он-лайн заявка' OR Oformlenie_ipotekaa='в отделении банка или он-лайн заявка')",
'name'=>'На строительство',
'preset'=>'$filt[\'Vid\']=\'Vid_stroyashchiysya\';',
'num' =>0,),
'zagorodnaja-nedvizhimost'=> array (
//'cond'=>"Pensioneram='да'",
'name'=>'На загородную недвижимость',
'preset'=>'$filt[\'Zagorod\']=\'да\';',
'num' =>0,),
'na-dom'=> array (
//'cond'=>"Vid_biznes='да'",
'name'=>'На индивидуальный дом',
'preset'=>'$filt[\'Vid\']=\'Vid_dom\';',
'num' =>0,),
'socialnaya-ipoteka'=> array (
//'cond'=>"Vid_refinansirovanie='да'",
'name'=>'Социальная ипотека',
'preset'=>'$filt[\'Kategoriya_socprogramma\']=\'да\';',
'num' =>0,),
'ipoteka-dlya-molodoi-semi'=> array (
//'cond'=>"Vid_obrazovanie='да'",
'name'=>'Для молодой семьи',
'preset'=>'$filt[\'Kategoriya_zaemshchika\']=\'молодая+семья\';',
'num' =>0,),
'ipoteka-dlya-uchitelei'=> array (
//'cond'=>"Vid_lubye='да'",
'name'=>'Для учителей',
'preset'=>'$filt[\'Kategoriya_uchitelyam\']=\'да\';',
'num' =>0,),
'ipoteka-bez-podtverzhdeniya-dohoda'=> array (
//'cond'=>"Credit_tab.Document='Без подтверждения доходов'",
'name'=>'Без потверждения доходов ',
'preset'=>'$calc[\'doc\']=\'Без подтверждения доходов\';',
'num' =>0,),
);
public $filters = array(
'Цель' => array (
array(
'label'=>'любая',
'name'=>'Vid',
'val'=>'',
),
array(
'label'=>'в строящемся доме ',
'name'=>'Vid',
'val'=>'Vid_stroyashchiysya',
),
array(
'label'=>'первичный рынок',
'name'=>'Vid',
'val'=>'Vid_novostroyka',
),
array(
'label'=>'вторичный рынок',
'name'=>'Vid',
'val'=>'Vid_vtorichnyy',
),
array(
'label'=>'квартира',
'name'=>'Vid',
'val'=>'Vid_apartamenty',
),
array(
'label'=>'коммерческая недвижимость',
'name'=>'Vid',
'val'=>'Vid_kommercheskaya',
),
array(
'label'=>'индивидуальный дом',
'name'=>'Vid',
'val'=>'Vid_dom',
),
array(
'label'=>'гараж',
'name'=>'Vid',
'val'=>'Vid_garazh',
),
array(
'label'=>'садовый домик',
'name'=>'Vid',
'val'=>'Vid_dachnyy',
),
array(
'label'=>'земельный участок',
'name'=>'Vid',
'val'=>'Vid_uchastok',
),
array(
'label'=>'индивидуальный дом',
'name'=>'Vid',
'val'=>'Vid_dom',
),
),
/* 'Форма выдачи' => array(
array(
'label'=>'наличными',
'name'=>'Vydacha_nalichnye',
'val'=>'да',
),
array(
'label'=>'на счет',
'name'=>'Vydacha_schet',
'val'=>'да',
),
array(
'label'=>'на карточный счет',
'name'=>'Vydacha_karta',
'val'=>'да',
),
),
'Сроки рассмотрения'
=> array(
array(
'label'=>'не важно',
'name'=>'Sroki_rassmotreniya',
'val'=>'',
),
array(
'label'=>'в день обращения',
'name'=>'Sroki_rassmotreniya',
'val'=>'0',
),
array(
'label'=>'до 3 дней',
'name'=>'Sroki_rassmotreniya',
'val'=>'3',
),
array(
'label'=>'до 7 дней',
'name'=>'Sroki_rassmotreniya',
'val'=>'7',
),
array(
'label'=>'до 14 дней',
'name'=>'Sroki_rassmotreniya',
'val'=>'14',
),
),*/
'Обеспечение' => array(
array(
'label'=>'не важно',
'name'=>'Obesp',
'val'=>'',
),
/*array(
'label'=>'без залога и поручительства',
'name'=>'Obesp',
'val'=>'Obesp_bez',
),*/
array(
'label'=>'поручительство',
'name'=>'Obesp',
'val'=>'Obesp_poruchitel',
),
array(
'label'=>'под залог депозита',
'name'=>'Obesp',
'val'=>'Obesp_deposit',
),
array(
'label'=>'залог приобретаемой недвижимости',
'name'=>'Obesp',
'val'=>'Obesp_nedv_priobret',
),
array(
'label'=>'залог имеющейся недвижимости',
'name'=>'Obesp',
'val'=>'Obesp_nedv_imeyushch',
),
array(
'label'=>'залог земельного участка',
'name'=>'Obesp',
'val'=>'Obesp_uchastok',
),
),
/*'Регистрация' => array(
array(
'label'=>'пост. в районе обращения',
'name'=>'Registraciya',
'val'=>'',
),
array(
'label'=>'постоянная',
'name'=>'Registraciya',
'val'=>'постоянная',
),
array(
'label'=>'без регистрации',
'name'=>'Registraciya',
'val'=>'не важно',
),
),*/
'Загородная недвижимость' =>
array(
'name'=>'Zagorod',
'val'=>'да',
),
/*'Без залога и поручительства' =>
array(
'name'=>'Obesp',
'val'=>'Obesp_bez',
),*/
'Без комиссий' => array(
'name'=>'Komissiya',
'val'=>'да',
),
'Без первоначального взноса'
=> array(
'name'=>'Prepay',
'val'=>'да',
),
'Онлайн-заявка' => array(
'name'=>'Online',
'val'=>'да',
),
);
public $dfilters = array(
'Досрочное погашение'
=> array(
'name'=>'Dosrochnoe_pogashenie',
'val'=>'да',
),
'Категория заемщика'
=> array(
array(
'label'=>'не имеет значения',
'name'=>'Kategoriya_zaemshchika',
'val'=>'',
),
array(
'label'=>'работники по найму',
'name'=>'Kategoriya_zaemshchika',
'val'=>'работники по найму',
),
array(
'label'=>'индивидуальные предприниматели',
'name'=>'Kategoriya_zaemshchika',
'val'=>'индивидуальные предприниматели',
),
array(
'label'=>'владельцы и совладельцы собственного бизнеса',
'name'=>'Kategoriya_zaemshchika',
'val'=>'владельцы и совладельцы собственного бизнеса',
),
array(
'label'=>'работники бюджетной сферы / госслужащие',
'name'=>'Kategoriya_zaemshchika',
'val'=>'работники бюджетной сферы / госслужащие',
),
array(
'label'=>'владельцы личных подсобных хозяйств',
'name'=>'Kategoriya_zaemshchika',
'val'=>'владельцы личных подсобных хозяйств',
),
array(
'label'=>'военнослужащие',
'name'=>'Kategoriya_zaemshchika',
'val'=>'военнослужащие',
),
array(
'label'=>'работники правоохранительных органов',
'name'=>'Kategoriya_zaemshchika',
'val'=>'работники правоохранительных органов',
),
array(
'label'=>'адвокаты / нотариусы',
'name'=>'Kategoriya_zaemshchika',
'val'=>'адвокаты / нотариусы',
),
array(
'label'=>'семья',
'name'=>'Kategoriya_zaemshchika',
'val'=>'семья',
),
array(
'label'=>'молодая семья',
'name'=>'Kategoriya_zaemshchika',
'val'=>'молодая семья',
),
),
'Отдельные категории'
=> array (
array(
'label'=>'военным',
'name'=>'Kategoriya_voennym',
'val'=>'да',
),
array(
'label'=>'молодым',
'name'=>'Kategoriya_molodym',
'val'=>'да',
),
array(
'label'=>'учителям',
'name'=>'Kategoriya_uchitelyam',
'val'=>'да',
),
array(
'label'=>'врачам',
'name'=>'Kategoriya_vracham',
'val'=>'да',
),
array(
'label'=>'социальная спец. программа',
'name'=>'Kategoriya_socprogramma',
'val'=>'да',
),
),
);
public function actionIndex($bank = null, $name = null, $city = null)
{
$breadcrumbs = '
'.Yii::t('f_layout', 'Главная').' '."\r\n";
if ($bank && $name && $city) {
$bankobj = Yii::app()->db->createCommand("SELECT * FROM Bank WHERE Bank.Translit = '$bank'")->queryRow();
$cityobj = Yii::app()->db->createCommand("SELECT * FROM City WHERE City.Translit = '$city'")->queryRow();
$breadcrumbs.=
'Банки ' . $cityobj['Genetive'] . ' ' . "\r\n" .
'Банк ' . $bankobj['Shortname'].' в '.$cityobj['Locative'] . ' '."\r\n".
'Ипотека банка ' . $bankobj['Shortname'].' в '.$cityobj['Locative'] . ' '."\r\n";
$this->_outSeoData('/ipoteka/{Bank.Translit}/'.$name.'/{City.Translit}/', $breadcrumbs, $bankobj, $cityobj);
$this->quickIpotekas($bank, $name, $city);
return true;
} else
if ($bank && $name) {
$bankobj = Bank::model()->find(array('condition'=>"Translit='$bank'"));
if ($bankobj) {
$productobj = Ipoteka::model()->find(array('condition'=>"Bank_Id={$bankobj->Id} AND Translit='$name'"));
if ($productobj) {
$this->page_title = @$productobj['Title']?$this->_decodeMask($productobj['Title'], $bankobj):'Not set';
$this->meta_desc = @$productobj['Seo_description']?$this->_decodeMask($productobj['Seo_description'], $bankobj):'Not set';
$this->title = @$productobj['Name'] ? $this->_decodeMask($productobj['Name'], $bankobj) : 'Not set';
$this->descript = @$productobj['Description'] ? $this->_decodeMask($productobj['Description'], $bankobj) : 'Not set';
$this->breadcrumbs = @$productobj['Breadcrumbs'] ? $breadcrumbs . 'Ипотека в Казахстане ' . "\r\n" . '' . $productobj['Breadcrumbs'] . ' ' : 'Not set';
// $this->_outSeoData('/ipoteka/{Bank.Translit}/ipoteka/', $breadcrumbs, $bankobj, null);
$this->ipoteka($bank, $name);
return true;
} else
if (isset($this->qf[$name])) {
$breadcrumbs.=
'Банки Казахстана ' . "\r\n" .
'Банк ' . $bankobj['Shortname'].' '."\r\n".
'Ипотека банка ' . $bankobj['Shortname'] . ' '."\r\n";
$this->_outSeoData('/ipoteka/{Bank.Translit}/'.$name.'/', $breadcrumbs, $bankobj);
$this->quickIpotekas($bank, $name);
return true;
} else {
$cityobj = Yii::app()->db->createCommand("SELECT * FROM City WHERE City.Translit = '$name'")->queryRow();
$breadcrumbs.=
'Банки ' . $cityobj['Genetive'] . ' ' . "\r\n" .
'Банк ' . $bankobj['Shortname'].' в '.$cityobj['Locative'] . ' '."\r\n";
$this->_outSeoData('/ipoteka/{Bank.Translit}/{City.Translit}/', $breadcrumbs, $bankobj, $cityobj);
$this->cList($bank, $name);
return true;
}
} else {
$cityobj = Yii::app()->db->createCommand("SELECT * FROM City WHERE City.Translit = '$name'")->queryRow();
$breadcrumbs.=
'Ипотека ' . $cityobj['Genetive'] . ' ' . "\r\n";
$this->_outSeoData('/ipoteka/'.$bank.'/{City.Translit}/', $breadcrumbs, $bankobj, $cityobj);
$this->quickIpotekas(null, $bank, $name);
return true;
}
} else
if ($bank) {
$bankobj = Bank::model()->find(array('condition'=>"Translit='$bank'"));
if ($bankobj) {
$breadcrumbs.=
'Банки Казахстана ' . "\r\n" .
'Банк ' . $bankobj['Shortname'].' '."\r\n";
$this->_outSeoData('/ipoteka/{Bank.Translit}/', $breadcrumbs, $bankobj, null);
$this->cList($bank);
return true;
} else
if (isset($this->qf[$bank])) {
$breadcrumbs.=
'Ипотека в Казахстане ' . "\r\n";
$this->_outSeoData('/ipoteka/'.$bank.'/', $breadcrumbs, null, null);
$this->quickIpotekas(null, $bank);
return true;
} else {
$cityobj = Yii::app()->db->createCommand("SELECT * FROM City WHERE City.Translit = '$bank'")->queryRow();
$this->_outSeoData('/ipoteka/{City.Translit}/', $breadcrumbs, null, $cityobj);
$this->cList(null, $bank);
return true;
}
} else {
$this->_outSeoData('/ipoteka/', $breadcrumbs, null, null);
$this->cList();
return true;
}
}
//-------------------------------------------------------------------------------------
public function ipoteka($bank, $name)
{
$bankobj = Bank::model()->find(array('condition'=>"Translit='$bank'"));
$product = Ipoteka::model()->find(array('condition'=>"Bank_Id={$bankobj->Id} AND Translit='$name'"));
if (!$product) throw new CHttpException(404,'The requested page does not exist.');
$product_tab = IpotekaTab::model()->findAll(array('condition'=>"Ipoteka_Id={$product->Id}"));
$data = array();
foreach ($product_tab as $row) {
if ($row->Amount_from) {
$amount = $this->_cutFor3($row->Amount_from).' - '.$this->_cutFor3($row->Amount_to);
} else {
$amount = $this->_cutFor3($row->Amount_to);
}
if ((int)$row->Prepay_to) {
$prepay = 'от '.$row->Prepay_from.'% до '.$row->Prepay_to.'%';
} else {
$prepay = 'от '.$row->Prepay_from.'%';
}
if ($row->Period_from) {
$period = 'от '.$this->_perConv($row->Period_from).' до '.$this->_perConv($row->Period_to);
} else {
$period = 'до '.$this->_perConv($row->Period_to);
}
$data[$row->Document][$row->Currency][$amount][$prepay][$period] = $row->Rate;
}
//$vid = 'Для '
$doc = IpotekaTab::model()->findAll(array('select'=>'Document', 'distinct'=>true, 'condition'=>"Ipoteka_Id={$product->Id}"));
$curr = IpotekaTab::model()->findAll(array('select'=>'Currency', 'distinct'=>true, 'condition'=>"Ipoteka_Id={$product->Id}"));
$opt['currency'] = '';
foreach ($curr as $c) {
if ($opt['currency']) $opt['currency'].= ', ';
if ($c['Currency'] == 'KZT') $opt['currency'].= 'тенге';
elseif ($c['Currency'] == 'USD') $opt['currency'].= 'доллар';
elseif ($c['Currency'] == 'EUR') $opt['currency'].= 'евро';
elseif ($c['Currency'] == 'RUB') $opt['currency'].= 'рубль';
}
$amnt = Yii::app()->db->createCommand("SELECT MIN(Amount_from) AS Min, MAX(Amount_to) AS Max, Currency FROM Ipoteka_tab WHERE Ipoteka_Id={$product->Id} GROUP BY Currency")->query();
$opt['amount'] = '';
foreach ($amnt as $a) {
if ($a['Currency'] == 'KZT') $currency = 'тенге';
elseif ($a['Currency'] == 'USD') $currency = 'долларах';
elseif ($a['Currency'] == 'EUR') $currency = 'евро';
elseif ($a['Currency'] == 'RUB') $currency = 'рублях';
if ($opt['amount']) $opt['amount'].= ', ';
$opt['amount'].= ($a['Min']?'от '.$this->_cutFor3($a['Min']).' ':'').'до '.$this->_cutFor3($a['Max']).' в '.$currency;
}
$per = Yii::app()->db->createCommand("SELECT MIN(Period_from) AS Min, MAX(Period_to) AS Max FROM Ipoteka_tab WHERE Ipoteka_Id={$product->Id}")->queryRow();
$opt['period'] = ($per['Min']?'от '.$this->_perConv($per['Min']).' ':'').'до '.$this->_perConv($per['Max']);
$rate = Yii::app()->db->createCommand("SELECT MIN(Rate) AS Min, MAX(Rate) AS Max FROM Ipoteka_tab WHERE Ipoteka_Id={$product->Id}")->queryRow();
$opt['rate'] = ($rate['Min'] != $rate['Max']?'от '.$rate['Min'].'% до ':'').$rate['Max'].'%';
$vznos = Yii::app()->db->createCommand("SELECT MIN(Prepay_from) AS Min, MAX(Prepay_to) AS Max FROM Ipoteka_tab WHERE Ipoteka_Id={$product->Id}")->queryRow();
$opt['vznos'] = 'от '.$vznos['Min'].'%'.((int) $vznos['Max']?' до '.$vznos['Max'].'%':'');
$opt['shema'] = '';
$creditTypes = $dataCreditTypes = CreditTab::getCreditTypes();
unset($dataCreditTypes['any']);
if ($dataCreditTypes['ann'] !== null) $opt['shema'].= 'аннуитетная (ежемесячно равными платежами)';
if ($dataCreditTypes['diff'] !== null) {
if ($opt['shema']) $opt['shema'].= ', ';
$opt['shema'].= 'дифференцированная';
}
if ($product->Sroki_rassmotreniya === null) {
$opt['sroki'] = '';
} else
if ($product->Sroki_rassmotreniya == 0) {
$opt['sroki'] = 'день в день';
} else
if (substr($product->Sroki_rassmotreniya, -1) == 1 &&
$product->Sroki_rassmotreniya != 11
) {
$opt['sroki'] = $product->Sroki_rassmotreniya.' день';
} else
if (substr($product->Sroki_rassmotreniya, -1) >= 2 &&
substr($product->Sroki_rassmotreniya, -1) <= 4 &&
($product->Sroki_rassmotreniya < 12 ||
$product->Sroki_rassmotreniya > 14)
) {
$opt['sroki'] = $product->Sroki_rassmotreniya.' дня';
} else {
$opt['sroki'] = $product->Sroki_rassmotreniya.' дней';
}
$opt['komissii'] = '';
if ($product->Komissiya_ann !== null) $opt['komissii'].= 'при аннуитетном погашении: '.$product->Komissiya_ann.'%';
if ($product->Komissiya_diff !== null) {
if ($opt['komissii']) $opt['komissii'].= ', ';
$opt['komissii'].= 'при дифференцированном погашении: '.$product->Komissiya_diff.'%';
}
if ($product->Ne_menshe) {
if ($opt['komissii']) $opt['komissii'].= ', ';
$opt['komissii'].= 'но не меньше: '.$product->Ne_menshe.' тг.';
}
if ($product->Fiksirovannyi_vznos) {
if ($opt['komissii']) $opt['komissii'].= ', ';
$opt['komissii'].= 'за рассмотрение заявки: '.$product->Fiksirovannyi_vznos.' тг.';
}
$opt['obesp'] = '';
if ($product->Obesp_bez == 'да') $opt['obesp'].= '- без обеспечения';
if ($product->Obesp_poruchitel == 'да') {
if ($opt['obesp']) $opt['obesp'].= ', ';
$opt['obesp'].= '- поручитель';
}
if ($product->Obesp_deposit == 'да') {
if ($opt['obesp']) $opt['obesp'].= ', ';
$opt['obesp'].= '- под залог депозита';
}
if ($product->Obesp_nedv_priobret == 'да') {
if ($opt['obesp']) $opt['obesp'].= ', ';
$opt['obesp'].= '- под залог приобретаемой недвижимости';
}
if ($product->Obesp_nedv_imeyushch == 'да') {
if ($opt['obesp']) $opt['obesp'].= ', ';
$opt['obesp'].= '- под залог имеющейся недвижимости';
}
if ($product->Obesp_uchastok == 'да') {
if ($opt['obesp']) $opt['obesp'].= ', ';
$opt['obesp'].= '- под залог земельного участка';
}
$opt['stazh'] = 'свыше '.$this->_perConv($product->Stazh_raboty);
$opt['vydacha'] = '';
if ($product->Vydacha_nalichnye == 'да') $opt['vydacha'].= '- наличными';
if ($product->Vydacha_schet == 'да') {
if ($opt['vydacha']) $opt['vydacha'].= ', ';
$opt['vydacha'].= '- на банковский счет';
}
if ($product->Vydacha_karta == 'да') {
if ($opt['vydacha']) $opt['vydacha'].= ', ';
$opt['vydacha'].= '- на банковскую карту';
}
$c_periods = array(
'1'=>'1 месяц',
'3'=>'3 месяца',
'6'=>'6 месяцев',
'9'=>'9 месяцев',
'12'=>'1 год',
'18'=>'1,5 года',
'24'=>'2 года',
'36'=>'3 года',
'48'=>'4 года',
'60'=>'5 лет',
'72'=>'6 лет',
'84'=>'7 лет',
'120'=>'10 лет',
'180'=>'15 лет',
'240'=>'20 лет',
'300'=>'25 лет',
'360'=>'30 лет',
);
$payments = array();
$payments_r = array();
if (isset($_GET['calc'])) {
$c_months = array(
'01' => 31,
'02' => 28,
'03' => 31,
'04' => 30,
'05' => 31,
'06' => 30,
'07' => 31,
'08' => 31,
'09' => 30,
'10' => 31,
'11' => 30,
'12' => 31,
);
$calc = $_GET['calc'];
$calc['tot'] = preg_replace('/[^0-9]/', '', urldecode($calc['tot']));
if (!$calc['tot']) $calc['tot'] = 0;
$_SESSION['mortgage_amount'] = $calc['tot'];
$calc['prepay'] = preg_replace('/[^0-9]/', '', urldecode($calc['prepay']));
if (!$calc['prepay']) $calc['prepay'] = 0;
if ($calc['punit'] == 'amm') {
$prepay = $calc['prepay'] / $calc['tot'] * 100;
} else {
$prepay = $calc['prepay'];
}
if (isset($calc['doc'])) {
$rate = Yii::app()->db->createCommand("SELECT MIN(Rate) FROM Ipoteka_tab WHERE Ipoteka_Id={$product->Id} AND".($calc['doc'] == 'Без подтверждения доходов' || urldecode($calc['doc']) == 'Без подтверждения доходов' ? " Document='Без подтверждения доходов' AND":'')." Currency='{$calc['curr']}' AND Amount_from<={$calc['tot']} AND Amount_to>={$calc['tot']} AND ((Prepay_from<={$prepay} AND Prepay_to=0) OR (Prepay_from<={$prepay} AND Prepay_to>={$prepay})) AND Period_from<={$calc['period']} AND Period_to>={$calc['period']}")->queryScalar();
} else {
$rate = Yii::app()->db->createCommand("
SELECT MIN(Rate)
FROM Ipoteka_tab
WHERE Ipoteka_Id={$product->Id}
AND Currency='{$calc['curr']}'
AND Amount_from<={$calc['tot']}
AND Amount_to>={$calc['tot']}
AND ((Prepay_from<={$prepay} AND Prepay_to=0)
OR (Prepay_from<={$prepay} AND Prepay_to>={$prepay}))
AND Period_from<={$calc['period']}
AND Period_to>={$calc['period']}")
->queryScalar();
}
if ($rate) {
$calc['err'] = false;
$payments_r['rate'] = $rate;
if ($calc['curr'] == 'KZT') $payments_r['curr'] = 'тенге';
elseif ($calc['curr'] == 'USD') $payments_r['curr'] = 'долларов';
elseif ($calc['curr'] == 'EUR') $payments_r['curr'] = 'евро';
elseif ($calc['curr'] == 'RUB') $payments_r['curr'] = 'рублей';
$ps = $rate / 100 / 12;
$payments_r['perc'] = 0;
$payments_r['mloan'] = 0;
$day_c = @date('d');
$month = @date('m');
$year = @date('Y');
$tot = $calc['tot'] * (100 - $prepay) / 100;
if ($calc['mode'] == 'ann') {
if ($product->Komissiya_ann) {
$payments_r['ps'] = $product->Komissiya_ann / 100 * $tot;
$payments[0] = array(
'num'=>'',
'date'=> $day_c.'.'.$month.'.'.$year,
'loan' => $tot,
'perc' => '',
'mloan' => 'Комиссия ('.$product->Komissiya_ann.'%):',
'ps' => $payments_r['ps'],
);
} else {
$payments_r['ps'] = 0;
}
$ap = $tot * ($ps + $ps / (pow(1 + $ps, $calc['period']) - 1));
for ($m = 1; $m <= $calc['period']; $m ++) {
$payments[$m]['num'] = $m;
if ($m == 1) {
$payments[$m]['loan'] = $tot;
} else {
$payments[$m]['loan'] = $payments[$m - 1]['loan'] + $payments[$m - 1]['perc'] - $ap;
}
$payments[$m]['perc'] = $payments[$m]['loan'] * $ps;
$payments[$m]['mloan'] = $ap - $payments[$m]['perc'];
$payments[$m]['ps'] = $ap;
$month ++;
if ($month > 12) {
$month = 1;
$year ++;
}
if ($month < 10) $month = '0'.$month;
$day = $day_c;
if ($month == '02') {
if (($year % 4 == 0 && $year % 100 != 0) || $year % 400 == 0) {
if ($day_c > 29) $day = 29;
} else {
if ($day_c > 28) $day = 28;
}
} else {
if ($day_c > $c_months[$month]) $day = $c_months[$month];
}
$payments[$m]['date'] = $day.'.'.$month.'.'.$year;
$payments_r['perc'] += $payments[$m]['perc'];
$payments_r['mloan'] += $payments[$m]['mloan'];
$payments_r['ps'] += $payments[$m]['ps'];
}
} else
if ($calc['mode'] == 'diff') {
if ($product->Komissiya_diff) {
$payments_r['ps'] = $product->Komissiya_diff / 100 * $tot;
$payments[0] = array(
'num'=>'',
'date'=> $day_c.'.'.$month.'.'.$year,
'loan' => $tot,
'perc' => '',
'mloan' => 'Комиссия ('.$product->Komissiya_diff.'%):',
'ps' => $payments_r['ps'],
);
} else {
$payments_r['ps'] = 0;
}
$mloan = $tot / $calc['period'];
for ($m = 1; $m <= $calc['period']; $m ++) {
$payments[$m]['num'] = $m;
if ($m == 1) {
$payments[$m]['loan'] = $tot;
} else {
$payments[$m]['loan'] = $payments[$m - 1]['loan'] + $payments[$m - 1]['perc'] - $payments[$m - 1]['ps'];
}
$payments[$m]['perc'] = $payments[$m]['loan'] * $ps;
$payments[$m]['mloan'] = $mloan;
$payments[$m]['ps'] = $mloan + $payments[$m]['perc'];
$month ++;
if ($month > 12) {
$month = 1;
$year ++;
}
if ($month < 10) $month = '0'.$month;
$day = $day_c;
if ($month == '02') {
if (($year % 4 == 0 && $year % 100 != 0) || $year % 400 == 0) {
if ($day_c > 29) $day = 29;
} else {
if ($day_c > 28) $day = 28;
}
} else {
if ($day_c > $c_months[$month]) $day = $c_months[$month];
}
$payments[$m]['date'] = $day.'.'.$month.'.'.$year;
$payments_r['perc'] += $payments[$m]['perc'];
$payments_r['mloan'] += $payments[$m]['mloan'];
$payments_r['ps'] += $payments[$m]['ps'];
}
}
} else {
$calc['err'] = 'введенные данные не соответствуют условиям этого кредита';
}
} else {
$calc = array(
'tot' => '',
'curr' => '',
'prepay' => '',
'punit' => '',
'mode' => '',
'period' => '',
'err' => '',
);
if (count($doc) > 1) $calc['doc'] = '';
}
$bank_info = Yii::app()->db->createCommand("
SELECT
Bank.*,
(SELECT COUNT(Credit.Id) FROM Credit WHERE Credit.Bank_Id = Bank.Id) AS credit_count,
(SELECT COUNT(Autocredit.Id) FROM Autocredit WHERE Autocredit.Bank_Id = Bank.Id) AS autocredit_count,
(SELECT COUNT(Ipoteka.Id) FROM Ipoteka WHERE Ipoteka.Bank_Id = Bank.Id) AS ipoteka_count
FROM Bank
WHERE Translit = '$bank'
")->queryAll();
$bank = Bank::model()->find('Translit=:Translit', array(':Translit'=>$bank));
$c_rate = Yii::app()->db->createCommand("
SELECT
Rate.*, Bank.Id, Bank.Shortname, Bank.Translit, Bank.Rating1, Bank.Rating2, Bank.Rating2
FROM
Rate, Bank
WHERE
Rate.Bank_Id = (
SELECT
Bank.Id
FROM
Bank
WHERE
Bank.Translit = '{$bank->Translit}'
) AND
Rate.Bank_Id = Bank.Id AND
Rate.USD_buy != 0 AND (
Rate.City_Id = ".Yii::app()->session['city']['Id']." OR
Rate.City_Id = 1526384 OR
Rate.City_Id = 0
) AND (
Rate.Cash = '' OR
Rate.Cash = 'наличные' OR
Rate.Cash = 'безналичные'
)
ORDER BY Rate.Cash
LIMIT 0, 1
")->queryRow();
if (!isset($tot)) $tot = false;
$this->render('ipoteka', array(
'opt' => $opt,
'product' => $product,
'data' => $data,
'curr' => $curr,
'c_periods' => $c_periods,
'per' => $per,
'doc' => $doc,
'calc' => $calc,
'payments' => $payments,
'payments_r' => $payments_r,
'title' => $this->title,
'descript' => $this->descript,
'bottom_desc' => $this->bottom_desc,
'breadcrumbs' => $this->breadcrumbs,
'bank' => $bank,
'c_rate' => $c_rate,
'bank_info' => $bank_info[0],
'tot' => $tot,
'dataCreditTypes' => $dataCreditTypes,
));
}
//-------------------------------------------------------------------------------------
public function cList($bank = null, $city = null)
{
$curr = array('KZT', 'USD', 'EUR', 'RUB');
$c_periods = array(
'1'=>'1 мес.',
'3'=>'3 мес.',
'6'=>'6 мес.',
'9'=>'9 мес.',
'12'=>'1 год',
'18'=>'1,5 года',
'24'=>'2 года',
'36'=>'3 года',
'48'=>'4 года',
'60'=>'5 лет',
'72'=>'6 лет',
'84'=>'7 лет',
'120'=>'10 лет',
'180'=>'15 лет',
'240'=>'20 лет',
'300'=>'25 лет',
'360'=>'30 лет',
);
/*foreach ($this->qf as $key=>$f) {
$products1 = Yii::app()->db->createCommand("SELECT Ipoteka.*, MIN(Ipoteka_tab.Rate) AS Rate FROM Ipoteka, Ipoteka_tab WHERE Ipoteka.Id = Ipoteka_tab.Ipoteka_Id AND {$this->qf[$key]['cond']} GROUP BY Ipoteka_tab.Ipoteka_Id")->query();
$this->qf[$key]['num'] = count($products1);
}*/
if ($city) {
$city_chain = " AND Bank_Id IN (SELECT DISTINCT Bank_Id FROM Office WHERE Office.City_Id = (SELECT Id FROM City WHERE Translit='{$city}') AND (Office.Type='Отделение' OR Office.Type='Головной офис') UNION SELECT Id AS Bank_Id FROM Bank WHERE Id IN (70,72,51))";
} else {
$city_chain = '';
}
if ($bank) {
$bank_chain = " AND Bank_Id = (SELECT Id FROM Bank WHERE Translit='{$bank}')";
} else {
$bank_chain = '';
}
if (isset($_GET['calc'])) {
$calc = $_GET['calc'];
$filt = $_GET['filt'];
$calc['tot'] = preg_replace('/[^0-9]/', '', urldecode($calc['tot']));
if (!$calc['tot']) $calc['tot'] = 0;
$calc['prepay'] = preg_replace('/[^0-9]/', '', urldecode($calc['prepay']));
if (!$calc['prepay']) $calc['prepay'] = 0;
if ($calc['tot']) {
$_SESSION['mortgage_amount'] = $calc['tot'];
if ($calc['punit'] == 'amm') {
$prepay = $calc['prepay'] / $calc['tot'] * 100;
} else {
$prepay = $calc['prepay'];
}
$calc_chain = " AND".($calc['doc'] == 'Без подтверждения доходов' || urldecode($calc['doc']) == 'Без подтверждения доходов' ? " Ipoteka_tab.Document='Без подтверждения доходов' AND":'')." Ipoteka_tab.Currency='{$calc['curr']}' AND Ipoteka_tab.Amount_from<={$calc['tot']} AND Ipoteka_tab.Amount_to>={$calc['tot']} AND ((Ipoteka_tab.Prepay_from<={$prepay} AND Ipoteka_tab.Prepay_to=0) OR (Ipoteka_tab.Prepay_from<={$prepay} AND Ipoteka_tab.Prepay_to>={$prepay})) AND Ipoteka_tab.Period_from<={$calc['period']} AND Ipoteka_tab.Period_to>={$calc['period']}";
} else {
$calc_chain = '';
}
$filt_chain = '';
if ($filt['Vid']) $filt_chain.= " AND {$filt['Vid']}='да'";
if ($filt['Obesp']) $filt_chain.= " AND ({$filt['Obesp']}='да' OR Obesp_bez='да')";
if (isset($filt['Zagorod'])) $filt_chain.= " AND (Vid_dachnyy='да' OR Vid_dom='да' OR Vid_uchastok='да' OR Vid_lubye='да')";
if (isset($filt['Komissiya'])) $filt_chain.= " AND (Komissiya_ann=NULL OR Komissiya_ann=0) AND (Komissiya_diff=NULL OR Komissiya_diff=0) AND (Ne_menshe=NULL OR Ne_menshe=0) AND (Fiksirovannyi_vznos=NULL OR Fiksirovannyi_vznos=0)";
if (isset($filt['Prepay'])) $filt_chain.= " AND (Ipoteka_tab.Prepay_from=0 OR Ipoteka_tab.Prepay_from=NULL)";
if (isset($filt['Online'])) $filt_chain.= " AND (Oformlenie_kredita='он-лайн заявка' OR Oformlenie_kredita='в отделении банка или он-лайн заявка')";
$dfilt_chain = '';
if (isset($filt['Dosrochnoe_pogashenie'])) $dfilt_chain.= " AND Dosrochnoe_pogashenie='да'";
if ($filt['Kategoriya_zaemshchika']) $dfilt_chain.= " AND (Kategoriya_zaemshchika='{$filt['Kategoriya_zaemshchika']}' OR Kategoriya_zaemshchika='не имеет значения')";
if (isset($filt['Kategoriya_voennym'])) $dfilt_chain.= " AND Kategoriya_voennym='да'";
if (isset($filt['Kategoriya_molodym'])) $dfilt_chain.= " AND Kategoriya_molodym='да'";
if (isset($filt['Pensioneram'])) $dfilt_chain.= " AND Pensioneram='да'";
if (isset($filt['Kategoriya_uchitelyam'])) $dfilt_chain.= " AND Kategoriya_uchitelyam='да'";
if (isset($filt['Kategoriya_vracham'])) $dfilt_chain.= " AND Kategoriya_vracham='да'";
if ($dfilt_chain == '') $open_dop = false;
else $open_dop = true;
$products2 = Yii::app()->db->createCommand("SELECT Ipoteka.*, MIN(Ipoteka_tab.Rate) AS Rate, IF(LENGTH(Ipoteka.Oformit)>0, 0, 1) AS SortOformit FROM Ipoteka, Ipoteka_tab WHERE Ipoteka.Id = Ipoteka_tab.Ipoteka_Id".$bank_chain.$city_chain.$calc_chain.$filt_chain.$dfilt_chain." GROUP BY Ipoteka_tab.Ipoteka_Id ORDER BY SortOformit, sort_order, Rate")->query();
$bank_num = Yii::app()->db->createCommand("SELECT Ipoteka.*, MIN(Ipoteka_tab.Rate) AS Rate FROM Ipoteka, Ipoteka_tab WHERE Ipoteka.Id = Ipoteka_tab.Ipoteka_Id".$bank_chain.$city_chain.$calc_chain.$filt_chain.$dfilt_chain." GROUP BY Ipoteka.Bank_Id ORDER BY Rate")->query();
$bank_num = count($bank_num);
if ($calc['tot'] && $calc['prepay']) {
$_SESSION['mortgage_amount'] = $calc['tot'];
$products1 = array();
foreach ($products2 as $key=>$product) {
if ($calc['doc'] == 'Без подтверждения доходов') {
$rate = Yii::app()->db->createCommand("SELECT MIN(Rate) FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']} AND Document='Без подтверждения доходов' AND Currency='{$calc['curr']}' AND Amount_from<={$calc['tot']} AND Amount_to>={$calc['tot']} AND ((Prepay_from<={$prepay} AND Prepay_to=0) OR (Prepay_from<={$prepay} AND Prepay_to>={$prepay})) AND Period_from<={$calc['period']} AND Period_to>={$calc['period']}")->queryScalar();
} else {
$rate = Yii::app()->db->createCommand("SELECT MIN(Rate) FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']} AND Currency='{$calc['curr']}' AND Amount_from<={$calc['tot']} AND Amount_to>={$calc['tot']} AND ((Prepay_from<={$prepay} AND Prepay_to=0) OR (Prepay_from<={$prepay} AND Prepay_to>={$prepay})) AND Period_from<={$calc['period']} AND Period_to>={$calc['period']}")->queryScalar();
}
$payments_r['rate'] = $rate;
if ($calc['curr'] == 'KZT') $payments_r['curr'] = 'тенге';
elseif ($calc['curr'] == 'USD') $payments_r['curr'] = 'долларов';
elseif ($calc['curr'] == 'EUR') $payments_r['curr'] = 'евро';
elseif ($calc['curr'] == 'RUB') $payments_r['curr'] = 'рублей';
$ps = $rate / 100 / 12;
$tot = $calc['tot'] * (100 - $prepay) / 100;
if ($calc['mode'] == 'a') {
if ($product['Komissiya_ann']) {
$payments_r['ps'] = $product['Komissiya_ann'] / 100 * $tot;
$payments[0] = array(
'loan' => $tot,
'perc' => '',
'ps' => $payments_r['ps'],
);
} else {
$payments_r['ps'] = 0;
}
$ap = $tot * ($ps + $ps / (pow(1 + $ps, $calc['period']) - 1));
$payments_r['ap'] = $this->_cutFor3($ap);
for ($m = 1; $m <= $calc['period']; $m ++) {
if ($m == 1) {
$payments[$m]['loan'] = $tot;
} else {
$payments[$m]['loan'] = $payments[$m - 1]['loan'] + $payments[$m - 1]['perc'] - $ap;
}
$payments[$m]['perc'] = $payments[$m]['loan'] * $ps;
$payments[$m]['ps'] = $ap;
$payments_r['ps'] += $payments[$m]['ps'];
}
} else
if ($calc['mode'] == 'd') {
if ($product['Komissiya_diff']) {
$payments_r['ps'] = $product['Komissiya_diff'] / 100 * $tot;
$payments[0] = array(
'loan' => $tot,
'perc' => '',
'ps' => $payments_r['ps'],
);
} else {
$payments_r['ps'] = 0;
}
$mloan = $tot / $calc['period'];
for ($m = 1; $m <= $calc['period']; $m ++) {
$payments[$m]['num'] = $m;
if ($m == 1) {
$payments[$m]['loan'] = $tot;
} else {
$payments[$m]['loan'] = $payments[$m - 1]['loan'] + $payments[$m - 1]['perc'] - $payments[$m - 1]['ps'];
}
$payments[$m]['perc'] = $payments[$m]['loan'] * $ps;
$payments[$m]['ps'] = $mloan + $payments[$m]['perc'];
$payments_r['ps'] += $payments[$m]['ps'];
}
$payments_r['ap'] = $this->_cutFor3($payments[1]['ps']).' - ' . $this->_cutFor3($payments[$calc['period']]['ps']);
}
$products1[$key] = $product;
$products1[$key]['pay'] = $payments_r;
}
} else {
$products1 = $products2;
}
} else {
$products1 = Yii::app()->db->createCommand("SELECT Ipoteka.*, MIN(Ipoteka_tab.Rate) AS Rate, IF(LENGTH(Ipoteka.Oformit)>0, 0, 1) AS SortOformit FROM Ipoteka, Ipoteka_tab WHERE Ipoteka.Id = Ipoteka_tab.Ipoteka_Id".$bank_chain.$city_chain." GROUP BY Ipoteka_tab.Ipoteka_Id ORDER BY SortOformit, sort_order, Rate")->query();
$bank_num = Yii::app()->db->createCommand("SELECT Ipoteka.*, MIN(Ipoteka_tab.Rate) AS Rate FROM Ipoteka, Ipoteka_tab WHERE Ipoteka.Id = Ipoteka_tab.Ipoteka_Id".$bank_chain.$city_chain." GROUP BY Ipoteka.Bank_Id ORDER BY Rate")->query();
$bank_num = count($bank_num);
$calc = array(
'tot' => '',
'curr' => '',
'prepay' => '',
'punit' => '',
'mode' => '',
'period' => '',
'doc' => '',
'err' => '',
);
$filt = array();
$open_dop = false;
}
/*if (!count($products1) && !isset($_GET['calc'])) {
throw new CHttpException(404,'The requested page does not exist.');
}*/
$products = array();
foreach ($products1 as $key=>$product) {
$products[$key] = $product;
$rate = Yii::app()->db->createCommand("SELECT MIN(Rate) AS Min, MAX(Rate) AS Max FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']}")->queryRow();
if ($rate['Min'] == $rate['Max']) {
$products[$key]['tab']['rate'] = $rate['Min'].'%';
} else {
$products[$key]['tab']['rate'] = $rate['Min'].'% - '.$rate['Max'].'%';
}
$amnt = Yii::app()->db->createCommand("SELECT MIN(Amount_from) AS Min, MAX(Amount_to) AS Max, Currency FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']} GROUP BY Currency")->query();
$products[$key]['tab']['amount'] = '';
foreach ($amnt as $a) {
if ($a['Currency'] == 'KZT') $currency = 'тенге';
elseif ($a['Currency'] == 'USD') $currency = 'долларов';
elseif ($a['Currency'] == 'EUR') $currency = 'евро';
elseif ($a['Currency'] == 'RUB') $currency = 'рублей';
if ($products[$key]['tab']['amount']) $products[$key]['tab']['amount'].= ', ';
$products[$key]['tab']['amount'].= ($a['Min']?'от '.$this->_cutFor3($a['Min']).' ':'').'до '.$this->_cutFor3($a['Max']).' '.$currency;
}
$per = Yii::app()->db->createCommand("SELECT MIN(Period_from) AS Min, MAX(Period_to) AS Max FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']}")->queryRow();
$products[$key]['tab']['period'] = ($per['Min']?'от '.$this->_perConv($per['Min']).' ':'').'до '.$this->_perConv($per['Max']);
$products[$key]['tab']['bank'] = Bank::model()->findByPk($product['Bank_Id']);
}
$this->nofound = '';
$products_best = array();
if (!count($products)) {
$url = Yii::app()->request->baseUrl.$_SERVER['REQUEST_URI'];
$this->nofound = 'Извините, но на данный момент по Вашему запросу ничего не найдено. Вы можете ';
if ($bank && $city && $calc['tot']) {
$this->nofound.= 'посмотреть те же условия для всех банков города или для этого банка по Казахстану или вернуться и изменить условия . ';
} else
if ($city && $calc['tot']) {
$this->nofound.= 'посмотреть те же условия по всему Казахстану или вернуться и изменить условия . ';
} else
if ($bank && $calc['tot']) {
$this->nofound.= 'посмотреть те же условия для всех банков или вернуться и изменить условия . ';
} else
if ($bank && $city) {
$this->nofound.= 'посмотреть те же условия для всех банков города или для этого банка по Казахстану . ';
} else
if ($bank) {
$this->nofound.= 'посмотреть условия для всех банков . ';
} else
if ($city) {
$this->nofound.= 'посмотреть условия для банков Казахстана . ';
} else
if ($calc['tot']) {
$this->nofound.= 'вернуться и изменить условия . ';
}
$products_best1 = Yii::app()->db->createCommand("SELECT Ipoteka.*, MIN(Ipoteka_tab.Rate) AS Rate FROM Ipoteka, Ipoteka_tab WHERE Ipoteka.Id = Ipoteka_tab.Ipoteka_Id GROUP BY Ipoteka_tab.Ipoteka_Id ORDER BY Rate LIMIT 0, 4")->query();
$products_best = array();
foreach ($products_best1 as $key=>$product) {
$products_best[$key] = $product;
$rate = Yii::app()->db->createCommand("SELECT MIN(Rate) AS Min, MAX(Rate) AS Max FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']}")->queryRow();
if ($rate['Min'] == $rate['Max']) {
$products_best[$key]['tab']['rate'] = $rate['Min'].'%';
} else {
$products_best[$key]['tab']['rate'] = $rate['Min'].'% - '.$rate['Max'].'%';
}
$amnt = Yii::app()->db->createCommand("SELECT MIN(Amount_from) AS Min, MAX(Amount_to) AS Max, Currency FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']} GROUP BY Currency")->query();
$products_best[$key]['tab']['amount'] = '';
foreach ($amnt as $a) {
if ($a['Currency'] == 'KZT') $currency = 'тенге';
elseif ($a['Currency'] == 'USD') $currency = 'долларов';
elseif ($a['Currency'] == 'EUR') $currency = 'евро';
elseif ($a['Currency'] == 'RUB') $currency = 'рублей';
if ($products_best[$key]['tab']['amount']) $products_best[$key]['tab']['amount'].= ', ';
$products_best[$key]['tab']['amount'].= ($a['Min']?'от '.$this->_cutFor3($a['Min']).' ':'').'до '.$this->_cutFor3($a['Max']).' '.$currency;
}
$per = Yii::app()->db->createCommand("SELECT MIN(Period_from) AS Min, MAX(Period_to) AS Max FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']}")->queryRow();
$products_best[$key]['tab']['period'] = ($per['Min']?'от '.$this->_perConv($per['Min']).' ':'').'до '.$this->_perConv($per['Max']);
$products_best[$key]['tab']['bank'] = Bank::model()->findByPk($product['Bank_Id']);
}
}
if (!isset($tot)) $tot = false;
$banks = "SELECT
b.Shortname as 'bank',
b.Translit as 'bank_alt',
c.GESV as 'gesv',
FORMAT(avg(ct.Rate),0) as 'rate',
FORMAT(avg(ct.Amount_from),0) as 'amount_from',
FORMAT(avg(ct.Amount_to),0) as 'amount_to',
FORMAT(avg(ct.Period_from),0) as 'period_from',
FORMAT(avg(ct.Period_to),0) as 'period_to'
FROM Bank b
JOIN Ipoteka c on c.Bank_Id = b.Id
JOIN Ipoteka_tab ct on ct.Ipoteka_Id = c.Id
WHERE c.GESV is not null
AND c.GESV <> ''
GROUP BY b.id
ORDER BY ct.Rate";
$banks = Yii::app()->db->createCommand($banks)->query();
for ($i = 0; $i < count($products); $i++){
foreach ($this->partner_products_sberbank as $pa_product){
if($products[$i]['Bank'] == 'Сбербанк' && $products[$i]['Name'] == $pa_product['our_title']){
$products[$i]['partner_url'] = '/ipoteka/oformit-ipoteku/'.$products[$i]['Translit'];
}
// elseif ($products[$i]['Bank'] == 'Альфа-Банк'){
// $products[$i]['partner_url'] = '/ipoteka/oformit-ipoteku/'.$products[$i]['Translit'];
// }
}
}
$this->render('index', array(
'products' => $products,
'calc' => $calc,
'curr' => $curr,
'c_periods' => $c_periods,
'qf' => $this->qf,
'filters' => $this->filters,
'filt' => $filt,
'bank_num' => $bank_num,
'dfilters' => $this->dfilters,
'open_dop' => $open_dop,
'title' => $this->title,
'descript' => $this->descript,
'bottom_desc' => $this->bottom_desc,
'breadcrumbs' => $this->breadcrumbs,
'bank' => $bank,
'banks' => $banks,
'city' => $city,
'bpd' => false,
'tot' => $tot,
'nofound' => $this->nofound,
'products_best'=> $products_best,
));
}
//-------------------------------------------------------------------------------------
public function quickIpotekas($bank, $type, $city = null)
{
$curr = array('KZT', 'USD', 'EUR', 'RUB');
$c_periods = array(
'1'=>'1 мес.',
'3'=>'3 мес.',
'6'=>'6 мес.',
'9'=>'9 мес.',
'12'=>'1 год',
'18'=>'1,5 года',
'24'=>'2 года',
'36'=>'3 года',
'48'=>'4 года',
'60'=>'5 лет',
'72'=>'6 лет',
'84'=>'7 лет',
'120'=>'10 лет',
'180'=>'15 лет',
'240'=>'20 лет',
'300'=>'25 лет',
'360'=>'30 лет',
);
/*foreach ($this->qf as $key=>$f) {
$products1 = Yii::app()->db->createCommand("SELECT Ipoteka.*, MIN(Ipoteka_tab.Rate) AS Rate FROM Ipoteka, Ipoteka_tab WHERE Ipoteka.Id = Ipoteka_tab.Ipoteka_Id AND {$this->qf[$key]['cond']} GROUP BY Ipoteka_tab.Ipoteka_Id")->query();
$this->qf[$key]['num'] = count($products1);
}*/
if ($city) {
$city_chain = " AND Bank_Id IN (SELECT DISTINCT Bank_Id FROM Office WHERE Office.City_Id = (SELECT Id FROM City WHERE Translit='{$city}') AND (Office.Type='Отделение' OR Office.Type='Головной офис') UNION SELECT Id AS Bank_Id FROM Bank WHERE Id IN (51))";
} else {
$city_chain = '';
}
if ($bank) {
$bank_chain = " AND Bank_Id = (SELECT Id FROM Bank WHERE Translit='{$bank}')";
} else {
$bank_chain = '';
}
if (isset($_GET['calc'])) {
$calc = $_GET['calc'];
} else {
$calc = array(
'tot' => '',
'curr' => '',
'prepay' => '',
'punit' => '',
'mode' => '',
'period' => '',
'doc' => '',
'err' => '',
);
}
if (isset($_GET['filt'])) {
$filt = $_GET['filt'];
} else {
$filt = array(
'Vid' => '',
'Obesp' => '',
'Kategoriya_zaemshchika' => '',
);
}
eval($this->qf[$type]['preset']);
$calc['tot'] = preg_replace('/[^0-9]/', '', urldecode($calc['tot']));
if (!$calc['tot']) $calc['tot'] = 0;
$calc['prepay'] = preg_replace('/[^0-9]/', '', urldecode($calc['prepay']));
if (!$calc['prepay']) $calc['prepay'] = 0;
if ($calc['punit'] == 'amm') {
$prepay = $calc['prepay'] / $calc['tot'] * 100;
} else {
$prepay = $calc['prepay'];
}
if ($calc['tot']) {
$_SESSION['mortgage_amount'] = $calc['tot'];
$calc_chain = " AND".($calc['doc'] == 'Без подтверждения доходов' || urldecode($calc['doc']) == 'Без подтверждения доходов' ? " Ipoteka_tab.Document='Без подтверждения доходов' AND":'')." Ipoteka_tab.Currency='{$calc['curr']}' AND Ipoteka_tab.Amount_from<={$calc['tot']} AND Ipoteka_tab.Amount_to>={$calc['tot']} AND ((Ipoteka_tab.Prepay_from<={$prepay} AND Ipoteka_tab.Prepay_to=0) OR (Ipoteka_tab.Prepay_from<={$prepay} AND Ipoteka_tab.Prepay_to>={$prepay})) AND Ipoteka_tab.Period_from<={$calc['period']} AND Ipoteka_tab.Period_to>={$calc['period']}";
} else
if ($calc['doc'] == 'Без подтверждения доходов' ||
urldecode($calc['doc']) == 'Без подтверждения доходов') {
$calc_chain = " AND Ipoteka_tab.Document='Без подтверждения доходов'";
} else {
$calc_chain = '';
}
$filt_chain = '';
if ($filt['Vid']) $filt_chain.= " AND {$filt['Vid']}='да'";
if ($filt['Obesp']) $filt_chain.= " AND ({$filt['Obesp']}='да' OR Obesp_bez='да')";
if (isset($filt['Zagorod'])) $filt_chain.= " AND (Vid_dachnyy='да' OR Vid_dom='да' OR Vid_uchastok='да' OR Vid_lubye='да')";
if (isset($filt['Komissiya'])) $filt_chain.= " AND (Komissiya_ann=NULL OR Komissiya_ann=0) AND (Komissiya_diff=NULL OR Komissiya_diff=0) AND (Ne_menshe=NULL OR Ne_menshe=0) AND (Fiksirovannyi_vznos=NULL OR Fiksirovannyi_vznos=0)";
if (isset($filt['Prepay'])) $filt_chain.= " AND (Ipoteka_tab.Prepay_from=0 OR Ipoteka_tab.Prepay_from=NULL)";
if (isset($filt['Online'])) $filt_chain.= " AND (Oformlenie_kredita='он-лайн заявка' OR Oformlenie_kredita='в отделении банка или он-лайн заявка')";
$dfilt_chain = '';
if (isset($filt['Dosrochnoe_pogashenie'])) $dfilt_chain.= " AND Dosrochnoe_pogashenie='да'";
if ($filt['Kategoriya_zaemshchika']) $dfilt_chain.= " AND (Kategoriya_zaemshchika='{$filt['Kategoriya_zaemshchika']}' OR Kategoriya_zaemshchika='не имеет значения')";
if (isset($filt['Kategoriya_voennym'])) $dfilt_chain.= " AND Kategoriya_voennym='да'";
if (isset($filt['Kategoriya_molodym'])) $dfilt_chain.= " AND Kategoriya_molodym='да'";
if (isset($filt['Pensioneram'])) $dfilt_chain.= " AND Pensioneram='да'";
if (isset($filt['Kategoriya_uchitelyam'])) $dfilt_chain.= " AND Kategoriya_uchitelyam='да'";
if (isset($filt['Kategoriya_vracham'])) $dfilt_chain.= " AND Kategoriya_vracham='да'";
if ($dfilt_chain == '') $open_dop = false;
else $open_dop = true;
$products2 = Yii::app()->db->createCommand("SELECT Ipoteka.*, MIN(Ipoteka_tab.Rate) AS Rate, IF(LENGTH(Ipoteka.Oformit)>0, 0, 1) AS SortOformit FROM Ipoteka, Ipoteka_tab WHERE Ipoteka.Id = Ipoteka_tab.Ipoteka_Id".$bank_chain.$city_chain.$calc_chain.$filt_chain.$dfilt_chain." GROUP BY Ipoteka_tab.Ipoteka_Id ORDER BY SortOformit, sort_order, Rate")->query();
$bank_num = Yii::app()->db->createCommand("SELECT Ipoteka.*, MIN(Ipoteka_tab.Rate) AS Rate FROM Ipoteka, Ipoteka_tab WHERE Ipoteka.Id = Ipoteka_tab.Ipoteka_Id".$bank_chain.$city_chain.$calc_chain.$filt_chain.$dfilt_chain." GROUP BY Ipoteka.Bank_Id ORDER BY Rate")->query();
$bank_num = count($bank_num);
if ($calc['tot']) {
$_SESSION['mortgage_amount'] = $calc['tot'];
$products1 = array();
if ($calc['punit'] == 'amm') {
$prepay = $calc['prepay'] / $calc['tot'] * 100;
} else {
$prepay = $calc['prepay'];
}
foreach ($products2 as $key=>$product) {
if ($calc['doc'] == 'Без подтверждения доходов') {
$rate = Yii::app()->db->createCommand("SELECT MIN(Rate) FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']} AND Document='Без подтверждения доходов' AND Currency='{$calc['curr']}' AND Amount_from<={$calc['tot']} AND Amount_to>={$calc['tot']} AND ((Prepay_from<={$prepay} AND Prepay_to=0) OR (Prepay_from<={$prepay} AND Prepay_to>={$prepay})) AND Period_from<={$calc['period']} AND Period_to>={$calc['period']}")->queryScalar();
} else {
$rate = Yii::app()->db->createCommand("SELECT MIN(Rate) FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']} AND Currency='{$calc['curr']}' AND Amount_from<={$calc['tot']} AND Amount_to>={$calc['tot']} AND ((Prepay_from<={$prepay} AND Prepay_to=0) OR (Prepay_from<={$prepay} AND Prepay_to>={$prepay})) AND Period_from<={$calc['period']} AND Period_to>={$calc['period']}")->queryScalar();
}
$payments_r['rate'] = $rate;
if ($calc['curr'] == 'KZT') $payments_r['curr'] = 'тенге';
elseif ($calc['curr'] == 'USD') $payments_r['curr'] = 'долларов';
elseif ($calc['curr'] == 'EUR') $payments_r['curr'] = 'евро';
elseif ($calc['curr'] == 'RUB') $payments_r['curr'] = 'рублей';
$ps = $rate / 100 / 12;
$tot = $calc['tot'] * (100 - $prepay) / 100;
if ($calc['mode'] == 'a') {
if ($product['Komissiya_ann']) {
$payments_r['ps'] = $product['Komissiya_ann'] / 100 * $tot;
$payments[0] = array(
'loan' => $tot,
'perc' => '',
'ps' => $payments_r['ps'],
);
} else {
$payments_r['ps'] = 0;
}
$ap = $tot * ($ps + $ps / (pow(1 + $ps, $calc['period']) - 1));
$payments_r['ap'] = $this->_cutFor3($ap);
for ($m = 1; $m <= $calc['period']; $m ++) {
if ($m == 1) {
$payments[$m]['loan'] = $tot;
} else {
$payments[$m]['loan'] = $payments[$m - 1]['loan'] + $payments[$m - 1]['perc'] - $ap;
}
$payments[$m]['perc'] = $payments[$m]['loan'] * $ps;
$payments[$m]['ps'] = $ap;
$payments_r['ps'] += $payments[$m]['ps'];
}
} else
if ($calc['mode'] == 'd') {
if ($product['Komissiya_diff']) {
$payments_r['ps'] = $product['Komissiya_diff'] / 100 * $tot;
$payments[0] = array(
'loan' => $tot,
'perc' => '',
'ps' => $payments_r['ps'],
);
} else {
$payments_r['ps'] = 0;
}
$mloan = $tot / $calc['period'];
for ($m = 1; $m <= $calc['period']; $m ++) {
$payments[$m]['num'] = $m;
if ($m == 1) {
$payments[$m]['loan'] = $tot;
} else {
$payments[$m]['loan'] = $payments[$m - 1]['loan'] + $payments[$m - 1]['perc'] - $payments[$m - 1]['ps'];
}
$payments[$m]['perc'] = $payments[$m]['loan'] * $ps;
$payments[$m]['ps'] = $mloan + $payments[$m]['perc'];
$payments_r['ps'] += $payments[$m]['ps'];
}
$payments_r['ap'] = $this->_cutFor3($payments[1]['ps']).' - ' . $this->_cutFor3($payments[$calc['period']]['ps']);
}
$products1[$key] = $product;
$products1[$key]['pay'] = $payments_r;
}
} else {
$products1 = $products2;
}
/*if (!count($products1) && !isset($_GET['calc'])) {
throw new CHttpException(404,'The requested page does not exist.');
}*/
$products = array();
foreach ($products1 as $key=>$product) {
$products[$key] = $product;
$rate = Yii::app()->db->createCommand("SELECT MIN(Rate) AS Min, MAX(Rate) AS Max FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']}")->queryRow();
if ($rate['Min'] == $rate['Max']) {
$products[$key]['tab']['rate'] = $rate['Min'].'%';
} else {
$products[$key]['tab']['rate'] = $rate['Min'].'% - '.$rate['Max'].'%';
}
$amnt = Yii::app()->db->createCommand("SELECT MIN(Amount_from) AS Min, MAX(Amount_to) AS Max, Currency FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']} GROUP BY Currency")->query();
$products[$key]['tab']['amount'] = '';
foreach ($amnt as $a) {
if ($a['Currency'] == 'KZT') $currency = 'тенге';
elseif ($a['Currency'] == 'USD') $currency = 'долларов';
elseif ($a['Currency'] == 'EUR') $currency = 'евро';
elseif ($a['Currency'] == 'RUB') $currency = 'рублей';
if ($products[$key]['tab']['amount']) $products[$key]['tab']['amount'].= ', ';
$products[$key]['tab']['amount'].= ($a['Min']?'от '.$this->_cutFor3($a['Min']).' ':'').'до '.$this->_cutFor3($a['Max']).' '.$currency;
}
$per = Yii::app()->db->createCommand("SELECT MIN(Period_from) AS Min, MAX(Period_to) AS Max FROM Ipoteka_tab WHERE Ipoteka_Id={$product['Id']}")->queryRow();
$products[$key]['tab']['period'] = ($per['Min']?'от '.$this->_perConv($per['Min']).' ':'').'до '.$this->_perConv($per['Max']);
$products[$key]['tab']['bank'] = Bank::model()->findByPk($product['Bank_Id']);
}
$this->nofound = '';
$products_best = array();
if (!count($products)) {
$url = Yii::app()->request->baseUrl.$_SERVER['REQUEST_URI'];
$this->nofound = 'Извините, но на данный момент по Вашему запросу ничего не найдено. Вы можете ';
if ($bank && $city && $type) {
$this->nofound.= 'посмотреть те же условия для всех банков города или для этого банка по Казахстану или вернуться и изменить условия . ';
} else
if ($city && $type) {
$this->nofound.= 'посмотреть те же условия по всему Казахстану или вернуться и изменить условия . ';
} else
if ($bank && $type) {
$this->nofound.= 'посмотреть те же условия для всех банков или вернуться и изменить условия . ';
} else
if ($bank && $city) {
$this->nofound.= 'посмотреть те же условия для всех банков города или для этого банка по Казахстану . ';
} else
if ($bank) {
$this->nofound.= 'посмотреть условия для всех банков . ';
} else
if ($city) {
$this->nofound.= 'посмотреть условия для банков Казахстана . ';
} else
if ($type) {
$this->nofound.= 'вернуться и изменить условия . ';
}
$products_best1 = Yii::app()->db->createCommand("SELECT Credit.*, MIN(Credit_tab.Rate) AS Rate FROM Credit, Credit_tab WHERE Credit.Id = Credit_tab.Credit_Id GROUP BY Credit_tab.Credit_Id ORDER BY Rate LIMIT 0, 4")->query();
$products_best = array();
foreach ($products_best1 as $key=>$product) {
$products_best[$key] = $product;
$rate = Yii::app()->db->createCommand("SELECT MIN(Rate) AS Min, MAX(Rate) AS Max FROM Credit_tab WHERE Credit_Id={$product['Id']}")->queryRow();
if ($rate['Min'] == $rate['Max']) {
$products_best[$key]['tab']['rate'] = $rate['Min'].'%';
} else {
$products_best[$key]['tab']['rate'] = $rate['Min'].'% - '.$rate['Max'].'%';
}
$amnt = Yii::app()->db->createCommand("SELECT MIN(Amount_from) AS Min, MAX(Amount_to) AS Max, Currency FROM Credit_tab WHERE Credit_Id={$product['Id']} GROUP BY Currency")->query();
$products_best[$key]['tab']['amount'] = '';
foreach ($amnt as $a) {
if ($a['Currency'] == 'KZT') $currency = 'тенге';
elseif ($a['Currency'] == 'USD') $currency = 'долларов';
elseif ($a['Currency'] == 'EUR') $currency = 'евро';
elseif ($a['Currency'] == 'RUB') $currency = 'рублей';
if ($products_best[$key]['tab']['amount']) $products_best[$key]['tab']['amount'].= ', ';
$products_best[$key]['tab']['amount'].= ($a['Min']?'от '.$this->_cutFor3($a['Min']).' ':'').'до '.$this->_cutFor3($a['Max']).' '.$currency;
}
$per = Yii::app()->db->createCommand("SELECT MIN(Period_from) AS Min, MAX(Period_to) AS Max FROM Credit_tab WHERE Credit_Id={$product['Id']}")->queryRow();
$products_best[$key]['tab']['period'] = ($per['Min']?'от '.$this->_perConv($per['Min']).' ':'').'до '.$this->_perConv($per['Max']);
$products_best[$key]['tab']['bank'] = Bank::model()->findByPk($product['Bank_Id']);
}
}
if ($type == 'ipoteka-bez-podtverzhdeniya-dohoda') $bpd = true; else $bpd = false;
if (!isset($tot)) $tot = false;
$this->render('index', array(
'products' => $products,
'calc' => $calc,
'curr' => $curr,
'c_periods' => $c_periods,
'qf' => $this->qf,
'filters' => $this->filters,
'filt' => $filt,
'bank_num' => $bank_num,
'dfilters' => $this->dfilters,
'open_dop' => $open_dop,
'title' => $this->title,
'descript' => $this->descript,
'bottom_desc' => $this->bottom_desc,
'breadcrumbs' => $this->breadcrumbs,
'bank' => $bank,
'city' => $city,
'bpd' => $bpd,
'tot' => $tot,
'nofound' => $this->nofound,
'products_best' => $products_best,
));
}
//-------------------------------------------------------------------------------------
public function _cutFor3($num)
{
if ($num) {
$num = round($num, 2);
$int = floor($num);
$fraction = round(($num - $int) * 100);
$res = '';
$cntr = 1;
for ($i = strlen($int) - 1; $i >= 0; $i --) {
$res = substr($int, $i, 1).$res;
if ($cntr % 3 == 0 && $i != 0) {$res = ' '.$res;}
$cntr ++;
}
if ($fraction) {
if ($fraction < 10) $res = $res.'.0'.$fraction;
else $res = $res.'.'.$fraction;
}
} else {
$res = '';
}
return $res;
}
private function _perConv($per)
{
if ($per >= 12) {
$ret = $per / 12;
if (substr($ret, -1) == 1 &&
$ret != 11
) {
$ret = $ret.' года';
} else {
$ret = $ret.' лет';
}
} else {
$ret = $per.' мес.';
}
return $ret;
}
protected function _decodeMask($str, $bank = null, $city = null)
{
if ($bank) {
$str = str_replace(
array(
'{Bank.Shortname}',
'{Bank.Locative}',
'{Bank.Genetive}',
),
array(
$bank['Shortname'],
$bank['Locative'],
$bank['Genetive'],
),
$str);
}
if ($city) {
$str = str_replace(
array(
'{City.Name}',
'{City.Genetive}',
'{City.Locative}',
),
array(
$city['Name'],
$city['Genetive'],
$city['Locative'],
),
$str);
}
return $str;
}
// private function _outSeoData($url, $breadcrumbs, $bankobj = null, $cityobj = null)
// {
// $seo = Yii::app()->db->createCommand("SELECT * FROM Seo WHERE Url = '{$url}'")->queryRow();
//
// $this->page_title = @$seo['Header_title']?$this->_decodeMask($seo['Header_title'], $bankobj, $cityobj):'Not set';
// $this->meta_desc = @$seo['Meta_description']?$this->_decodeMask($seo['Meta_description'], $bankobj, $cityobj):'Not set';
// $this->bottom_desc = @$seo['Bottom_description'] ? $this->_decodeMask($seo['Bottom_description'],$bankobj,$cityobj) : 'Not set';
// $this->title = @$seo['Title'] ? $this->_decodeMask($seo['Title'], $bankobj, $cityobj) : 'Not set';
// $this->descript = @$seo['Description'] ? $this->_decodeMask($seo['Description'], $bankobj, $cityobj) : 'Not set';
// $this->breadcrumbs = @$seo['Breadcrumbs'] ? $breadcrumbs.''.($this->_decodeMask($seo['Breadcrumbs'], $bankobj, $cityobj)).' ' : 'Not set';
//
// return true;
// }
public function actionOformit_ipoteku_online($ipoteka)
{
$product = Ipoteka::model()->find(['condition' => "Translit='$ipoteka'"]);
$product_id = $product['Id'];
$bank_id = $product['Bank_Id'];
$bank = Bank::model()->findByPk($product['Bank_Id']);
if ($bank['Shortname'] == 'Альфа-Банк'){
return $this->actionOformit_ipoteku_online_AlfaBank(['id' => $product_id, 'translit' => $ipoteka]);
}
$message = null;
$length_of_work = $product['Stazh_raboty'];
$credit_gesv = $product['GESV'];
$product_tabs = IpotekaTab::model()->findAll(['condition' => "Ipoteka_Id='$product_id'"]);
$this->title = 'Онлайн заявка на "'.$product['Name'].'"';
$this->page_title = 'Оформить "'.$product['Name'].'" от банка "'.$bank['Shortname'].'", онлайн заявка на ипотеку';
$credit_currency = [];
$credit_amount = [];
$credit_period = [];
$credit_percent = [];
foreach ($product_tabs as $tab){
if(!in_array($tab['Currency'], $credit_currency)){
$credit_currency[] = $tab['Currency'];
}
if(!in_array($tab['Amount_to'], $credit_amount)){
$credit_amount[] = $tab['Amount_to'];
}
if(!in_array($tab['Period_to'], $credit_period)){
$credit_period[] = $tab['Period_to'];
}
if(!in_array($tab['Rate'], $credit_percent)){
$credit_percent[] = $tab['Rate'];
}
}
$credit_currency = implode(", ", $credit_currency);
$credit_amount = implode(", ", $credit_amount);
$credit_period = implode(", ", $credit_period);
$credit_percent = implode(", ", $credit_percent);
$min_max = Yii::app()->db->createCommand("
SELECT
min(ct.Amount_from) as amount_min,
max(ct.Amount_to) as amount_max,
min(ct.Period_from) as period_from,
max(ct.Period_to) as period_to,
min(ct.Rate) as rate_min,
ct.Prepay_from as prepay
FROM Ipoteka_tab ct
WHERE ct.Ipoteka_id = $product_id")->queryAll();
$emails = Yii::app()->db->createCommand(
"SELECT
b.Shortname as 'bank',
b.Translit as 'bank_alt',
p.email as 'email',
p.name as 'name'
FROM Bank b
JOIN partner_emails p on p.partner_id = b.Id
WHERE b.id = $bank_id
AND p.is_active = 1
"
)->query();
$cities = City::model()->findAll();
$amount = isset($_SESSION['credit_amount']) ? $_SESSION['credit_amount'] : '';
if($product){
$name = $product['Name'];
$partnerName = '';
foreach ($this->partner_products_sberbank as $index => $item) {
if($item['our_title'] == $name){
$partnerName = $index;
}
}
}
$_SESSION['referrer'] = isset($_GET['id']) ? $_GET['id'] : null;
if(isset($_POST['name'])){
if (!isset($_SESSION['products'])) $_SESSION['products'][] = '';
$is_unique_common_request = $this->isUniqueCommonCreditRequest($_POST['iin'], 'ipoteka');
$is_unique_request = $this->isUniqueCreditRequest($_POST['iin'], $product_id);
$iin_lenght = strlen($_POST['iin']);
if($iin_lenght < 12){
$message = 'Вы ввели некорректный ИИН';
return $this->render('oformit_credit_online', [
'product' => $name,
'product_entity' => $product,
'product_partner' => $partnerName,
'product_type' => '',
'cities' => $cities,
'amount' => $amount,
'bank' => $bank,
'credit_gesv' => $credit_gesv,
'description' => $product['info_table'],
'credit_currency' => $credit_currency,
'credit_amount' => $credit_amount,
'credit_period' => $credit_period,
'credit_percent' => $credit_percent,
'length_of_work' => $length_of_work,
'message' => $message,
'product_tabs' => $product_tabs,
'min_max' => $min_max,
'title' => $this->title,
'page_title' => $this->page_title,
]);
}
if ($is_unique_request && $is_unique_common_request){
$uid = $this->getCreditOperationId();
$phone = trim(str_replace(['(', ')', ' ', '+', '-'], '', $_POST['phone']));
if (substr($phone, 0, 1) !== '7' && strlen($phone) == 11) {
$phone[0] = 7;
}
if (strlen($phone) < 11){
$phone = '7'.$phone;
}
$product_title = $this->partner_products_sberbank[$_POST['product']]['partner_title'];
$referrer = $_SESSION['referrer'];
$insert_data = [
'\'mortgage\'',
$product_id,
'\''.$_POST['name'].'\'',
'\''.$_POST['lastname'].'\'',
'\''.$_POST['middlename'].'\'',
'\''.$phone.'\'',
'\''.$_POST['iin'].'\'',
$_POST['amount'],
'\''.$_POST['city'].'\'',
'\''.$referrer.'\'',
];
$insert_data = implode(", ",$insert_data);
$stored_data = Yii::app()->db->createCommand(
"INSERT INTO product_requests (product_type, product_id, firstname, lastname, middlename, phone, iin, amount, city, http_referer)
VALUES ($insert_data);
"
)->query();
$body = "[LAST NAME:".$_POST['lastname']. "] ";
$body .= "[FIRST NAME:".$_POST['name']. "] ";
$body .= "[MIDDLE NAME:".$_POST['middlename']. "] ";
$body .= "[IIN:".$_POST['iin']. "] ";
$body .= "[TYPE:".$_POST['type']. "] ";
$body .= "[FILIAL:".$_POST['city']. "] ";
$body .= "[MOBILE PHONE:".$phone. "] ";
$body .= "[PRODUCT:".$product_title. "] ";
$body .= "[AMOUNT:".$_POST['amount']. "] ";
$body .= "[OPPTY ID:".$uid. "] ";
$mail = new \PHPMailer\PHPMailer\PHPMailer();
// $mail->SMTPDebug = 2; // Enable verbose debug output
$mail->isSMTP(); // Set mailer to use SMTP
$mail->Host = 'smtp.yandex.ru'; // Specify main and backup SMTP servers
$mail->SMTPAuth = true; // Enable SMTP authentication
$mail->Username = 'ceo@bai.kz'; // SMTP username
$mail->Password = '';
$mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted
$mail->Port = 465; // TCP port to connect to
$mail->CharSet = 'UTF-8';
//Recipients
$mail->setFrom('ceo@bai.kz', 'BAI.KZ');
foreach ($emails as $i => $item) {
$mail->addBCC($item['email'], $item['name'] != null ? $item['name'] : '');
}
$mail->isHTML(true); // Set email format to HTML
$mail->Subject = 'Заявка на "'.$product_title.'" с сайта Bai.kz';
$mail->Body = $body;
$mail->send();
$_SESSION['products'][] = $_POST['product'];
$message = 'Заявка успешно отправлена!';
}else{
$message = 'Вы уже отправляли заявку на этот продукт';
}
}
$this->render('oformit_credit_online', [
'product' => $name,
'product_entity' => $product,
'product_partner' => $partnerName,
'product_type' => '',
'cities' => $cities,
'amount' => $amount,
'bank' => $bank,
'credit_gesv' => $credit_gesv,
'description' => $product['info_table'],
'credit_currency' => $credit_currency,
'credit_amount' => $credit_amount,
'credit_period' => $credit_period,
'credit_percent' => $credit_percent,
'length_of_work' => $length_of_work,
'message' => $message,
'product_tabs' => $product_tabs,
'min_max' => $min_max,
'title' => $this->title,
'page_title' => $this->page_title,
]);
}
private function getCreditOperationId()
{
$uid = Yii::app()->db->createCommand("SELECT max(r.id) as id FROM product_requests r")->queryRow()['id'] + 1;
$uid = 'BAI_'.$uid;
return $uid;
}
// private function isUniqueCreditRequest($iin, $product_id)
// {
// $command = "SELECT r.*
// FROM product_requests r
// WHERE r.iin = '$iin'
// AND DATE (r.created_at) = CURDATE()
// AND r.product_type = 'mortgage'
// AND r.product_id = $product_id
// ";
// $is_unique = Yii::app()->db->createCommand($command)->queryRow();
// if ($is_unique['id'] != null){
// return false;
// }
// return true;
//
// }
private function actionOformit_ipoteku_online_AlfaBank($ipoteka)
{
$translit = $ipoteka['translit'];
$product = Ipoteka::model()->find(['condition' => "Translit='$translit'"]);
$product_id = $product['Id'];
$bank_id = $product['Bank_Id'];
$bank = Bank::model()->findByPk($product['Bank_Id']);
$message = null;
$length_of_work = $product['Stazh_raboty'];
$credit_gesv = $product['GESV'];
$product_tabs = IpotekaTab::model()->findAll(['condition' => "Ipoteka_Id='$product_id'"]);
$credit_currency = [];
$credit_amount = [];
$credit_period = [];
$credit_percent = [];
foreach ($product_tabs as $tab){
if(!in_array($tab['Currency'], $credit_currency)){
$credit_currency[] = $tab['Currency'];
}
if(!in_array($tab['Amount_to'], $credit_amount)){
$credit_amount[] = $tab['Amount_to'];
}
if(!in_array($tab['Period_to'], $credit_period)){
$credit_period[] = $tab['Period_to'];
}
if(!in_array($tab['Rate'], $credit_percent)){
$credit_percent[] = $tab['Rate'];
}
}
$credit_currency = implode(", ", $credit_currency);
$credit_amount = implode(", ", $credit_amount);
$credit_period = implode(", ", $credit_period);
$credit_percent = implode(", ", $credit_percent);
$emails = Yii::app()->db->createCommand(
"SELECT
b.Shortname as 'bank',
b.Translit as 'bank_alt',
p.email as 'email',
p.name as 'name'
FROM Bank b
JOIN partner_emails p on p.partner_id = b.Id
WHERE b.id = $bank_id
AND p.is_active = 1
"
)->query();
$cities = City::model()->findAll();
$amount = isset($_SESSION['credit_amount']) ? $_SESSION['credit_amount'] : '';
if($product){
$name = $product['Name'];
$partnerName = '';
foreach ($this->partner_products_sberbank as $index => $item) {
if($item['our_title'] == $name){
$partnerName = $index;
}
}
}
$_SESSION['referrer'] = isset($_GET['id']) ? $_GET['id'] : null;
if(isset($_POST['name'])){
if (!isset($_SESSION['products'])) $_SESSION['products'][] = '';
$can_confirm = isset($_POST['can_confirm']) ? 1 : 0;
$has_expiration = isset($_POST['has_expiration']) ? 1 : 0;
$birth_date = $_POST['birth_date'];
$age = DateTime::createFromFormat('Y-m-d', $birth_date)
->diff(new DateTime('now'))
->y;
$is_age = $age < 21 ? false : true;
$message = '';
if ($this->isUniqueCreditRequest($_POST['iin'], $product_id)){
$uid = $this->getCreditOperationId();
$phone = trim(str_replace(['(', ')', ' ', '+', '-'], '', $_POST['phone']));
if (substr($phone, 0, 1) !== '7' && strlen($phone) == 11) {
$phone[0] = 7;
}
if (strlen($phone) < 11){
$phone = '7'.$phone;
}
$referrer = $_SESSION['referrer'];
$insert_data = [
'\'mortgage\'',
$product_id,
'\''.$_POST['name'].'\'',
'\''.$_POST['lastname'].'\'',
'\''.$_POST['middlename'].'\'',
'\''.$phone.'\'',
'\''.$_POST['iin'].'\'',
$_POST['amount'],
'\''.$_POST['city'].'\'',
'\''.$referrer.'\'',
'\''.$_POST['birth_date'].'\'',
'\''.$_POST['period'].'\'',
'\''.$_POST['monthly_earnings'].'\'',
'\''.$_POST['monthly_extinction'].'\'',
'\''.$can_confirm.'\'',
'\''.$has_expiration.'\'',
];
$insert_data = implode(", ",$insert_data);
$stored_data = Yii::app()->db->createCommand(
"INSERT INTO product_requests (
product_type,
product_id,
firstname,
lastname,
middlename,
phone,
iin,
amount,
city,
http_referer,
birth_date,
period,
monthly_earnings,
monthly_extinction,
can_confirm,
has_expiration
)
VALUES ($insert_data);
"
)->query();
// $body = "[LAST NAME:".$_POST['lastname']. "] ";
// $body .= "[FIRST NAME:".$_POST['name']. "] ";
// $body .= "[MIDDLE NAME:".$_POST['middlename']. "] ";
// $body .= "[IIN:".$_POST['iin']. "] ";
// $body .= "[TYPE:".$_POST['type']. "] ";
// $body .= "[FILIAL:".$_POST['city']. "] ";
// $body .= "[MOBILE PHONE:".$phone. "] ";
// $body .= "[PRODUCT:".$product_title. "] ";
// $body .= "[AMOUNT:".$_POST['amount']. "] ";
// $body .= "[OPPTY ID:".$uid. "] ";
//
// $mail = new \PHPMailer\PHPMailer\PHPMailer();
// // $mail->SMTPDebug = 2; // Enable verbose debug output
// $mail->isSMTP(); // Set mailer to use SMTP
// $mail->Host = 'smtp.yandex.ru'; // Specify main and backup SMTP servers
// $mail->SMTPAuth = true; // Enable SMTP authentication
// $mail->Username = 'ceo@bai.kz'; // SMTP username
// $mail->Password = 'alac1259'; // SMTP password
// $mail->SMTPSecure = 'ssl'; // Enable TLS encryption, `ssl` also accepted
// $mail->Port = 465; // TCP port to connect to
// $mail->CharSet = 'UTF-8';
//
// //Recipients
// $mail->setFrom('ceo@bai.kz', 'BAI.KZ');
// foreach ($emails as $i => $item) {
//
// $mail->addAddress($item['email'], $item['name'] != null ? $item['name'] : '');
// }
// $mail->isHTML(true); // Set email format to HTML
// $mail->Subject = 'Заявка на "'.$product_title.'" с сайта Bai.kz';
// $mail->Body = $body;
//
// $mail->send();
$_SESSION['products'][] = $_POST['product'];
$message = 'Заявка успешно отправлена!';
}else{
$message = 'Вы уже отправляли заявку на этот продукт';
}
}
$this->render('oformit_credit_online_alfa_bank', [
'product' => $name,
'product_partner' => $partnerName,
'product_type' => '',
'cities' => $cities,
'amount' => $amount,
'bank' => $bank,
'credit_gesv' => $credit_gesv,
'description' => $product['info_table'],
'credit_currency' => $credit_currency,
'credit_amount' => $credit_amount,
'credit_period' => $credit_period,
'credit_percent' => $credit_percent,
'length_of_work' => $length_of_work,
'message' => $message,
'product_tabs' => $product_tabs,
]);
return null;
}
}
?>
Bai.kz - кредиты, ипотека, автокредиты, займы и банки Казахстана
Error 404
Невозможно обработать запрос "ipoteka/default/index".