/** * Handle an incoming request. * * @param \Illuminate\Http\Request $request * @param \Closure $next * @return mixed */ public function handle($request, Closure $next) { $where = ['student_id' => student()->id, 'semester_id' => semester()->id, 'subject_id' => $request->subject_id, 'remaining' => 0]; if (QuranRecording::where($where)->count()) { return redirect()->route('students.profile.subjects.index')->with('info', 'لقد استنفذت تسجيلات التلاوة المتاحة لك لهذه المادة.'); } return $next($request); }
public function state($recording_id = 0) { $recording = QuranRecording::findOrFail($recording_id); if (request()->input('status') == 'accepted') { $recording->valid = 1; $message = 'تم قبول التلاوة بنجاح وتحويلها إلى التقييم'; } else { $recording->valid = 0; $recording->remaining = 1; $message = 'تم رفض التلاوة بنجاح'; } $recording->save(); return redirect()->route('quran.recordings.index')->with('success', $message); }
public function store(CreateRecordingRequest $request) { $data = []; $data['subject_id'] = $request->input('subject_id'); $data['semester_id'] = semester()->id; $data['student_id'] = student()->id; $recording = QuranRecording::firstOrCreate($data); $videos = empty($recording->videos) ? [] : unserialize($recording->videos); if (!empty($recording->quran_video)) { array_push($videos, $recording->quran_video); } $recording->videos = serialize($videos); $recording->fill($request->only('page', 'quran_video')); $recording->save(); $recording->decrement('remaining'); if ($request->ajax()) { return response()->json(true); } return redirect()->route('students.profile.quran.index'); }
public function store(Request $request) { $filter = ['semester_id' => $this->semester->id, 'student_id' => $this->student->id, 'subject_id' => $request->input('subject_id')]; $recording = QuranRecording::firstOrCreate($filter); $extend = QuranTimeExtend::where($filter)->first(); if ($extend) { $extend->decrement('maximum_recordings'); } $videos = empty($recording->videos) ? [] : unserialize($recording->videos); if (!empty($recording->quran_video)) { array_push($videos, $recording->quran_video); } $recording->videos = serialize($videos); $recording->quran_video = $request->input('quran_video'); $recording->page = $request->input('page'); $recording->save(); $recording->load('grade'); $recording->decrement('remaining'); // $recording->remaining = $recording->remaining - 1; $recording->excuse = OrderQuranExcuse::where(['semester_id' => semester()->id, 'student_id' => $recording->student_id, 'subject_id' => $recording->subject_id])->first(); return response()->json($recording, 200, [], JSON_NUMERIC_CHECK); }
/** * Update the specified resource in storage. * @param Request $request * @return Response */ public function update(Request $request, $recording_id = 0, $student_id = 0) { $recording = QuranRecording::with('student', 'subject')->findOrFail($recording_id); $grade_data = ['student_id' => $recording->student_id, 'semester_id' => semester()->id, 'ref_key' => 'quran_recordings', 'ref_value' => $recording->id, 'subject_id' => $recording->subject_id]; $grade = StudentGrade::firstOrCreate($grade_data); $grade->value = $request->input('result'); $grade->save(); $recording->update(['user_id' => user()->id]); $message = 'تم حفظ التقييم'; if (request('submit') == 'save') { return redirect()->route('evaluate_quran.index')->with('success', $message); } }