/**
  * @param NewUserFormRequest   $request
  * @param AccountCrudInterface $crud
  *
  * @return bool
  */
 private function storeCreditCard(NewUserFormRequest $request, AccountCrudInterface $crud) : bool
 {
     $creditAccount = ['name' => 'Credit card', 'iban' => null, 'accountType' => 'asset', 'virtualBalance' => round($request->get('credit_card_limit'), 2), 'active' => true, 'user' => auth()->user()->id, 'accountRole' => 'ccAsset', 'openingBalance' => null, 'openingBalanceDate' => null, 'openingBalanceCurrency' => intval($request->input('amount_currency_id_credit_card_limit'))];
     $creditCard = $crud->store($creditAccount);
     // store meta for CC:
     $crud->storeMeta($creditCard, 'ccType', 'monthlyFull');
     $crud->storeMeta($creditCard, 'ccMonthlyPaymentDate', Carbon::now()->year . '-01-01');
     return true;
 }
 /**
  * @param AccountFormRequest   $request
  * @param AccountCrudInterface $crud
  *
  * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  */
 public function store(AccountFormRequest $request, AccountCrudInterface $crud)
 {
     $accountData = ['name' => trim($request->input('name')), 'accountType' => $request->input('what'), 'virtualBalance' => round($request->input('virtualBalance'), 2), 'virtualBalanceCurrency' => intval($request->input('amount_currency_id_virtualBalance')), 'active' => true, 'user' => auth()->user()->id, 'iban' => trim($request->input('iban')), 'accountNumber' => trim($request->input('accountNumber')), 'accountRole' => $request->input('accountRole'), 'openingBalance' => round($request->input('openingBalance'), 2), 'openingBalanceDate' => new Carbon((string) $request->input('openingBalanceDate')), 'openingBalanceCurrency' => intval($request->input('amount_currency_id_openingBalance'))];
     $account = $crud->store($accountData);
     Session::flash('success', strval(trans('firefly.stored_new_account', ['name' => $account->name])));
     Preferences::mark();
     // update preferences if necessary:
     $frontPage = Preferences::get('frontPageAccounts', [])->data;
     if (count($frontPage) > 0) {
         $frontPage[] = $account->id;
         Preferences::set('frontPageAccounts', $frontPage);
     }
     if (intval(Input::get('create_another')) === 1) {
         // set value so create routine will not overwrite URL:
         Session::put('accounts.create.fromStore', true);
         return redirect(route('accounts.create', [$request->input('what')]))->withInput();
     }
     // redirect to previous URL.
     return redirect(session('accounts.create.url'));
 }