public function uploadDataCsv() { if (isset($_POST['submit_a'])) { $file = $_FILES['file']; $name = $_FILES['file']['name']; $tmp_name = $_FILES['file']['tmp_name']; $type = $_FILES['file']['type']; $size = $_FILES['file']['size']; $ext = explode('.', $name); if ($type != 'application/vnd.ms-excel' && $ext != end($ext)) { $this->view->add_error('file', 'file harus dalam format .csv'); } if ($size > 30000000) { $this->view->add_error('file', 'ukuran file maksimal 30 MB ya!'); } if (!$this->view->is_error()) { $pegawai = new Pegawai($this->registry); $destination = 'files/' . $name; move_uploaded_file($tmp_name, $destination); $d_peg = CSV::readCSV($destination); //var_dump($d_peg); foreach ($d_peg as $key => $value) { //validasi data dengan validasi nip $nip = $value[1]; /*$is_angka = is_numeric($nip); if(!$is_angka) continue; //jika bukan angka $len = strlen($nip); if($len!=18 && $len!=6) continue; //jika panjang bukan 18 atau 6 $nip_th_lhr = (int) substr($nip, 0,4); if($nip_th_lhr<(date('Y')-60) || $nip_th_lhr>(date('Y')-18)) continue; //jika umur gak sesuai $nip_th_masuk = (int) substr($nip, 7,4); if($nip_th_masuk<(date('Y')-40)) continue; //jika tahun masuk > 40 $nip_jk = (int) substr($nip, 14,1); if($nip_jk>2 || $nip_jk<1) continue; //jika gender bukan 1 atau 2, tidak menerima gender ke-3 :)*/ //end of validasi data if ($pegawai->is_exist('nip', $value[1])) { $data = array('nama' => $value[2], 'eselon' => $value[3], 'jabatan' => $value[4], 'unit' => $value[5]); $pegawai->edit('nip=' . $value[1], $data); } else { $data = array('nip' => $value[1], 'nama' => $value[2], 'eselon' => $value[3], 'jabatan' => $value[4], 'unit' => $value[5]); $pegawai->add($data); } } unlink($destination); $this->view->add_success('success', 'update data pegawai berhasil!'); } } $this->view->aksi = 'csv'; $this->view->render('admin/pegawai'); }