Exemplo n.º 1
0
 /**
  * Store a newly created resource in storage.
  * @param  Request $request
  * @return Response
  */
 public function store(Request $request)
 {
     $order = new ClassroomSessionExcuse();
     $order->fill($request->only('content', 'session_id'));
     $order->student_id = $this->student->id;
     $order->semester_id = $this->semester->id;
     $order->status = 'waiting';
     $order->save();
     if ($request->has('files')) {
         $update_data = ['ref_value' => $order->id, 'ref_key' => 'order_session_excuses'];
         OrderFile::whereIn('id', array_pluck($request->input('files'), 'id'))->update($update_data);
     }
     $order->load('files');
     Cache::forget('student_' . $this->student->id . '_api_sessions');
     return response()->json($order, 200, [], JSON_NUMERIC_CHECK);
 }
Exemplo n.º 2
0
 /**
  * Handle an incoming request.
  *
  * @param  \Illuminate\Http\Request  $request
  * @param  \Closure  $next
  * @return mixed
  */
 public function handle($request, Closure $next)
 {
     $open_delay_order = Delay::whereIn('state', ['تقديم', 'مكتمل', 'غير مكتمل'])->count();
     $open_withdraw_order = Withdraw::whereIn('state', ['تقديم', 'مكتمل', 'غير مكتمل'])->count();
     $open_equal_order = Equal::whereIn('state', ['تقديم', 'مكتمل', 'غير مكتمل'])->count();
     $open_change_dep_order = OrderChangeDepartment::where('state', 0)->count();
     $open_session_excuse_order = ClassroomSessionExcuse::where('status', 'waiting')->count();
     $open_quran_excuse_order = OrderQuranExcuse::where('state', 'تقديم')->count();
     if ($user = Auth::user() and $user->canOne(['view.orders.orders', 'view.orders.withdraw', 'view.orders.delay', 'view.orders.equalsubject', 'view.orders.sessionexcuses', 'view.orders.excusequran', 'view.orders.changeDep'])) {
         $menu = Menu::get('SidebarMenu');
         $submenu = $menu->add(trans('orders::order.orders'), ['route' => 'orders.index'])->prepend('<i class="fa fa-file"></i>');
         if ($user->can('view.orders.withdraw')) {
             $submenu->add(trans('orders::order.withdraworder_list'), ['route' => 'orders.withdraw.list'])->prepend('<i class="fa fa-file"></i>')->append('<span class="badge">' . $open_withdraw_order . '</span>');
         }
         if ($user->can('view.orders.delay')) {
             $submenu->add(trans('orders::order.delayorder_list'), ['route' => 'orders.delay.list'])->prepend('<i class="fa fa-file"></i>')->append('<span class="badge">' . $open_delay_order . '</span>');
         }
         if ($user->can('view.orders.equalsubject')) {
             $submenu->add(trans('orders::order.equalorder_list'), ['route' => 'orders.equal.list'])->prepend('<i class="fa fa-file"></i>')->append('<span class="badge">' . $open_equal_order . '</span>');
         }
         /*
                     if($user->can('view.orders.sessionexcuses')) {
                     $submenu->add(trans('orders::sessionexcuses.header'), ['route'=>'orders.sessionexcuses.index'])->prepend('<i class="fa fa-file"></i>')->append('<span class="badge">'.$open_session_excuse_order.'</span>');
                     }
         */
         if ($user->can('view.orders.excusequran')) {
             $submenu->add(trans('orders::quranexcuses.header'), ['route' => 'orders.quran.excuses.index'])->prepend('<i class="fa fa-file"></i>')->append('<span class="badge">' . $open_quran_excuse_order . '</span>');
         }
         if ($user->can('view.orders.changedep')) {
             $submenu->add(trans('orders::changeDep.header'), ['route' => 'orders.change.department.index'])->prepend('<i class="fa fa-file"></i>')->append('<span class="badge">' . $open_change_dep_order . '</span>');
         }
     }
     return $next($request);
 }
Exemplo n.º 3
0
 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]);
     });
 }
Exemplo n.º 4
0
 public function test(Request $request)
 {
     ClassroomSessionExcuse::truncate();
     ClassroomSessionAttendance::where('student_id', 10001)->update(['valid' => 0]);
     exit;
     $student_id = 4796;
     $order_dir = in_array($request->input('order_dir'), ['ASC', 'DESC']) ? $request->input('order_dir') : 'ASC';
     $exams = Exam::select('exams.type', 'exams.start_at', 'exams.finish_at', 'exams.name', 'exams.id')->join('subject_subjects as subsub', 'subsub.id', '=', 'exams.subject_id')->join('student_subjects as stusub', function ($j) use($student_id) {
         $j->on('stusub.subject_id', '=', 'subsub.id')->where('stusub.student_id', '=', $student_id)->where('stusub.state', '=', 'study');
     })->where(function ($query) use($request, $student_id) {
         $query->orWhereIn('exams.type', ['midterm', 'remidterm'])->orWhereRaw('exams.id IN (SELECT ce.exam_id FROM classrooms_exam as ce
                             JOIN classrooms as c ON c.id = ce.classroom_id
                             JOIN classroom_students as cs ON cs.classroom_id = c.id
                                 AND cs.student_id = ' . $student_id . '
                             WHERE exam_id = exams.id GROUP BY ce.id)');
         if ($request->has('finalExam')) {
             $query->orWhereIn('exams.type', ['final', 'summer', 'refinal']);
         }
     })->where('exams.semester_id', semester()->id)->where('finish_at', '>=', date('Y-m-d H:i:s'))->groupBy('exams.id')->orderBy('exams.start_at', $order_dir)->with(['questions' => function ($w) {
         $w->select('questionbank_questions.id', 'questionbank_questions.question', 'questionbank_questions.type');
         if (false) {
             $w->orderByRaw('RAND()');
         } else {
             $w->orderBy('questionbank_questions.type', 'DESC');
         }
     }, 'questions.choices' => function ($w) {
         $w->select('questionbank_choices.id', 'questionbank_choices.question_id', 'questionbank_choices.choice', 'questionbank_choices.istrue');
     }])->get();
     return $exams;
     exit;
     $specialities = Specialty::selectRaw('asp.id, asp.name, asp.short_description, asp.description, GROUP_CONCAT(adp.subject_ids) as subject_ids, COUNT(adt.id) as terms, COUNT(DISTINCT ady.id) as years')->leftJoin('academystructure_departments as adp', 'adp.spec_id', '=', 'asp.id')->leftJoin('academystructure_terms as adt', 'adt.id', '=', 'adp.term_id')->leftJoin('academystructure_years as ady', 'ady.id', '=', 'adt.year_id')->from('academystructure_specialties as asp')->groupBy('asp.id')->with('departments')->get();
     foreach ($specialities as $specialty) {
         $subject_ids = explode(",", preg_replace(['/\\[/', "/\\]/"], "", $specialty->subject_ids));
         $specialty->hours = Subject::whereIn('id', $subject_ids)->sum('hour');
         foreach ($specialty->departments as $department) {
             $subject_ids = explode(",", preg_replace(['/\\[/', "/\\]/", '/"/', "/'/"], "", $department->subject_ids));
             // var_dump($subject_ids);
             $department->subjects = Subject::whereIn('id', $subject_ids)->get();
         }
     }
     $specialities->makeHidden(['subject_ids']);
     return $specialities;
     exit;
     $status_ping_url = \App::environment('local') ? 'http://46.40.236.186:9090/DARES/public/classrooms/classrooms/status_ping' : route('classrooms.sessions.status-ping');
     $WiziqApi = new WiziqApi();
     try {
         $wiziqclassroom = WiziqClassroom::build("test", new DateTime("2016-08-10 23:55:00"))->withPresenter(20, "test teacher")->withAttendeeLimit(config("classrooms.attendee_limit"))->withReturnUrl('https://el-css.edu.om')->withDuration(10)->withExtendDuration(0)->withStatusPingUrl($status_ping_url)->withTimeZone("Asia/Muscat")->withLanguageCultureName("ar-SA")->withCreateRecording(true);
         $response = $WiziqApi->create($wiziqclassroom);
         \Log::info($response);
         exit(var_dump($response));
         $data = ['wiziq_id' => $response['class_id'], 'recording_link' => $response['recording_url'], 'presenter_link' => $response['presenter_url']];
         /** add attendees to virtual classroom */
         Log::info($response);
         if ($session->fill($data)->save() && $response) {
             $error = $this->createStudentsSessions($classroom->students, $session);
         }
     } catch (\mikemix\Wiziq\Common\Api\Exception\CallException $e) {
         $error = 1;
     } catch (\mikemix\Wiziq\Common\Http\Exception\InvalidResponseException $e) {
         $error = 1;
     } catch (\PDOException $e) {
         $error = 1;
     }
     if ($error == 0) {
         event(new VirtualClassroomsCreated());
     } else {
         $session->wiziq_status = 'error';
         $session->save();
     }
 }