get(); $kurikulums = Kurikulum::all(); $alternatifs = Alternatif::with('mapels')->get(); return view('admin.alternatif', compact('alternatifs','mapels', 'kurikulums')); } public function tambahalternatif(Request $request) { $request->validate([ 'nama' => 'required|string|max:255', 'kurikulum_id' => 'required|exists:kurikulums,id', 'mapel_id' => 'required|array|min:1', 'mapel_id.*' => 'exists:mapels,id', ]); // Cek duplikat nama $duplikatNama = Alternatif::where('nama', $request->nama) ->where('kurikulum_id', $request->kurikulum_id) ->exists(); if ($duplikatNama) { toastr()->error('Nama alternatif sudah ada dalam kurikulum yang sama.'); return redirect()->back()->withInput(); } // Simpan alternatif dulu $alternatif = new Alternatif(); $alternatif->nama = $request->nama; $alternatif->kurikulum_id = $request->kurikulum_id; if ($alternatif->save()) { $alternatif->mapels()->sync($request->mapel_id); // sinkronisasi setelah tersimpan toastr()->success('Alternatif berhasil ditambahkan'); } else { toastr()->error('Gagal menambahkan alternatif'); } return redirect()->route('alternatif'); } public function updatealternatif(Request $request, $id) { $request->validate([ 'nama' => 'required|string|max:255', 'kurikulum_id' => 'required|exists:kurikulums,id', 'mapel_id' => 'required|array|min:1', 'mapel_id.*' => 'exists:mapels,id', ]); $alternatif = Alternatif::findOrFail($id); // Cek duplikat nama (kecuali milik sendiri) $duplikatNama = Alternatif::where('nama', $request->nama) ->where('kurikulum_id', $request->kurikulum_id) ->where('id', '!=', $id) ->exists(); if ($duplikatNama) { toastr()->error('Nama alternatif sudah ada dalam kurikulum yang sama.'); return redirect()->back()->withInput(); } // Update data $alternatif->nama = $request->nama; $alternatif->kurikulum_id = $request->kurikulum_id; if ($alternatif->save()) { $alternatif->mapels()->sync($request->mapel_id); toastr()->success('Alternatif berhasil diperbarui'); } else { toastr()->error('Gagal memperbarui alternatif'); } return redirect()->route('alternatif')->with('reload', true); } public function hapusalternatif($id) { $alternatif = Alternatif::findOrFail($id); if ($alternatif->delete()) { toastr()->success('Alternatif berhasil dihapus'); } else { toastr()->error('Gagal menghapus alternatif'); } return redirect()->route('alternatif'); } public function downloadalternatif() { // Ambil data sekolah dari database $alternatifs = Alternatif::all(); $pdf = Pdf::loadView('admin.alternatifpdf', compact('alternatifs')); // Download file PDF return $pdf->download('data_alternatif.pdf'); } }