Example #1
0
 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]);
 }
Example #2
0
 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'));
 }
Example #4
0
 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!');
 }
Example #7
0
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 () {
Example #8
0
 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!');
 }