public function make(Request $request) { $this->validate($request, ['cruise' => 'required|numeric', 'cabin' => 'required|numeric']); /* * Start creating reservation * */ $cruise = Cruise::find($request->cruise); $cabin = Cabin::find($request->cabin); $price = $cruise->price + $cabin->price; if (!empty($request->amenity)) { $amenities = []; foreach ($request->amenity as $amenity) { $ameni = Amenity::find($amenity); array_push($amenities, $ameni); $price += $ameni->price * $cabin->size; } } $reservation = Reservation::create(['cruise_id' => $cruise->id, 'cabin_id' => $cabin->id, 'status' => 0, 'price' => $price, 'user_id' => Auth::user()->id]); if (!empty($request->amenity)) { $reservation->amenities()->attach($ameni->id); } return view('user.reservation', ['cruise' => $cruise, 'cabin' => $cabin, 'amenities' => $amenities, 'reservation' => $reservation]); }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { $amenity = Amenity::find($id); $amenity->apartments()->detach(); $amenity->delete(); }
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!'); }