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(); }