get(); $jabatans = Jabatan::all(); $kualifikasis = KualifikasiBidang::all(); $angkatans = TahunAngkatan::all(); $jumlahPerluReview = DataAlumni::where('perlu_review', true)->count(); // Cek apakah user memilih filter angkatan $selectedAngkatan = $request->angkatan; // Ambil data alumni, filter jika angkatan dipilih $query = DataAlumni::with(['jabatan', 'kualifikasiBidang', 'tahunAngkatan']); if ($selectedAngkatan) { $query->where('angkatan', $selectedAngkatan); } $alumni = $query->get(); $jabatanMap = $jabatans->pluck('Kategori_bidang_kerja', 'id_kategori')->toArray(); return view('data_alumni', compact('alumni', 'jabatans', 'kualifikasis', 'angkatans', 'jabatanMap','jumlahPerluReview')); } /** * Menampilkan form tambah data (kalau pakai halaman terpisah). */ public function create() { $jabatans = Jabatan::all(); $kualifikasis = KualifikasiBidang::all(); $angkatans = TahunAngkatan::all(); return view('data_alumni', compact('jabatans', 'kualifikasis', 'angkatans')); } /** * Menyimpan data alumni baru. */ public function store(Request $request) { $request->validate([ 'nama' => 'required|string|max:255', 'nim' => 'required|string|max:10', 'angkatan' => 'required|integer', 'masa_tunggu' => 'nullable|integer', 'pekerjaan' => 'nullable|string|max:255', 'instansi' => 'nullable|string|max:255', 'link_linkedin' => 'nullable|string|max:255', 'Jenis_profesi' => 'required|string', 'lingkup_pekerjaan' => 'required|string', 'kualifikasi_bidang_kerja' => 'required|integer', 'jabatan' => 'required|integer', ]); // Data baru dibuat oleh admin tidak perlu direview $data = $request->all(); $data['perlu_review'] = false; DataAlumni::create($request->all()); return redirect()->route('data_alumni.index')->with('success', 'Data alumni berhasil ditambahkan.'); } /** * Menampilkan detail (jika ada halaman detail). */ public function show(DataAlumni $dataAlumni) { return view('data_alumni.show', compact('dataAlumni')); } /** * Menampilkan form edit (jika pakai halaman edit). */ public function edit(DataAlumni $dataAlumni) { $jabatans = Jabatan::all(); $kualifikasis = KualifikasiBidang::all(); $angkatans = TahunAngkatan::all(); return view('data_alumni.edit', compact('dataAlumni', 'jabatans', 'kualifikasis', 'angkatans')); } /** * Memperbarui data alumni. */ public function update(Request $request, $id_alumni) { $request->validate([ 'nama' => 'required|string|max:255', 'nim' => 'required|string|max:10', 'angkatan' => 'required|integer', 'masa_tunggu' => 'nullable|integer', 'pekerjaan' => 'nullable|string|max:255', 'instansi' => 'nullable|string|max:255', 'link_linkedin' => 'nullable|string|max:255', 'Jenis_profesi' => 'required|string', 'lingkup_pekerjaan' => 'required|string', 'kualifikasi_bidang_kerja' => 'required|integer', 'jabatan' => 'required|integer', ]); $dataAlumni = DataAlumni::findOrFail($id_alumni); // Update dari admin selalu menandai data sebagai sudah direview $data = $request->all(); $data['perlu_review'] = false; $dataAlumni->update($request->all()); return redirect()->back()->with('success', 'Data berhasil diperbarui.'); } /** * Menghapus data alumni. */ public function destroy($id_alumni) { $dataAlumni = DataAlumni::findOrFail($id_alumni); $dataAlumni->delete(); // Redirect setelah berhasil return response()->json(['success' => true]); } /** * Import data dari file Excel. */ public function import(Request $request) { $request->validate([ 'file' => 'required|mimes:xlsx,xls,csv' ]); Excel::import(new DataAlumniImport, $request->file('file')); return redirect()->route('data_alumni.index')->with('success', 'Data berhasil diimpor!'); } // public function perluReview() // { // $alumniPerluReview = DataAlumni::with(['jabatan', 'kualifikasiBidang', 'tahunAngkatan']) // ->where('perlu_review', true) // ->get(); // return view('admin.alumni_perlu_review', compact('alumniPerluReview')); // } // public function resetReview($id) // { // $alumni = DataAlumni::findOrFail($id); // $alumni->perlu_review = false; // $alumni->save(); // return back()->with('success', 'Data ditandai sebagai sudah direview'); // } /** * Menampilkan daftar alumni yang perlu direview. */ public function perluReview() { // Ambil semua data alumni yang perlu direview $alumniPerluReview = DataAlumni::with(['jabatan', 'kualifikasiBidang', 'tahunAngkatan']) ->where('perlu_review', true) ->get(); // Siapkan data yang diperlukan untuk form review $jabatans = Jabatan::all(); $kualifikasis = KualifikasiBidang::all(); return view('admin.alumni_perlu_review', compact('alumniPerluReview', 'jabatans', 'kualifikasis')); } /** * Menandai data alumni sebagai sudah direview. */ public function resetReview($id) { $alumni = DataAlumni::findOrFail($id); $alumni->perlu_review = false; $alumni->save(); return back()->with('success', 'Data ditandai sebagai sudah direview'); } /** * Menangani review dan menyelesaikan proses review dengan mengubah data. */ // public function handleReview(Request $request, $id) // { // $request->validate([ // 'kualifikasi_bidang_kerja' => 'required|integer', // 'jabatan' => 'required|integer', // ]); // $alumni = DataAlumni::findOrFail($id); // // Update data kualifikasi dan jabatan berdasarkan review admin // $alumni->kualifikasi_bidang_kerja = $request->kualifikasi_bidang_kerja; // $alumni->jabatan = $request->jabatan; // $alumni->perlu_review = false; // Tandai sebagai sudah direview // $alumni->save(); // return redirect()->route('admin.alumni.perlu-review') // ->with('success', 'Data alumni berhasil diupdate berdasarkan review'); // } public function downloadTemplate() { $spreadsheet = new Spreadsheet(); $sheet = $spreadsheet->getActiveSheet(); // Header $sheet->setCellValue('A1', 'nama'); $sheet->setCellValue('B1', 'nim'); $sheet->setCellValue('C1', 'angkatan'); $sheet->setCellValue('D1', 'masa_tunggu'); $sheet->setCellValue('E1', 'pekerjaan'); $sheet->setCellValue('F1', 'instansi'); $sheet->setCellValue('G1', 'link_linkedin'); $sheet->setCellValue('H1', 'jenis_profesi'); $sheet->setCellValue('I1', 'lingkup_pekerjaan'); $sheet->setCellValue('J1', 'kualifikasi_bidang_kerja'); $sheet->setCellValue('K1', 'kelompok_jabatan'); // Contoh data (optional) $sheet->setCellValue('A2', 'Contoh Nama'); $sheet->setCellValue('B2', 'E12345678'); $sheet->setCellValue('C2', '2020'); $sheet->setCellValue('D2', '3'); $sheet->setCellValue('E2', 'Programmer'); $sheet->setCellValue('F2', 'PT ABC'); $sheet->setCellValue('G2', 'https://linkedin.com/in/contoh'); $sheet->setCellValue('H2', 'Programmer'); $sheet->setCellValue('I2', 'Nasional'); $sheet->setCellValue('J2', 'Sangat erat'); $sheet->setCellValue('K2', 'Lulusan D3'); $writer = new Xlsx($spreadsheet); $filename = 'template_data_alumni.xlsx'; header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header("Content-Disposition: attachment; filename=\"$filename\""); $writer->save('php://output'); exit; } }