/**
  * @param ARI     $repository
  * @param Account $account
  *
  * @return View
  */
 public function edit(ARI $repository, Account $account)
 {
     $what = config('firefly.shortNamesByFullName')[$account->accountType->type];
     $subTitle = trans('firefly.edit_' . $what . '_account', ['name' => $account->name]);
     $subTitleIcon = config('firefly.subIconsByIdentifier.' . $what);
     $openingBalance = $repository->openingBalanceTransaction($account);
     // put previous url in session if not redirect from store (not "return_to_edit").
     if (session('accounts.edit.fromUpdate') !== true) {
         Session::put('accounts.edit.url', URL::previous());
     }
     Session::forget('accounts.edit.fromUpdate');
     // pre fill some useful values.
     // the opening balance is tricky:
     $openingBalanceAmount = null;
     if ($openingBalance->id) {
         $transaction = $repository->getFirstTransaction($openingBalance, $account);
         $openingBalanceAmount = $transaction->amount;
     }
     $preFilled = ['accountNumber' => $account->getMeta('accountNumber'), 'accountRole' => $account->getMeta('accountRole'), 'ccType' => $account->getMeta('ccType'), 'ccMonthlyPaymentDate' => $account->getMeta('ccMonthlyPaymentDate'), 'openingBalanceDate' => $openingBalance->id ? $openingBalance->date->format('Y-m-d') : null, 'openingBalance' => $openingBalanceAmount, 'virtualBalance' => round($account->virtual_balance, 2)];
     Session::flash('preFilled', $preFilled);
     Session::flash('gaEventCategory', 'accounts');
     Session::flash('gaEventAction', 'edit-' . $what);
     return view('accounts.edit', compact('account', 'subTitle', 'subTitleIcon', 'openingBalance', 'what'));
 }