public function showDepositsCatalog()
 {
     $page = $this->node;
     $tree = Collector::get('root');
     $subTree = Tree::getSubTree($tree, $page);
     $blocks = null;
     $calculations = array();
     if ($subTree) {
         $blocks = $subTree->children;
         $depositsContainer = $blocks->filter(function ($block) {
             return $block->slug == 'products';
         });
         if ($depositsContainer->isEmpty()) {
             $deposits = array();
         } else {
             $deposits = $depositsContainer->first()->children;
         }
         $filteredDepositEntities = Cache::tags('deposits')->rememberForever('deposits_default_' . App::getLocale(), function () {
             return Deposit::amountFrom(3000)->terms(array(0, 3))->withoutMonthly()->currency('uah')->get();
         });
         $filteredDepositEntitiesIds = array();
         foreach ($filteredDepositEntities as $filteredDepositEntity) {
             $filteredDepositEntitiesIds[] = $filteredDepositEntity->id_tb_tree;
         }
         Tree::setDepositsCompared($filteredDepositEntitiesIds);
         $deposits = Tree::filterDepositsByIds($deposits, $filteredDepositEntitiesIds);
         $maxPercents = Deposit::prepareMaxPercents($filteredDepositEntities);
         $depositOptionsGroups = Deposit::prepareData($filteredDepositEntities);
         $calculator = new DepositCalculator();
         $calculator->setDepositAmount(Settings::get('deposit_amount_default', 100000));
         $calculator->setTerm(Settings::get('term_default', 3));
         $calculator->setMonthlyInstallment(0);
         $calculator->setCurrency('uah');
         $calculator->setInterestPaymentType($maxPercents['max_percent_type']);
         $calculator->setInterestPaymentPercent($maxPercents['max_percent']);
         $calculator->setIsMain(false);
         $calculations = $calculator->calculate();
     }
     return View::make('private-persons.deposits.catalog', compact('page', 'blocks', 'deposits', 'depositOptionsGroups', 'maxPercents', 'calculations'));
 }
 public function getDepositInterest()
 {
     App::setLocale(Cookie::get('locale', 'ru'));
     $depositAmount = intval(trim(Input::get('deposit_amount')));
     $term = intval(trim(Input::get('term')));
     $monthlyInstallment = intval(trim(Input::get('monthly_installment')));
     $currency = trim(Input::get('currency'));
     if (!$depositAmount || !$term || !$currency) {
         return Response::json(array('status' => false));
     }
     if (!in_array($term, array(1, 2, 3, 4, 5, 6, 7, 12))) {
         $term = 0;
     }
     $filteredDepositEntities = Deposit::amount($depositAmount)->terms(array(0, $term))->monthly($monthlyInstallment)->currency($currency)->get();
     $filteredDepositEntitiesIds = array();
     foreach ($filteredDepositEntities as $filteredDepositEntity) {
         $filteredDepositEntitiesIds[] = $filteredDepositEntity->id_tb_tree;
     }
     Tree::setDepositsCompared($filteredDepositEntitiesIds);
     $maxPercents = Deposit::prepareMaxPercents($filteredDepositEntities);
     $html = View::make('private-persons.deposits.partials.redemptions', compact('maxPercents'))->render();
     return Response::json(array('status' => true, 'html' => $html, 'max_percent' => $maxPercents['max_percent'], 'max_percent_type' => $maxPercents['max_percent_type']));
 }