/**
     * 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;
    }
示例#2
0
 /**
  * @param Portfolio $portfolio
  **/
 public function setPortfolio($portfolio)
 {
     $portfolio->addLoan($this);
     $this->portfolio = $portfolio;
 }