/**
  * Show the form for creating a new resource.
  * @return Response
  */
 public function create()
 {
     $classrooms = Classroom::inCurrentSemester()->pluck('code', 'id')->toArray();
     $subjects = Subject::isCurrent()->pluck('name', 'id')->toArray();
     $years = Year::leftJoin('academystructure_terms as acaterm', 'acaterm.year_id', '=', 'ay.id')->leftJoin('academystructure_departments as acadep', 'acadep.term_id', '=', 'acaterm.id')->Leftjoin('students as s', 's.academystructure_department_id', '=', 'acadep.id')->groupBy('ay.id')->from('academystructure_years as ay')->havingRaw('COUNT(s.id)>0')->pluck('ay.name', 'ay.id')->toArray();
     return view('exams::Extend.create', compact('years', 'subjects', 'classrooms'));
 }
 private function createFromExcel()
 {
     $semester_id = semester()->id;
     $results = Excel::load($this->filename)->get()->all();
     // dd(get_class_methods($results));
     $subjects_codes = [];
     $teachers_usernames = [];
     $classrooms_codes = [];
     foreach ($results as $sheet) {
         $item = $sheet->all();
         if (empty($item[1]) || empty($item[2]) || empty($item[3])) {
             continue;
         }
         $teachers_usernames[] = $item[2];
         $subjects_codes[] = $item[1];
         $classrooms_codes[] = $item[3];
     }
     $teachers = Teacher::whereIn('username', $teachers_usernames)->pluck('id', 'username')->toArray();
     $subjects = Subject::whereIn('code', $subjects_codes)->pluck('id', 'code')->toArray();
     $classrooms = Classroom::whereIn('code', $classrooms_codes)->inCurrentSemester()->pluck('id', 'code')->toArray();
     $new_classrooms = [];
     foreach ($results as $sheet) {
         $item = $sheet->all();
         if (empty($item[1]) || empty($item[2]) || empty($item[3])) {
             continue;
         }
         if (!isset($classrooms[$item[3]]) && isset($teachers[$item[2]]) && isset($subjects[$item[1]]) && in_array($item[5], ['m', 'f', 'b'])) {
             $new_classrooms[] = ['code' => $item[3], 'day' => $item[4] - 1, 'gender' => $item[5], 'teacher_id' => $teachers[$item[2]], 'subject_subject_id' => $subjects[$item[1]], 'semester_id' => $semester_id, 'attendees_limit' => 100, 'created_at' => new DateTime(), 'updated_at' => new DateTime()];
         }
     }
     if (!empty($new_classrooms)) {
         Classroom::insert($new_classrooms);
     }
     event(new CreateClassroomsFromExcelFinished());
 }
 public function exitClassroom(ExitClassroomRequest $request)
 {
     $input = $request->all();
     $student = student();
     $student->classrooms()->detach($input['classroom_id']);
     event(new StudentExitClassroom(Classroom::find($input['classroom_id']), $student, new User()));
     return redirect()->route('students.profile.classrooms.index');
 }
Example #4
0
 public function create()
 {
     $classrooms = Classroom::inCurrentSemester()->pluck('code', 'id')->toArray();
     $subjects = Subject::isCurrent()->lists('name', 'id')->toArray();
     $intervals = ClassroomInterval::inCurrentSemester()->pluck('title', 'id')->toArray();
     $teachers = Teacher::isActive()->pluck('name', 'id')->toArray();
     return view('classrooms::sessions.create', compact('classrooms', 'subjects', 'teachers', 'intervals'));
 }
 public function edit($announcement_id)
 {
     $announcement = Announcement::with('years', 'specialities', 'classrooms', 'students')->findOrFail($announcement_id);
     $specialty_id = Specialty::pluck('name', 'id');
     $year_id = Year::pluck('name', 'id');
     $classroom_id = Classroom::pluck('code', 'id');
     $student_id = Student::pluck('username', 'id');
     return view('announcements::edit', compact('announcement', 'specialty_id', 'year_id', 'classroom_id', 'student_id'));
 }
 public function delete(Request $request)
 {
     $input = $request->all();
     $this->student->classrooms()->detach($input['classroom_id']);
     event(new StudentExitClassroom(Classroom::find($input['classroom_id']), $this->student, new User()));
     $classroom = Classroom::select('cs.student_id as chosen', 'classrooms.attendees_limit', 'classrooms.name', 'classrooms.code', 'classrooms.id', 'classrooms.teacher_id', 'classrooms.subject_subject_id', 'classrooms.day', 'classrooms.hour')->join('subject_subjects as subsub', 'subsub.id', '=', 'classrooms.subject_subject_id')->join('student_subjects as stusub', function ($join) {
         $join->on('stusub.subject_id', '=', 'subsub.id')->where('stusub.student_id', '=', $this->student->id);
     })->leftJoin('classroom_students as cs', function ($j) {
         $j->on('cs.classroom_id', '=', 'classrooms.id')->where('cs.student_id', '=', $this->student->id)->where('cs.semester_id', '=', semester()->id);
     })->whereIn('classrooms.gender', [$this->student->gender, 'b'])->with('subject')->withCount('students')->find($input['classroom_id']);
     return response()->json($classroom, 200, [], JSON_NUMERIC_CHECK);
 }
Example #7
0
 /**
  * Show the form for creating a new resource.
  * @return Response
  */
 public function students($subject_id = 0, $exam_type = null)
 {
     $semester_id = semester()->id;
     $classrooms = Classroom::inCurrentSemester()->where("teacher_id", teacher()->id)->where('subject_subject_id', $subject_id)->pluck('id')->toArray();
     $students = Exam::selectRaw('exams.id as exam_id,exams.subject_id as subid ,
                     er.id as erid,
                     s.id as studentid,
                     s.name,
                     s.username,
                     er.id as attendees,
                     er.enter_at,
                     er.exit_at,
                     er.filename,
                     crs.classroom_id,
                         case when sg.value IS NULL 
                         THEN -1
                         else sg.value
                         end as value ')->rightJoin('exam_results AS er', function ($join) {
         $join->on('er.exam_id', '=', 'exams.id');
     })->leftJoin('students AS s', function ($join) {
         $join->on('s.id', '=', 'student_id');
     })->leftJoin('student_grades AS sg', function ($join) {
         $join->on('sg.student_id', '=', 's.id');
         $join->on('exam_id', '=', 'sg.ref_value');
         $join->on('sg.ref_key', '=', DB::raw('"examessay"'));
     })->leftJoin('classroom_students AS crs', function ($join) use($semester_id) {
         $join->on('crs.student_id', '=', 's.id');
         $join->on('crs.semester_id', '=', DB::raw('"' . $semester_id . '"'));
     })->where('exams.subject_id', $subject_id)->where('exams.semester_id', $semester_id)->where('exams.type', $exam_type)->whereIn('crs.classroom_id', $classrooms)->orderBy('sg.id', 'asc')->get();
     $students_correct = Exam::selectRaw('exams.id as exam_id,exams.subject_id as subid ,
                     er.id as erid,
                     s.id as studentid,
                     s.name,
                     s.username,
                     er.id as attendees,
                     er.enter_at,
                     er.exit_at,
                     er.filename,
                     crs.classroom_id,
                     sg.value')->rightJoin('exam_results AS er', function ($join) {
         $join->on('er.exam_id', '=', 'exams.id');
     })->leftJoin('students AS s', function ($join) {
         $join->on('s.id', '=', 'student_id');
     })->leftJoin('student_grades AS sg', function ($join) {
         $join->on('sg.student_id', '=', 's.id');
         $join->on('exam_id', '=', 'sg.ref_value');
         $join->on('sg.ref_key', '=', DB::raw('"examessay"'));
     })->leftJoin('classroom_students AS crs', function ($join) use($semester_id) {
         $join->on('crs.student_id', '=', 's.id');
         $join->on('crs.semester_id', '=', DB::raw('"' . $semester_id . '"'));
     })->where('exams.subject_id', $subject_id)->where('exams.semester_id', $semester_id)->where('exams.type', $exam_type)->whereIn('crs.classroom_id', $classrooms)->whereNotNull('sg.id')->orderBy('sg.id', 'asc')->count();
     return view('teachers::profile.tests.students', compact('students', 'exam_type', 'students_correct'));
 }
 public function index(Request $request)
 {
     $classrooms = Classroom::orderBy('name', 'desc');
     if ($request->has('teacher_id')) {
         $classrooms->where('teacher_id', $request->input('teacher_id'));
     }
     if ($request->has('subject_id')) {
         $classrooms->where('subject_subject_id', $request->input('subject_id'));
     }
     if ($request->has('student_id')) {
         $classrooms->whereHas('students', function ($query) {
             return $query->where('students.id', request('student_id'));
         });
     }
     $classrooms = $classrooms->inCurrentSemester()->get();
     return $classrooms;
 }
 public function register()
 {
     //Classroom
     Classroom::created(function ($classroom) {
         UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classrooms', 'reference_id' => $classroom->id]);
     });
     Classroom::updated(function ($classroom) {
         UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classrooms', 'reference_id' => $classroom->id]);
     });
     Classroom::deleted(function ($classroom) {
         UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classrooms', 'reference_id' => $classroom->id]);
     });
     //ClassroomInterval
     ClassroomInterval::created(function ($classroominterval) {
         UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classroom_intervals', 'reference_id' => $classroominterval->id]);
     });
     ClassroomInterval::updated(function ($classroominterval) {
         UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classroom_intervals', 'reference_id' => $classroominterval->id]);
     });
     ClassroomInterval::deleted(function ($classroominterval) {
         UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classroom_intervals', 'reference_id' => $classroominterval->id]);
     });
     //ClassroomSessionExcuse
     ClassroomSessionExcuse::created(function ($classroomsessionexcuses) {
         UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classroom_session_excuses', 'reference_id' => $classroomsessionexcuses->id]);
     });
     ClassroomSessionExcuse::updated(function ($classroomsessionexcuses) {
         UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classroom_session_excuses', 'reference_id' => $classroomsessionexcuses->id]);
     });
     ClassroomSessionExcuse::deleted(function ($classroomsessionexcuses) {
         UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classroom_session_excuses', 'reference_id' => $classroomsessionexcuses->id]);
     });
     //ClassroomSession
     ClassroomSession::created(function ($classroomsession) {
         UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classroom_sessions', 'reference_id' => $classroomsession->id]);
     });
     ClassroomSession::updated(function ($classroomsession) {
         UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classroom_sessions', 'reference_id' => $classroomsession->id]);
     });
     ClassroomSession::deleted(function ($classroomsession) {
         UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'classroom_sessions', 'reference_id' => $classroomsession->id]);
     });
 }
Example #10
0
 public function classrooms(Request $request, $export = 0)
 {
     $students = Student::isStudying()->with(['subjects' => function ($q) use($request) {
         $q->wherePivot('state', 'study');
         $q->where('semester_id', semester()->id);
         if ($request->has('subject_subject_id')) {
             $q->where('subject_subjects.id', $request->input('subject_subject_id'));
         }
     }, 'classrooms' => function ($q) {
         $q->where('classrooms.semester_id', semester()->id);
     }]);
     if ($request->has('subject_subject_id')) {
         $students->whereHas('subjects', function ($q) use($request) {
             $q->where('subject_subjects.id', $request->input('subject_subject_id'))->where('semester_id', semester()->id)->where('state', 'study');
         });
     }
     if ($request->has('classroom_select_id')) {
         $selected = request('classroom_select_id');
         $subject_id = request('subject_subject_id');
         $students = $students->whereHas('classrooms', function ($query) use($subject_id) {
             $query->where('subject_subject_id', $subject_id);
         }, $selected);
     }
     if (request('spec_id')) {
         $spec_id = request('spec_id');
         $students->wherehas('department', function ($q) use($spec_id) {
             $q->where('academystructure_departments.spec_id', $spec_id);
         });
     }
     if (request('nationality_country_id')) {
         $nationality_country_id = request('nationality_country_id');
         $students->whereHas('registration', function ($q) use($nationality_country_id) {
             $q->where('registrations.nationality_country_id', $nationality_country_id);
         });
     }
     if (request('contact_country_id')) {
         $contact_country_id = request('contact_country_id');
         $students->whereHas('registration', function ($q) use($contact_country_id) {
             $q->where('registrations.contact_country_id', $contact_country_id);
         });
     }
     if ($export) {
         $students = $students->get();
         Excel::create('students', function ($excel) use($students) {
             $excel->sheet('stu', function ($sheet) use($students) {
                 $sheet->loadView('classrooms::reports.export', compact('students'));
             })->download('xlsx');
         });
         return redirect()->route('classrooms.sessions.index', $request->all());
     }
     $per_page = request('per_page') ? request('per_page') : 30;
     $students = $students->paginate($per_page);
     $students = $students->appends($request->except("page"));
     $total_chosen = Student::join('classroom_students as cs', 'cs.student_id', '=', 'students.id')->join('classrooms as c', function ($j) {
         $j->on('c.id', '=', 'cs.classroom_id')->where('c.semester_id', '=', semester()->id);
     })->join('student_subjects as ss', function ($j) {
         $j->on('ss.subject_id', '=', 'c.subject_subject_id')->on('ss.student_id', '=', 'students.id')->where('ss.state', '=', 'study');
     })->groupBy('students.id');
     if ($request->has('subject_subject_id')) {
         $total_chosen->where('c.subject_subject_id', $request->input('subject_subject_id'));
     }
     if ($request->has('classroom_id')) {
         $total_chosen->where('c.id', $request->input('classroom_id'));
     }
     $total_chosen = $total_chosen->get()->count();
     $total_unchosen = StudentSubject::whereIn('student_subjects.state', ['study'])->selectRaw('student_subjects.student_id')->join('classrooms', function ($j) {
         $j->on('classrooms.subject_subject_id', '=', 'student_subjects.subject_id')->where('classrooms.semester_id', '=', semester()->id);
     })->leftJoin('classroom_students', function ($j) {
         $j->on('classrooms.id', '=', 'classroom_students.classroom_id')->on('classroom_students.student_id', '=', 'student_subjects.student_id');
     })->havingRaw('COUNT(classroom_students.id)=0')->groupBy('student_subjects.subject_id', 'student_subjects.student_id');
     if ($request->has('subject_subject_id')) {
         $total_unchosen->where('student_subjects.subject_id', $request->input('subject_subject_id'));
     }
     $total_unchosen = $total_unchosen->get()->groupBy('student_id')->count();
     $subjects = Subject::where('is_quran', 0)->pluck('name', 'id')->toArray();
     $classrooms = Classroom::inCurrentSemester()->pluck('code', 'id')->toArray();
     $classroom_select = config('classrooms.classroom_select');
     $spec_id = Specialty::pluck('name', 'id')->toArray();
     $county = Country::pluck('name', 'id')->toArray();
     $inputs = request()->all();
     return view('classrooms::reports.classrooms', compact('students', 'subjects', 'classrooms', 'total_chosen', 'total_unchosen', 'classroom_select', 'spec_id', 'county', 'inputs'));
 }
Example #11
0
 private function getClassrooms()
 {
     $classrooms = Classroom::select('cs.student_id as chosen', 'classrooms.attendees_limit', 'classrooms.name', 'classrooms.code', 'classrooms.id', 'classrooms.teacher_id', 'classrooms.subject_subject_id', 'classrooms.day', 'classrooms.hour')->join('subject_subjects as subsub', 'subsub.id', '=', 'classrooms.subject_subject_id')->join('student_subjects as stusub', function ($join) {
         $join->on('stusub.subject_id', '=', 'subsub.id')->where('stusub.student_id', '=', $this->student->id)->where('stusub.state', '=', 'study')->where('stusub.semester_id', '=', $this->semester->id);
     })->leftJoin('classroom_students as cs', function ($j) {
         $j->on('cs.classroom_id', '=', 'classrooms.id')->where('cs.student_id', '=', $this->student->id)->where('cs.semester_id', '=', semester()->id);
     })->whereIn('classrooms.gender', [$this->student->gender, 'b'])->with('subject')->withCount('students')->groupBy('classrooms.id')->get()->groupBy('subject_subject_id')->toArray();
     $new_classrooms = [];
     foreach ($classrooms as $classroom) {
         $exist = array_where($classroom, function ($key, $value) {
             return $value['chosen'] > 0;
         });
         if (!count($exist)) {
             $new_classrooms[] = $classroom;
         }
     }
     return $new_classrooms;
 }
 public function activityedit($id)
 {
     $exam = Exam::findOrFail($id);
     $subjects = Subject::whereHas('teachers', function ($query) {
         $query->where('teacher_id', teacher()->id);
     })->lists('name', 'id')->toArray();
     $types = config('teachers.types');
     $classrooms = Classroom::where('teacher_id', teacher()->id)->inCurrentSemester()->pluck('code', 'id')->toArray();
     return view('teachers::profile.activity.edit', compact('exam', 'types', 'subjects', 'classrooms'));
 }
Example #13
0
 public function export()
 {
     Excel::create('classrooms', function ($excel) {
         $excel->sheet('classrooms', function ($sheet) {
             $classrooms = Classroom::with('subject', 'teacher')->withCount('students')->inCurrentSemester();
             $classrooms = $classrooms->orderBy('id', 'desc')->get();
             $sheet->loadView('classrooms::classrooms.export', compact('classrooms', 'days'));
         })->download('xlsx');
     });
 }
Example #14
0
 public function classroomsedit($student_id, $classroom_id)
 {
     $student = Student::findOrFail($student_id);
     //$subjects = Subject::with('classroom')->Student($student->id)->findOrFail($subject_id);
     $subject_id = Classroom::findOrFail($classroom_id)->subject_subject_id;
     $classrooms = Classroom::with('students')->where('subject_subject_id', $subject_id)->get();
     // dd($subject_id);
     // $classroom_id= $classrooms->id;
     return view('students::classrooms.edit', compact('classroom_id', 'student', 'classrooms', 'student_id'));
 }
 public function regiserEvents()
 {
     Classroom::creating(function ($classroom) {
         $classroom->semester_id = semester()->id;
     });
     ClassroomInterval::creating(function ($interval) {
         $interval->semester_id = semester()->id;
     });
     ClassroomSession::creating(function ($session) {
         $session->semester_id = semester()->id;
     });
 }
Example #16
0
 public function edit(ClassroomInterval $interval)
 {
     $classrooms = Classroom::pluck("code", 'id')->toArray();
     return view('classrooms::intervals.edit', compact('interval', 'classrooms'));
 }