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', ' Simpan') ->build($this->admin_folder.'/guru/edit_gelar'); } }