public function suaHddAction() { $form = new Admin_Form_HDD(); $form->removeElement('submitCon'); $form->submitExit->setLabel('Lưu'); $form->cancel->setLabel('Không lưu'); $this->view->form = $form; if ($this->getRequest()->isPost()) { $form->preValidation($_POST); $formData = $this->getRequest()->getPost(); foreach ($formData as $k => $v) { if (strpos($k, 'thanh_vien_') !== false && $v == '0') { $formData[$k] = null; } } if ($form->isValid($formData)) { if (!Default_Model_Functions::kiem_tra_ma($form->getValue('ma'), 'HDD', true)) { $_SESSION['msg'] = 'Lỗi !. Mã hội đồng duyệt không đúng định dạng, vui lòng kiểm tra lại .'; $_SESSION['type_msg'] = 'error'; $this->_redirect('/admin/hoi-dong/danh-sach-hdd?' . $_SESSION['filterHDD']); } if ($this->hd_duyet->kiem_tra_id_ma($form->getValue('id'), $form->getValue('ma'))) { $_SESSION['msg'] = 'Lỗi !. Mã hội đồng duyệt đã tồn tại, vui lòng kiểm tra lại .'; $_SESSION['type_msg'] = 'error'; $this->_redirect('/admin/hoi-dong/danh-sach-hdd?' . $_SESSION['filterHDD']); } $db = Zend_Registry::get('connectDB'); $db->beginTransaction(); try { $hdd = new Default_Model_Hdd(); $id = $form->getValue('id'); $hdd->setId($id)->setMa($form->getValue('ma'))->setNgayThanhLap(date('Y-m-d', strtotime($form->getValue('ngay_thanh_lap'))))->setGhiChu($form->getValue('ghi_chu')); $hdd->sua(); //cat nhat thanh vien hoi dong $pc_duyet = new Default_Model_Pcd(); $thanhViens = array(); for ($i = 0; $i <= 5; $i++) { //kiem tra co chon giang vien if ($form->getValue('thanh_vien_' . $i) != 0) { if ($i == 0) { $thanhViens[] = array('ma_giang_vien' => $form->getValue('thanh_vien_' . $i), 'chuc_danh' => '0'); } else { if ($i == 5) { $thanhViens[] = array('ma_giang_vien' => $form->getValue('thanh_vien_' . $i), 'chuc_danh' => '2'); } else { $thanhViens[] = array('ma_giang_vien' => $form->getValue('thanh_vien_' . $i), 'chuc_danh' => '1'); } } } } $pc_duyet->capNhatTV($id, $thanhViens); //cat nhat danh sach de tai $deTais = array(); if (isset($_POST['item_selected'])) { if (isset($_POST['item'])) { $deTais = array_merge($_POST['item_selected'], $_POST['item']); } else { $deTais = $_POST['item_selected']; } } else { if (isset($_POST['item'])) { $deTais = $_POST['item']; } } $de_tai = new Default_Model_DeTai(); $de_tai->clearHdd($id); if ($deTais != null) { foreach ($deTais as $ma_de_tai) { $de_tai->capNhatHdd($ma_de_tai, $id); } } $db->commit(); } catch (Zend_Db_Exception $e) { $db->rollBack(); $_SESSION['msg'] = 'Lỗi !. Đã có lỗi trong quá trình xử lý, vui lòng thử lại .'; $_SESSION['type_msg'] = 'error'; $this->_redirect('/admin/hoi-dong/danh-sach-hdd?' . $_SESSION['filterHDD']); } $_SESSION['msg'] = 'Thành công !. Dữ liệu đã được cập nhật .'; $_SESSION['type_msg'] = 'success'; $this->_redirect('/admin/hoi-dong/danh-sach-hdd?' . $_SESSION['filterHDD']); } else { $form->populate($formData); } } else { $id = $this->_getParam('id'); if (!empty($id)) { $data = $this->hd_duyet->getHDD($id); if ($data != null) { $data = $this->hd_duyet->HDDToArray($data); $data['ma_linh_vuc'] = $this->hd_duyet->getLinhVucByHD($data['id']); $data['nam'] = substr($data['ma'], 3, 4); //lay danh sach giang vien trong hoi dong $thanhViens = $this->pc_duyet->getDSGVByHDD($id); $i = 0; foreach ($thanhViens as $thanh_vien) { $dv = 'don_vi_' . $i; $tv = 'thanh_vien_' . $i; $data[$dv] = $thanh_vien['ma_don_vi']; $giang_vien = new Default_Model_GiangVien(); $gvOptions = $giang_vien->getDSGVByDV($thanh_vien['ma_don_vi']); $form->{$tv}->addMultiOptions($gvOptions)->setValue($thanh_vien['ma_giang_vien']); $i++; } $form->populate($data); } else { $_SESSION['msg'] = 'Lỗi !. Mã hội đồng duyệt không tồn tại .'; $_SESSION['type_msg'] = 'error'; $this->_redirect('/admin/hoi-dong/danh-sach-hdd?' . $_SESSION['filterHDD']); } } else { $this->_redirect('/admin/hoi-dong/danh-sach-hdd?' . $_SESSION['filterHDD']); } } }