all(); $totalJuri = Guru::where('jurusan_id', $request->jurusan_id)->count(); if ($totalJuri >= 2) { return redirect()->route('guru.index')->with('errorr', 'Maksimal juri yang terdaftar hanya 2 saja. Tidak dapat menambah juri lagi untuk jurusan tersebut!'); } // Inisialisasi nama file foto $fotoName = null; // Jika ada file foto yang diunggah, pindahkan file dan dapatkan namanya if ($request->hasFile('foto')) { $fotoName = uniqid().'.'.$request->foto->extension(); $request->foto->move(public_path('assets/images/guru'), $fotoName); } // Buat email dari username $email = $request->username . '@gmail.com'; $user = User::create([ 'username' => $request->username, 'email' => $email, 'password' => Hash::make('smk1tapen'), ]); $userRole = UserRole::create([ 'user_id' => $user->user_id, 'role_id' => 2, ]); $guru = Guru::create([ 'user_id' => $user->user_id, 'nama' => $request->nama, 'nip' => $request->nip, 'foto' => $fotoName, // Gunakan nama file foto jika ada 'tempat_lahir' => $request->tempat_lahir, 'tanggal_lahir' => $request->tanggal_lahir, 'jenis_kelamin' => $request->jenis_kelamin, 'no_hp' => $request->no_hp, 'alamat' => $request->alamat, 'jurusan_id' => $request->jurusan_id, 'status_juri' => $request->status_juri, ]); // Redirect ke halaman siswa.index dengan pesan sukses return redirect()->route('guru.index')->with('message', 'Data berhasil ditambahkan'); } /** * Display the specified resource. * * @param \App\Models\Guru $guru * @return \Illuminate\Http\Response */ public function show(Guru $guru) { // } /** * Show the form for editing the specified resource. * * @param \App\Models\Guru $guru * @return \Illuminate\Http\Response */ public function edit(Guru $guru) { $guru->load('user'); $hasJuri = UserRole::where('user_id', $guru->user_id)->where('role_id', 2)->exists(); $hasAdmin = UserRole::where('user_id', $guru->user_id)->where('role_id', 1)->exists(); $jurusan = Jurusan::all(); return view('server-side.guru.edit', compact('guru', 'jurusan', 'hasJuri', 'hasAdmin')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param \App\Models\Guru $guru * @return \Illuminate\Http\Response */ public function update(GuruRequest $request, $id) { $guru = Guru::findOrFail($id); // $guru->user->update([ // 'password' => bcrypt($request->password), // ]); $guru->update([ 'nama' => $request->nama, 'nip' => $request->nip, 'tempat_lahir' => $request->tempat_lahir, 'tanggal_lahir' => $request->tanggal_lahir, 'jenis_kelamin' => $request->jenis_kelamin, 'no_hp' => $request->no_hp, 'alamat' => $request->alamat, 'jurusan_id' => $request->jurusan_id, 'status_juri' => $request->status_juri, ]); // // Periksa apakah checkbox untuk peran "juri" dicentang // if ($request->has('role_juri')) { // // Tambahkan peran "juri" jika checkbox dicentang // $userRole = UserRole::updateOrCreate( // ['user_id' => $guru->user_id, 'role_id' => 2], // ['user_id' => $guru->user_id, 'role_id' => 2] // ); // } else { // // Hapus peran "juri" jika checkbox tidak dicentang // UserRole::where('user_id', $guru->user_id)->where('role_id', 2)->delete(); // } // if ($request->has('role_admin')) { // $userRole = UserRole::updateOrCreate( // ['user_id' => $guru->user_id, 'role_id' => 1], // ['user_id' => $guru->user_id, 'role_id' => 1] // ); // } else { // UserRole::where('user_id', $guru->user_id)->where('role_id', 1)->delete(); // } // Periksa apakah ada file foto yang diunggah if ($request->hasFile('foto')) { // Hapus foto sebelumnya jika ada if ($guru->foto) { // Hapus foto sebelumnya dari direktori $oldFotoPath = public_path('assets/images/guru/' . $guru->foto); if (file_exists($oldFotoPath)) { unlink($oldFotoPath); } } // Pindahkan foto baru dan dapatkan namanya $fotoName = uniqid().'.'.$request->foto->extension(); $request->foto->move(public_path('assets/images/guru'), $fotoName); // Perbarui nama foto dalam database $guru->update(['foto' => $fotoName]); } return redirect()->route('guru.index')->with('message', 'Data berhasil diperbarui'); } /** * Remove the specified resource from storage. * * @param \App\Models\Guru $guru * @return \Illuminate\Http\Response */ Public function destroy($id) { $guru = Guru::findOrFail($id); $user = User::where('user_id', $guru->user_id)->firstOrFail(); // Menghapus semua entri UserRole yang terkait dengan pengguna UserRole::where('user_id', $user->user_id)->delete(); // Sekarang Anda dapat menghapus guru, user, dan foto (jika ada) if ($guru->foto) { $fotoPath = public_path('assets/images/guru/' . $guru->foto); if (file_exists($fotoPath)) { unlink($fotoPath); } } $guru->delete(); $user->delete(); return redirect()->route('guru.index')->with('message', 'Data berhasil dihapus'); } public function juri($id) { $guru = Guru::findOrFail($id); $user = User::where('user_id', $guru->user_id)->firstOrFail(); $userRole = UserRole::create([ 'user_id' => $id, 'role_id' => 4, ]); } }