Beispiel #1
0
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(Request $request, $id)
 {
     $plan = Plan::findOrFail($id);
     $data = $request->all();
     $this->validate($request, Plan::$rules);
     $plan->update($data);
     return redirect()->route('admin.plan.index')->with('message', '<div class="alert alert-success" style="margin-top:15px">Plan editado con Éxito</div>');
 }
 /**
  * Remove the specified resource from storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function destroy($id)
 {
     $plan = Plan::findOrFail($id);
     $plan->delete();
     return redirect()->action('PlanController@index');
 }
Beispiel #3
0
});
// Route for displaying the page
Route::get('plan', 'PlanController@plan');
Route::post('plan/{plan}/goals', 'PlanController@addNewGoal');
Route::post('plan/{plan}/goal/objective', 'PlanController@addNewObjective');
Route::post('plan/{plan}/goal/objective/action', 'PlanController@addNewAction');
Route::post('plan/{plan}/goal/objective/action/task', 'PlanController@addNewTask');
Route::post('get/objective', 'PlanController@getObjectives');
Route::post('get/actions', 'PlanController@getActions');
Route::get('addUser', 'RegisterController@register');
Route::post('addUser', 'RegisterController@addNewUser');
Route::get('manage', 'ManageController@manage');
Route::get('tasks/{task}', 'TasksController@show');
Route::post('tasks/{task}/notes', 'NotesController@store');
Route::get('sort/{plan}/{option}', function ($plan, $option) {
    return view('sort')->with('option', $option)->with('plan', Plan::findOrFail($plan));
});
Route::get('sort/{plan}/dept/{dept}', function ($dept) {
    return view('filterbyteamdept')->with('dept', $dept);
});
Route::get('sort/{plan}/team/{dept}', function ($dept) {
    return view('filterbyteamdept')->with('dept', $dept);
});
Route::get('notes/show/{note}', 'NotesController@show');
Route::get('goals/show/{goal}', 'GoalsController@show');
Route::get('departments/show/{department}', 'DepartmentsController@show');
Route::get('actions/show/{action}', 'ActionsController@show');
Route::get('tasks/show/{task}', 'TasksController@show');
Route::get('teams/show/{team}', 'TeamsController@show');
Route::get('users/show/{id}', 'ProfileController@show');
Route::get('objectives/show/{objective}', 'ObjsController@show');
Beispiel #4
0
 public function decline($id)
 {
     $plan = Plan::findOrFail($id);
     $plan->approved = 0;
     try {
         $plan->save();
         return redirect()->back()->with('message', 'Plan has been decline successfully !');
     } catch (ParseException $ex) {
         echo 'Failed to approve plan , with error message: ' . $ex->getMessage();
     }
 }
 public function findOrFail($id)
 {
     return Plan::findOrFail($id);
 }
Beispiel #6
0
 /**
  * Update the specified resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  int  $id
  * @return \Illuminate\Http\Response
  */
 public function update(PlanRequest $request, $id)
 {
     $input = $request->except('_method', '_token');
     $plan = Plan::findOrFail($id);
     $recent_number_year = $plan->number_year;
     $recent_number_semester = $plan->number_semester;
     if ($plan->update($input)) {
         for ($year = 1; $year <= $input['number_year']; $year++) {
             for ($sem = 1; $sem <= $input['number_semester']; $sem++) {
                 $semester = array("plan_id" => $plan->id, "year" => $year, "number" => $sem);
                 $existing = Semester::where($semester)->first();
                 if (empty($existing)) {
                     Semester::create($semester);
                 }
             }
         }
         if ($recent_number_year > $input['number_year'] || $recent_number_semester > $input['number_semester']) {
             DB::table('semesters')->where('plan_id', '=', $plan->id)->where(function ($query) use($input) {
                 $query->orWhere('year', '>', $input['number_year'])->orWhere('number', '>', $input['number_semester']);
             })->delete();
         }
         return redirect('/plans');
     }
 }
Beispiel #7
0
 /**
  * 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}");
 }