/** * Define the application's command schedule. * * @param \Illuminate\Console\Scheduling\Schedule $schedule * * @return void */ protected function schedule(Schedule $schedule) { $schedule->command('inspire')->hourly(); // 进入维护模式 $schedule->command('down')->evenInMaintenanceMode()->dailyAt('23:00'); //->when(function () {return true;});// // 更新用户等级 $schedule->call(function () { $registrations = Registration::where('state', 0)->where(function ($query) { $query->where('registration_date', Carbon::yesterday()->toDateString()); })->get(); foreach ($registrations as $registration) { $user = $registration->user; $user->credit_level -= 1; $user->save(); } })->evenInMaintenanceMode()->daily(); // // 重置rest_num $schedule->call(function () { $doctor_schedules = DocSchedule::where('state', 0)->where(function ($query) { $week = [1 => 'monday', 2 => 'tuesday', 3 => 'wednesday', 4 => 'thursday', 5 => 'friday', 6 => 'saturday', 7 => 'sunday']; $query->where('doctoring_date', $week[Carbon::today()->dayOfWeek]); })->get(); foreach ($doctor_schedules as $doctor_schedule) { $doctor_schedule->rest_num = $doctor_schedule->total_num; $doctor_schedule->save(); } })->evenInMaintenanceMode()->dailyAt('3:00'); // // 离开维护模式 $schedule->command('up')->evenInMaintenanceMode()->dailyAt('7:00'); // }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $faculty_id = Auth::user()->id; $schedulelist = Schedule::where('faculty_id', '=', $faculty_id)->get(); dd($schedulelist); return view('auth.availability')->with('availlist', $schedulelist); }
/** * Display a listing of the resource. * * @return Response */ public function index() { // DB::enableQueryLog(); $schedules = Schedule::where('user_id', Auth::id())->get(); // $queries = DB::getQueryLog(); // $last_query = end($queries); // dd($last_query); return view('schedules.index')->with('schedules', $schedules); }
public function storeSchedule(Request $request, $engineer_id) { //First we need to remove all the schedules //$objEngineer = Engineer::find($engineer_id); Schedule::where('engineer_id', $engineer_id)->delete(); foreach ($request->all() as $newObj) { Schedule::create($newObj); } return ["success" => true]; }
public function searchProfile($name) { $name = urldecode($name); $data = array(); $data['article'] = \App\ArticleCategory::with('articles')->get(); $data['content'] = \App\Doctor::where('name', 'like', '%' . $name . '%')->first(); if (empty($data['content'])) { return redirect()->route('home'); } $data['schedule'] = []; for ($i = 0; $i <= 7; $i++) { $data['schedule'][$i] = []; } $schedules = \App\Schedule::where('doctor_id', $data['content']->id)->whereBetween('date', array(date("Y-m-d"), date("Y-m-d", strtotime("+1 week"))))->orderBy('date', 'asc')->orderBy('schedule_start', 'asc')->get(); foreach ($schedules as $schedule) { $len = 60 * 60 * 24; $now = date("Y-m-d"); $tmp = $schedule->date; if ((strtotime($tmp) - strtotime($now)) / $len == 0) { array_push($data['schedule'][0], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 1) { array_push($data['schedule'][1], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 2) { array_push($data['schedule'][2], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 3) { array_push($data['schedule'][3], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 4) { array_push($data['schedule'][4], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 5) { array_push($data['schedule'][5], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 6) { array_push($data['schedule'][6], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 7) { array_push($data['schedule'][7], $schedule); } } } } } } } } } return view('frontend.pages.home.search-profile', compact('data')); }
public function removeuser() { $username = Input::get('selected_username'); $id = User::where('username', $username)->first()->id; $usercourses = Course_detail::where('offered_by', $username)->get(); foreach ($usercourses as $usercourse) { Schedule::where('course_code', $usercourse->id)->delete(); Time_table::where('course_code', $usercourse->id)->delete(); } Course_detail::where('offered_by', $username)->delete(); user_detail::where('id', $id)->delete(); User::where('username', $username)->delete(); return redirect('/home'); }
public function removecourse() { $course = Input::get('selectcoursecode'); $courseclasses = Course_detail::where('course_code', $course)->get(); foreach ($courseclasses as $courseclass) { //delete schedules data Schedule::where('course_code', $courseclass->id)->delete(); Time_table::where('course_code', $courseclass->id)->delete(); } //delete class data Course_detail::where('course_code', $course)->delete(); //delete own data Course::where('course_code', $course)->delete(); return view('layouts.removecourse')->with('deletemsg', 'Course Deleted'); }
public function schedule($doctor_id) { $data = []; $data['article'] = ArticleCategory::with('articles')->get(); $data['schedule'] = []; for ($i = 0; $i <= 7; $i++) { $data['schedule'][$i] = []; } $schedules = Schedule::where('doctor_id', $doctor_id)->whereBetween('date', array(date("Y-m-d"), date("Y-m-d", strtotime("+1 week"))))->orderBy('date', 'asc')->orderBy('schedule_start', 'asc')->get(); foreach ($schedules as $schedule) { $len = 60 * 60 * 24; $now = date("Y-m-d"); $tmp = $schedule->date; if ((strtotime($tmp) - strtotime($now)) / $len == 0) { array_push($data['schedule'][0], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 1) { array_push($data['schedule'][1], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 2) { array_push($data['schedule'][2], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 3) { array_push($data['schedule'][3], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 4) { array_push($data['schedule'][4], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 5) { array_push($data['schedule'][5], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 6) { array_push($data['schedule'][6], $schedule); } else { if ((strtotime($tmp) - strtotime($now)) / $len == 7) { array_push($data['schedule'][7], $schedule); } } } } } } } } } return view('frontend.pages.reservation.schedule', compact('data')); }
public function getScheduleByTeam($id) { if (!is_numeric($id)) { return new Http\Response("Incorrect Team Id", 400); } $team = null; // Try and see if the integer exists in our DB try { $team = Team::findOrFail($id); } catch (ModelNotFoundException $e) { return new Http\Response("Incorrect Team Id", 400); } // Concatenate the city and team name for the query $teamName = $team->city . ' ' . $team->team_name; $schedule = Schedule::where('home_team', $teamName)->orWhere('away_team', $teamName)->get(); return new Http\Response($schedule, 200); }
public function removegroup() { $groupname = Input::get('selectgroup_name'); $groups = Group::where('group_name', $groupname)->get(); foreach ($groups as $group) { $offered_to = $group->group_code; $batchcourses = Course_detail::where('offered_to', $offered_to)->get(); foreach ($batchcourses as $batchcourse) { //delete schedules data Schedule::where('course_code', $batchcourse->id)->delete(); Time_table::where('course_code', $batchcourse->id)->delete(); } // delete class data Course_detail::where('offered_to', $offered_to)->delete(); } //delete the group Group::where('group_name', $groupname)->delete(); return view('layouts.removegroup')->with('deletemsg', 'group Deleted'); }
/** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index($semester = null, $year = null) { $user = Auth::user(); $split = explode(" ", $user->role->name); $role_area = $split[count($split) - 1]; $areas = Area::with('professors')->get()->toArray(); $profe = Professor::with('areas')->get()->toArray(); $prof_areas = array(); foreach ($profe as $prof) { $prof_areas[$prof['id']] = $prof['areas']; } $collection = collect($areas); $area_professors = $collection->keyBy('name')->toArray(); // TODO: Pasar esto a un Helper if ($semester == null) { \Carbon\Carbon::now()->month >= 5 ? $semester = 2 : ($semester = 1); } $year == null ? $year = \Carbon\Carbon::now()->year : ($year = $year); $courses = Course::with('area')->get()->toArray(); if ($role_area == "Administrador") { $professors = Professor::all()->toArray(); //TODO: Pasar esto a un scope $unasigned_courses = Course::with('area')->where('taken', 0)->where('semester', $semester)->where('year', $year)->get(); $asigned_courses = Course::with('area')->where('taken', 1)->where('semester', $semester)->where('year', $year)->get(); } else { $professors = Area::with('professors')->where('name', $role_area)->get()->toArray()[0]["professors"]; $area = Area::where('name', $role_area)->first(); $unasigned_courses = Course::where('taken', 0)->where('area_id', $area->id)->where('semester', $semester)->where('year', $year)->get(); $asigned_courses = Course::where('taken', 1)->where('area_id', $area->id)->where('semester', $semester)->where('year', $year)->get(); } $professorCourse = array(); foreach ($courses as $course) { if (Schedule::where('course_id', $course['id'])->first() != null) { $professorId = Schedule::where('course_id', $course['id'])->first()->professor_id; $professorCourse[$course['id']] = Professor::where('id', $professorId)->first()->name; } } return view('schedules.index', compact('area_professors', 'prof_areas', 'professors', 'courses', 'professorCourse', 'unasigned_courses', 'asigned_courses', 'year', 'semester')); }
public function getPeopleList() { if (Auth::check()) { $peoples = Schedule::where("pacient_id", "!=", "null")->orderBy('data_priem', 'DESC')->paginate(15); return view("peoples-list", ["data" => $peoples]); } }
public function getNewActionsForDate(Carbon $dateRunAt) { return Schedule::where('run_at', $dateRunAt->toDateString())->where('status', 'new')->get(); }
public function offerclasstime() { if (Input::get('code') != null && isset($_POST['offer_classtime']) && isset($_POST['set'])) { $errorarray = array(); foreach ($_POST['set'] as $set) { $starttime = Input::get('starttime' . $set); $endtime = Input::get('endtime' . $set); $classcode = Input::get('code'); if ($starttime == null || $endtime == null) { $errorarray[count($errorarray)] = "You cannot leave time values empty (" . $set . ")"; } else { if ($starttime >= $endtime) { $errorarray[count($errorarray)] = "Start time must be less than End time (" . $set . ")"; } else { //Checking for Batch time conflict $offered_to = Course_detail::where('id', $classcode)->first()->offered_to; $batchclasses = Course_detail::where('offered_to', $offered_to)->get(); foreach ($batchclasses as $batchclass) { $batchschedule = Schedule::where('class_id', $batchclass->id . $set)->first(); $scheludeclasscode = $batchschedule['class_id']; if ($scheludeclasscode != $classcode . $set) { $stime = $batchschedule['stime']; $etime = $batchschedule['etime']; $flag = 0; $case1 = 0; if ($starttime <= $stime && $endtime > $stime) { $flag = 1; $case1 = 1; } else { if ($starttime >= $stime && $endtime < $etime) { $flag = 1; } else { if ($starttime >= $stime && $starttime < $etime && $case1 != 1) { $flag = 1; } } } if ($flag == 1) { $errorarray[count($errorarray)] = "Time slot: " . $starttime . "-" . $endtime . " (" . $set . ") for batch " . $offered_to . " is occupied by another subject " . $batchclass->course_code; } } } //Checking for instructor time conflict $offered_by = Course_detail::where('id', $classcode)->first()->offered_by; $instructorclasses = Course_detail::where('offered_by', $offered_by)->get(); foreach ($instructorclasses as $instructorclass) { $instructorschedule = Schedule::where('class_id', $instructorclass->id . $set)->first(); $scheludeclasscode = $instructorschedule['class_id']; if ($scheludeclasscode != $classcode . $set) { $stime = $instructorschedule['stime']; $etime = $instructorschedule['etime']; $flag = 0; $case1 = 0; if ($starttime <= $stime && $endtime > $stime) { $flag = 1; $case1 = 1; } else { if ($starttime >= $stime && $endtime < $etime) { $flag = 1; } else { if ($starttime >= $stime && $starttime < $etime && $case1 != 1) { $flag = 1; } } } if ($flag == 1) { $errorarray[count($errorarray)] = "You have another class " . $instructorclass->course_code . " in Time slot: " . $starttime . "-" . $endtime . " (" . $set . ") for batch " . $instructorclass->offered_to; } } } //Checking time conflict for day //Teacher ko department line ho ki students ko department choose accordingly //for now lets use teacher's department $offered_by = Course_detail::where('id', $classcode)->first()->offered_by; $departcode = User_detail::where('id', User::where('username', $offered_by)->first()->id)->first()->department; $departmentmaxrooms = Department::where('code', $departcode)->first()['total_rooms']; $counter = 0; $dayschedules = Schedule::where('day', $set)->where('department_code', $departcode)->get(); foreach ($dayschedules as $dayschedule) { $stime = $dayschedule->stime; $etime = $dayschedule->etime; $case1 = 0; if ($starttime <= $stime && $endtime > $stime) { $counter++; $case1 = 1; } else { if ($starttime >= $stime && $endtime < $etime) { $counter++; } else { if ($starttime >= $stime && $starttime < $etime && $case1 != 1) { $counter++; } } } } if ($counter >= $departmentmaxrooms) { $errorarray[count($errorarray)] = "Sorry the room management is not possible for your time slots for " . $set; } } } } if (count($errorarray) > 0) { return Redirect::Back()->withInput()->withErrors($errorarray); } else { foreach ($_POST['set'] as $set) { $starttime = Input::get('starttime' . $set); $endtime = Input::get('endtime' . $set); $classcode = Input::get('code'); Schedule::where('course_code', $classcode)->where('day', $set)->delete(); Time_table::where('course_code', $classcode)->where('day', $set)->delete(); //Teacher ko department line ho ki students ko department choose accordingly //for now lets use teacher's department $offered_by = Course_detail::where('id', $classcode)->first()->offered_by; $departcode = User_detail::where('id', User::where('username', $offered_by)->first()->id)->first()->department; $newschedule = new Schedule(); $newschedule->class_id = $classcode . $set; $newschedule->course_code = $classcode; $newschedule->stime = $starttime; $newschedule->etime = $endtime; $newschedule->day = $set; $newschedule->department_code = $departcode; $newschedule->save(); } return Redirect::back(); } } else { if (isset($_POST['remove_classtime']) && isset($_POST['set'])) { foreach ($_POST['set'] as $set) { $classcode = Input::get('code'); Time_table::where('course_code', $classcode)->where('day', $set)->delete(); Schedule::where('course_code', $classcode)->where('day', $set)->delete(); return Redirect::back(); } } else { return Redirect::back(); } } }
<div class="span3" id="sidebar"> <div class="container-fluid"> <div class="row-fluid"> <div class="span14"> <div class="well sidebar-nav"> <li class="nav-header">Departments with active routine</li> <?php use App\Schedule; use App\Department; $routineval = 0; $departments = Department::orderby('code')->get(); foreach ($departments as $department) { $schedules = Schedule::where('department_code', $department->code); if ($schedules->exists()) { $routineval = 1; ?> <li><a href='home?depart=<?php echo $department->code; ?> '>{{ $department->code }}</a></li> <?php } } ?> @if($routineval == 0) <li>No Schedule added yet. </li> @endif </div><!--/.well --> </div><!--/span--> </div> </div>
/** * Responds to requests to GET /schedules. Show all schedules. */ public function getIndex() { $schedules = \App\Schedule::where('user_id', '=', \Auth::id())->orderBy('id', 'DESC')->get(); return view('schedules.index')->with('schedules', $schedules); }
public function removedepartment() { $departcode = Input::get('selectdepartmentcode'); //delete schedules data $departcourses = Course_detail::where('department_code', $departcode)->get(); foreach ($departcourses as $departcourse) { Schedule::where('course_code', $departcourse->id)->delete(); Time_table::where('course_code', $departcourse->id)->delete(); } //Delete course details data Course_detail::where('department_code', $departcode)->delete(); //Delete groups data Group::where('department', $departcode)->delete(); //Delete user data $departusers = User_detail::where('department', $departcode)->get(); foreach ($departusers as $departuser) { if (User::where('id', $departuser->id)->first()->utype == 0) { User_detail::where('id', $departuser->id)->delete(); User::where('id', $departuser->id)->delete(); } } Department::where('code', $departcode)->delete(); return view('layouts.removedepartment')->with('deletemsg', 'Department Deleted'); }
<th>SN</th> <th>Day</th> <th>Start Time</th> <th>End Time</th> <th>Select</th> </tr> </thead> <tbody> <?php $i = 1; while ($i < 7) { $class_code = $course . no2day($i); //echo $class_code."<br>"; $listschedules = Schedule::where('class_id', $class_code); ?> @if($listschedules->exists()) <?php $listschedules = $listschedules->first(); ?> <tr> <td>{{ $i }}</td> <td>{{ no2day($i) }}</td> <td> <?php $starttimename = "starttime" . no2day($i); $endtimename = "endtime" . no2day($i); $checkboxvalue = no2day($i); ?> {!! Form::number($starttimename, $listschedules->stime, ['step' => '1', 'min'=>'7', 'max'=>'16']) !!}
echo "<h1>Department: " . $department->code . "</h1><br>"; } foreach ($weekdays as $a) { //echo "<h2>Routine for: ".strtoupper($a)."</h2><br>"; main_func($a, $department); } echo "<br><br>"; } else { echo "<h1> Hello " . $username . " </h1>"; $totalschedules = count(Schedule::all()); $totaltimetables = count(Time_table::all()); if ($totalschedules > 0 && $totaltimetables != $totalschedules) { echo "<p> You have <strong><nu>new update(s)</nu></strong>. The following are departments that have been recently updated: </p><br>"; $departs = Department::orderby('code')->get(); foreach ($departs as $depart) { $schedulecount = count(Schedule::where('department_code', $depart->code)->get()); if ($schedulecount > 0) { $timetablecount = count(Time_table::where('department_code', $depart->code)->get()); if ($schedulecount != $timetablecount) { ?> <a href='home?depart=<?php echo $depart->code; ?> '> <nu>{{ $depart->code }} </nu></a> <?php } } } } else { echo "<p> The routines are all up to date. Please make sure you visit the page when any update has been recorded. </p><br>";
function main_func($name, $department) { $MAX_Classes = Department::where('code', $department->code)->first()->total_rooms; //Thana kawaye nashi file read yaye ta kha /*$inputData=CSV2Array($name);//CSV2Array is a function defined inside the file functions.php and this file returns an array $i=0; foreach($inputData as $temp){//this loop will unwrap the two layered array which was stored in previous variable $inputvariable by the function CSV2Array in functions.php ${"data".$i}=$temp;//Array ko array lai unwrap gari ra cha $i++; } $courseName=$data0; $start=$data1; $end=$data2; unset($courseName[0]);//unset array na 0th item of array ta hate yana bi unset($start[0]);//This chaye yanyu dhasa tho ma yata dhasa ASP algorithm le taye mau pani chau first pseudo class miss jui so tho object yu data kha unset($end[0]);//THisis for the first column of the csv file chaye choya tayu pani mile maju $courseName=arrangeArray($courseName);//tho arrangeArray userdefined function kha... thake yo 0th item maru ta hana milaya yana bi.... ie ..A[0] delete jui hanji so A[1] ta A[0] yana bi and A[2] ta A[1] and so on $start=arrangeArray($start); $end=arrangeArray($end); */ $scheduledata = Schedule::where('day', $name)->where('department_code', $department->code)->get(); $courseName = array(); $start = array(); $end = array(); foreach ($scheduledata as $schedule) { $courseName[count($courseName)] = $schedule->course_code; $start[count($start)] = $schedule->stime; $end[count($end)] = $schedule->etime; //array_push($courseName,$schedule->course_code); //array_push($start,$schedule->stime); //array_push($end,$schedule->etime); } //File read yayau pati sidhala //For initializing the objects.... i.e. one object for one class $classes = array(); $i = 1; foreach ($start as $a) { $foo = new myClass(); $foo->set_Data($a, $end[$i - 1], $courseName[$i - 1], $i); $i++; array_push($classes, $foo); } if (count($classes)) { echo "<h2>Routine for: " . $name . "</h2><br>"; echo "The classes mentioned below are the classes that you want to arrange for <strong>" . $name . "</strong> is as below."; printObject($classes, 0, $name, $department->code); CustSort($classes); //Sorting accourding to the start time //This is the addition of A0 object at the first $temp = new myClass(); $temp->set_Data(9999, 0, "A0", 0); array_unshift($classes, $temp); //array_unshift() inserts passed elements to the front of the array //End of the A0 object addition $i = 1; while (sizeof($classes) != 1) { ${"abc" . $i} = AC_Object($classes); //$abc.$i is the array which stores the object of the classes that is being taught in the room $classes = array_udiff($classes, ${"abc" . $i}, 'compare_objects'); //This will call the functions compare_objects defined in the function functions.php so in this case the remaining classes to be arranged is ordered back $classes = arrangeArray($classes); //This will arrange the items in an array. After the removal the array will empty on certain slots for eg if array element A[7] is arranged and now it empty this gap will be arranged by this function and the new sequential function will be arranged. $i++; } //end of while for room. $i--; //this is fdone for counting the nof rooms required for the class rookm. $number_of_classes = $i; if ($number_of_classes <= $MAX_Classes && $number_of_classes > 0) { echo "You will require " . $i . " rooms for arranging this no of classes."; } else { echo "This above schedule cant be operated with existing no of classes. You will either require " . ($i - $MAX_Classes) . " additional classes or reschedule the following classes"; } $a = 1; if ($i > $MAX_Classes) { while ($a <= $MAX_Classes) { echo "<br><strong>Room: " . $a . "</strong>"; printObject(${"abc" . $a}, $a, $name, $department->code); $a++; } } //end of if($i>3 if ($number_of_classes > $MAX_Classes) { echo "The schedule you wish to prepare cant be arranged with " . $MAX_Classes . " classes. Please try to arrange the following classes in the empty slot for this day."; } while ($a <= $i) { echo "<br><strong>Room: " . $a . "</strong>"; printObject(${"abc" . $a}, $a, $name, $department->code); $a++; } } //end of if(count) }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $input = $request->all(); $master_id = $input['master_id']; $days = $input['days']; $time_from = $input['time_from']; $time_to = $input['time_to']; $break_from = $input['break_from']; $break_to = $input['break_to']; $queues = $input['queue']; $section_lists = []; foreach ($queues['plan_id'] as $i => $plan) { $section = $queues['section'][$i]; $section_slug = str_slug($section, "-"); $plans = Plan::findOrFail($plan)->semesters()->where('number', '=', $queues['number_semester'][$i])->where('year', '=', $queues['number_year'][$i])->get(); foreach ($plans as $sem) { foreach ($sem->subjects as $subject) { $sec_key = $master_id . "_" . $section_slug; $ref_key = $sec_key . "_" . $subject->id; $ref_data = []; $ref_data['key'] = $ref_key; $ref_data['sec_key'] = $sec_key; $ref_data['name'] = $section; $ref_data['master_id'] = $master_id; $ref_data['plan_id'] = $sem->plan_id; $ref_data['semester_id'] = $sem->id; $ref_data['subject_id'] = $subject->id; $ref_data['subject_code'] = $subject->code; $ref_data['subject_name'] = $subject->name; $ref_data['lec_hours'] = $subject->lec_hours; $ref_data['lab_hours'] = $subject->lab_hours; $ref_data['total_hours'] = $subject->lec_hours + $subject->lab_hours; $ref_data['feature_id'] = $subject->feature_id; $new_data = $this->store_allocate_days($ref_data); $section_lists[$section_slug][$subject->id] = $new_data; } } } foreach ($section_lists as $sl => $section) { foreach ($section as $s => $data) { $room_in = ['lec_hours' => 'lec_days', 'lab_hours' => 'lab_days']; foreach ($room_in as $in_hours => $in_days) { $rooms = []; if ($data[$in_hours] > 0 && count($data[$in_days]) > 0) { $s_room_id = null; $s_feature_id = $data['feature_id']; if ('lec_hours' == $in_hours) { $s_feature_id = 1; } $q_rooms = DB::table('rooms')->leftJoin(DB::raw("(select * from schedules WHERE master_id = {$master_id}) schedules"), 'rooms.id', '=', 'schedules.room_id')->select(DB::raw("rooms.id, TIME_TO_SEC( TIMEDIFF('{$time_to}', '{$time_from}') ) / 60 as time_required, SUM( TIME_TO_SEC(TIMEDIFF(schedules.time_to, schedules.time_from)) ) / 60 as time_spent"))->where('rooms.feature_id', $s_feature_id)->groupBy('rooms.id')->havingRaw('((time_required - time_spent) is null OR (time_required - time_spent) >= 60)')->orderBy('time_spent', 'desc')->orderBy('rooms.code', 'asc'); if (!empty($input['room_list'])) { $q_rooms->whereIN('rooms.id', $input['room_list']); } $rooms = $q_rooms->get(); if (!empty($rooms)) { $exist_schedule = Schedule::where('key', '=', $data['key'])->where('feature_id', '=', $s_feature_id)->where('master_id', '=', $master_id)->get(); if ($exist_schedule->isEmpty()) { foreach ($data[$in_days] as $s_time_day) { $schedule_data = []; $room_schedule = Schedule::where('time_day', '=', $s_time_day)->where('master_id', '=', $master_id)->where('section_key', '=', $data['sec_key'])->orderBy('time_to', 'DESC')->first(); if (empty($room_schedule)) { $s_time_from = $time_from; } else { $s_time_from = $room_schedule->time_to; } if ($s_time_from >= $break_from && $s_time_from <= $break_to) { $s_time_from = $break_to; } $tmp_time_to = $s_time_from; $tmp_time_to_hours = $data[$in_hours] / count($data[$in_days]) * 60; $s_time_to = date('H:i:s', strtotime("+{$tmp_time_to_hours} minutes", strtotime($tmp_time_to))); $room_avail = false; if (!empty($s_room_id)) { $room_time_schedule_data = ['room_id' => $s_room_id, 'time_day' => $s_time_day, 'time_from' => $s_time_from, 'time_to' => $s_time_to, 'time_from2' => $s_time_from, 'time_to2' => $s_time_to, 'master_id' => $master_id]; $room_time_schedule = $this->store_check_room_availability($room_time_schedule_data); if (empty($room_time_schedule)) { $room_avail = true; } } if (empty($room_avail)) { foreach ($rooms as $room) { $room_time_schedule_data = ['room_id' => $room->id, 'time_day' => $s_time_day, 'time_from' => $s_time_from, 'time_to' => $s_time_to, 'time_from2' => $s_time_from, 'time_to2' => $s_time_to, 'master_id' => $master_id]; $room_time_schedule = $this->store_check_room_availability($room_time_schedule_data, $master_id); if (empty($room_time_schedule)) { $s_room_id = $room->id; $room_avail = true; break; } } } if ($room_avail) { $schedule_data = ['key' => $data['key'], 'master_id' => $master_id, 'semester_id' => $data['semester_id'], 'subject_id' => $data['subject_id'], 'room_id' => $s_room_id, 'time_day' => $s_time_day, 'time_from' => $s_time_from, 'time_to' => $s_time_to, 'feature_id' => $s_feature_id, 'section_key' => $data['sec_key'], 'section_name' => $data['name']]; Schedule::create($schedule_data); } } } } } } } } $faculty_schedules = Schedule::whereNull('faculty_id')->groupBy('key')->where('master_id', $master_id)->orderBy('subject_id', 'DESC')->get(); if (!$faculty_schedules->isEmpty()) { foreach ($faculty_schedules as $faculty_schedule) { $s_faculty_id = null; $s_faculties = $faculty_schedule->subject->faculties->toArray(); $s_faculties_count = count($s_faculties) - 1; if ($s_faculties_count >= 0) { $s_faculty_rand = mt_rand(0, $s_faculties_count); $s_faculty = $s_faculties[$s_faculty_rand]; $s_faculty_id = $s_faculty['id']; } Schedule::where('key', '=', $faculty_schedule->key)->update(['faculty_id' => $s_faculty_id]); } } return redirect("/schedules/view?master_id={$master_id}"); }
/** * Execute the command. * * @return void */ public function handle() { Schedule::where('start', '<=', Carbon::today()->toDateString())->delete(); }