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')); }