/** * Display the specified resource. * * @param int $id * @return Response */ public function show($id, $option = false) { if (strtolower(Session::get('account_type')) == 'admin') { $transactions = Mradiwallettransaction::where('user_id', $id)->orderBy('id', 'desc')->paginate(15); $myBalance = Helpers::investorBalance($id); $totalInvestorBid = Helpers::getTotalInvestorBid($id, false, true); return View::make('admin.pages.investor_transactions_admin')->with(compact('totalInvestorBid', 'myBalance'))->withObjects($transactions); } else { //get transactions of a single investor $transactions = Mraditransactionlog::find($id); // show the view and pass the investor transactions to it return View::make('admin.pages.jambo_form')->withObjects($transactions); } }
public static function investorBalance($user_id, $is_admin = false, $campaign_id = false) { if ($is_admin) { $trans = DB::select(DB::raw("select sum(mws.balance) as balance from mradiwallettransactions mws\n\t\t\t\t\t\tinner join \n\t\t\t\t\t\t(select max(id) as tid, user_id from mradiwallettransactions group by user_id order by tid desc) drv \n\t\t\t\t\t\ton mws.id = drv.tid")); $trans_balance = $trans ? $trans[0]->balance : 0; } elseif ($campaign_id && $campaign_id > 0) { $trans = Mradiwallettransaction::Where('campaign_id', '=', $campaign_id)->orderBy('id', 'desc')->first(); $trans_balance = $trans ? $trans->balance : 0; } else { $trans = Mradiwallettransaction::Where('user_id', '=', $user_id)->orderBy('id', 'desc')->first(); $trans_balance = $trans ? $trans->balance : 0; } return $trans_balance; }
/** * Store a newly created resource in storage. * * @return Response */ public function store() { //save bid //log to file $file = fopen(storage_path() . "/logs/trans_bids.txt", "a"); foreach (Input::all() as $k => $val) { fwrite($file, $k . " --- " . $val . "\n"); } fwrite($file, "\n\n *********************************** \n\n\n"); fclose($file); //end log to file $rules = array('bid_amt' => 'required|numeric|min:1'); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { return Redirect::back()->withErrors($validator)->withInput(Input::except('password')); } else { // get params n process bid $user_id = Session::get('account_id'); $min_amt = e(Input::get('min_investment')); $max_amt = e(Input::get('max_investment')); $total_bidded = e(Input::get('total_bidded')); $bid_balance = e(Input::get('amt_remaining')); $bid_amt = e(Input::get('bid_amt')); $investor_balance = e(Input::get('investor_balance')); $campaign_id = Helpers::getCampaignID(e(Input::get('campaign_id'))); $campaign_name = strtoupper(Helpers::getCampaignID(e(Input::get('campaign_id')), true)); $order_id = mt_rand(1010101, 9010901); if ($investor_balance < $bid_amt) { Session::flash('_response', '<div style="width: 98%"><div class="alert alert-danger alert-dismissable"> <i class="fa fa-check"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b> Bidding Failed!! You do no have sufficient balance in your wallet. </b> </div></div>'); } elseif ($bid_amt < $min_amt || $bid_amt > $max_amt) { Session::flash('_response', '<div style="width: 98%"><div class="alert alert-danger alert-dismissable"> <i class="fa fa-check"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b> Bidding Failed!! You must bid within the limits provided ' . $min_amt . ' <= Your Bid <= ' . $max_amt . ' </b> </div></div>'); } elseif ($bid_amt > $bid_balance) { Session::flash('_response', '<div style="width: 98%"><div class="alert alert-danger alert-dismissable"> <i class="fa fa-check"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b> Bidding Failed!! Your bid is beyond maximum limit, you can only bid a max of $bid_balance. </b> </div></div>'); } else { //process bid $details = Helpers::getCampaignID(e(Input::get('campaign_id')), '', true); $entrepreneur_id = $details->user_id; $bidTrans = new Mradicampaignbid(); $bidTrans->investor_id = Session::get('account_id'); $bidTrans->entrepreneur_id = $entrepreneur_id; $bidTrans->campaign_id = e(Input::get('campaign_id')); $bidTrans->order_id = $order_id; $bidTrans->mraditransactiontype_id = 2; $bidTrans->amount = $bid_amt; $bidTrans->total_bidded = $total_bidded + $bid_amt; $bidTrans->save(); //debit investor $investor_balance = Helpers::investorBalance($user_id); $mybid = new Mradiwallettransaction(); $mybid->user_id = Session::get('account_id'); $mybid->order_id = $order_id; $mybid->mradicampaignbid_id = $bidTrans->id; $mybid->campaign_id = $campaign_id; $mybid->mraditransactiontype_id = 2; $mybid->debit = $bid_amt; $mybid->balance = $investor_balance - $bid_amt; $mybid->save(); //credit entrepreneur $entrepreneur_balance = Helpers::investorBalance($entrepreneur_id, false, $campaign_id); $mybid = new Mradiwallettransaction(); $mybid->user_id = $entrepreneur_id; $mybid->order_id = $order_id; $mybid->mradicampaignbid_id = $bidTrans->id; $mybid->campaign_id = $campaign_id; $mybid->mraditransactiontype_id = 2; $mybid->credit = $bid_amt; $mybid->balance = $entrepreneur_balance + $bid_amt; $mybid->save(); Session::flash('_response', '<div style="width: 98%"><div class="alert alert-success alert-dismissable"> <i class="fa fa-check"></i> <button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button> <b> Transaction Successful!! Your have successfully bidded <i>' . $campaign_name . '</i> with <i>KShs. ' . number_format($bid_amt, 2) . '</i> <br /> New A/c Balance <i>KShs. ' . number_format($investor_balance - $bid_amt, 2) . '</i> </b> </div></div>'); } return Redirect::to('bid/' . Input::get('campaign_id')); } return Redirect::back(); }