orderBy('tanggal', 'desc') ->orderBy('jam_mulai', 'desc') ->get(); return view('jadwal.jadwal', compact('data_jadwal')); } public function konfirmasiSelesai($id) { $jadwal = Jadwal::findOrFail($id); // Kita paksa ubah status ke 'selesai' $jadwal->status = 'selesai'; $jadwal->save(); return redirect()->route('jadwal.index') ->with('success', 'Latihan ' . $jadwal->judul_kegiatan . ' telah dikonfirmasi selesai!'); } public function create() { $data_kolat = Kolat::all(); $rolePelatih = Role::where('nama_role', 'Pelatih')->first(); // Ambil Anggota yang memiliki role 'Pelatih' saja (filter lewat relasi) $data_pelatih = Anggota::whereHas('role', function($query) { $query->where('nama_role', 'Pelatih'); })->get(); return view('jadwal.jadwalcreate', compact('data_kolat', 'data_pelatih')); } public function store(Request $request) { $request->validate([ 'judul_kegiatan' => 'required|string|max:255', 'kolat_id' => 'required|exists:kolat,id', 'pelatih_id' => 'required|exists:anggotas,id', 'jenis' => 'required|in:Rutin,Tambahan,Pengumuman', 'tanggal' => 'required|date', 'jam_mulai' => 'required', 'lokasi' => 'required|string', ]); Jadwal::create($request->all()); return redirect()->route('jadwal.index') ->with('success', 'Jadwal latihan berhasil ditambahkan!'); } public function show($id) { // Ambil satu data dengan relasinya $jadwal = Jadwal::with(['kolat', 'pelatih'])->findOrFail($id); return view('jadwal.show', compact('jadwal')); } public function edit($id) { $jadwal = Jadwal::findOrFail($id); $data_kolat = Kolat::all(); // Tetap filter agar hanya muncul daftar pelatih $data_pelatih = Anggota::whereHas('role', function($query) { $query->where('nama_role', 'Pelatih'); })->get(); return view('jadwal.editjadwal', compact('jadwal', 'data_kolat', 'data_pelatih')); } public function update(Request $request, $id) { $jadwal = Jadwal::findOrFail($id); $request->validate([ 'judul_kegiatan' => 'required|string|max:255', 'kolat_id' => 'required|exists:kolat,id', 'pelatih_id' => 'required|exists:anggotas,id', 'jenis' => 'required|in:Rutin,Tambahan,Pengumuman', 'tanggal' => 'required|date', 'jam_mulai' => 'required', 'lokasi' => 'required|string', ]); $jadwal->update($request->all()); return redirect()->route('jadwal.index') ->with('success', 'Jadwal berhasil diperbarui!'); } public function destroy($id) { $jadwal = Jadwal::findOrFail($id); $jadwal->delete(); return redirect()->route('jadwal.index') ->with('success', 'Jadwal telah dihapus dari sistem.'); } }