MIF_E31221105/app/Http/Controllers/ExportKmeansController.php

68 lines
2.2 KiB
PHP

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\DataAlumni;
use App\Models\TahunAngkatan;
use App\Models\Jabatan;
use Barryvdh\DomPDF\Facade\Pdf;
use App\Exports\HasilKlasifikasiExport;
use Maatwebsite\Excel\Facades\Excel;
class ExportKmeansController extends Controller
{
// Menampilkan halaman pilih angkatan dan tombol export
public function index(Request $request)
{
$angkatanList = TahunAngkatan::all();
$id_angkatan = $request->get('id_angkatan');
$data = [];
if ($id_angkatan) {
$data = DataAlumni::with(['jabatan', 'kualifikasiBidang', 'hasilKlasifikasi'])
->where('angkatan', $id_angkatan)
->get();
}
// Tambahkan mapping jabatan dan kualifikasi bidang
$jabatanMap = Jabatan::pluck('Kategori_bidang_kerja', 'id_kategori')->toArray();
return view('hasil_klasIfikasi_eksport', [
'data' => $data,
'angkatanList' => $angkatanList,
'id_angkatan' => $id_angkatan,
'jabatanMap' => $jabatanMap,
]);
}
public function exportPDF($id_angkatan)
{
$data = DataAlumni::with(['jabatan', 'kualifikasiBidang', 'hasilKlasifikasi'])
->where('angkatan', $id_angkatan)
->get();
$angkatan = TahunAngkatan::find($id_angkatan);
$jabatanMap = Jabatan::pluck('Kategori_bidang_kerja', 'id_kategori')->toArray();
$pdf = Pdf::loadView('hasil_klasifikasi_pdf', [
'data' => $data,
'angkatan' => $angkatan->tahun ?? 'Unknown',
'jabatanMap' => $jabatanMap,
]);
return $pdf->download('hasil_klasifikasi_angkatan_' . ($angkatan->tahun ?? 'unknown') . '.pdf');
}
public function exportExcel($id_angkatan)
{
// Ambil data angkatan berdasarkan ID
$angkatan = TahunAngkatan::find($id_angkatan);
// Gunakan nama tahun angkatan dalam nama file
$tahunAngkatan = $angkatan->tahun ?? 'Unknown';
return Excel::download(new HasilKlasifikasiExport($id_angkatan), 'hasil_klasifikasi_angkatan_' . $tahunAngkatan . '.xlsx');
}
}