Server IP : 103.191.208.50 / Your IP : 216.73.216.53 Web Server : LiteSpeed System : Linux orion.herosite.pro 4.18.0-553.53.1.lve.el8.x86_64 #1 SMP Wed May 28 17:01:02 UTC 2025 x86_64 User : celkcksm ( 1031) PHP Version : 7.4.33 Disable Function : show_source, system, shell_exec, passthru, popen, exec MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON Directory (0755) : /home/celkcksm/cms.ncriptech.com/app/Http/Controllers/Admin/ |
[ Home ] | [ C0mmand ] | [ Upload File ] |
---|
<?php namespace App\Http\Controllers\Admin; use App\Http\Controllers\Controller; use Illuminate\Http\Request; use App\Models\PrintSetting; use App\Models\ExamRoutine; use App\Models\ClassRoom; use App\Models\ExamType; use App\Models\Semester; use App\Models\Faculty; use App\Models\Session; use App\Models\Program; use App\Models\Section; use App\Models\Subject; use App\User; use Toastr; use Auth; use DB; class ExamRoutineController extends Controller { /** * Create a new controller instance. * * @return void */ public function __construct() { // Module Data $this->title = trans_choice('module_exam_routine', 1); $this->route = 'admin.exam-routine'; $this->view = 'admin.exam-routine'; $this->path = 'exam-routine'; $this->access = 'exam-routine'; $this->middleware('permission:'.$this->access.'-view|'.$this->access.'-create|'.$this->access.'-edit|'.$this->access.'-delete|'.$this->access.'-print', ['only' => ['index','show']]); $this->middleware('permission:'.$this->access.'-create', ['only' => ['create','store','edit','update']]); $this->middleware('permission:'.$this->access.'-edit', ['only' => ['edit','update']]); $this->middleware('permission:'.$this->access.'-delete', ['only' => ['destroy']]); $this->middleware('permission:'.$this->access.'-print', ['only' => ['print']]); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index(Request $request) { // $data['title'] = $this->title; $data['route'] = $this->route; $data['view'] = $this->view; $data['path'] = $this->path; $data['access'] = $this->access; if(!empty($request->faculty) || $request->faculty != null){ $data['selected_faculty'] = $faculty = $request->faculty; } else{ $data['selected_faculty'] = '0'; } if(!empty($request->program) || $request->program != null){ $data['selected_program'] = $program = $request->program; } else{ $data['selected_program'] = '0'; } if(!empty($request->session) || $request->session != null){ $data['selected_session'] = $session = $request->session; } else{ $data['selected_session'] = '0'; } if(!empty($request->semester) || $request->semester != null){ $data['selected_semester'] = $semester = $request->semester; } else{ $data['selected_semester'] = '0'; } if(!empty($request->section) || $request->section != null){ $data['selected_section'] = $section = $request->section; } else{ $data['selected_section'] = '0'; } if(!empty($request->type) || $request->type != null){ $data['selected_type'] = $type = $request->type; } else{ $data['selected_type'] = '0'; } $data['print'] = PrintSetting::where('slug', 'exam-routine')->first(); // Filter Search $data['types'] = ExamType::where('status', '1')->orderBy('title', 'asc')->get(); $data['faculties'] = Faculty::where('status', '1')->orderBy('title', 'asc')->get(); if(!empty($request->faculty) && !empty($request->program) && !empty($request->session) && !empty($request->semester) && !empty($request->section)){ $data['programs'] = Program::where('faculty_id', $faculty)->where('status', '1')->orderBy('title', 'asc')->get(); $sessions = Session::where('status', 1); $sessions->with('programs')->whereHas('programs', function ($query) use ($program){ $query->where('program_id', $program); }); $data['sessions'] = $sessions->orderBy('id', 'desc')->get(); $semesters = Semester::where('status', 1); $semesters->with('programs')->whereHas('programs', function ($query) use ($program){ $query->where('program_id', $program); }); $data['semesters'] = $semesters->orderBy('id', 'asc')->get(); $sections = Section::where('status', 1); $sections->with('semesterPrograms')->whereHas('semesterPrograms', function ($query) use ($program, $semester){ $query->where('program_id', $program); $query->where('semester_id', $semester); }); $data['sections'] = $sections->orderBy('title', 'asc')->get();} // Filter Routine if(!empty($request->program) && !empty($request->session) && !empty($request->semester) && !empty($request->section) && !empty($request->type)){ $routines = ExamRoutine::where('status', '1'); if(!empty($request->program)){ $routines->where('program_id', $request->program); } if(!empty($request->session)){ $routines->where('session_id', $request->session); } if(!empty($request->semester)){ $routines->where('semester_id', $request->semester); } if(!empty($request->section)){ $routines->where('section_id', $request->section); } if(!empty($request->type)){ $routines->where('exam_type_id', $request->type); } $data['rows'] = $routines->orderBy('date', 'asc') ->orderBy('start_time', 'asc')->get(); } return view($this->view.'.index', $data); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create(Request $request) { // $data['title'] = $this->title; $data['route'] = $this->route; $data['view'] = $this->view; $data['access'] = $this->access; if(!empty($request->faculty) || $request->faculty != null){ $data['selected_faculty'] = $faculty = $request->faculty; } else{ $data['selected_faculty'] = '0'; } if(!empty($request->program) || $request->program != null){ $data['selected_program'] = $program = $request->program; } else{ $data['selected_program'] = '0'; } if(!empty($request->session) || $request->session != null){ $data['selected_session'] = $session = $request->session; } else{ $data['selected_session'] = '0'; } if(!empty($request->semester) || $request->semester != null){ $data['selected_semester'] = $semester = $request->semester; } else{ $data['selected_semester'] = '0'; } if(!empty($request->section) || $request->section != null){ $data['selected_section'] = $section = $request->section; } else{ $data['selected_section'] = '0'; } if(!empty($request->type) || $request->type != null){ $data['selected_type'] = $type = $request->type; } else{ $data['selected_type'] = '0'; } // Filter Routine if(!empty($request->program) && !empty($request->session) && !empty($request->semester) && !empty($request->section) && !empty($request->type)){ $routines = ExamRoutine::where('status', '1'); if(!empty($request->program)){ $routines->where('program_id', $request->program); } if(!empty($request->session)){ $routines->where('session_id', $request->session); } if(!empty($request->semester)){ $routines->where('semester_id', $request->semester); } if(!empty($request->section)){ $routines->where('section_id', $request->section); } if(!empty($request->type)){ $routines->where('exam_type_id', $request->type); } $data['rows'] = $routines->orderBy('date', 'asc') ->orderBy('start_time', 'asc')->get(); $routine = []; foreach($data['rows'] as $row){ $routine[] = $row->subject_id; } $subjects = Subject::where('status', 1)->whereNotIn('id', $routine); $subjects->with('subjectEnrolls')->whereHas('subjectEnrolls', function ($query) use ($program, $semester, $section){ $query->where('program_id', $program); $query->where('semester_id', $semester); $query->where('section_id', $section); }); $data['subjects'] = $subjects->orderBy('code', 'asc')->get(); } // Filter Search if(!empty($request->faculty) && !empty($request->program) && !empty($request->session) && !empty($request->semester) && !empty($request->section)) { $data['programs'] = Program::where('faculty_id', $faculty)->where('status', '1')->orderBy('title', 'asc')->get(); $sessions = Session::where('status', 1); $sessions->with('programs')->whereHas('programs', function ($query) use ($program){ $query->where('program_id', $program); }); $data['sessions'] = $sessions->orderBy('id', 'desc')->get(); $semesters = Semester::where('status', 1); $semesters->with('programs')->whereHas('programs', function ($query) use ($program){ $query->where('program_id', $program); }); $data['semesters'] = $semesters->orderBy('id', 'asc')->get(); $sections = Section::where('status', 1); $sections->with('semesterPrograms')->whereHas('semesterPrograms', function ($query) use ($program, $semester){ $query->where('program_id', $program); $query->where('semester_id', $semester); }); $data['sections'] = $sections->orderBy('title', 'asc')->get(); $editSubjects = Subject::where('status', 1); $editSubjects->with('subjectEnrolls')->whereHas('subjectEnrolls', function ($query) use ($program, $semester, $section){ $query->where('program_id', $program); $query->where('semester_id', $semester); $query->where('section_id', $section); }); $data['editSubjects'] = $editSubjects->orderBy('code', 'asc')->get(); } $data['faculties'] = Faculty::where('status', '1')->orderBy('title', 'asc')->get(); $data['types'] = ExamType::where('status', '1')->orderBy('title', 'asc')->get(); $data['rooms'] = ClassRoom::where('status', '1')->orderBy('title', 'asc')->get(); $teachers = User::where('status', '1'); $teachers->with('roles')->whereHas('roles', function ($query){ $query->where('slug', 'teacher'); }); $data['teachers'] = $teachers->orderBy('staff_id', 'asc')->get(); return view($this->view.'.create', $data); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { // Field Validation $request->validate([ 'session' => 'required', 'program' => 'required', 'semester' => 'required', 'section' => 'required', 'subject' => 'required', 'start_time' => 'required', 'end_time' => 'required', 'type' => 'required', 'date' => 'required|date|after_or_equal:today', 'teachers' => 'required', 'rooms' => 'required', ]); DB::beginTransaction(); // Insert Data $examRoutine = new ExamRoutine; $examRoutine->subject_id = $request->subject; $examRoutine->exam_type_id = $request->type; $examRoutine->session_id = $request->session; $examRoutine->program_id = $request->program; $examRoutine->semester_id = $request->semester; $examRoutine->section_id = $request->section; $examRoutine->date = $request->date; $examRoutine->start_time= $request->start_time; $examRoutine->end_time= $request->end_time; $examRoutine->save(); // Attach Data $examRoutine->users()->attach($request->teachers); $examRoutine->rooms()->attach($request->rooms); DB::commit(); Toastr::success(__('msg_updated_successfully'), __('msg_success')); return redirect()->back(); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { // } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $request->validate([ 'session' => 'required', 'program' => 'required', 'semester' => 'required', 'section' => 'required', 'subject' => 'required', 'start_time' => 'required', 'end_time' => 'required', 'type' => 'required', 'date' => 'required|date|after_or_equal:today', 'teachers' => 'required', 'rooms' => 'required', ]); DB::beginTransaction(); // Update Data $examRoutine = ExamRoutine::findOrFail($id); $examRoutine->subject_id = $request->subject; $examRoutine->exam_type_id = $request->type; $examRoutine->date = $request->date; $examRoutine->start_time= $request->start_time; $examRoutine->end_time= $request->end_time; $examRoutine->save(); // Attach Update $examRoutine->users()->sync($request->teachers); $examRoutine->rooms()->sync($request->rooms); DB::commit(); Toastr::success(__('msg_updated_successfully'), __('msg_success')); return redirect()->back(); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { DB::beginTransaction(); $examRoutine = ExamRoutine::findOrFail($id); // Detach $examRoutine->users()->detach(); $examRoutine->rooms()->detach(); // Delete Data $examRoutine->delete(); DB::commit(); Toastr::success(__('msg_deleted_successfully'), __('msg_success')); return redirect()->back(); } /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function print(Request $request) { // $data['title'] = $this->title; $data['route'] = $this->route; $data['view'] = $this->view; $data['path'] = 'print-setting'; $data['print'] = PrintSetting::where('slug', 'exam-routine')->firstOrFail(); // Filter Routine if(!empty($request->program) && !empty($request->session) && !empty($request->semester) && !empty($request->section) && !empty($request->type)){ $routines = ExamRoutine::where('status', '1'); if(!empty($request->program)){ $routines->where('program_id', $request->program); } if(!empty($request->session)){ $routines->where('session_id', $request->session); } if(!empty($request->semester)){ $routines->where('semester_id', $request->semester); } if(!empty($request->section)){ $routines->where('section_id', $request->section); } if(!empty($request->type)){ $routines->where('exam_type_id', $request->type); } $data['rows'] = $routines->orderBy('date', 'asc') ->orderBy('start_time', 'asc')->get(); } return view($this->view.'.print', $data); } }