get(); // Mengambil semua data crips dan alternatif $crips = Crip::all(); $alternatifs = Alternatif::all(); $subkriterias = Subkriteria::all(); return view('admin.opsisubkriteria', compact('opsisubkriterias', 'crips', 'alternatifs', 'subkriterias')); } public function tambahopsisubkriteria(Request $request) { // Validasi input $request->validate([ 'subkriteria_id' => 'required|exists:subkriterias,id', 'alternatif_id' => 'required|exists:alternatifs,id', 'crips_id' => 'required|exists:crips,id', 'opsi' => 'required|string', ]); // Cek duplikat opsi untuk kombinasi subkriteria + alternatif $duplikat = OpsiSubkriteria::where('subkriteria_id', $request->subkriteria_id) ->where('alternatif_id', $request->alternatif_id) ->where('opsi', $request->opsi) ->exists(); if ($duplikat) { toastr()->error('Opsi tersebut sudah ada untuk kombinasi subkriteria dan alternatif ini.'); return redirect()->back(); } // Simpan data opsi subkriteria $opsi = new OpsiSubkriteria(); $opsi->subkriteria_id = $request->subkriteria_id; $opsi->alternatif_id = $request->alternatif_id; $opsi->crips_id = $request->crips_id; $opsi->opsi = $request->opsi; if ($opsi->save()) { toastr()->success('Opsi subkriteria berhasil ditambahkan.'); } else { toastr()->error('Gagal menambahkan opsi subkriteria.'); } return redirect()->route('opsisubkriteria'); } public function updateopsisubkriteria(Request $request, $id) { // Validasi input $request->validate([ 'subkriteria_id' => 'required|exists:subkriterias,id', 'alternatif_id' => 'required|exists:alternatifs,id', 'crips_id' => 'required|exists:crips,id', 'opsi' => 'required|string', ]); // Ambil data berdasarkan ID $opsi = OpsiSubkriteria::findOrFail($id); // Cek duplikat (kecuali jika data yang sama persis dengan yang sedang diedit) $duplikat = OpsiSubkriteria::where('subkriteria_id', $request->subkriteria_id) ->where('alternatif_id', $request->alternatif_id) ->where('opsi', $request->opsi) ->where('id', '!=', $id) ->exists(); if ($duplikat) { toastr()->error('Opsi tersebut sudah ada untuk kombinasi subkriteria dan alternatif ini.'); return redirect()->back(); } // Update data $opsi->subkriteria_id = $request->subkriteria_id; $opsi->alternatif_id = $request->alternatif_id; $opsi->crips_id = $request->crips_id; $opsi->opsi = $request->opsi; if ($opsi->save()) { toastr()->success('Opsi subkriteria berhasil diperbarui.'); } else { toastr()->error('Gagal memperbarui opsi subkriteria.'); } return redirect()->route('opsisubkriteria')->with('reload', true); } public function hapusopsisubkriteria($id) { // Cari data opsi subkriteria berdasarkan ID $opsisubkriteria = OpsiSubkriteria::findOrFail($id); // Hapus data opsi subkriteria $opsisubkriteria->delete(); // Tampilkan pesan sukses toastr()->success('Data opsi subkriteria berhasil dihapus.'); // Redirect kembali ke halaman opsi subkriteria return redirect()->route('opsisubkriteria'); } public function downloadopsisubkriteria() { // Ambil data sekolah dari database $opsisubkriterias = OpsiSubkriteria::all(); $subkriterias = Subkriteria::all(); $pdf = Pdf::loadView('admin.opsubpdf', compact('opsisubkriterias', 'subkriterias')); // Download file PDF return $pdf->download('data_opsisubkriterias.pdf'); } }