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.
95 lines
2.8 KiB
95 lines
2.8 KiB
2 years ago
|
<?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');
|
||
|
}
|
||
|
}
|
||
|
|