public function save($input)
 {
     $bankAccount = BankAccount::createNew();
     $bankAccount->bank_id = $input['bank_id'];
     $bankAccount->username = Crypt::encrypt(trim($input['bank_username']));
     $account = \Auth::user()->account;
     $account->bank_accounts()->save($bankAccount);
     foreach ($input['bank_accounts'] as $data) {
         if (!isset($data['include']) || !filter_var($data['include'], FILTER_VALIDATE_BOOLEAN)) {
             continue;
         }
         $subaccount = BankSubaccount::createNew();
         $subaccount->account_name = trim($data['account_name']);
         $subaccount->account_number = trim($data['hashed_account_number']);
         $bankAccount->bank_subaccounts()->save($subaccount);
     }
     return $bankAccount;
 }
 /**
  * Stores new account
  *
  */
 public function save($bankAccountPublicId = false)
 {
     $account = Auth::user()->account;
     $bankId = Input::get('bank_id');
     $username = Input::get('bank_username');
     $rules = ['bank_id' => $bankAccountPublicId ? '' : 'required', 'bank_username' => 'required'];
     $validator = Validator::make(Input::all(), $rules);
     if ($validator->fails()) {
         return Redirect::to('bank_accounts/create')->withErrors($validator)->withInput();
     } else {
         if ($bankAccountPublicId) {
             $bankAccount = BankAccount::scope($bankAccountPublicId)->firstOrFail();
         } else {
             $bankAccount = BankAccount::createNew();
             $bankAccount->bank_id = $bankId;
         }
         if ($username != str_repeat('*', strlen($username))) {
             $bankAccount->username = Crypt::encrypt(trim($username));
         }
         if ($bankAccountPublicId) {
             $bankAccount->save();
             $message = trans('texts.updated_bank_account');
         } else {
             $account->bank_accounts()->save($bankAccount);
             $message = trans('texts.created_bank_account');
         }
         Session::flash('message', $message);
         return Redirect::to("bank_accounts/{$bankAccount->public_id}/edit");
     }
 }