public function search(Request $request) { $locations = Cruise::active()->groupBy('arrive_location')->get(); $depart = Cruise::active()->groupBy('depart_location')->get(); $whereclause = ''; if (!empty($request->arrive)) { $whereclause .= 'arrive_location = "'; $whereclause .= $request->arrive; $whereclause .= '"'; } if (!empty($request->depart)) { if (!empty($request->arrive)) { $whereclause .= ' or '; } $whereclause .= 'depart_location = "'; $whereclause .= $request->depart; $whereclause .= '"'; } if (!empty($request->month)) { if (!empty($request->depart) || !empty($request->arrive)) { $whereclause .= ' or '; } $whereclause .= 'MONTH(depart_date) ='; $whereclause .= $request->month; } if (!empty($request->month) || !empty($request->depart) || !empty($request->arrive)) { $cruises = Cruise::active()->whereRaw($whereclause)->paginate(10); } else { $cruises = Cruise::active()->paginate(10); } return view('user/cruises', ['departs' => $depart, 'locations' => $locations, 'cruises' => $cruises]); }
public function updateCruise(Request $request, Cruise $cruise) { $this->validate($request, ['name' => 'required|max:50', 'price' => 'required|numeric', 'depart_location' => 'required', 'arrive_location' => 'required', 'route_date' => 'required|max:23']); $dates = explode(" - ", $request->route_date); $depart = DateTime::createFromFormat('m/d/Y', $dates[0])->format('Y-m-d'); $arrive = DateTime::createFromFormat('m/d/Y', $dates[1])->format('Y-m-d'); $cruise->name = $request->name; $cruise->price = $request->price; $cruise->depart_location = $request->depart_location; $cruise->arrive_location = $request->arrive_location; $cruise->description = $request->description; $cruise->type = $request->type; $cruise->depart_date = $depart; $cruise->arrive_date = $arrive; if (Input::hasFile('image')) { if (File::exists('uploads/' . $cruise->image)) { File::delete('uploads/' . $cruise->image); } $file = Input::file('image'); $imagename = 'cruise_' . $cruise->id . '.' . Input::file('image')->getClientOriginalExtension(); $file->move('uploads', $imagename); $cruise->image = $imagename; } $cabins = Cabin::all(); $data = []; foreach ($cabins as $cabin) { $cabinnum = Input::get('cabins.' . $cabin->id); if (!empty($cabinnum) || $cabinnum != 0) { $data[$cabin->id]['cabin_number'] = $cabinnum; } } $cruise->cabins()->sync($data); $cruise->save(); return redirect('/admin/cruise/' . $cruise->id)->with('status', 'Cruise updated!'); }
/** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { $cruise = Cruise::find($id); $cabins = Cabin::where('ship_id', $cruise->ship_id)->get(); $port = Port::all(); $cabin_type = Cruise_Cabin_Type::where('cruise_id', $cruise->id)->get(); return view("pages.cruises_show", compact('cruise', 'cabins', 'port', 'cabin_type')); }
public function search_result() { $searchterm = Input::get('searchterm'); $cruises = Cruise::where('name', 'LIKE', '%' . $searchterm . '%')->get(); //$cruises = Cruise::first(); $port = Port::all(); return view('partial.partial_search', ['cruises' => $cruises, 'port' => $port]); }
public function create_helper_confirmation() { $cruiseid = Input::get('cruiseid'); $cabinid = Input::get('cabinid'); $cruise = Cruise::findOrFail($cruiseid); $ship = Ship::findOrFail($cruise->ship_id); $cabin = Cabin::where('id', $cabinid)->first(); $port = Port::all(); $cabin_type = Cruise_Cabin_Type::where('cruise_id', $cruise->id)->get(); return view('partial.partial_confirmation', compact('cruise', 'ship', 'cabin', 'port', 'cabin_type')); }
public function success(Request $request, Reservation $reservation) { //change reservation status to complete $payment_id = Session::get('paypal_payment_id'); $reservation->status = 1; $reservation->payment_id = $payment_id; $cruise = Cruise::find($reservation->cruise_id); $cabin = Cabin::find($reservation->cabin_id); //deduct cabin number in the cruise DB::table('cruises_cabins')->where('cruise_id', $reservation->cruise_id)->where('cabin_id', $reservation->cabin_id)->increment('cabin_booked'); $reservation->save(); Session::forget('paypal_payment_id'); $full = 0; foreach ($cruise->cabins as $cabin) { if ($cabin->pivot->cabin_number == $cabin->pivot->cabin_booked) { $full++; } } if ($full == Cabin::all()->count()) { $cruise->status = 1; $cruise->save(); } return view('user.reservation', ['cruise' => $cruise, 'cabin' => $cabin, 'amenities' => $reservation->amenities()->get(), 'reservation' => $reservation])->with('status', 'Payment succcess!'); }
Route::get('cruises', 'Front\\FrontController@index'); Route::post('cruises', 'Front\\FrontController@search'); Route::get('cruise/{cruise}', 'Front\\FrontController@cruise'); Route::post('reservation', 'ReservationController@make'); Route::get('reservation/{reservation}', 'ReservationController@show'); Route::get('reservation/download/{reservation}', 'ReservationController@download'); Route::get('reservation/success/{reservation}', array('as' => 'payment.success', 'uses' => 'ReservationController@success')); Route::get('reservation/failed/{reservation}', array('as' => 'payment.failed', 'uses' => 'ReservationController@failed')); Route::post('savepassenger', 'PassengerController@store'); Route::post('makepayment', array('as' => 'payment', 'uses' => 'PaypalController@postPayment')); Route::get('payment/status', array('as' => 'payment.status', 'uses' => 'PaypalController@getPaymentStatus')); Route::get('/dummy', function () { $faker = Faker\Factory::create(); for ($i = 0; $i < 20; $i++) { $cruise = array('name' => $faker->name, 'description' => $faker->text($maxNbChars = 200), 'depart_date' => $faker->randomElement($array = ['2016-1-8', '2016-1-9', '2016-1-10', '2016-1-11', '2016-1-12']), 'arrive_date' => $faker->randomElement($array = ['2016-1-19', '2016-1-20', '2016-1-21', '2016-1-22', '2016-1-23']), 'depart_location' => $faker->randomElement($array = ['Singapore', 'Malaysia', 'Maldives', 'Thailand', 'Sri Lanka']), 'arrive_location' => $faker->randomElement($array = ['Amsterdam', 'Hong Kong', 'China', 'Australia', 'Japan']), 'price' => $faker->randomFloat($bMaxDecimals = 2, $min = 100, $max = 2000), 'type' => $faker->randomElement($array = ['Luxury', 'Classic', 'Holiday']), 'status' => 0); $newcruise = Cruise::create($cruise); $newcruise->image = "cruise_" . $newcruise->id . ".jpg"; $newcruise->save(); } }); // User Routes Route::get('user/{user}', 'UserController@show'); Route::post('user/{user}', 'UserController@create'); Route::put('user/{user}', 'UserController@update'); Route::get('user/{user}/reservations', 'UserController@showReservations'); //Promotion Routes //Amenities Routes //Cabins Routes //Reservations Routes //All Admin Routes Route::group(['prefix' => 'admin'], function () {
public function postNewPromotion(Request $request) { $this->validate($request, ['name' => 'required|max:50', 'discount' => 'required|numeric|min:1|max:100', 'type' => 'required|numeric|min:1|max:100', 'image' => 'image', 'promo_date' => 'max:23']); //create a new promotion $promotion = Promotion::create(['name' => $request->name, 'discount' => $request->discount, 'type' => $request->type, 'description' => $request->description]); //process dates if (!empty($request->promo_date)) { $dates = explode(" - ", $request->promo_date); $promotion->start_date = DateTime::createFromFormat('m/d/Y', $dates[0])->format('Y-m-d'); $promotion->end_date = DateTime::createFromFormat('m/d/Y', $dates[1])->format('Y-m-d'); //check if promotion is activated on create if ($dates[0] <= new DateTime("now") && $dates[1] > new DateTime("now")) { $promotion_status = 1; } else { $promotion_status = 0; } } if (Input::hasFile('image')) { $file = Input::file('image'); $imagename = 'promotion_' . $promotion->id . '.' . Input::file('image')->getClientOriginalExtension(); $file->move('uploads', $imagename); $promotion->image = $imagename; } $promotion->save(); //attach promotion to selected items $cruises = Input::get('cruises'); $cabins = Input::get('cabins'); $amenities = Input::get('amenities'); if (!empty($cruises)) { foreach ($cruises as $key => $val) { $cruise = Cruise::find($val); $cruise->promotion_id = $promotion->id; $cruise->save(); } } else { if (!empty($cabins)) { foreach ($cabins as $key => $val) { $cabin = Cabin::find($val); $cabin->promotion_id = $promotion->id; $cabin->save(); } } else { if (!empty($amenities)) { foreach ($amenities as $key => $val) { $amenity = Amenity::find($val); $amenity->promotion_id = $promotion->id; $amenity->save(); } } } } return redirect('/admin/promotion/' . $promotion->id)->with('status', 'Promotion created!'); }