gurumutant icon

[v3.2] Modifikasi edit_gelar() pada Controller Data_guru

gurumutant | PRO | 12/12/17 05:49:49 PM UTC | 0 ⭐ | 644 👁️ | Never ⏰ | []
PHP |

2.67 KB

|

None

|

0 👍

/

0 👎

    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