/** * @param Budget $budget * @param Carbon $start * @param Carbon $end * * @return LimitRepetition|null */ public function getCurrentRepetition(Budget $budget, Carbon $start, Carbon $end) { $data = $budget->limitrepetitions()->where('limit_repetitions.startdate', $start->format('Y-m-d 00:00:00'))->where('limit_repetitions.enddate', $end->format('Y-m-d 00:00:00'))->first(['limit_repetitions.*']); return $data; }
/** * @param BudgetRepositoryInterface $repository * @param Budget $budget * * @return View * @throws FireflyException */ public function show(BudgetRepositoryInterface $repository, Budget $budget) { /** @var Carbon $start */ $start = session('first', Carbon::create()->startOfYear()); $end = new Carbon(); $page = intval(Input::get('page')) == 0 ? 1 : intval(Input::get('page')); $pageSize = Preferences::get('transactionPageSize', 50)->data; $offset = ($page - 1) * $pageSize; $journals = $repository->journalsInPeriod(new Collection([$budget]), new Collection(), $start, $end); $count = $journals->count(); $journals = $journals->slice($offset, $pageSize); $journals = new LengthAwarePaginator($journals, $count, $pageSize); $journals->setPath('/budgets/show/' . $budget->id); $set = $budget->limitrepetitions()->orderBy('startdate', 'DESC')->get(); $subTitle = e($budget->name); $limits = new Collection(); /** @var LimitRepetition $entry */ foreach ($set as $entry) { $entry->spent = $repository->spentInPeriod(new Collection([$budget]), new Collection(), $entry->startdate, $entry->enddate); $limits->push($entry); } return view('budgets.show', compact('limits', 'budget', 'repetition', 'journals', 'subTitle')); }
/** * @param Budget $budget * @param Carbon $start * @param Carbon $end * * @return LimitRepetition|null */ public function getCurrentRepetition(Budget $budget, Carbon $start, Carbon $end) { $cache = new CacheProperties(); $cache->addProperty($budget->id); $cache->addProperty($start); $cache->addProperty($end); $cache->addProperty('getCurrentRepetition'); if ($cache->has()) { return $cache->get(); // @codeCoverageIgnore } $data = $budget->limitrepetitions()->where('limit_repetitions.startdate', $start->format('Y-m-d 00:00:00'))->where('limit_repetitions.enddate', $end->format('Y-m-d 00:00:00'))->first(['limit_repetitions.*']); $cache->store($data); return $data; }