/**
  * 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);
 }
Пример #2
0
 /**
  * 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);
 }
Пример #3
0
 /**
  * @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'));
 }