route('alternatif.pilih')->with('error', 'Alternatif belum dipilih atau kurang dari dua.'); } $alternatifs = Makanan::whereIn('id', $idAlternatif)->get(); $kriterias = Kriteria::all(); $bobotKriterias = BobotKriteria::pluck('bobot', 'kriteria_id'); foreach ($alternatifs as $alternatif) { $nilaiAkhir = 0; foreach ($kriterias as $kriteria) { $bobotKriteria = $bobotKriterias[$kriteria->id] ?? 0; $bobotAlternatif = SkorMakanan::where('kriteria_id', $kriteria->id) ->where('makanan_id', $alternatif->id) ->value('nilai') ?? 0; $nilaiAkhir += $bobotKriteria * $bobotAlternatif; } Rekomendasi::updateOrCreate( ['makanan_id' => $alternatif->id, 'user_id' => Auth::id()], [ 'nilai_akhir' => $nilaiAkhir, 'tanggal_rekomendasi' => now()->toDateString() ] ); } return redirect()->route('rekomendasi.hasil')->with('success', 'Rekomendasi berhasil dihitung dan disimpan.'); } // 2. Tampilkan hasil rekomendasi public function tampil() { // Hanya mengambil data rekomendasi dengan nilai_akhir lebih besar dari 0 $rekomendasi = Rekomendasi::with('makanan') ->where('nilai_akhir', '>', 0) ->orderByDesc('nilai_akhir') ->get(); $tanggalList = Rekomendasi::select('tanggal_rekomendasi') ->distinct() ->orderBy('tanggal_rekomendasi', 'desc') ->pluck('tanggal_rekomendasi'); return view('admin.rekomendasi', compact('rekomendasi', 'tanggalList')); } public function kirimKeUser($userId) { $adminId = Auth::id(); $dataAdmin = Rekomendasi::where('user_id', $adminId)->get(); foreach ($dataAdmin as $item) { Rekomendasi::updateOrCreate( ['user_id' => $userId, 'makanan_id' => $item->makanan_id], [ 'nilai_akhir' => $item->nilai_akhir, 'tanggal_rekomendasi' => now(), ] ); } return redirect()->back()->with('success', 'Hasil rekomendasi berhasil dikirim ke user.'); } public function hapusSemua(Request $request) { $tanggal = $request->input('tanggal_rekomendasi'); if (!$tanggal) { return redirect()->back()->with('error', 'Tanggal rekomendasi harus dipilih.'); } // Hapus data berdasarkan tanggal_rekomendasi Rekomendasi::where('tanggal_rekomendasi', $tanggal)->delete(); return redirect()->back()->with('success', 'Data rekomendasi untuk tanggal ' . $tanggal . ' berhasil dihapus.'); } }