public function placeBid($id, Request $request)
 {
     $highestbid = Bidder::where('FK_auction_id', '=', $id)->orderBy('bidAmount', 'desc')->first();
     $validator = Validator::make($request->all(), ['bidAmount' => 'required|max:9999999|integer']);
     if ($validator->fails()) {
         return redirect()->back()->withErrors($validator)->withInput();
     }
     $input = $request->all();
     $auction = Auction::find($id);
     if ($input['bidAmount'] >= $auction->minPrice && $input['bidAmount'] <= $auction->maxPrice) {
         if ($highestbid == null) {
             $bidder = new Bidder();
             $bidder->FK_user_id = Auth::user()->id;
             $bidder->FK_auction_id = $id;
             $bidder->bidAmount = $input['bidAmount'];
             $bidder->save();
             $auction->currentPrice = $input['bidAmount'];
             $auction->FK_status_id = '3';
             //active
             $auction->save();
             $success = 'You have succesfully placed &euro;' . $input['bidAmount'] . ' on this auction!';
             return redirect()->back()->with('success', $success);
         } else {
             if ($input['bidAmount'] > $highestbid->bidAmount) {
                 $bidder = new Bidder();
                 $bidder->FK_user_id = Auth::user()->id;
                 $bidder->FK_auction_id = $id;
                 $bidder->bidAmount = $input['bidAmount'];
                 $bidder->save();
                 $auction->currentPrice = $input['bidAmount'];
                 $auction->save();
                 $success = 'You have succesfully placed &euro;' . $input['bidAmount'] . ' on this auction!';
                 return redirect()->back()->with('success', $success);
             } else {
                 $warning = 'The current offer is &euro;' . $highestbid->bidAmount . ' place a higher value to bid.';
                 return redirect()->back()->with('warning', $warning);
             }
         }
     } else {
         $warning = 'The minimum price is &euro; ' . $auction->minPrice . ' and the maximum price is &euro; ' . $auction->maxPrice . '.';
         return redirect()->back()->with('warning', $warning);
     }
 }
Example #2
0
 public function bid(Request $request)
 {
     $this->validate($request, ['id' => 'required', 'prev' => 'required', 'bid' => 'required|greater_than_field:prev']);
     $auction = Auction::findOrFail($request->id);
     $auction->price = $request->bid;
     $auction->save();
     $user = Auth::user();
     $bidder = new Bidder();
     $bidder->user()->save($user);
     $bidder->auction()->associate($auction);
     $bidder->price = $request->bid;
     $bidder->save();
     return redirect('/art');
 }