Esempio n. 1
0
 /**
  * @param AccountRepositoryInterface $repository
  *
  * @return \Illuminate\Http\RedirectResponse|\Illuminate\View\View
  */
 public function index(AccountRepositoryInterface $repository)
 {
     $types = Config::get('firefly.accountTypesByIdentifier.asset');
     $count = $repository->countAccounts($types);
     bcscale(2);
     if ($count == 0) {
         return redirect(route('new-user.index'));
     }
     $title = 'Firefly';
     $subTitle = trans('firefly.welcomeBack');
     $mainTitleIcon = 'fa-fire';
     $transactions = [];
     $frontPage = Preferences::get('frontPageAccounts', []);
     $start = Session::get('start', Carbon::now()->startOfMonth());
     $end = Session::get('end', Carbon::now()->endOfMonth());
     $showTour = Preferences::get('tour', true)->data;
     $accounts = $repository->getFrontpageAccounts($frontPage);
     $savings = $repository->getSavingsAccounts();
     $piggyBankAccounts = $repository->getPiggyBankAccounts();
     $savingsTotal = 0;
     foreach ($savings as $savingAccount) {
         $savingsTotal = bcadd($savingsTotal, Steam::balance($savingAccount, $end));
     }
     $sum = $repository->sumOfEverything();
     if ($sum != 0) {
         Session::flash('error', 'Your transactions are unbalanced. This means a' . ' withdrawal, deposit or transfer was not stored properly. ' . 'Please check your accounts and transactions for errors.');
     }
     foreach ($accounts as $account) {
         $set = $repository->getFrontpageTransactions($account, $start, $end);
         if (count($set) > 0) {
             $transactions[] = [$set, $account];
         }
     }
     return view('index', compact('count', 'showTour', 'title', 'savings', 'subTitle', 'mainTitleIcon', 'transactions', 'savingsTotal', 'piggyBankAccounts'));
 }
Esempio n. 2
0
 /**
  * Shows the balances for all the user's frontpage accounts.
  *
  * @param AccountRepositoryInterface $repository
  *
  * @return \Symfony\Component\HttpFoundation\Response
  */
 public function frontpage(AccountRepositoryInterface $repository)
 {
     $frontPage = Preferences::get('frontPageAccounts', []);
     $start = clone Session::get('start', Carbon::now()->startOfMonth());
     $end = clone Session::get('end', Carbon::now()->endOfMonth());
     $accounts = $repository->getFrontpageAccounts($frontPage);
     // chart properties for cache:
     $cache = new CacheProperties();
     $cache->addProperty($start);
     $cache->addProperty($end);
     $cache->addProperty('frontpage');
     $cache->addProperty('accounts');
     if ($cache->has()) {
         return Response::json($cache->get());
         // @codeCoverageIgnore
     }
     $data = $this->generator->frontpage($accounts, $start, $end);
     $cache->store($data);
     return Response::json($data);
 }