ordered() ->take(3) ->get(); $slides = Upload::whereCategory('slide') ->orderBy('position') ->get(); return view('public.index', compact('posts', 'slides')); } public function getHotel() { return view('public.hotel'); } public function getRooms() { $units = Unit::all(); return view('public.rooms', compact('units')); } public function getRoom(Unit $unit) { return view('public.room', compact('unit')); } public function getNews() { $posts = Post::translatedIn() ->ordered() ->paginate(6); return view('public.news', compact('posts')); } public function getNewsItem(Post $post) { $posts = Post::where('id', '!=', $post->id) ->ordered() ->take(5) ->get(); return view('public.news-item', compact('post', 'posts')); } public function faqs() { $faqs = Faq::translatedIn() ->sorted() ->get(); return view('public.faqs', compact('faqs')); } public function faq(Faq $faq) { return view('public.faq', compact('faq')); } public function getPage(Request $request) { $page = Page::whereTranslation('url', substr($request->path(), 3))->first(); return view('public.page', compact('page')); } public function getContact() { return view('public.contact'); } public function getBookNow(Request $request) { $units = new Unit; if ($request->persons) { $units = $units->where('occupancy', '>=', $request->persons); } if ($request->start_date && $request->end_date) { $start = Carbon::createFromFormat('d.m.Y.', $request->start_date); $end = Carbon::createFromFormat('d.m.Y.', $request->end_date)->subDay(); $units = $units->whereDoesntHave('reservations', function ($query) use ($start, $end) { $query->where('end_date', '>=', $start); $query->where('start_date', '<=', $end); }); } $units = $units->get()->sortBy('price'); $data = $request->all(); return view('public.book-now', compact('units', 'data')); } public function getThankYou() { return view('public.thank-you'); } public function privacyPolicy() { return view('public.privacy-policy'); } public function documents() { return view('public.documents'); } public function mail(Request $request) { $data = $request->all(); if (empty($data['check_email'])) { Mail::send('emails.contact', compact('data'), function ($message) use ($data) { $message->to(config('mail.to'))->replyTo($data['email'], $data['name'])->subject(config('mail.subject')); if (array_key_exists('file', $data)) { $message->attach($data['file']->getRealPath(), array( 'as' => $data['file']->getClientOriginalName() )); } }); return redirect()->route('public.thank.you'); } } public function postBookNow(Request $request) { $data = $request->all(); if (empty($data['check_email'])) { Mail::send('emails.reservation', compact('data'), function ($message) use ($data) { $message->to(config('mail.to-reservation'))->replyTo($data['email'], $data['name'])->subject(config('mail.subject-reservation')); }); return redirect()->route('public.thank.you'); } } }