48 lines
1.6 KiB
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'];
|
|
}
|
|
}
|