Esempio n. 1
0
 /**
  * @param NewUserFormRequest         $request
  * @param AccountRepositoryInterface $repository
  *
  * @return \Illuminate\Http\RedirectResponse
  */
 public function submit(NewUserFormRequest $request, AccountRepositoryInterface $repository)
 {
     // create normal asset account:
     $assetAccount = ['name' => $request->get('bank_name'), 'iban' => null, 'accountType' => 'asset', 'virtualBalance' => 0, 'active' => true, 'user' => Auth::user()->id, 'accountRole' => 'defaultAsset', 'openingBalance' => round($request->input('bank_balance'), 2), 'openingBalanceDate' => new Carbon(), 'openingBalanceCurrency' => intval($request->input('balance_currency_id'))];
     $repository->store($assetAccount);
     // create savings account
     if (strlen($request->get('savings_balance') > 0)) {
         $savingsAccount = ['name' => $request->get('bank_name') . ' savings account', 'iban' => null, 'accountType' => 'asset', 'virtualBalance' => 0, 'active' => true, 'user' => Auth::user()->id, 'accountRole' => 'savingAsset', 'openingBalance' => round($request->input('savings_balance'), 2), 'openingBalanceDate' => new Carbon(), 'openingBalanceCurrency' => intval($request->input('balance_currency_id'))];
         $repository->store($savingsAccount);
     }
     // create credit card.
     if (strlen($request->get('credit_card_limit') > 0)) {
         $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('balance_currency_id'))];
         $creditCard = $repository->store($creditAccount);
         // store meta for CC:
         AccountMeta::create(['name' => 'ccType', 'data' => 'monthlyFull', 'account_id' => $creditCard->id]);
         AccountMeta::create(['name' => 'ccMonthlyPaymentDate', 'data' => Carbon::now()->year . '-01-01', 'account_id' => $creditCard->id]);
     }
     Session::flash('success', 'New account(s) created!');
     Preferences::mark();
     return redirect(route('index'));
 }
 /**
  * @param AccountFormRequest $request
  * @param ARI                $repository
  *
  * @return \Illuminate\Http\RedirectResponse
  */
 public function store(AccountFormRequest $request, ARI $repository)
 {
     $accountData = ['name' => $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' => $request->input('iban'), '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 = $repository->store($accountData);
     Session::flash('success', 'New account "' . $account->name . '" stored!');
     Preferences::mark();
     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::get('accounts.create.url'));
 }