public function getIndex($stage = null, $category = null, $country = null) { // for categories $loanCategories = $this->loanCategoryQuery->orderByRank()->find(); //for countries $countries = $this->countryQuery->orderByName()->find(); //for loans $conditions = []; $loanCategoryName = $category; $stageName = $stage; $selectedLoanCategory = $this->loanCategoryQuery->findOneBySlug($loanCategoryName); $routeParams = ['category' => 'all', 'stage' => 'fund-raising', 'country' => 'everywhere']; if ($stageName == 'completed') { $routeParams['stage'] = 'completed'; $conditions['status'] = [Loan::DEFAULTED, Loan::REPAID]; } elseif ($stageName == 'active') { $routeParams['stage'] = 'active'; $conditions['status'] = [Loan::ACTIVE, Loan::FUNDED]; } else { $routeParams['stage'] = 'fund-raising'; $conditions['status'] = Loan::OPEN; } if ($selectedLoanCategory) { $conditions['categoryId'] = $selectedLoanCategory->getId(); $routeParams['category'] = $selectedLoanCategory->getSlug(); } $countryName = $country; $selectedCountry = $this->countryQuery->findOneBySlug($countryName); if ($selectedCountry) { $conditions['countryId'] = $selectedCountry->getId(); $routeParams['country'] = $selectedCountry->getSlug(); } $searchRouteParams = $routeParams; $searchQuery = Request::query('search'); if ($searchQuery) { $conditions['search'] = $searchQuery; $routeParams['search'] = $searchQuery; } $page = Request::query('page') ?: 1; $paginator = $this->loanService->searchLoans($conditions, $page); return View::make('pages.lend', compact('countries', 'selectedCountry', 'loanCategories', 'selectedLoanCategory', 'paginator', 'routeParams', 'searchQuery', 'searchRouteParams')); }
public function testApplyForLoan(UnitTester $I) { $con = Propel::getWriteConnection(TransactionTableMap::DATABASE_NAME); $con->beginTransaction(); $borrower = \Zidisha\Borrower\BorrowerQuery::create()->findOneById(12); $borrowerId = $borrower->getId(); $data = ['categoryId' => '7', 'amount' => '798097', 'summary' => 'suasdasd', 'proposal' => 'asdasda', 'installmentAmount' => '2312', 'installmentDay' => '1', 'amountRaised' => 0, 'interestRate' => 10]; try { $this->loanService->applyForLoan($borrower, $data); $LoanCount = \Zidisha\Loan\LoanQuery::create()->filterByStatus(Loan::OPEN)->filterByBorrowerId($borrowerId)->count(); verify($LoanCount)->greaterThan(0); } catch (\Exception $e) { $con->rollBack(); throw $e; } $con->rollBack(); }