MIF_E31211958/app/Controllers/Home.php

84 lines
2.7 KiB
PHP

<?php
namespace App\Controllers;
use App\Models\ModelAbsensi;
use App\Models\ModelEvaluasi;
class Home extends BaseController
{
protected $AbsensiModel;
protected $EvaluasiModel;
function __construct()
{
$this->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;
}
}