예제 #1
0
 /**
  * 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);
     }
 }
예제 #2
0
 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;
 }
예제 #3
0
 /**
  * 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();
 }