64 lines
2.3 KiB
PHP
64 lines
2.3 KiB
PHP
<?php
|
|
|
|
namespace App\Imports;
|
|
|
|
use App\Models\DataAlumni;
|
|
use App\Models\TahunAngkatan;
|
|
use App\Models\Jabatan;
|
|
use App\Models\KualifikasiBidang;
|
|
use Maatwebsite\Excel\Concerns\ToModel;
|
|
use Maatwebsite\Excel\Concerns\WithHeadingRow;
|
|
|
|
class DataAlumniImport implements ToModel,WithHeadingRow
|
|
{
|
|
public function model(array $row)
|
|
{
|
|
// Cek apakah tahun angkatan sudah ada di tabel TahunAngkatan
|
|
$tahunAngkatan = TahunAngkatan::where('tahun', $row['angkatan'])->first();
|
|
|
|
// Jika tahun angkatan tidak ada, buat baru
|
|
if (!$tahunAngkatan) {
|
|
$tahunAngkatan = TahunAngkatan::create([
|
|
'tahun' => $row['angkatan'],
|
|
]);
|
|
}
|
|
|
|
$jenisProfesi = ucwords(strtolower(trim($row['jenis_profesi'])));
|
|
$jenisProfesiValid = [
|
|
'Programmer', 'Data Analyst', 'Business Intelligence Developer',
|
|
'Wirausaha', 'Non IT', 'Tidak diketahui', 'Tidak bekerja',
|
|
'Pelajar', 'Wirausaha IT', 'Infokom'
|
|
];
|
|
|
|
if (!in_array($jenisProfesi, $jenisProfesiValid)) {
|
|
$jenisProfesi = 'Tidak diketahui'; // fallback default
|
|
}
|
|
|
|
// 3. Ambil ID jabatan dari nama (bukan langsung dari Excel)
|
|
$jabatan = Jabatan::where('Kategori_bidang_kerja', $row['kelompok_jabatan'])->first();
|
|
$jabatanId = $jabatan ? $jabatan->id_kategori : null;
|
|
|
|
// 4. Ambil ID kualifikasi bidang dari nama (bukan langsung dari Excel)
|
|
$kualifikasi = KualifikasiBidang::where('kualifikasi_bidang', $row['kualifikasi_bidang_kerja'])->first();
|
|
$kualifikasiId = $kualifikasi ? $kualifikasi->id_kualifikasi : null;
|
|
|
|
// Ambil ID angkatan yang ada
|
|
$angkatanId = $tahunAngkatan->id_angkatan;
|
|
return new DataAlumni([
|
|
'nama' => $row['nama'],
|
|
'nim' => $row['nim'],
|
|
'angkatan' => $angkatanId,
|
|
'masa_tunggu' => $row['masa_tunggu'],
|
|
'pekerjaan' => $row['pekerjaan'],
|
|
'instansi' => $row['instansi'],
|
|
'link_linkedin' => $row['link_linkedin'] ?? '-',
|
|
'Jenis_profesi' => $jenisProfesi,
|
|
'lingkup_pekerjaan' => $row['lingkup_pekerjaan'],
|
|
'kualifikasi_bidang_kerja' => $kualifikasiId,
|
|
'jabatan' => $jabatanId,
|
|
]);
|
|
}
|
|
}
|
|
|
|
|