MIF_E31221105/app/Exports/HasilKlasifikasiExport.php

48 lines
1.6 KiB
PHP

<?php
namespace App\Exports;
use App\Models\DataAlumni;
use App\Models\Jabatan;
use Maatwebsite\Excel\Concerns\FromCollection;
use Maatwebsite\Excel\Concerns\WithHeadings;
class HasilKlasifikasiExport implements FromCollection, WithHeadings
{
protected $id_angkatan;
public function __construct($id_angkatan)
{
$this->id_angkatan = $id_angkatan;
}
public function collection()
{
// Ambil mapping ID jabatan ke nama kategori
$jabatanMap = Jabatan::pluck('Kategori_bidang_kerja', 'id_kategori')->toArray();
return DataAlumni::with(['kualifikasiBidang', 'hasilKlasifikasi'])
->where('angkatan', $this->id_angkatan)
->get()
->map(function ($item) use ($jabatanMap) {
return [
'Nama' => $item->nama ?? '-',
'Nim' => $item->nim ?? '-',
'Jabatan' => $jabatanMap[$item->jabatan] ?? '-',
'Kualifikasi Bidang' => $item->kualifikasiBidang->kualifikasi_bidang ?? '-',
'Cluster' => is_numeric($item->hasilKlasifikasi->cluster) ? $item->hasilKlasifikasi->cluster : '-',
'Klasifikasi' => match ((int) ($item->hasilKlasifikasi->cluster ?? -1)) {
0 => 'Cluster 0 - TIDAK SESUAI',
1 => 'Cluster 1 - KURANG SESUAI',
2 => 'Cluster 2 - SESUAI',
default => '-',
},
];
});
}
public function headings(): array
{
return ['Nama','Nim' ,'Kelompok Jabatan', 'Kualifikasi Bidang', 'Cluster','Klasifikasi'];
}
}