public function edit_gelar($id){
ini_set('display_errors', -1);
$guru = $this->guru->get($id);
if($_POST){
$gelar_depan = ($this->input->post('gelar_depan')) ? $this->input->post('gelar_depan') : array();
$gelar_belakang = ($this->input->post('gelar_belakang')) ? $this->input->post('gelar_belakang') : array();
$gelar_ptk = array_merge($gelar_depan, $gelar_belakang);
$get_gelar_ptk = $this->gelar_ptk->find_all("guru_id = $guru->id");
if($get_gelar_ptk){ // ada gelar existing di PTK ybs
// dapatkan terlebih dahulu ID gelar yang dimiliki PTK secara unik
$g_id = [];
foreach($get_gelar_ptk as $key=>$g_ptk) {
if(!in_array($g_ptk->gelar_akademik_id, $g_id)) // buat array untuk existing gelar di PTK ybs, secara unik
$g_id[] = $g_ptk->gelar_akademik_id;
if (!in_array($g_ptk->gelar_akademik_id, $gelar_ptk)) { // gelar ada di DB, tapi tidak ada di POST array
$this->gelar_ptk->delete($g_ptk->id);
}
}
foreach($gelar_ptk as $key=>$gl_ptk) { // iterasi berdasarkan gelar PTK yang disubmit
if(!in_array($gl_ptk, $g_id)) { // gelar ada di POST array, dan tidak ada di DB
$insert_gelar = array(
'gelar_akademik_id' => $gl_ptk,
'guru_id' => $id,
'ptk_id' => $guru->guru_id_dapodik,
);
$this->gelar_ptk->insert($insert_gelar);
} else { // gelar ada di POST array dan di DB, tapi pernah deleted. aktifkan kembali
$update_gelar = array(
'gelar_akademik_id' => $gl_ptk,
'guru_id' => $id,
'ptk_id' => $guru->guru_id_dapodik,
'deleted_at' => NULL,
);
$this->gelar_ptk->update($update_gelar);
}
}
} else { // tidak ada gelar existing, insert semua saja
foreach($gelar_ptk as $gtk){
$insert_gelar = array(
'gelar_akademik_id' => $gtk,
'guru_id' => $id,
'ptk_id' => $guru->guru_id_dapodik,
);
$this->gelar_ptk->insert($insert_gelar);
}
}
after_update_log('guru',$id);
//redirect('admin/data_guru');
} else {
$this->template->title('Administrator Panel : Detil Guru')
->set_layout($this->modal_tpl)
->set('page_title', 'Detil Guru')
->set('guru', $guru)
->set('modal_footer', '<a href="javascript:void(0)" class="btn btn-success btn-sm edit_gelar"><i class="fa fa-save"></i> Simpan</a>')
->build($this->admin_folder.'/guru/edit_gelar');
}
}
Comments