Advertisement
gurumutant

Perbaikan list Perencanaan Penilaian eRapor DitPSMK

Dec 27th, 2016
329
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 28.55 KB | None | 0 0
  1. /* application\controllers\admin\perencanaan.php */
  2. <?php defined('BASEPATH') OR exit('No direct script access allowed');
  3. class Perencanaan extends Backend_Controller {
  4.     protected $activemenu = 'perencanaan';
  5.     public function __construct() {
  6.         parent::__construct();
  7.         $this->template->set('activemenu', $this->activemenu);
  8.         $this->load->library('custom_fuction');
  9.         $admin_group = array(1,2,3,5,6);
  10.         hak_akses($admin_group);
  11.     }
  12.     public function pengetahuan(){
  13.         $pilih_rombel = '<a href="'.site_url('admin/perencanaan/add_pengetahuan').'" class="btn btn-success" style="float:right;"><i class="fa fa-plus-circle"></i> Tambah Data</a>';
  14.         $this->template->title('Administrator Panel')
  15.         ->set_layout($this->admin_tpl)
  16.         ->set('page_title', 'Perencanaan Penilaian Pengetahuan')
  17.         ->set('pilih_rombel', $pilih_rombel)
  18.         ->build($this->admin_folder.'/perencanaan/list_rencana');
  19.     }
  20.     public function add_pengetahuan(){
  21.         $data['ajarans'] = Ajaran::all();
  22.         $loggeduser = $this->ion_auth->user()->row();
  23.         if($loggeduser->data_guru_id){
  24.             $data_mapel = Kurikulum::find('all', array('conditions' => "guru_id = $loggeduser->data_guru_id", 'group' => 'rombel_id','order'=>'rombel_id ASC'));
  25.             foreach($data_mapel as $datamapel){
  26.                 $rombel_id[] = $datamapel->rombel_id;
  27.             }
  28.             $data['rombels'] = Datarombel::find('all', array('conditions' => array('id IN (?)', $rombel_id)));
  29.         } else {
  30.             $data['rombels'] = Datarombel::all();
  31.         }
  32.         $data['kelas'] = Datarombel::find('all', array('group' => 'tingkat','order'=>'tingkat ASC'));
  33.         $this->template->title('Administrator Panel')
  34.         ->set_layout($this->admin_tpl)
  35.         ->set('form_action', 'admin/perencanaan/simpan_perencanaan')
  36.         ->set('page_title', 'Perencanaan Penilaian Pengetahuan')
  37.         ->set('query', 'kd')
  38.         ->set('kompetensi_id', 1)
  39.         ->build($this->admin_folder.'/perencanaan/add_perencanaan',$data);
  40.     }
  41.     public function keterampilan(){
  42.         $pilih_rombel = '<a href="'.site_url('admin/perencanaan/add_keterampilan').'" class="btn btn-success" style="float:right;"><i class="fa fa-plus-circle"></i> Tambah Data</a>';
  43.         $this->template->title('Administrator Panel')
  44.         ->set_layout($this->admin_tpl)
  45.         ->set('page_title', 'Perencanaan Penilaian Keterampilan')
  46.         ->set('pilih_rombel', $pilih_rombel)
  47.         ->build($this->admin_folder.'/perencanaan/list_rencana');
  48.     }
  49.     public function add_keterampilan(){
  50.         $data['ajarans'] = Ajaran::all();
  51.         $loggeduser = $this->ion_auth->user()->row();
  52.         if($loggeduser->data_guru_id){
  53.             $data_mapel = Kurikulum::find('all', array('conditions' => "guru_id = $loggeduser->data_guru_id", 'group' => 'rombel_id','order'=>'rombel_id ASC'));
  54.             foreach($data_mapel as $datamapel){
  55.                 $rombel_id[] = $datamapel->rombel_id;
  56.             }
  57.             $data['rombels'] = Datarombel::find('all', array('conditions' => array('id IN (?)', $rombel_id)));
  58.         } else {
  59.             $data['rombels'] = Datarombel::all();
  60.         }
  61.         $data['kelas'] = Datarombel::find('all', array('group' => 'tingkat','order'=>'tingkat ASC'));
  62.         $this->template->title('Administrator Panel')
  63.         ->set_layout($this->admin_tpl)
  64.         ->set('form_action', 'admin/perencanaan/simpan_perencanaan')
  65.         ->set('page_title', 'Perencanaan Penilaian Keterampilan')
  66.         ->set('query', 'kd')
  67.         ->set('kompetensi_id', 2)
  68.         ->build($this->admin_folder.'/perencanaan/add_perencanaan',$data);
  69.     }
  70.     public function simpan_perencanaan(){
  71.         if($_POST){
  72.             //test($_POST);
  73.             //die();
  74.             $kompetensi_id      = $_POST['kompetensi_id'];
  75.             $ajaran_id          = $_POST['ajaran_id'];
  76.             $rombel_id          = $_POST['rombel_id'];
  77.             $id_mapel           = $_POST['id_mapel'];
  78.             $nama_penilaian     = $_POST['nama_penilaian'];
  79.             $bentuk_penilaian   = $_POST['bentuk_penilaian'];
  80.             $bobot_penilaian    = isset($_POST['bobot_penilaian']) ? $_POST['bobot_penilaian'] : '';
  81.             $keterangan_penilaian   = $_POST['keterangan_penilaian'];
  82.             $bobot_penilaian_result = 1;
  83.             if($kompetensi_id == 1){
  84.                 $redirect = 'pengetahuan';
  85.             } else {
  86.                 $redirect = 'keterampilan';
  87.             }
  88.             for ($i = 1; $i <= count($nama_penilaian); $i++) {
  89.                 $kd[]       = isset($_POST['kd_'.$i]) ? $_POST['kd_'.$i] : '';
  90.                 $kd_id[]    = isset($_POST['kd_id_'.$i]) ? $_POST['kd_id_'.$i] : '';
  91.             }
  92.             $rencana = new Rencana();
  93.             $rencana->ajaran_id         = $ajaran_id;
  94.             $rencana->id_mapel          = $id_mapel;
  95.             $rencana->rombel_id         = $rombel_id;
  96.             $rencana->kompetensi_id     = $kompetensi_id;
  97.             $rencana->save();
  98.             foreach($kd as $k=>$v){
  99.                 if($bobot_penilaian){
  100.                     if($bobot_penilaian[$k] != 0 || $bobot_penilaian[$k] != ''){
  101.                         $bobot_penilaian_result = $bobot_penilaian[$k];
  102.                     }
  103.                 } else {
  104.                     $bobot_penilaian_result = '0';
  105.                 }
  106.                 if(is_array($v)){
  107.                     foreach($v as $ks=>$vs){
  108.                         $get_post_kd = explode("|", $vs);
  109.                         $id_kompetensi = $get_post_kd[0];
  110.                         $id_kd = $get_post_kd[1];
  111.                         $new_rencana_penilaian                  = new Rencanapenilaian();
  112.                         $new_rencana_penilaian->rencana_id      = $rencana->id;
  113.                         $new_rencana_penilaian->kompetensi_id   = $kompetensi_id;
  114.                         $new_rencana_penilaian->nama_penilaian  = $nama_penilaian[$k];
  115.                         $new_rencana_penilaian->bentuk_penilaian= $bentuk_penilaian[$k];
  116.                         $new_rencana_penilaian->bobot_penilaian = $bobot_penilaian_result;
  117.                         $new_rencana_penilaian->keterangan_penilaian    = $keterangan_penilaian[$k];
  118.                         $new_rencana_penilaian->kd_id           = $id_kd;
  119.                         $new_rencana_penilaian->kd              = $id_kompetensi;
  120.                         $new_rencana_penilaian->save();
  121.                     }
  122.                 }
  123.             }
  124.             $this->session->set_flashdata('success', 'Berhasil menambah rencana penilaian '.$redirect);
  125.             redirect('admin/perencanaan/'.$redirect);
  126.         }
  127.     }
  128.     public function update_perencanaan(){
  129.         if($_POST){
  130.             $rencana_id         = $_POST['rencana_id'];
  131.             $kompetensi_id      = $_POST['kompetensi_id'];
  132.             $ajaran_id          = $_POST['ajaran_id'];
  133.             $rombel_id          = $_POST['rombel_id'];
  134.             $id_mapel           = $_POST['id_mapel'];
  135.             $nama_penilaian     = $_POST['nama_penilaian'];
  136.             $bentuk_penilaian   = $_POST['bentuk_penilaian'];
  137.             $bobot_penilaian    = $_POST['bobot_penilaian'];
  138.             // debug_var($_POST); exit;
  139.             $bobot_penilaian_result = 1;
  140.             if($kompetensi_id == 1){
  141.                 $redirect = 'pengetahuan';
  142.             } else {
  143.                 $redirect = 'keterampilan';
  144.             }
  145.             for ($i = 1; $i <= count($nama_penilaian); $i++) {
  146.                 $kd[]       = isset($_POST['kd_'.$i]) ? $_POST['kd_'.$i] : '';
  147.                 $kd_id[]    = isset($_POST['kd_id_'.$i]) ? $_POST['kd_id_'.$i] : '';
  148.             }
  149.             $rencana            = Rencana::find($rencana_id);
  150.             if($rencana){
  151.                 foreach($kd as $k=>$v){
  152.                     if(is_array($v)){
  153.                         foreach($v as $ks=>$vs){
  154.                             $get_post_kd = explode("|", $vs);
  155.                             $id_kompetensi = $get_post_kd[0];
  156.                             $id_kd = $get_post_kd[1];
  157.                             $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);
  158.                             if($rencana_penilaian){
  159.                                 if($bobot_penilaian[$k] != 0 || $bobot_penilaian[$k] != ''){
  160.                                     $bobot_penilaian_result = $bobot_penilaian[$k];
  161.                                 }
  162.                                 foreach($rencana_penilaian as $rp){
  163.                                     $id_rp[] = $rp->id;
  164.                                     $rp->update_attributes(
  165.                                         array(
  166.                                                 'nama_penilaian' => $nama_penilaian[$k],
  167.                                                 'bentuk_penilaian' => $bentuk_penilaian[$k],
  168.                                                 'bobot_penilaian' => $bobot_penilaian_result,
  169.                                                 'kd_id' => $id_kd,
  170.                                                 'kd' => $id_kompetensi
  171.                                                 )
  172.                                         );
  173.                                 }
  174.                             } else {
  175.                                 $new_rencana_penilaian                  = new Rencanapenilaian();
  176.                                 $new_rencana_penilaian->rencana_id      = $rencana->id;
  177.                                 $new_rencana_penilaian->kompetensi_id   = $kompetensi_id;
  178.                                 $new_rencana_penilaian->nama_penilaian  = $nama_penilaian[$k];
  179.                                 $new_rencana_penilaian->bentuk_penilaian= $bentuk_penilaian[$k];
  180.                                 $new_rencana_penilaian->bobot_penilaian = $bobot_penilaian[$k];
  181.                                 $new_rencana_penilaian->kd_id           = $id_kd;
  182.                                 $new_rencana_penilaian->kd              = $id_kompetensi;
  183.                                 $new_rencana_penilaian->save();
  184.                                 $new_rp[] = $new_rencana_penilaian->id;
  185.                             }
  186.                         }
  187.                     }
  188.                 }
  189.                 if(isset($id_rp)){
  190.                     if(isset($new_rp)){
  191.                         $id_rp = array_merge($id_rp,$new_rp);
  192.                     }
  193.                     $del_rp = Rencanapenilaian::find('all', array('conditions' => array('rencana_id = ? AND id not in(?)',$rencana->id,$id_rp)));
  194.                     foreach($del_rp as $drp){
  195.                         $drp->delete();
  196.                     }
  197.                 }
  198.             } else {
  199.                 //echo $ajaran_id.'=>'.$rombel_id.'=>'.$id_mapel.'=>no_4<br />';
  200.                 $rencana = new Rencana();
  201.                 $rencana->ajaran_id         = $ajaran_id;
  202.                 $rencana->id_mapel          = $id_mapel;
  203.                 $rencana->rombel_id         = $rombel_id;
  204.                 $rencana->kompetensi_id     = $kompetensi_id;
  205.                 $rencana->save();
  206.                 foreach($kd as $k=>$v){
  207.                     if($bobot_penilaian[$k] != 0 || $bobot_penilaian[$k] != ''){
  208.                         $bobot_penilaian_result = $bobot_penilaian[$k];
  209.                     }
  210.                     if(is_array($v)){
  211.                         foreach($v as $ks=>$vs){
  212.                             $get_post_kd = explode("|", $vs);
  213.                             $id_kompetensi = $get_post_kd[0];
  214.                             $id_kd = $get_post_kd[1];
  215.                             $new_rencana_penilaian                  = new Rencanapenilaian();
  216.                             $new_rencana_penilaian->rencana_id      = $rencana->id;
  217.                             $new_rencana_penilaian->kompetensi_id   = $kompetensi_id;
  218.                             $new_rencana_penilaian->nama_penilaian  = $nama_penilaian[$k];
  219.                             $new_rencana_penilaian->bentuk_penilaian= $bentuk_penilaian[$k];
  220.                             $new_rencana_penilaian->bobot_penilaian = $bobot_penilaian_result;
  221.                             $new_rencana_penilaian->kd_id           = $id_kd;
  222.                             $new_rencana_penilaian->kd              = $id_kompetensi;
  223.                             $new_rencana_penilaian->save();
  224.                             //print_r($kd);
  225.                         }
  226.                     }
  227.                 }
  228.  
  229.             }
  230.             $this->session->set_flashdata('success', 'Berhasil mengupdate rencana penilaian '.$redirect);
  231.             redirect('admin/perencanaan/'.$redirect);
  232.         }
  233.     }
  234.     public function list_pengetahuan($jurusan = NULL, $tingkat = NULL, $rombel = NULL){
  235.         $loggeduser = $this->ion_auth->user()->row();
  236.         $user_groups = $this->ion_auth->get_users_groups($loggeduser->id)->result();
  237.         foreach($user_groups as $user_group){
  238.             $nama_group[] = $user_group->name;
  239.         }
  240.         $search = "";
  241.         $start = 0;
  242.         $rows = 25;
  243.         $ajaran = get_ta();
  244.         // get search value (if any)
  245.         if (isset($_GET['sSearch']) && $_GET['sSearch'] != "" ) {
  246.             $search = $_GET['sSearch'];
  247.         }
  248.  
  249.         // limit
  250.         $start = $this->custom_fuction->get_start();
  251.         $rows = $this->custom_fuction->get_rows();
  252.         $join_rombel = '';
  253.         $join_mapel = '';
  254.         $id_rombel = '';
  255.         $id_mapel = '';
  256.         if($loggeduser->data_guru_id && !in_array('waka',$nama_group)) { // guru, tapi bukan waka
  257.             // mengambil data mengajar berdasarkan ID Guru yg logged in
  258.             $data_mapel = Kurikulum::find('all', array('conditions' => "guru_id = $loggeduser->data_guru_id", 'order'=>'rombel_id ASC'));
  259.             foreach($data_mapel as $datamapel){
  260.                 //$get_id_rombel[$datamapel->rombel_id] = $datamapel->rombel_id; // memasukkan ID rombel yg diajar ke dalam array
  261.                 //$get_id_mapel[$datamapel->id_mapel] = $datamapel->id_mapel; // memasukkan ID mapel yg diajar ke dalam array
  262.                 $get_id_rombel[] = $datamapel->rombel_id; // memasukkan ID rombel yg diajar ke dalam array
  263.                 $get_id_mapel[] = $datamapel->id_mapel; // memasukkan ID mapel yg diajar ke dalam array
  264.             }
  265.             if(isset($get_id_rombel)){
  266.                 $id_rombel = array_unique($get_id_rombel);
  267.                 $id_rombel = implode(",", $id_rombel);
  268.             } else {
  269.                 $id_rombel = '';
  270.             }
  271.             if(isset($get_id_mapel)){
  272.                 $id_mapel = array_unique($get_id_mapel);
  273.                 $id_mapel = "'" . implode("','", $id_mapel) . "'";//implode(",", $id_mapel);
  274.             } else {
  275.                 $id_mapel = '';
  276.             }
  277.         $join_rombel = "AND a.id IN ($id_rombel)";
  278.         $join_mapel = "AND b.id_mapel IN ($id_mapel)";
  279.         }
  280.         if($jurusan && $tingkat == NULL && $rombel == NULL){
  281.             $join = "INNER JOIN data_rombels a ON(rencanas.rombel_id = a.id AND a.kurikulum_id = $jurusan $join_rombel)";
  282.             $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
  283.             $sel = 'rencanas.*, b.guru_id AS guru_id';
  284.         }elseif($jurusan && $tingkat && $rombel == NULL){
  285.             $join = "INNER JOIN data_rombels a ON(rencanas.rombel_id = a.id AND a.kurikulum_id = $jurusan AND a.tingkat = $tingkat $join_rombel)";
  286.             $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
  287.             $sel = 'rencanas.*, b.guru_id AS guru_id';
  288.         } elseif($jurusan && $tingkat && $rombel){
  289.             $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)";
  290.             $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
  291.             $sel = 'rencanas.*, b.guru_id AS guru_id';
  292.         } else {
  293.             $join = "INNER JOIN data_rombels a ON(rencanas.rombel_id = a.id $join_rombel)";
  294.             $join .= "INNER JOIN kurikulums b ON(rencanas.id_mapel = b.id_mapel AND rencanas.rombel_id = b.rombel_id)"; // HW: fix mismatched teacher name
  295.             $sel = 'rencanas.*, b.guru_id AS guru_id';
  296.         }
  297.         $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'));
  298.         $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'));
  299.         $iFilteredTotal = count($query);
  300.        
  301.         $iTotal=count($filter);
  302.        
  303.         $output = array(
  304.             "sEcho" => intval($_GET['sEcho']),
  305.             "iTotalRecords" => $iTotal,
  306.             "iTotalDisplayRecords" => $iTotal,
  307.             "aaData" => array()
  308.         );
  309.  
  310.         // get result after running query and put it in array
  311.         $i=$start;
  312.         foreach ($query as $temp) {
  313.             $ajaran = Ajaran::find($temp->ajaran_id);
  314.             $rencana_penilaian_group = Rencanapenilaian::find('all', array('conditions' => "rencana_id = $temp->id",'group' => 'nama_penilaian','order'=>'bentuk_penilaian ASC'));
  315.             foreach($rencana_penilaian_group as $rpg){
  316.                 $rpg_id[] = $rpg->id;
  317.             }
  318.             if(isset($rpg_id)){
  319.                 $rpg_id_result = implode(',',$rpg_id);
  320.             } else {
  321.                 $rpg_id_result = 0;
  322.             }
  323.             $nilai = Nilai::find('all', array('conditions' => "rencana_penilaian_id IN ($rpg_id_result)", 'limit'=>1));
  324.             if(!in_array('waka',$nama_group)){ //murni guru
  325.                 $admin_akses = '<li><a href="'.site_url('admin/perencanaan/view/'.$temp->id).'" class="toggle-modal"><i class="fa fa-eye"></i> Detil</a></li>';
  326.                 if($nilai){
  327.                     $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/delete/'.$temp->id).'" class="confirm"><i class="fa fa-power-off"></i> Hapus</a></li>';
  328.                 } else {
  329.                     $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/edit/1/'.$temp->id).'"><i class="fa fa-pencil"></i> Edit</a></li>';
  330.                     $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/delete/'.$temp->id).'" class="confirm"><i class="fa fa-power-off"></i> Hapus</a></li>';
  331.                 }
  332.             } else { // guru plus waka
  333.                 $admin_akses = '<li><a href="'.site_url('admin/perencanaan/view/'.$temp->id).'" class="toggle-modal"><i class="fa fa-eye"></i> Detil</a></li>';
  334.                 if(get_nama_guru($loggeduser->data_guru_id) == get_nama_guru($temp->guru_id)){
  335.                     if($nilai){
  336.                         $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/delete/'.$temp->id).'" class="confirm"><i class="fa fa-power-off"></i> Hapus</a></li>';
  337.                     } else {
  338.                         $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/edit/1'.$temp->id).'"><i class="fa fa-pencil"></i> Edit</a></li>';
  339.                         $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/delete/'.$temp->id).'" class="confirm"><i class="fa fa-power-off"></i> Hapus</a></li>';
  340.                     }
  341.                 }
  342.             }
  343.             $jumlah_rencana_penilaian = count($temp->rencanapenilaian);
  344.             $record = array();
  345.             $tombol_aktif = '';
  346.             $record[] = '<div class="text-center"><input type="checkbox" class="satuan" value="'.$temp->id.'" /></div>';
  347.             $record[] = $ajaran->tahun;
  348.             $record[] = get_nama_rombel($temp->rombel_id);
  349.             $record[] = get_nama_mapel($temp->ajaran_id, $temp->rombel_id, $temp->id_mapel);
  350.             $record[] = get_nama_guru($temp->guru_id);
  351.             $record[] = '<div class="text-center">'.count($rencana_penilaian_group).'</div>';
  352.             $record[] = '<div class="text-center">'.$jumlah_rencana_penilaian.'</div>';
  353.             //$record[] = '<div class="text-center">'.$admin_akses.'</div>';
  354.             //$record[] = '<a class="tooltip-left" title="'.$get_kd->kompetensi_dasar.'">'.$temp->kd.'</a>';
  355.             $record[] = '<div class="text-center"><div class="btn-group">
  356.                             <button type="button" class="btn btn-default btn-sm">Aksi</button>
  357.                            <button type="button" class="btn btn-info btn-sm dropdown-toggle" data-toggle="dropdown">
  358.                                 <span class="caret"></span>
  359.                                 <span class="sr-only">Toggle Dropdown</span>
  360.                            </button>
  361.                            <ul class="dropdown-menu pull-right text-left" role="menu">
  362.                                <!--li><a href="javascript:void(0)" class="toggle-modal"><i class="fa fa-eye"></i>Detil</a></li-->
  363.                                  <!--li><a href="'.site_url('admin/perencanaan/edit/1/'.$temp->id).'"><i class="fa fa-pencil"></i>Edit</a></li-->
  364.                                  '.$admin_akses.'
  365.                            </ul>
  366.                        </div></div>';
  367.             $output['aaData'][] = $record;
  368.         }
  369.         if($jurusan && $tingkat){
  370.             if($loggeduser->data_guru_id && !in_array('waka',$nama_group)){
  371.                 $get_all_rombel = Datarombel::find('all', array('conditions' => "id IN ($id_rombel) AND kurikulum_id = $jurusan AND tingkat = $tingkat"));
  372.             } else {
  373.                 $get_all_rombel = Datarombel::find_all_by_kurikulum_id_and_tingkat($jurusan,$tingkat);
  374.             }
  375.             foreach($get_all_rombel as $allrombel){
  376.                 $all_rombel= array();
  377.                 $all_rombel['value'] = $allrombel->id;
  378.                 $all_rombel['text'] = $allrombel->nama;
  379.                 $output['rombel'][] = $all_rombel;
  380.             }
  381.         }
  382.         // format it to JSON, this output will be displayed in datatable
  383.         echo json_encode($output);
  384.     }
  385.     public function view($id){
  386.         $rencana = Rencana::find($id, array('include'=>array('rencanapenilaian')));
  387.         $this->template->title('Administrator Panel : Detil Perencanaan Penilaian')
  388.         ->set_layout($this->modal_tpl)
  389.         ->set('page_title', 'Detil Perencanaan Penilaian')
  390.         ->set('rencana', $rencana)
  391.         ->set('modal_footer', '')      
  392.         ->build($this->admin_folder.'/perencanaan/view');
  393.     }  
  394.     public function list_keterampilan($jurusan = NULL, $tingkat = NULL, $rombel = NULL){
  395.         $loggeduser = $this->ion_auth->user()->row();
  396.         $user_groups = $this->ion_auth->get_users_groups($loggeduser->id)->result();
  397.         foreach($user_groups as $user_group){
  398.             $nama_group[] = $user_group->name;
  399.         }
  400.         $search = "";
  401.         $start = 0;
  402.         $rows = 25;
  403.         $ajaran = get_ta();
  404.         // get search value (if any)
  405.         if (isset($_GET['sSearch']) && $_GET['sSearch'] != "" ) {
  406.             $search = $_GET['sSearch'];
  407.         }
  408.  
  409.         // limit
  410.         $start = $this->custom_fuction->get_start();
  411.         $rows = $this->custom_fuction->get_rows();
  412.         $join_rombel = '';
  413.         $join_mapel = '';
  414.         $id_rombel = '';
  415.         $id_mapel = '';
  416.         if($loggeduser->data_guru_id && !in_array('waka',$nama_group)){
  417.             $data_mapel = Kurikulum::find('all', array('conditions' => "guru_id = $loggeduser->data_guru_id",'order'=>'rombel_id ASC'));
  418.             foreach($data_mapel as $datamapel){
  419.                 $get_id_rombel[$datamapel->rombel_id] = $datamapel->rombel_id;
  420.                 $get_id_mapel[$datamapel->id_mapel] = $datamapel->id_mapel;
  421.             }
  422.             if(isset($get_id_rombel)){
  423.                 $id_rombel = array_unique($get_id_rombel);
  424.                 $id_rombel = implode(",", $id_rombel);
  425.             } else {
  426.                 $id_rombel = 0;
  427.             }
  428.             if(isset($get_id_mapel)){
  429.                 $id_mapel = array_unique($get_id_mapel);
  430.                 $id_mapel = "'" . implode("','", $id_mapel) . "'";//implode(",", $id_mapel);
  431.             } else {
  432.                 $id_mapel = 0;
  433.             }
  434.         $join_rombel = "AND a.id IN ($id_rombel)";
  435.         $join_mapel = "AND b.id_mapel IN ($id_mapel)";
  436.         }
  437.         if($jurusan && $tingkat == NULL && $rombel == NULL){
  438.             $join = "INNER JOIN data_rombels a ON(rencanas.rombel_id = a.id AND a.kurikulum_id = $jurusan $join_rombel)";
  439.             $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
  440.             $sel = 'rencanas.*, b.guru_id AS guru_id';
  441.         }elseif($jurusan && $tingkat && $rombel == NULL){
  442.             $join = "INNER JOIN data_rombels a ON(rencanas.rombel_id = a.id AND a.kurikulum_id = $jurusan AND a.tingkat = $tingkat $join_rombel)";
  443.             $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
  444.             $sel = 'rencanas.*, b.guru_id AS guru_id';
  445.         } elseif($jurusan && $tingkat && $rombel){
  446.             $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)";
  447.             $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
  448.             $sel = 'rencanas.*, b.guru_id AS guru_id';
  449.         } else {
  450.             $join = "INNER JOIN data_rombels a ON(rencanas.rombel_id = a.id $join_rombel)";
  451.             $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
  452.             $sel = 'rencanas.*, b.guru_id AS guru_id';
  453.         }
  454.         $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 = 2 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'));
  455.         $filter = Rencana::find('all', array('conditions' => "b.guru_id = $loggeduser->data_guru_id AND b.ajaran_id = $ajaran->id AND kompetensi_id = 2 AND (b.id_mapel LIKE '%$search%' OR b.rombel_id LIKE '%$search%')",'order'=>'b.id_mapel ASC, id DESC', 'joins'=> $join, 'group'=> 'id'));
  456.         $iFilteredTotal = count($query);
  457.        
  458.         $iTotal=count($filter);
  459.        
  460.         $output = array(
  461.             "sEcho" => intval($_GET['sEcho']),
  462.             "iTotalRecords" => $iTotal,
  463.             "iTotalDisplayRecords" => $iTotal,
  464.             "aaData" => array()
  465.         );
  466.  
  467.         // get result after running query and put it in array
  468.         $i=$start;
  469.         foreach ($query as $temp) {
  470.             $ajaran = Ajaran::find($temp->ajaran_id);
  471.             $rencana_penilaian_group = Rencanapenilaian::find('all', array('conditions' => "rencana_id = $temp->id",'group' => 'nama_penilaian','order'=>'bentuk_penilaian ASC'));
  472.             $rencana_penilaian = Rencanapenilaian::find_by_rencana_id($temp->id);
  473.             if ($rencana_penilaian) {
  474.                 $nilai = Nilai::find_by_rencana_penilaian_id($rencana_penilaian->id);
  475.             }
  476.             if(!in_array('waka',$nama_group)){ //murni guru
  477.                 $admin_akses = '<li><a href="'.site_url('admin/perencanaan/view/'.$temp->id).'" class="toggle-modal"><i class="fa fa-eye"></i> Detil</a></li>';
  478.                 if($nilai){
  479.                     $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/delete/'.$temp->id).'" class="confirm"><i class="fa fa-power-off"></i> Hapus</a></li>';
  480.                 } else {
  481.                     $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/edit/2/'.$temp->id).'"><i class="fa fa-pencil"></i> Edit</a></li>';
  482.                     $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/delete/'.$temp->id).'" class="confirm"><i class="fa fa-power-off"></i> Hapus</a></li>';
  483.                 }
  484.             } else { // guru plus waka
  485.                 $admin_akses = '<li><a href="'.site_url('admin/perencanaan/view/'.$temp->id).'" class="toggle-modal"><i class="fa fa-eye"></i> Detil</a></li>';
  486.                 if(get_nama_guru($loggeduser->data_guru_id) == get_nama_guru($temp->guru_id)){
  487.                     if($nilai){
  488.                         $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/delete/'.$temp->id).'" class="confirm"><i class="fa fa-power-off"></i> Hapus</a></li>';
  489.                     } else {
  490.                         $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/edit/2/'.$temp->id).'"><i class="fa fa-pencil"></i> Edit</a></li>';
  491.                         $admin_akses .= '<li><a href="'.site_url('admin/perencanaan/delete/'.$temp->id).'" class="confirm"><i class="fa fa-power-off"></i> Hapus</a></li>';
  492.                     }
  493.                 }
  494.             }
  495.             $jumlah_rencana_penilaian = count($temp->rencanapenilaian);
  496.             $record = array();
  497.             $tombol_aktif = '';
  498.             $record[] = '<div class="text-center"><input type="checkbox" class="satuan" value="'.$temp->id.'" /></div>';
  499.             $record[] = $ajaran->tahun;
  500.             $record[] = get_nama_rombel($temp->rombel_id);
  501.             $record[] = get_nama_mapel($temp->ajaran_id, $temp->rombel_id, $temp->id_mapel);
  502.             $record[] = get_nama_guru($temp->guru_id);
  503.             $record[] = '<div class="text-center">'.count($rencana_penilaian_group).'</div>';
  504.             $record[] = '<div class="text-center">'.$jumlah_rencana_penilaian.'</div>';
  505.             $record[] = '<div class="text-center"><div class="btn-group">
  506.                             <button type="button" class="btn btn-default btn-sm">Aksi</button>
  507.                            <button type="button" class="btn btn-info btn-sm dropdown-toggle" data-toggle="dropdown">
  508.                                 <span class="caret"></span>
  509.                                 <span class="sr-only">Toggle Dropdown</span>
  510.                            </button>
  511.                            <ul class="dropdown-menu pull-right text-left" role="menu">
  512.                                <!--li><a href="javascript:void(0)" class="toggle-modal"><i class="fa fa-eye"></i>Detil</a></li-->
  513.                                  <!--li><a href="'.site_url('admin/perencanaan/edit/1/'.$temp->id).'"><i class="fa fa-pencil"></i>Edit</a></li-->
  514.                                  '.$admin_akses.'
  515.                            </ul>
  516.                        </div></div>';
  517.             $output['aaData'][] = $record;
  518.         }
  519.         if($jurusan && $tingkat){
  520.             if($loggeduser->data_guru_id && !in_array('waka',$nama_group)){
  521.                 $get_all_rombel = Datarombel::find('all', array('conditions' => "id IN ($id_rombel) AND kurikulum_id = $jurusan AND tingkat = $tingkat"));
  522.             } else {
  523.                 $get_all_rombel = Datarombel::find_all_by_kurikulum_id_and_tingkat($jurusan,$tingkat);
  524.             }
  525.             foreach($get_all_rombel as $allrombel){
  526.                 $all_rombel= array();
  527.                 $all_rombel['value'] = $allrombel->id;
  528.                 $all_rombel['text'] = $allrombel->nama;
  529.                 $output['rombel'][] = $all_rombel;
  530.             }
  531.         }
  532.         // format it to JSON, this output will be displayed in datatable
  533.         echo json_encode($output);
  534.     }
  535.     public function edit($kompetensi_id,$id){
  536.         $data['kompetensi_id'] = $kompetensi_id;
  537.         $data['rencana'] = Rencana::find($id);
  538.         $data['ajarans'] = Ajaran::all();
  539.         $data['rombels'] = Datarombel::all();
  540.         $this->template->title('Administrator Panel')
  541.         ->set_layout($this->admin_tpl)
  542.         ->set('form_action', 'admin/perencanaan/')
  543.         ->set('page_title', 'Edit Perencanaan Penilaian')
  544.         ->build($this->admin_folder.'/perencanaan/edit',$data);
  545.     }
  546.     public function delete($id){
  547.         $super_admin = array('admin','tu','guru');
  548.         if($this->ion_auth->in_group($super_admin)){
  549.             $rencana = Rencana::find($id);
  550.             $rencana->delete();
  551.             $status['type'] = 'success';
  552.             $status['text'] = 'Data berhasil dihapus';
  553.             $status['title'] = 'Data Terhapus!';
  554.         } else {
  555.             $status['type'] = 'error';
  556.             $status['text'] = 'Data tidak terhapus';
  557.             $status['title'] = 'Akses Ditolak!';
  558.         }
  559.         echo json_encode($status);
  560.     }
  561.     public function delete_rp($id){
  562.         $rp = Rencanapenilaian::find($id);
  563.         $all_rencana = Rencanapenilaian::find_all_by_rencana_id_and_kompetensi_id_and_nama_penilaian($rp->rencana_id,$rp->kompetensi_id, $rp->nama_penilaian);
  564.         $super_admin = array('admin','tu','guru');
  565.         if($this->ion_auth->in_group($super_admin)){
  566.             foreach($all_rencana as $rencana){
  567.                 $rencana->delete();
  568.             }
  569.             $status['type'] = 'success';
  570.             $status['text'] = 'Data berhasil dihapus';
  571.             $status['title'] = 'Data Terhapus!';
  572.         } else {
  573.             $status['type'] = 'error';
  574.             $status['text'] = 'Data tidak terhapus';
  575.             $status['title'] = 'Akses Ditolak!';
  576.         }
  577.         echo json_encode($status);
  578.     }
  579.     public function multidelete(){
  580.         $ids = $_POST['id'];
  581.         $super_admin = array(1,2);
  582.         if($this->ion_auth->in_group($super_admin)){
  583.             //$ids = $_POST['id'];
  584.             Rencana::table()->delete(array('id' => $ids));
  585.             $status['type'] = 'success';
  586.             $status['text'] = 'Data berhasil dihapus';
  587.             $status['title'] = 'Data Terhapus!';
  588.         } else {
  589.             $status['type'] = 'error';
  590.             $status['text'] = 'Data tidak terhapus';
  591.             $status['title'] = 'Akses Ditolak!';
  592.         }
  593.         echo json_encode($status);
  594.     }
  595. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement