get(); $subjects_ids = $subjects->pluck('id')->toArray(); $classes = Classes::whereIn('subject_id', $subjects_ids)->orderBy('created_at','DESC')->get(); $classes_ids = $classes->pluck('id')->toArray(); $attendances = Attendance::whereIn('classes_id', $classes_ids)->get(); $attendances_grouped = $attendances->groupBy($groupBy); return view('user.user_attendances', ['attendances' => $attendances, 'attendances_grouped' => $attendances_grouped, 'classes' => $classes, 'grouped_by' => $groupBy]); } public function add_attendance(Request $request) { $classes_id = $request->input('classes_id'); $student_id_number = $request->input('student_id'); $student_name = $request->input('student_name'); $student_surname = $request->input('student_surname'); $seat_number = $request->input('seat_number'); $note = $request->input('note'); Attendance::create([ 'classes_id' => $classes_id, 'student_id_number' => $student_id_number, 'student_name' => $student_name, 'student_surname' => $student_surname, 'seat_number' => $seat_number, 'notes' => $note ]); return redirect()->back(); } public function delete_attendance($attendance_id) { Attendance::find($attendance_id)->delete(); return redirect()->back(); } public function edit_attendance($attendance_id) { Attendance::find($attendance_id); return redirect()->back(); } public function export($classes_id) { $classes_date = Classes::find($classes_id)->date; return Excel::download(new AttendanceExportView($classes_id), "classes-attendance-{$classes_date}.xlsx"); } public function export_grouped($groupBy) { $today_date = date('Y-m-d'); $groupByLabel = str_replace("_", "-", $groupBy); if($groupBy == 'classes_id') { $groupByLabel = 'classes_name'; } return Excel::download(new AttendanceGroupedExportView($groupBy), "all-attendance-grouped-by-{$groupByLabel}-{$today_date}.xlsx"); } public function add_attendance_note(Request $request) { $attendance_id = $request->input('attendance_id'); $note = $request->input('note_content'); $attendance = Attendance::find($attendance_id); $attendance->notes = $note; $attendance->save(); $attendance->refresh(); return redirect()->back(); } }