public function obtainClassroom(Request $request) { if ($request->ajax()) { $block = Input::get("block"); $query = Classroom::select()->where('block_id', '=', $block)->get(); return $query; } return 'none'; }
/** * Bootstrap any application services. * * @return void */ public function boot() { if (DB::connection() instanceof \Illuminate\Database\SQLiteConnection) { DB::statement(DB::raw('PRAGMA foreign_keys=1')); } Validator::extend('overlap_room', function ($attribute, $value, $parameters, $validator) { $time = strtotime($value); $time = date('G:i:s', $time); $overlap = Classroom::select('classrooms.*')->Join('rooms', 'classrooms.room_id', '=', 'rooms.id')->where([['classrooms.from', '<=', $time], ['classrooms.to', '>=', $time], ['classrooms.day', Input::get('day')], ['rooms.name', Input::get('room')]])->get(); $from = strtotime(Input::get('from')); $from = date('G:i:s', $from); //convert to 24 hr format $to = strtotime(Input::get('to')); $to = date('G:i:s', $to); //convert to 24 hr format $overlapBetween = Classroom::select('classrooms.*')->Join('rooms', 'classrooms.room_id', '=', 'rooms.id')->where([['classrooms.day', Input::get('day')], ['rooms.name', Input::get('room')]])->whereBetween('classrooms.from', [$from, $to])->get(); if ($overlap->count() || $overlapBetween->count()) { return false; } return true; }); Validator::extend('overlap_course', function ($attribute, $value, $parameters, $validator) { $time = strtotime($value); $time = date('G:i:s', $time); $overlap = Classroom::select('classrooms.*')->Join('courses', 'classrooms.course_code', '=', 'courses.code')->where([['classrooms.from', '<=', $time], ['classrooms.to', '>=', $time], ['classrooms.day', Input::get('day')], ['courses.name', Input::get('course_name')]])->get(); $from = strtotime(Input::get('from')); $to = strtotime(Input::get('to')); $from = date('G:i:s', $from); //convert to 24 hr format $to = date('G:i:s', $to); //convert to 24 hr format $overlapBetween = Classroom::select('classrooms.*')->Join('courses', 'classrooms.course_code', '=', 'courses.code')->where([['classrooms.day', Input::get('day')], ['courses.name', Input::get('course_name')]])->whereBetween('classrooms.from', [$from, $to])->get(); if ($overlap->count() || $overlapBetween->count()) { return false; } return true; }); Validator::extend('duration_check', function ($attribute, $value, $parameters, $validator) { $from = strtotime(Input::get('from')); $to = strtotime(Input::get('to')); $duration = round(abs($to - $from) / 60, 2); //time difference=(to-from)minute if ($duration >= 50) { return true; } else { return false; } }); }
public function returnClassrooms() { $blocks = explode(",", Input::get("data")); foreach ($blocks as $key => $value) { $blocks[$key] = 'name = "' . $value . '"'; } $idBlock = Block::select()->whereRaw(implode(' or ', $blocks))->lists("id"); $classRooms = Classroom::select()->whereIn('block_id', $idBlock)->orderBy('location')->get(); return $classRooms; }
/** * Get room schedule for the selected room & day * @param Request $request */ public function getRoomSchedule(Request $request) { if ($request->ajax()) { $classrooms = Classroom::select('classrooms.course_code', 'classrooms.from', 'classrooms.to')->Join('rooms', 'classrooms.room_id', '=', 'rooms.id')->where([['classrooms.day', $request->input('day')], ['rooms.name', $request->input('room_name')]])->orderBy('classrooms.from')->get(); foreach ($classrooms as $classroom) { $classroom->from = date('h:i A', strtotime($classroom->from)); $classroom->to = date('h:i A', strtotime($classroom->to)); } return response($classrooms); // return response()->json(['message' => 'Successfully added to cart']); } }