Exemplo n.º 1
0
 public function do_re_enter(Request $request)
 {
     $students = [$request->input('students')];
     // $students = [10073];
     foreach ($students as $student_id) {
         $exam = 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', 'activity'])->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') == 'true') {
                 $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')->with(['questions' => function ($w) {
             $w->select('questionbank_questions.id', 'questionbank_questions.question', 'questionbank_questions.type');
             if ($this->randomize_questions) {
                 $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');
         }])->first();
         dd($exam);
         ExamResult::where('exam_id', $exam->id)->where('student_id', $student_id)->update(['exit_at' => '']);
     }
     return redirect()->route('exams.extends.reenter')->with('success', 'تمت العملية بنجاح');
 }