/** * Get portfolio credit ratings. * * @param Portfolio $portfolio **/ public function getCreditRatings($portfolio) { // portfolio credit ratings $creditRatings = array('AA' => 0, 'A' => 0, 'B' => 0, 'C' => 0, 'D' => 0, 'E' => 0, 'HR' => 0); // construct query $query = $this->getEntityManager()->createQuery(' SELECT COUNT(l.creditRating) AS total, l.creditRating FROM Loan l WHERE l.portfolio = :portfolio_id GROUP BY l.creditRating '); // set query parameter $query->setParameter('portfolio_id', $portfolio->getId()); // execute query $rows = $query->getArrayResult(); // consolidate portfolio credit ratings foreach ($rows as $row) { $creditRatings[$row['creditRating']] = $row['total']; } // return portfolio credit ratings return $creditRatings; }
/** * @param Portfolio $portfolio **/ public function setPortfolio($portfolio) { $portfolio->addLoan($this); $this->portfolio = $portfolio; }