/** * @param Budget $budget * @param LimitRepetition $repetition * @param Collection $accounts * * @return BalanceLine */ private function createBalanceLine(Budget $budget, LimitRepetition $repetition, Collection $accounts) : BalanceLine { $line = new BalanceLine(); $budget->amount = $repetition->amount; $line->setBudget($budget); $line->setStartDate($repetition->startdate); $line->setEndDate($repetition->enddate); // loop accounts: foreach ($accounts as $account) { $balanceEntry = new BalanceEntry(); $balanceEntry->setAccount($account); $spent = $this->budgetRepository->spentInPeriod(new Collection([$budget]), new Collection([$account]), $repetition->startdate, $repetition->enddate); $balanceEntry->setSpent($spent); $line->addBalanceEntry($balanceEntry); } return $line; }