You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					
					
						
							94 lines
						
					
					
						
							2.8 KiB
						
					
					
				
			
		
		
	
	
							94 lines
						
					
					
						
							2.8 KiB
						
					
					
				<?php
 | 
						|
 | 
						|
namespace App\Http\Controllers\Admin;
 | 
						|
 | 
						|
use App\Http\Controllers\Controller;
 | 
						|
 | 
						|
 | 
						|
use App\Models\Appointment;
 | 
						|
use Illuminate\Http\Request;
 | 
						|
 | 
						|
class AppointmentController extends Controller
 | 
						|
{
 | 
						|
    protected $view= 'admin.appointment.';
 | 
						|
    protected $redirect = 'admin/appointments';
 | 
						|
     
 | 
						|
    public function index(){
 | 
						|
        $appointments = Appointment::orderBy('id','DESC');
 | 
						|
        if(\request('date')){
 | 
						|
            $key = \request('date');
 | 
						|
            $appointments = $appointments->whereDate('date',$key);
 | 
						|
        }
 | 
						|
        if(\request('status')){
 | 
						|
            $key = \request('status');
 | 
						|
            $appointments = $appointments->where('status',$key);
 | 
						|
        }
 | 
						|
        $appointments = $appointments->paginate(config('custom.per_page'));
 | 
						|
        return view($this->view.'index',compact('appointments'));
 | 
						|
    }
 | 
						|
 | 
						|
    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',
 | 
						|
            // 'location' => 'required|max:255',
 | 
						|
            // 'description' => 'required',
 | 
						|
        ]);
 | 
						|
 | 
						|
        $appointment = new Appointment([
 | 
						|
            'date' => $request->get('date'),
 | 
						|
            'start_time' => $request->get('start_time'),
 | 
						|
            'end_time' => $request->get('end_time'),
 | 
						|
            'location' => $request->get('location'),
 | 
						|
            'description' => $request->get('description'),
 | 
						|
        ]);
 | 
						|
 | 
						|
        $appointment->save();
 | 
						|
 | 
						|
        return redirect($this->redirect)->with('success', 'Appointment has been added');
 | 
						|
    }
 | 
						|
 | 
						|
    public function edit($id)
 | 
						|
    {
 | 
						|
        $appointment = Appointment::find($id);
 | 
						|
 | 
						|
        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',
 | 
						|
            // 'location' => 'required|max:255',
 | 
						|
            // 'description' => 'required',
 | 
						|
        ]);
 | 
						|
 | 
						|
        $appointment = Appointment::find($id);
 | 
						|
        $appointment->date = $request->get('date');
 | 
						|
        $appointment->start_time = $request->get('start_time');
 | 
						|
        $appointment->end_time = $request->get('end_time');
 | 
						|
        $appointment->location = $request->get('location');
 | 
						|
        $appointment->description = $request->get('description');
 | 
						|
        $appointment->save();
 | 
						|
 | 
						|
        return redirect($this->redirect)->with('success', 'Appointment has been updated');
 | 
						|
    }
 | 
						|
 | 
						|
    public function destroy($id)
 | 
						|
    {
 | 
						|
        $appointment = Appointment::find($id);
 | 
						|
        $appointment->delete();
 | 
						|
 | 
						|
        return redirect($this->redirect)->with('success', 'Appointment has been deleted');
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
 |