where('user_id', $userId) ->get() ->map(function($d) { return [ 'tanggal' => $d->created_at, 'kecerdasan' => $d->kecerdasan ? $d->kecerdasan->nama : 'Tidak Diketahui', 'skor' => number_format($d->presentase, 2) . '%', 'type' => 'Diagnosa', ]; }); // 2. Ambil Hasil AHP $ahps = HasilAhp::with('jurusan') ->where('user_id', $userId) ->get() ->map(function($h) { return [ 'tanggal' => $h->created_at, 'jurusan' => $h->jurusan->nama, 'skor' => number_format($h->score * 100, 2) . '%', 'type' => 'AHP', ]; }); // 3. Gabungkan dan urutkan berdasarkan tanggal (terbaru di atas) $all = $diagnosas ->merge($ahps) ->sortByDesc('tanggal') ->values() ->map(function($item) { // Format tanggal jadi string $item['tanggal'] = $item['tanggal']->format('d-m-Y'); return $item; }); return view('user.diagnosishasil', ['records' => $all]); } public function exportPdf() { $userId = Auth::id(); // Gabungkan data Diagnosa & AHP seperti di index() $diagnosas = Diagnosa::with('kecerdasan') ->where('user_id', $userId) ->get() ->map(function($d) { return [ 'tanggal' => $d->created_at, // optional() akan aman: jika null, dikembalikan null 'kecerdasan' => optional($d->kecerdasan)->nama ?? '–', 'skor' => number_format($d->presentase, 2) . '%', 'type' => 'Diagnosa', ]; }); $ahps = HasilAhp::with('jurusan') ->where('user_id', $userId) ->get() ->map(function($h) { return [ 'tanggal' => $h->created_at, 'jurusan' => $h->jurusan->nama, 'skor' => number_format($h->score * 100, 2) . '%', 'type' => 'AHP', ]; }); $records = $diagnosas ->merge($ahps) ->sortByDesc('tanggal') ->values() ->map(function($item) { $item['tanggal'] = $item['tanggal']->format('d-m-Y'); return $item; }); // generate PDF dari view 'user.diagnosishasil_pdf' // generate PDF dari view $pdf = Pdf::loadView('user.rr', ['records' => $records]) ->setPaper('a4', 'portrait'); return $pdf->download('riwayat_diagnosa_ahp_'.date('Ymd').'.pdf'); } }