/**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     TransactionType::create(['code' => 'DP', 'description' => 'Deposit', 'account_type' => 'CR']);
     TransactionType::create(['code' => 'DV', 'description' => 'Dividend', 'account_type' => 'CR']);
     TransactionType::create(['code' => 'WD', 'description' => 'Withdraw', 'account_type' => 'DR']);
     TransactionType::create(['code' => 'MF', 'description' => 'Membership Fee', 'account_type' => 'DR']);
 }
 /**
  *
  *  Description: Update Selected Transaction
  *  Component: EditTransactionFormModal
  *
  */
 public function updateTransaction(SaveTransactionPostRequest $request)
 {
     $transaction = Transaction::find($request->input('id'));
     $transactionType = TransactionType::where('code', $request->input('transactionType'))->first();
     if ($transactionType->account_type === 'DR') {
         $this->validate($request, ['amount' => 'max:' . $account->balance]);
     }
     $transaction->transactionDate = Carbon::parse($request->input('transactionDate'))->toDateString();
     $transaction->amount = $request->input('amount');
     $transaction->transaction_type_id = $transactionType->id;
     $transaction->notes = $request->input('notes') === '' ? null : $request->input('notes');
     $transaction->touch();
     $transaction->save();
     $transaction->account->balance = $this->recomputeRunningBalance($transaction->account_id);
     $transaction->account->save();
     return response()->json(['message' => 'Transaction Updated.']);
 }
 public function getTransactionTypes()
 {
     $types = TransactionType::all(['id', 'code', 'description']);
     return $types;
 }