84 lines
2.7 KiB
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;
|
|
}
|
|
}
|