189 lines
6.5 KiB
PHP
189 lines
6.5 KiB
PHP
<?php
|
|
|
|
namespace App\Controllers;
|
|
|
|
use Dompdf\Dompdf;
|
|
use Dompdf\Options;
|
|
use App\Models\ModelPenilaian;
|
|
use App\Models\ModelDetailPenilaian;
|
|
use App\Models\ModelGuru;
|
|
use App\Models\ModelKriteria;
|
|
use App\Models\ModelEvaluasi;
|
|
use App\Models\ModelAbsensi;
|
|
|
|
class Evaluasi extends BaseController
|
|
{
|
|
protected $PenilaianModel;
|
|
protected $DetailPenilaianModel;
|
|
protected $GuruModel;
|
|
protected $KriteriaModel;
|
|
protected $EvaluasiModel;
|
|
protected $AbsensiModel;
|
|
|
|
function __construct()
|
|
{
|
|
$this->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');
|
|
}
|
|
}
|
|
}
|