/** * 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'); }
}); // 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');
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); }
/** * 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'); } }
/** * 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}"); }