/** * Get all classrooms for all the courses of a department to show * @param Request $request * @param $code * @return \Illuminate\Contracts\Routing\ResponseFactory|\Symfony\Component\HttpFoundation\Response */ public function getClassrooms(Request $request, $code) { if ($request->ajax()) { $classrooms = Classroom::join('courses', 'classrooms.course_code', '=', 'courses.code')->join('rooms', 'classrooms.room_id', '=', 'rooms.id')->select('classrooms.course_code', 'courses.name as Name', 'rooms.name as Room', 'classrooms.from', 'classrooms.to', 'classrooms.day')->where('classrooms.department_code', '=', $code)->get(); foreach ($classrooms as $classroom) { $classroom->from = date('h:i A', strtotime($classroom->from)); $classroom->to = date('h:i A', strtotime($classroom->to)); } $classrooms = $classrooms->groupBy('course_code'); // get details for each course $notAllocatedClassroom = Course::select('courses.code', 'courses.name')->where('courses.department_code', '=', $code)->whereNotIn('courses.code', function ($query) { $query->select('classrooms.course_code')->from('classrooms'); })->orderBy('courses.code')->get(); return response([$classrooms, $notAllocatedClassroom]); } }