MIF_E31211958/app/Models/ModelPenilaian.php

82 lines
2.3 KiB
PHP

<?php
namespace App\Models;
use CodeIgniter\Model;
use Codeigniter\HTTP\RequestInterface;
class ModelPenilaian extends Model
{
protected $db;
protected $request;
public function __construct()
{
$this->db = \Config\Database::connect();
$this->request = \Config\Services::request();
}
protected $table = 'penilaian';
protected $primaryKey = 'id_penilaian';
protected $returnType = 'object';
protected $allowedFields = ['id_penilaian', 'bulan', 'tahun'];
public function getKategori()
{
return $this->get()->getResult();
}
public function getPenilaian($bulan_selected = null, $tahun_selected = null)
{
$builder = $this->db->table('penilaian')
->join('detail_penilaian', 'detail_penilaian.id_penilaian = penilaian.id_penilaian')
->join('guru', 'guru.nip = detail_penilaian.nip');
if (!empty($bulan_selected)) {
$builder->where('penilaian.bulan', $bulan_selected);
}
if (!empty($tahun_selected)) {
$builder->where('penilaian.tahun', $tahun_selected);
}
return $builder->get()->getResult();
}
public function getRanking($bulan_selected = null, $tahun_selected = null)
{
$builder = $this->db->table('penilaian')
->join('detail_penilaian', 'detail_penilaian.id_penilaian = penilaian.id_penilaian')
->join('guru', 'guru.nip = detail_penilaian.nip');
if (!empty($bulan_selected)) {
$builder->where('penilaian.bulan', $bulan_selected);
}
if (!empty($tahun_selected)) {
$builder->where('penilaian.tahun', $tahun_selected);
}
// Menambahkan orderBy untuk mengurutkan berdasarkan nilai tertinggi
$builder->orderBy('detail_penilaian.hasil', 'DESC');
return $builder->get()->getResult();
}
public function insert_penilaian($data)
{
return $this->db->table($this->table)->insert($data);
}
public function getById($id)
{
return $this->where(['id_penilaian' => $id])->get();
}
// public function getDistinctKategori()
// {
// $result = $this->db->table('penilaian')->distinct()->select('kategori, id_penilaian')->get()->getResultArray();
// return $result;
// }
}