orderBy('id', 'DESC'); if (\request('date')) { $date = \request('date'); $appointments = $appointments->whereDate('date', $date); } if (\request('status')) { $status = \request('status'); $appointments = $appointments->where('status', $status); } if (\request('is_booked')) { $is_booked = (\request('is_booked')) == '1' ? true : false; $appointments = $appointments->where('is_booked', $is_booked); } $appointments = $appointments->paginate(20); $service = 'Education'; $is_booked = $is_booked ?? null; $date = $date ?? null; $status = $status ?? null; return view($this->view . 'index', compact('appointments', 'service', 'is_booked', 'date', 'status')); } public function visa_appointments() { $appointments = Appointment::where('service_type', '2')->orderBy('id', 'DESC'); if (\request('date')) { $date = \request('date'); $appointments = $appointments->whereDate('date', $date); } if (\request('status')) { $status = \request('status'); $appointments = $appointments->where('status', $status); } if (\request('is_booked')) { $is_booked = (\request('is_booked')) == '1' ? true : false; $appointments = $appointments->where('is_booked', $is_booked); } $appointments = $appointments->paginate(20); $is_booked = $is_booked ?? null; $date = $date ?? null; $status = $status ?? null; $service = 'Migration|Visa'; return view($this->view . 'index', compact('appointments', 'service', 'is_booked', 'date', 'status')); } public function create() { return view($this->view . 'create'); } public function store(Request $request) { $request->validate([ 'date' => 'required|date', 'start_time' => 'required|date_format:H:i', 'end_time' => 'required|date_format:H:i', ]); $start_time = Carbon::createFromFormat('H:i', $request->get('start_time'))->format('H:i A'); $end_time = Carbon::createFromFormat('H:i', $request->get('end_time'))->format('H:i A'); $appointment = new Appointment([ 'date' => $request->get('date'), 'start_time' => $start_time, 'end_time' => $end_time, 'location' => $request->get('location'), 'description' => $request->get('description'), 'service_type' => $request->get('service_type'), ]); $appointment->save(); if($request->get('service_type') == "1"){ $service = 'education'; }else{ $service = 'visa'; } return redirect($this->redirect.'/'.$service)->with('success', 'Appointment has been added'); } public function edit($id) { $appointment = Appointment::findorfail($id); $start_time = explode(" ", $appointment->start_time); $start_time = $start_time[0]; $end_time = explode(" ", $appointment->end_time); $end_time = $end_time[0]; $appointment['start_time'] = $start_time; $appointment['end_time'] = $end_time; return view($this->view . 'edit', compact('appointment')); } public function update(Request $request, $id) { $request->validate([ 'date' => 'required|date', 'start_time' => 'required|date_format:H:i', 'end_time' => 'required|date_format:H:i', ]); $start_time = Carbon::createFromFormat('H:i', $request->get('start_time'))->format('H:i A'); $end_time = Carbon::createFromFormat('H:i', $request->get('end_time'))->format('H:i A'); $appointment = Appointment::find($id); $appointment->date = $request->get('date'); $appointment->start_time = $start_time; $appointment->end_time = $end_time; $appointment->location = $request->get('location'); $appointment->description = $request->get('description'); $appointment->service_type = $request->get('service_type'); $appointment->status = $request->get('status'); $appointment->save(); if($request->get('service_type') == "1"){ $service = 'education'; }else{ $service = 'visa'; } return redirect($this->redirect.'/'.$service)->with('success', 'Appointment has been updated'); } public function show($id) { $appointment = Appointment::with('appointment_booking_detail')->findorfail($id); return view($this->view . 'show', compact('appointment')); } public function destroy($id) { $appointment = Appointment::find($id); $appointment->delete(); return redirect($this->redirect)->with('success', 'Appointment has been deleted'); } }