AbsensiModel = new ModelAbsensi(); $this->EvaluasiModel = new ModelEvaluasi(); } public function index() { $selectedYear = $this->request->getPost('tahun'); $nip = session('nip'); if (session()->has('nip') && session()->has('username')) { $data = array( 'body' => 'dashboard', 'username' => session('username'), 'nama' => session('nama'), 'hak_akses' => session('hak_akses'), 'nip' => session('nip'), 'selectedYear' => $selectedYear, 'rapor' => $this->EvaluasiModel->getRapor($nip), ); if ($selectedYear !== null) { // Jika kategori dipilih, ambil data penilaian sesuai kategori $absensiData = $this->AbsensiModel->getAbsensiTahun($nip, $selectedYear); $data['absensiData'] = $this->fillAbsensiData($absensiData, $selectedYear); } else { $selectedYear = date('Y'); $absensiData = $this->AbsensiModel->getAbsensiTahun($nip, $selectedYear); $data['absensiData'] = $this->fillAbsensiData($absensiData, $selectedYear); } return view('index', $data); } else { // Jika pengguna belum login, arahkan ke halaman login return redirect()->to(base_url() . 'login'); } } private function fillAbsensiData($absensiData, $selectedYear) { $filledData = []; $months = [ 'Januari', 'Februari', 'Maret', 'April', 'Mei', 'Juni', 'Juli', 'Agustus', 'September', 'Oktober', 'November', 'Desember' ]; // Initialize filledData with zero values foreach ($months as $index => $month) { $filledData[] = [ 'bulan' => $month, 'sakit' => 0, 'ijin' => 0, 'alpa' => 0, 'cuti' => 0, 'total_kehadiran' => 0 ]; } // Fill the data from database foreach ($absensiData as $data) { $monthIndex = intval($data->bulan) - 1; // Assuming $data->bulan is 1-12 $filledData[$monthIndex] = [ 'bulan' => $months[$monthIndex], 'sakit' => $data->sakit ?? 0, 'ijin' => $data->ijin ?? 0, 'alpa' => $data->alpa ?? 0, 'cuti' => $data->cuti ?? 0, 'total_kehadiran' => $data->total_kehadiran ?? 0 ]; } return $filledData; } }