whereIn('id_jurusan', function ($query) { $query->select('jurusan_id') ->from('penilaians') ->join('siswas', 'penilaians.siswa_id', '=', 'siswas.id') ->groupBy('jurusan_id'); })->get(); return view('server-side.penilaian.hasil-seleksi-jurusan', compact(['nomor', 'jurusans'])); } public function hasilSeleksi($jurusan_id) { $nomor = 1; $nomor2 = 1; $nomor3 = 1; $nomor4 = 1; $finalResult = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->where('jurusan_id', $jurusan_id)->get(); $nilaiRaport = $finalResult->pluck('nilai_raport')->sum(); $nilaiKeterampilan = $finalResult->pluck('nilai_keterampilan')->sum(); $nilaiUjian = $finalResult->pluck('nilai_ujian')->sum(); return view('server-side.penilaian.hasil-seleksi', compact(['nomor', 'nomor2', 'nomor3', 'nomor4', 'finalResult', 'nilaiRaport','nilaiKeterampilan', 'nilaiUjian'])); } public function raport() { $nomor = 1; $raport = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->select('*')->get(); return view('server-side.penilaian.raport', compact(['nomor', 'raport'])); } public function editNilaiRaport($siswa_id) { $raport = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->select('*')->where('siswa_id', $siswa_id)->first(); return view('server-side.penilaian.edit-raport', compact(['raport'])); } public function updateNilaiRaport(Request $request, $siswa_id) { $updateNilaiRaport = Penilaian::where('siswa_id', $siswa_id)->firstOrFail(); $updateNilaiRaport->update([ 'nilai_raport' => $request->nilai_raport, ]); return redirect()->route('penilaian.raport')->with('message', 'Berhasil merubah nilai raport ' . $request->nama_siswa); } public function keterampilan() { $nomor = 1; $keterampilan = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->select('*')->get(); return view('server-side.penilaian.keterampilan', compact(['nomor', 'keterampilan'])); } public function editNilaiKeterampilan($siswa_id) { $keterampilan = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->select('*')->where('siswa_id', $siswa_id)->first(); return view('server-side.penilaian.edit-keterampilan', compact(['keterampilan'])); } public function updateNilaiKeterampilan(Request $request, $siswa_id) { $updateNilaiKeterampilan = Penilaian::where('siswa_id', $siswa_id)->firstOrFail(); $updateNilaiKeterampilan->update([ 'nilai_keterampilan' => $request->nilai_keterampilan, ]); return redirect()->route('penilaian.keterampilan')->with('message', 'Berhasil merubah nilai keterampilan ' . $request->nama_siswa); } public function ujian() { $nomor = 1; $jurusanLogin = auth()->user()->user_id; $jurusan = Guru::where('user_id', $jurusanLogin) ->join('jurusans', 'gurus.jurusan_id', '=', 'jurusans.id_jurusan') ->select('jurusans.nama_jurusan') ->first(); $jawaban = Jawaban::where('status', 1)->pluck('siswa_id'); // Mengambil semua siswa_id dengan status 1 if ($jurusan) { $namaJurusan = $jurusan->nama_jurusan; $ujian = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id') ->join('jawabans', 'siswas.id', '=', 'jawabans.siswa_id') ->whereIn('siswas.id', function($query) use ($namaJurusan, $jawaban) { $query->select('siswa_id') ->from('jawabans') ->whereIn('siswa_id', $jawaban) // Hanya siswa dengan status 1 ->where('jurusan_id', function($subquery) use ($namaJurusan) { $subquery->select('id_jurusan') ->from('jurusans') ->where('nama_jurusan', $namaJurusan); }); }) ->select('penilaians.*', 'siswas.*', 'jawabans.*') ->get(); } return view('server-side.penilaian.ujian', compact(['nomor', 'ujian'])); } public function editNilaiUjian($siswa_id) { $juriId = Guru::where('user_id', Auth::user()->user_id)->first(); $ujian = Penilaian::join('siswas', 'penilaians.siswa_id', '=', 'siswas.id')->select('*')->where('siswa_id', $siswa_id)->first(); return view('server-side.penilaian.edit-ujian', compact(['ujian', 'juriId'])); } public function updateNilaiUjian(Request $request, $siswa_id) { $juriId = Guru::where('user_id', Auth::user()->user_id)->first(); $updateNilaiUjian = Penilaian::where('siswa_id', $siswa_id)->firstOrFail(); if ($juriId->status_juri == "Juri 1") { $updateNilaiUjian->update([ 'nilai_ujian_juri_1' => $request->nilai_ujian, 'nilai_ujian' => ($request->nilai_ujian + $updateNilaiUjian->nilai_ujian_juri_2) / 2, ]); } else { $updateNilaiUjian->update([ 'nilai_ujian_juri_2' => $request->nilai_ujian, 'nilai_ujian' => ($request->nilai_ujian + $updateNilaiUjian->nilai_ujian_juri_1) / 2, ]); } return redirect()->route('penilaian.ujian')->with('message', 'Berhasil merubah nilai ujian ' . $request->nama_siswa); } public function downloadJawaban($siswa_id) { $jawaban = Jawaban::where('siswa_id', $siswa_id)->first(); $filePath = public_path('jawaban/' . $jawaban->file); return response()->download($filePath); } public function validasiNilai() { $numb = 1; $data = Siswa::join('penilaians', 'siswas.id', '=', 'penilaians.siswa_id') ->select('siswas.*', 'penilaians.*') ->get(); return view('server-side.validasi-nilai.index', compact(['numb', 'data'])); } public function feedbackNilaiUjian($siswa_id) { $jawaban = Jawaban::join('siswas', 'siswas.id', '=', 'jawabans.siswa_id')->where('jawabans.siswa_id', $siswa_id)->first(); return view('server-side.penilaian.feedback', compact(['jawaban'])); } public function updateFeedbackNilaiUjian(Request $request, $jawaban_id) { $request->validate([ 'feedback' => ['required'] ]); Jawaban::find($jawaban_id)->update([ 'feedback' => $request->feedback, ]); return redirect()->route('penilaian.ujian')->with('message', 'Berhasil megirim feedback'); } }