/* application\controllers\admin\perencanaan.php */
template->set('activemenu', $this->activemenu);
$this->load->library('custom_fuction');
$admin_group = array(1,2,3,5,6);
hak_akses($admin_group);
}
public function pengetahuan(){
$pilih_rombel = ' Tambah Data';
$this->template->title('Administrator Panel')
->set_layout($this->admin_tpl)
->set('page_title', 'Perencanaan Penilaian Pengetahuan')
->set('pilih_rombel', $pilih_rombel)
->build($this->admin_folder.'/perencanaan/list_rencana');
}
public function add_pengetahuan(){
$data['ajarans'] = Ajaran::all();
$loggeduser = $this->ion_auth->user()->row();
if($loggeduser->data_guru_id){
$data_mapel = Kurikulum::find('all', array('conditions' => "guru_id = $loggeduser->data_guru_id", 'group' => 'rombel_id','order'=>'rombel_id ASC'));
foreach($data_mapel as $datamapel){
$rombel_id[] = $datamapel->rombel_id;
}
$data['rombels'] = Datarombel::find('all', array('conditions' => array('id IN (?)', $rombel_id)));
} else {
$data['rombels'] = Datarombel::all();
}
$data['kelas'] = Datarombel::find('all', array('group' => 'tingkat','order'=>'tingkat ASC'));
$this->template->title('Administrator Panel')
->set_layout($this->admin_tpl)
->set('form_action', 'admin/perencanaan/simpan_perencanaan')
->set('page_title', 'Perencanaan Penilaian Pengetahuan')
->set('query', 'kd')
->set('kompetensi_id', 1)
->build($this->admin_folder.'/perencanaan/add_perencanaan',$data);
}
public function keterampilan(){
$pilih_rombel = ' Tambah Data';
$this->template->title('Administrator Panel')
->set_layout($this->admin_tpl)
->set('page_title', 'Perencanaan Penilaian Keterampilan')
->set('pilih_rombel', $pilih_rombel)
->build($this->admin_folder.'/perencanaan/list_rencana');
}
public function add_keterampilan(){
$data['ajarans'] = Ajaran::all();
$loggeduser = $this->ion_auth->user()->row();
if($loggeduser->data_guru_id){
$data_mapel = Kurikulum::find('all', array('conditions' => "guru_id = $loggeduser->data_guru_id", 'group' => 'rombel_id','order'=>'rombel_id ASC'));
foreach($data_mapel as $datamapel){
$rombel_id[] = $datamapel->rombel_id;
}
$data['rombels'] = Datarombel::find('all', array('conditions' => array('id IN (?)', $rombel_id)));
} else {
$data['rombels'] = Datarombel::all();
}
$data['kelas'] = Datarombel::find('all', array('group' => 'tingkat','order'=>'tingkat ASC'));
$this->template->title('Administrator Panel')
->set_layout($this->admin_tpl)
->set('form_action', 'admin/perencanaan/simpan_perencanaan')
->set('page_title', 'Perencanaan Penilaian Keterampilan')
->set('query', 'kd')
->set('kompetensi_id', 2)
->build($this->admin_folder.'/perencanaan/add_perencanaan',$data);
}
public function simpan_perencanaan(){
if($_POST){
//test($_POST);
//die();
$kompetensi_id = $_POST['kompetensi_id'];
$ajaran_id = $_POST['ajaran_id'];
$rombel_id = $_POST['rombel_id'];
$id_mapel = $_POST['id_mapel'];
$nama_penilaian = $_POST['nama_penilaian'];
$bentuk_penilaian = $_POST['bentuk_penilaian'];
$bobot_penilaian = isset($_POST['bobot_penilaian']) ? $_POST['bobot_penilaian'] : '';
$keterangan_penilaian = $_POST['keterangan_penilaian'];
$bobot_penilaian_result = 1;
if($kompetensi_id == 1){
$redirect = 'pengetahuan';
} else {
$redirect = 'keterampilan';
}
for ($i = 1; $i <= count($nama_penilaian); $i++) {
$kd[] = isset($_POST['kd_'.$i]) ? $_POST['kd_'.$i] : '';
$kd_id[] = isset($_POST['kd_id_'.$i]) ? $_POST['kd_id_'.$i] : '';
}
$rencana = new Rencana();
$rencana->ajaran_id = $ajaran_id;
$rencana->id_mapel = $id_mapel;
$rencana->rombel_id = $rombel_id;
$rencana->kompetensi_id = $kompetensi_id;
$rencana->save();
foreach($kd as $k=>$v){
if($bobot_penilaian){
if($bobot_penilaian[$k] != 0 || $bobot_penilaian[$k] != ''){
$bobot_penilaian_result = $bobot_penilaian[$k];
}
} else {
$bobot_penilaian_result = '0';
}
if(is_array($v)){
foreach($v as $ks=>$vs){
$get_post_kd = explode("|", $vs);
$id_kompetensi = $get_post_kd[0];
$id_kd = $get_post_kd[1];
$new_rencana_penilaian = new Rencanapenilaian();
$new_rencana_penilaian->rencana_id = $rencana->id;
$new_rencana_penilaian->kompetensi_id = $kompetensi_id;
$new_rencana_penilaian->nama_penilaian = $nama_penilaian[$k];
$new_rencana_penilaian->bentuk_penilaian= $bentuk_penilaian[$k];
$new_rencana_penilaian->bobot_penilaian = $bobot_penilaian_result;
$new_rencana_penilaian->keterangan_penilaian = $keterangan_penilaian[$k];
$new_rencana_penilaian->kd_id = $id_kd;
$new_rencana_penilaian->kd = $id_kompetensi;
$new_rencana_penilaian->save();
}
}
}
$this->session->set_flashdata('success', 'Berhasil menambah rencana penilaian '.$redirect);
redirect('admin/perencanaan/'.$redirect);
}
}
public function update_perencanaan(){
if($_POST){
$rencana_id = $_POST['rencana_id'];
$kompetensi_id = $_POST['kompetensi_id'];
$ajaran_id = $_POST['ajaran_id'];
$rombel_id = $_POST['rombel_id'];
$id_mapel = $_POST['id_mapel'];
$nama_penilaian = $_POST['nama_penilaian'];
$bentuk_penilaian = $_POST['bentuk_penilaian'];
$bobot_penilaian = $_POST['bobot_penilaian'];
// debug_var($_POST); exit;
$bobot_penilaian_result = 1;
if($kompetensi_id == 1){
$redirect = 'pengetahuan';
} else {
$redirect = 'keterampilan';
}
for ($i = 1; $i <= count($nama_penilaian); $i++) {
$kd[] = isset($_POST['kd_'.$i]) ? $_POST['kd_'.$i] : '';
$kd_id[] = isset($_POST['kd_id_'.$i]) ? $_POST['kd_id_'.$i] : '';
}
$rencana = Rencana::find($rencana_id);
if($rencana){
foreach($kd as $k=>$v){
if(is_array($v)){
foreach($v as $ks=>$vs){
$get_post_kd = explode("|", $vs);
$id_kompetensi = $get_post_kd[0];
$id_kd = $get_post_kd[1];
$rencana_penilaian = Rencanapenilaian::find_all_by_rencana_id_and_nama_penilaian_and_kompetensi_id_and_kd_id($rencana->id,$nama_penilaian[$k],$kompetensi_id,$id_kd);
if($rencana_penilaian){
if($bobot_penilaian[$k] != 0 || $bobot_penilaian[$k] != ''){
$bobot_penilaian_result = $bobot_penilaian[$k];
}
foreach($rencana_penilaian as $rp){
$id_rp[] = $rp->id;
$rp->update_attributes(
array(
'nama_penilaian' => $nama_penilaian[$k],
'bentuk_penilaian' => $bentuk_penilaian[$k],
'bobot_penilaian' => $bobot_penilaian_result,
'kd_id' => $id_kd,
'kd' => $id_kompetensi
)
);
}
} else {
$new_rencana_penilaian = new Rencanapenilaian();
$new_rencana_penilaian->rencana_id = $rencana->id;
$new_rencana_penilaian->kompetensi_id = $kompetensi_id;
$new_rencana_penilaian->nama_penilaian = $nama_penilaian[$k];
$new_rencana_penilaian->bentuk_penilaian= $bentuk_penilaian[$k];
$new_rencana_penilaian->bobot_penilaian = $bobot_penilaian[$k];
$new_rencana_penilaian->kd_id = $id_kd;
$new_rencana_penilaian->kd = $id_kompetensi;
$new_rencana_penilaian->save();
$new_rp[] = $new_rencana_penilaian->id;
}
}
}
}
if(isset($id_rp)){
if(isset($new_rp)){
$id_rp = array_merge($id_rp,$new_rp);
}
$del_rp = Rencanapenilaian::find('all', array('conditions' => array('rencana_id = ? AND id not in(?)',$rencana->id,$id_rp)));
foreach($del_rp as $drp){
$drp->delete();
}
}
} else {
//echo $ajaran_id.'=>'.$rombel_id.'=>'.$id_mapel.'=>no_4
';
$rencana = new Rencana();
$rencana->ajaran_id = $ajaran_id;
$rencana->id_mapel = $id_mapel;
$rencana->rombel_id = $rombel_id;
$rencana->kompetensi_id = $kompetensi_id;
$rencana->save();
foreach($kd as $k=>$v){
if($bobot_penilaian[$k] != 0 || $bobot_penilaian[$k] != ''){
$bobot_penilaian_result = $bobot_penilaian[$k];
}
if(is_array($v)){
foreach($v as $ks=>$vs){
$get_post_kd = explode("|", $vs);
$id_kompetensi = $get_post_kd[0];
$id_kd = $get_post_kd[1];
$new_rencana_penilaian = new Rencanapenilaian();
$new_rencana_penilaian->rencana_id = $rencana->id;
$new_rencana_penilaian->kompetensi_id = $kompetensi_id;
$new_rencana_penilaian->nama_penilaian = $nama_penilaian[$k];
$new_rencana_penilaian->bentuk_penilaian= $bentuk_penilaian[$k];
$new_rencana_penilaian->bobot_penilaian = $bobot_penilaian_result;
$new_rencana_penilaian->kd_id = $id_kd;
$new_rencana_penilaian->kd = $id_kompetensi;
$new_rencana_penilaian->save();
//print_r($kd);
}
}
}
}
$this->session->set_flashdata('success', 'Berhasil mengupdate rencana penilaian '.$redirect);
redirect('admin/perencanaan/'.$redirect);
}
}
public function list_pengetahuan($jurusan = NULL, $tingkat = NULL, $rombel = NULL){
$loggeduser = $this->ion_auth->user()->row();
$user_groups = $this->ion_auth->get_users_groups($loggeduser->id)->result();
foreach($user_groups as $user_group){
$nama_group[] = $user_group->name;
}
$search = "";
$start = 0;
$rows = 25;
$ajaran = get_ta();
// get search value (if any)
if (isset($_GET['sSearch']) && $_GET['sSearch'] != "" ) {
$search = $_GET['sSearch'];
}
// limit
$start = $this->custom_fuction->get_start();
$rows = $this->custom_fuction->get_rows();
$join_rombel = '';
$join_mapel = '';
$id_rombel = '';
$id_mapel = '';
if($loggeduser->data_guru_id && !in_array('waka',$nama_group)) { // guru, tapi bukan waka
// mengambil data mengajar berdasarkan ID Guru yg logged in
$data_mapel = Kurikulum::find('all', array('conditions' => "guru_id = $loggeduser->data_guru_id", 'order'=>'rombel_id ASC'));
foreach($data_mapel as $datamapel){
//$get_id_rombel[$datamapel->rombel_id] = $datamapel->rombel_id; // memasukkan ID rombel yg diajar ke dalam array
//$get_id_mapel[$datamapel->id_mapel] = $datamapel->id_mapel; // memasukkan ID mapel yg diajar ke dalam array
$get_id_rombel[] = $datamapel->rombel_id; // memasukkan ID rombel yg diajar ke dalam array
$get_id_mapel[] = $datamapel->id_mapel; // memasukkan ID mapel yg diajar ke dalam array
}
if(isset($get_id_rombel)){
$id_rombel = array_unique($get_id_rombel);
$id_rombel = implode(",", $id_rombel);
} else {
$id_rombel = '';
}
if(isset($get_id_mapel)){
$id_mapel = array_unique($get_id_mapel);
$id_mapel = "'" . implode("','", $id_mapel) . "'";//implode(",", $id_mapel);
} else {
$id_mapel = '';
}
$join_rombel = "AND a.id IN ($id_rombel)";
$join_mapel = "AND b.id_mapel IN ($id_mapel)";
}
if($jurusan && $tingkat == NULL && $rombel == NULL){
$join = "INNER JOIN data_rombels a ON(rencanas.rombel_id = a.id AND a.kurikulum_id = $jurusan $join_rombel)";
$join .= "INNER JOIN kurikulums b ON(rencanas.id_mapel = b.id_mapel $join_mapel AND rencanas.rombel_id = b.rombel_id)"; // HW: fix mismatched teacher name
$sel = 'rencanas.*, b.guru_id AS guru_id';
}elseif($jurusan && $tingkat && $rombel == NULL){
$join = "INNER JOIN data_rombels a ON(rencanas.rombel_id = a.id AND a.kurikulum_id = $jurusan AND a.tingkat = $tingkat $join_rombel)";
$join .= "INNER JOIN kurikulums b ON(rencanas.id_mapel = b.id_mapel $join_mapel AND rencanas.rombel_id = b.rombel_id)"; // HW: fix mismatched teacher name
$sel = 'rencanas.*, b.guru_id AS guru_id';
} elseif($jurusan && $tingkat && $rombel){
$join = "INNER JOIN data_rombels a ON(rencanas.rombel_id = a.id AND a.kurikulum_id = $jurusan AND a.tingkat = $tingkat AND a.id = $rombel $join_rombel)";
$join .= "INNER JOIN kurikulums b ON(rencanas.id_mapel = b.id_mapel AND b.id_mapel IN ($id_mapel) AND rencanas.rombel_id = b.rombel_id)"; // HW: fix mismatched teacher name
$sel = 'rencanas.*, b.guru_id AS guru_id';
} else {
$join = "INNER JOIN data_rombels a ON(rencanas.rombel_id = a.id $join_rombel)";
$join .= "INNER JOIN kurikulums b ON(rencanas.id_mapel = b.id_mapel AND rencanas.rombel_id = b.rombel_id)"; // HW: fix mismatched teacher name
$sel = 'rencanas.*, b.guru_id AS guru_id';
}
$query = Rencana::find('all', array('include'=>array('rencanapenilaian'), 'conditions' => "b.guru_id = $loggeduser->data_guru_id AND b.ajaran_id = $ajaran->id AND kompetensi_id = 1 AND (b.id_mapel LIKE '%$search%' OR b.rombel_id LIKE '%$search%')",'limit' => $rows, 'offset' => $start,'order'=>'b.id_mapel ASC, id DESC', 'joins'=> $join, 'select'=>$sel, 'group'=> 'id'));
$filter = Rencana::find('all', array('conditions' => "b.guru_id = $loggeduser->data_guru_id AND b.ajaran_id = $ajaran->id AND kompetensi_id = 1 AND (b.id_mapel LIKE '%$search%' OR b.rombel_id LIKE '%$search%')",'order'=>'b.id_mapel ASC, id DESC', 'joins'=> $join, 'group'=> 'id'));
$iFilteredTotal = count($query);
$iTotal=count($filter);
$output = array(
"sEcho" => intval($_GET['sEcho']),
"iTotalRecords" => $iTotal,
"iTotalDisplayRecords" => $iTotal,
"aaData" => array()
);
// get result after running query and put it in array
$i=$start;
foreach ($query as $temp) {
$ajaran = Ajaran::find($temp->ajaran_id);
$rencana_penilaian_group = Rencanapenilaian::find('all', array('conditions' => "rencana_id = $temp->id",'group' => 'nama_penilaian','order'=>'bentuk_penilaian ASC'));
foreach($rencana_penilaian_group as $rpg){
$rpg_id[] = $rpg->id;
}
if(isset($rpg_id)){
$rpg_id_result = implode(',',$rpg_id);
} else {
$rpg_id_result = 0;
}
$nilai = Nilai::find('all', array('conditions' => "rencana_penilaian_id IN ($rpg_id_result)", 'limit'=>1));
if(!in_array('waka',$nama_group)){ //murni guru
$admin_akses = '