/** * Shows the piggy bank history. * * @param PiggyBankRepositoryInterface $repository * @param PiggyBank $piggyBank * * @return \Symfony\Component\HttpFoundation\Response */ public function history(PiggyBankRepositoryInterface $repository, PiggyBank $piggyBank) { // chart properties for cache: $cache = new CacheProperties(); $cache->addProperty('piggy-history'); $cache->addProperty($piggyBank->id); if ($cache->has()) { return Response::json($cache->get()); } $set = $repository->getEvents($piggyBank); $set = $set->reverse(); $collection = []; /** @var PiggyBankEvent $entry */ foreach ($set as $entry) { $date = $entry->date->format('Y-m-d'); $amount = $entry->amount; if (isset($collection[$date])) { $amount = bcadd($amount, $collection[$date]); } $collection[$date] = $amount; } $data = $this->generator->history(new Collection($collection)); $cache->store($data); return Response::json($data); }
/** * Shows the piggy bank history. * * @param PiggyBankRepositoryInterface $repository * @param PiggyBank $piggyBank * * @return \Symfony\Component\HttpFoundation\Response */ public function history(PiggyBankRepositoryInterface $repository, PiggyBank $piggyBank) { // chart properties for cache: $cache = new CacheProperties(); $cache->addProperty('piggy-history'); $cache->addProperty($piggyBank->id); if ($cache->has()) { return Response::json($cache->get()); // @codeCoverageIgnore } /** @var Collection $set */ $set = new Collection($repository->getEventSummarySet($piggyBank)); $data = $this->generator->history($set); $cache->store($data); return Response::json($data); }
/** * @param PiggyBankRepositoryInterface $repository * @param PiggyBankFormRequest $request * @param PiggyBank $piggyBank * * @return $this */ public function update(PiggyBankRepositoryInterface $repository, PiggyBankFormRequest $request, PiggyBank $piggyBank) { $piggyBankData = ['name' => $request->get('name'), 'startdate' => is_null($piggyBank->startdate) ? $piggyBank->created_at : $piggyBank->startdate, 'account_id' => intval($request->get('account_id')), 'targetamount' => round($request->get('targetamount'), 2), 'remind_me' => false, 'reminder_skip' => 0, 'targetdate' => strlen($request->get('targetdate')) > 0 ? new Carbon($request->get('targetdate')) : null]; $piggyBank = $repository->update($piggyBank, $piggyBankData); Session::flash('success', 'Updated piggy bank "' . e($piggyBank->name) . '".'); Preferences::mark(); if (intval(Input::get('return_to_edit')) === 1) { Session::put('piggy-banks.edit.fromUpdate', true); return redirect(route('piggy-banks.edit', [$piggyBank->id])); } // redirect to previous URL. return redirect(Session::get('piggy-banks.edit.url')); }