PenilaianModel = new ModelPenilaian(); $this->DetailPenilaianModel = new ModelDetailPenilaian(); $this->GuruModel = new ModelGuru(); $this->KriteriaModel = new ModelKriteria(); $this->EvaluasiModel = new ModelEvaluasi(); $this->AbsensiModel = new ModelAbsensi(); } public function index() { $bulan_selected = $this->request->getPost('bulan'); $tahun_selected = $this->request->getPost('tahun'); if (session()->has('nip') && session()->has('username')) { $data = array( 'body' => 'Evaluasi/list', 'username' => session('username'), 'nama' => session('nama'), 'hak_akses' => session('hak_akses'), 'nip' => session('nip'), 'bulan_selected' => $bulan_selected, 'tahun_selected' => $tahun_selected, 'evalBelum' => $this->EvaluasiModel->getEvaluasiBelum(), ); if ($bulan_selected !== null || $tahun_selected !== null) { // Jika kategori dipilih, ambil data penilaian sesuai kategori $data['evalSudah'] = $this->EvaluasiModel->getEvaluasiSudah($bulan_selected, $tahun_selected); } else { $bulan_selected = date('m'); $tahun_selected = date('Y'); // Jika kategori tidak dipilih, inisialisasi $perhitungan dengan array kosong $data['evalSudah'] = $this->EvaluasiModel->getEvaluasiSudah($bulan_selected, $tahun_selected); } return view('index', $data); } else { // Jika pengguna belum login, arahkan ke halaman login return redirect()->to(base_url() . 'login'); } } public function input($id) { if (session()->has('nip') && session()->has('username')) { $data = array( 'body' => 'Evaluasi/input', 'username' => session('username'), 'nama' => session('nama'), 'nip' => session('nip'), 'hak_akses' => session('hak_akses'), 'kriteria' => $this->KriteriaModel->getKriteria(), 'data' => $this->EvaluasiModel->getById($id)->getRow(), ); return view('index', $data); } else { // Jika pengguna belum login, arahkan ke halaman login return redirect()->to(base_url() . 'login'); } } public function insert($id) { $data = $this->DetailPenilaianModel->update($id, [ 'is_eval' => 1, ]); if ($data == true) { $data = array( 'id_detailpenilaian' => $id, 'keterangan' => $this->request->getPost('keterangan'), ); if ($this->EvaluasiModel->insert_eval($data)) { session()->setFlashdata('success', 'Evaluasi Berhasil'); return redirect()->to(base_url() . 'evaluasi/list'); } else { session()->setFlashdata('error', 'Evaluasi Gagal!'); return redirect()->to(base_url() . 'evaluasi/input'); } } else { return redirect()->to(base_url() . 'evaluasi/input')->with('error', 'Evaluasi Gagal'); } } public function edit($id) { if (session()->has('nip') && session()->has('username')) { $data = array( 'body' => 'Evaluasi/edit', 'username' => session('username'), 'nama' => session('nama'), 'nip' => session('nip'), 'hak_akses' => session('hak_akses'), 'kriteria' => $this->KriteriaModel->getKriteria(), 'data' => $this->EvaluasiModel->getById2($id)->getRow(), ); return view('index', $data); } else { // Jika pengguna belum login, arahkan ke halaman login return redirect()->to(base_url() . 'login'); } } public function update($id) { $data = $this->EvaluasiModel->update($id, [ 'keterangan' => $this->request->getVar('keterangan'), ]); if ($data == true) { return redirect()->to(base_url() . 'evaluasi/list')->with('success', 'Data Berhasil Diubah!'); } else { return redirect()->to(base_url() . 'evaluasi/edit')->with('error', 'Data Gagal Diubah!'); } } public function delete($id) { $this->EvaluasiModel->delete($id); return redirect()->to(base_url() . 'evaluasi/list')->with('success', 'Data Berhasil Dihapus!'); } public function indexCetak() { return view('Penilaian/cetak'); } public function cetakRapor($id) { $data['data'] = $this->EvaluasiModel->getById2($id)->getRow(); if ($data['data']) { $nip = $data['data']->nip; // Ambil data absensi 3 bulan terakhir $modelAbsensi = new ModelAbsensi(); $bulanSekarang = $data['data']->bulan; // Bulan sekarang (1-12) $tahunSekarang = $data['data']->tahun; // Tahun sekarang $rekapAbsensi = $modelAbsensi->getRekapAbsensi($bulanSekarang, $tahunSekarang, $nip); $data['rekap_absensi'] = $rekapAbsensi; // Mulai pembuatan PDF $dompdf = new Dompdf(); $options = new Options(); $dompdf->set_option('isRemoteEnabled', true); // Muat HTML ke Dompdf $dompdf->loadHtml(view('Evaluasi/cetak', $data)); // Atur ukuran dan orientasi halaman (opsional) $dompdf->setPaper('A4', 'portrait'); // Render PDF $dompdf->render(); // Output PDF ke browser atau simpan di server $dompdf->stream("output.pdf", ["Attachment" => false]); // Jika ingin menyimpan PDF ke server, gunakan: // $pdfOutput = $dompdf->output(); // file_put_contents('path/to/save/output.pdf', $pdfOutput); } else { // Handle jika data tidak ditemukan return redirect()->to(base_url() . 'error'); } } }