/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $events = SemesterEvent::classroom()->count(); if (!$events) { return redirect()->route('students.profile.index')->with('warning', trans('students::profile.classrooms.choose_classroom_expired')); } return $next($request); }
public function index() { $available_classrooms = Classroom::select('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', '=', student()->id); })->whereIn('classrooms.gender', [student()->gender, 'b'])->whereHas('students', function ($query) { return $query->havingRaw('COUNT(students.id) < attendees_limit'); })->whereNotIn('subject_subject_id', function ($query) { $query->select('classrooms.subject_subject_id')->from('classrooms')->join('classroom_students as clastud', function ($join) { $join->on('clastud.classroom_id', '=', 'classrooms.id')->where('clastud.student_id', '=', student()->id); }); })->with('teacher', 'subject', 'students')->groupBy('teacher_id', 'subject_subject_id')->get(); //return $available_classrooms; $event = SemesterEvent::classroom()->first(); $chosen_classrooms = Classroom::whereHas('students', function ($query) { $query->where('students.id', student()->id); })->get(); return view('students::classrooms.index', compact('available_classrooms', 'chosen_classrooms', 'event')); }
public function index() { $events = SemesterEvent::select('as.start_at', 'as.finish_at', 'as.order', 'ast.name', 'ast.category', 'ast.instructions')->join('academycycle_semesterevent_types as ast', 'ast.id', '=', 'as.type_id')->where('semester_id', $this->semester->id)->from('academycycle_semesterevents as as')->get(); $events->each(function ($event) { $event->instructions = explode("\n", $event->instructions); switch ($event->category) { case 'delay': $event->reasons = [['text' => '', 'title' => 'الولادة / رعاية مولود جديد'], ['text' => '', 'title' => 'المرض'], ['desc' => '(الأب، الأم، الزوج، الأخ، الأخت، الابن، الابنة)', 'title' => 'مرض أحد الأقارب من الدرجة الأولى'], ['text' => '', 'title' => 'السفر لدواعي العمل'], ['text' => '', 'title' => 'ظروف عائلية'], ['text' => '', 'title' => 'السفر لأسباب شخصية'], ['text' => '', 'title' => 'ظروف العمل'], ['text' => '', 'title' => 'اخرى']]; break; case 'withdraw': $event->reasons = [['text' => '', 'title' => 'الولادة / رعاية مولود جديد'], ['text' => '', 'title' => 'المرض'], ['desc' => '(الأب، الأم، الزوج، الأخ، الأخت، الابن، الابنة)', 'title' => 'مرض أحد الأقارب من الدرجة الأولى'], ['text' => '', 'title' => 'السفر لدواعي العمل'], ['text' => '', 'title' => 'ظروف عائلية'], ['text' => '', 'title' => 'السفر لأسباب شخصية'], ['text' => '', 'title' => 'ظروف العمل'], ['text' => '', 'title' => 'اخرى']]; break; case 'quran_recording_excuses': $event->reasons = [['text' => '', 'title' => 'الولادة / رعاية مولود جديد'], ['text' => '', 'title' => 'المرض'], ['desc' => '(الأب، الأم، الزوج، الأخ، الأخت، الابن، الابنة)', 'title' => 'مرض أحد الأقارب من الدرجة الأولى'], ['text' => '', 'title' => 'السفر لدواعي العمل'], ['text' => '', 'title' => 'ظروف عائلية'], ['text' => '', 'title' => 'السفر لأسباب شخصية'], ['text' => '', 'title' => 'ظروف العمل'], ['text' => '', 'title' => 'اخرى']]; break; default: $event->reasons = []; break; } }); return response()->json($events, 200, [], JSON_NUMERIC_CHECK); }
/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { if (student()) { $menu = Menu::make('StudentSidebarMenu', function ($menu) { }); $menu->add('الرئيسية', ['route' => 'students.profile.index'])->data('order', 1)->prepend('<i class="fa fa-home"></i>'); $events = SemesterEvent::classroom()->count(); if ($events) { $menu->add(trans(trans('students::profile.classrooms.choose_sessions_classrooms')), ['route' => 'students.profile.classrooms.index'])->prepend('<i class="fa fa-bell animated infinite swing"></i>')->data('order', 1); } $centers = ExamCenterPeriod::where('start_at', '<', date('Y-m-d H:i:s'))->where('finish_at', '>', date('Y-m-d H:i:s'))->where('semester_id', semester()->id)->count(); if ($centers) { $menu->add(trans(trans('students::profile.exams.choose_exam_center')), ['route' => 'students.profile.centers.index'])->prepend('<i class="fa fa-bell animated infinite swing"></i>')->data('order', 2); } $menu->add(trans('students::profile.subjects.header'), ['route' => 'students.profile.subjects.index'])->data('order', 10)->prepend('<i class="fa fa-briefcase"></i>'); $menu->add(trans('students::profile.sessions.header'), ['route' => 'students.profile.sessions.index'])->data('order', 20)->prepend('<i class="fa fa-video-camera"></i>'); $menu->add(trans('students::profile.tickets.header'), ['route' => 'students.profile.tickets.index'])->data('order', 30)->prepend('<i class="fa fa-comment"></i>'); $menu->add(trans('orders::order.menu'), ['route' => 'orders.index'])->prepend('<i class="fa fa-pencil-square-o"></i>'); $menu->add(trans('الأسئلة الشائعة'), ['route' => 'students.faq.index'])->data('order', 40)->prepend('<i class="fa fa-briefcase"></i>'); } return $next($request); }
/** * Register the service provider. * * @return void */ public function register() { Year::created(function ($year) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'year', 'reference_id' => $year->id]); }); Year::updated(function ($year) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'year', 'reference_id' => $year->id]); }); Year::deleted(function ($year) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'year', 'reference_id' => $year->id]); }); Semester::created(function ($semester) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semester', 'reference_id' => $semester->id]); }); Semester::updated(function ($semester) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semester', 'reference_id' => $semester->id]); }); Semester::deleted(function ($semester) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semester', 'reference_id' => $semester->id]); }); SemesterEvent::created(function ($semesterEvent) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEvent', 'reference_id' => $semesterEvent->id]); }); SemesterEvent::updated(function ($semesterEvent) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEvent', 'reference_id' => $semesterEvent->id]); }); SemesterEvent::deleted(function ($semesterEvent) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEvent', 'reference_id' => $semesterEvent->id]); }); SemesterEventType::created(function ($semesterEventType) { UserLog::create(['operation' => 'create', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEventType', 'reference_id' => $semesterEventType->id]); }); SemesterEventType::updated(function ($semesterEventType) { UserLog::create(['operation' => 'update', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEventType', 'reference_id' => $semesterEventType->id]); }); SemesterEventType::deleted(function ($semesterEventType) { UserLog::create(['operation' => 'delete', 'user_id' => user() ? user()->id : NULL, 'reference_key' => 'semesterEventType', 'reference_id' => $semesterEventType->id]); }); }
public function getBeforeMidExamCertificate($background = false) { $student = Student::select('students.*')->joinTermName()->findOrFail($this->student_id); $exams = Exam::inCurrentSemester()->ofStudent($this->student_id)->select('ss.name', 'exams.start_at', 'exams.finish_at')->where('exams.type', 'midterm')->where('exams.active', 1)->groupBy('exams.id')->get(); // dd($exams->toArray()); $event = SemesterEvent::ofType('mid_term_test')->inSemester()->first(); if (!$event) { return false; } $pdf = $this->preparePdf($background); // ---- > $html = '<h2>إلى من يهمه الأمر</h2>'; $pdf->writeHTMLCell(210, 20, 0, 50, $html, 0, 0, false, true, "C"); $pdf->SetFontSize(12); $html = 'بتاريخ : ' . Date::now()->format('l d F Y'); $pdf->writeHTMLCell(60, 10, 150, 40, $html, 0, 0, false, true, "C"); $pdf->SetFontSize(15, 'B'); $html = '<table cellpadding="3"> <tr><td align="right">إسم لطالب</td><td align="right">' . $student->name . '</td></tr> <tr><td align="right">الرقم الجامعي</td><td align="right">' . $student->code . '</td></tr> <tr><td align="right">تاريخ الإلتحاق</td><td align="right">' . Date::parse($student->created_at)->format('l d F Y') . '</td></tr> <tr><td align="right">السنة الدراسية</td><td align="right">' . $student->year_name . '</td></tr> </table>'; $pdf->writeHTMLCell(100, 20, 10, 80, $html, 0, 0, false, true, "R"); $pdf->SetFontSize(15, 'B'); $pdf->writeHTMLCell(170, 20, 20, 125, view('students::documents._beforemidexamcertificate', compact('event', 'exams', 'student'))->render(), 0, 0, false, true, "R"); $html = "<div>\nوقد أعطي له هذا الخطاب بناء على طلبه دون أدنى مسئولية على المركز.\n</div>\n<div>\nوتفضلوا بقبول وافر التحية\n</div>"; $pdf->SetFontSize(20, 'B'); $pdf->writeHTMLCell(130, 5, 38, 170, $html, 0, 0, false, true, "C"); $pdf->SetFontSize(15, 'B'); $html = '<table border="0" width="100%"><tbody><tr><td>القبول والتسجيل</td></tr> <tr><td>مركز التعليم عن بعد - كلية العلوم الشرعية</td></tr></tbody></table>'; $pdf->writeHTMLCell(130, 5, 100, 250, $html, 0, 0, false, true, "C"); ob_clean(); return $pdf; }
public function classrooms($student_id = 0) { $student = Student::find($student_id); $available_classrooms = Classroom::select('classrooms.attendees_limit', 'classrooms.name', 'classrooms.code', 'classrooms.id', 'classrooms.teacher_id', 'classrooms.subject_subject_id', 'classrooms.day', 'classrooms.hour')->join('student_subjects as stusub', function ($join) use($student) { $join->on('stusub.subject_id', '=', 'classrooms.subject_subject_id')->where('stusub.state', '=', 'study')->where('stusub.student_id', '=', $student->id); })->whereIn('classrooms.gender', [$student->gender, 'b'])->whereHas('students', function ($query) use($student) { return $query->havingRaw('COUNT(students.id) < attendees_limit'); })->whereNotIn('subject_subject_id', function ($query) use($student) { $query->select('classrooms.subject_subject_id')->from('classrooms')->join('classroom_students as clastud', function ($join) use($student) { $join->on('clastud.classroom_id', '=', 'classrooms.id')->where('clastud.student_id', '=', $student->id); }); })->with('teacher', 'subject', 'students')->groupBy('classrooms.id')->get(); //return $available_classrooms; $event = SemesterEvent::classroom()->first(); $chosen_classrooms = Classroom::whereHas('students', function ($query) use($student) { $query->where('students.id', $student->id); })->get(); // // dd($student->id); // # code... // $studentcalss = Student::with('classrooms','subjects')->where('id',$student->id)->first(); // // dd($studentcalss); // $subjects = Subject::with('classroom')->Student($student->id)->get(); // // $classrooms = $studentcalss->classrooms->pluck('subject_subject_id' ,'name' )->toArray(); // // dd($subjects); // // $subjects = $studentcalss; // // dd($studentcalss); return view('students::subjects.classroom', compact('available_classrooms', 'chosen_classrooms', 'event', 'subjects', 'student', 'classrooms', 'studentcalss')); }
public function create($event_type, $type, SemesterEvent $SemesterEvent) { $current_semester_id = semester()->id; $student_id = student()->id; $semesters = Semester::with('year')->get(); $semester_id = []; /////////////////////////////////////delay///////////////////////////// if ($event_type == 'delay') { // get delay order period //dd($semesters); $delay_semester_events = $SemesterEvent->where('semester_id', '=', $current_semester_id)->whereHas('event_type', function ($query) { $query->where('academycycle_semesterevent_types.category', 'delay'); })->first(); // get delay order for student in current semeter if exist and not refuse or cancel $delayOrders = new DelayOrders(); $student_delay_order = $delayOrders->where('semester_id', '=', $current_semester_id)->where('student_id', '=', $student_id)->whereNotIn('state', array('الغاء بناء على طلب الطالب', 'الغاء لعدم الاستكمال', 'رفض'))->first(); if ($student_delay_order and $type == 0) { return redirect()->route('student.orders.list', $event_type); } else { //check if period available if ($type == 0) { foreach ($semesters as $semester) { if ($semester->active == 1) { $semester_id[$semester->id] = $semester->year->name . " -- " . $semester->name; } } return view('orders::delay.create', compact('semester_id')); } elseif ($type == '1') { // bring all semester foreach ($semesters as $semester) { $semester_id[$semester->id] = $semester->year->name . " -- " . $semester->name; } return view('orders::delay.create', compact('semester_id')); } else { return redirect()->route('orders.index'); } } //////////////////////////////////////withdraw///////////////////////////// } elseif ($event_type == 'withdraw') { // get delay order period $withdraw_semester_events = $SemesterEvent->where('semester_id', '=', $current_semester_id)->whereHas('event_type', function ($query) { $query->where('academycycle_semesterevent_types.category', 'withdraw'); })->first(); // get withdraw order for student in current semeter if exist and not refuse or cancel $withdrawOrders = new WithdrawOrders(); $student_withdraw_order = $withdrawOrders->where('semester_id', '=', $current_semester_id)->where('student_id', '=', $student_id)->whereNotIn('state', array('الغاء بناء على طلب الطالب', 'الغاء لعدم الاستكمال', 'رفض'))->first(); if ($student_withdraw_order) { return redirect()->route('student.orders.list', $event_type); } else { //check if period available if ($type == 0) { foreach ($semesters as $semester) { if ($semester->active == 1) { $semester_id[$semester->id] = $semester->year->name . " -- " . $semester->name; } } return view('orders::withdraw.create', compact('semester_id')); } elseif ($type == '1') { // all semester foreach ($semesters as $semester) { $semester_id[$semester->id] = $semester->year->name . " -- " . $semester->name; } return view('orders::withdraw.create', compact('semester_id')); } else { return redirect()->route('orders.index'); } } /////////////////////////////////////Equal///////////////////////////// } elseif ($event_type == 'equal_subject') { // get equal_subject order period $equal_subject_semester_events = $SemesterEvent->where('semester_id', '=', $current_semester_id)->whereHas('event_type', function ($query) { $query->where('academycycle_semesterevent_types.category', 'equal_subject'); })->first(); // get delay order for student in current semeter if exist and not review $equalOrders = new EqualOrders(); $student_equal_subject_order = $equalOrders->where('semester_id', '=', $current_semester_id)->where('student_id', '=', $student_id)->whereNotIn('state', array('الغاء بناء على طلب الطالب', 'الغاء لعدم الاستكمال', 'رفض', 'مكتمل'))->first(); if ($student_equal_subject_order) { return redirect()->route('student.orders.list', $event_type); } else { //check if period available //if($equal_subject_semester_events->start_at <= date("Y-m-d") && $equal_subject_semester_events->finish_at >= date("Y-m-d")){ $country_list = Country::pluck('name', 'id')->toArray(); return view('orders::equal.create', compact('country_list')); //}else{ //return redirect()->route('orders.index'); //} } ///////////////////////////////////////////excuse///////////////////////////// } elseif ($event_type == 'excuse') { // same same return view('orders::delay.excuse'); } }
public function ac_print($semester_id) { $sem_events = SemEvent::where('semester_id', $semester_id)->with('event_type')->orderBy('order')->get(); //return $sem_events; $pdf = new TCPDF(PDF_PAGE_ORIENTATION, PDF_UNIT, PDF_PAGE_FORMAT, true, 'UTF-8', false); $pdf->SetFont('dejavusans', '', 6, '', 'false'); $pdf->setRTL('enable', $resetx = true); $pdf->SetPrintHeader(false); $pdf->SetPrintFooter(true); $pdf->SetFooterMargin(PDF_MARGIN_FOOTER); $pdf->setFooterFont(array(PDF_FONT_NAME_DATA, '', PDF_FONT_SIZE_DATA)); $pdf->SetAutoPageBreak(TRUE, PDF_MARGIN_BOTTOM); $pdf->startPageGroup(); $pdf->AddPage(); $pdf->writeHTML(view('academycycle::semesterevents.print', compact('sem_events'))->render()); $filename = 'academycycle.pdf'; ob_clean(); $pdf->output($filename, 'D'); return redirect()->back(); //return redirect()->back()->with('success', trans('exams::exams.download_success')); }