Example #1
0
 public function postUpdateAttendance(Request $request)
 {
     $attendance_ids = $request->input('table_records');
     $submit = $request->input('submit');
     $affected_ids = ClassroomSessionAttendance::whereIn('id', $attendance_ids)->where('valid', '!=', $submit != 'confirm' ? 0 : 1)->pluck('id')->toArray();
     if (ClassroomSessionAttendance::whereIn('id', $affected_ids)->update(['valid' => $submit == 'confirm'])) {
         if ($submit != 'confirm') {
             StudentGrade::whereIn('ref_value', $affected_ids)->where('ref_key', 'attendance')->delete();
         } else {
             foreach ($attendances = ClassroomSessionAttendance::with('student', 'session', 'session.subject')->whereIn('id', $affected_ids)->get() as $attendance) {
                 $session = $attendance->session;
                 $data = ['student_id' => $attendance->student_id, 'subject_id' => $session->subject_subject_id, 'value' => $session->subject->hours == 2 ? 2.5 : 2, 'ref_key' => 'attendance', 'notes' => trans('classrooms::attendances.attended_for', ['attended_minutes' => $attendance->attended_minutes, 'session' => $session->title, 'subject' => $session->subject->name]), 'ref_value' => $attendance->id];
                 $StudentGrade = new StudentGrade();
                 $StudentGrade->fill($data)->save();
             }
         }
     }
     return redirect()->back();
 }