/** * @param ClientAccount $account * @param Bill $bill * @param integer $year * @param integer $quarter * @param bool $flush * @return BillItem */ public function createBillItem(ClientAccount $account, Bill $bill, $flush = true) { $sysAccount = $account->getSystemAccount(); $year = $bill->getYear(); $quarter = $bill->getQuarter(); $riaFee = $this->getRiaBillSumByPeriod($account, $year, $quarter); $adminFee = $this->getAdminBillSumByPeriod($account, $year, $quarter); $billItem = new BillItem(); $billItem->setSystemAccount($sysAccount); $billItem->setBill($bill); $billItem->setFeeBilled($riaFee + $adminFee); $billItem->setRiaFee($riaFee); $billItem->setAdminFee($adminFee); $billItem->setCreatedAt(new \DateTime()); $billItem->setStatus(BillItem::STATUS_BILL_GENERATED); $this->em->persist($billItem); $flush && $this->em->flush(); return $billItem; }