public function suaHdntAction() { $form = new Admin_Form_HDNT(); $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'), 'HDNT', true)) { $_SESSION['msg'] = 'Lỗi !. Mã hội đồng nghiệm thu 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-hdnt?' . $_SESSION['filterHDNT']); } if ($this->hd_nghiem_thu->kiem_tra_id_ma($form->getValue('id'), $form->getValue('ma'))) { $_SESSION['msg'] = 'Lỗi !. Mã hội đồng nghiệm thu đã tồn tại, vui lòng kiểm tra lại .'; $_SESSION['type_msg'] = 'error'; $this->_redirect('/admin/hoi-dong/danh-sach-hdnt?' . $_SESSION['filterHDNT']); } $db = Zend_Registry::get('connectDB'); $db->beginTransaction(); try { $hdnt = new Default_Model_Hdnt(); $id = $form->getValue('id'); $hdnt->setId($id)->setMa($form->getValue('ma'))->setNgayThanhLap(date('Y-m-d', strtotime($form->getValue('ngay_thanh_lap'))))->setGhiChu($form->getValue('ghi_chu'))->setMaDeTai($_POST['hdnt'][0]); $hdnt->sua(); //cat nhat thanh vien hoi dong $pc_nghiem_thu = new Default_Model_Pcnt(); $thanhViens = array(); for ($i = 0; $i <= 4; $i++) { //kiem tra co chon giang vien if ($form->getValue('thanh_vien_' . $i) != 0) { $thanhViens[] = array('ma_giang_vien' => $form->getValue('thanh_vien_' . $i), 'chuc_danh' => $i); } } $pc_nghiem_thu->capNhatTV($id, $thanhViens); $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-hdnt?' . $_SESSION['filterHDNT']); } $_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-hdnt?' . $_SESSION['filterHDNT']); } else { $form->populate($formData); } } else { $id = $this->_getParam('id'); if (!empty($id)) { $data = $this->hd_nghiem_thu->getHDNT($id); if ($data != null) { $data = $this->hd_nghiem_thu->HDNTToArray($data); $data['ma_linh_vuc'] = $this->hd_nghiem_thu->getLinhVucByDT($data['id']); $data['nam'] = substr($data['ma'], 4, 4); //lay danh sach giang vien trong hoi dong $thanhViens = $this->pc_nghiem_thu->getDSGVByHDNT($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 nghiệm thu không tồn tại .'; $_SESSION['type_msg'] = 'error'; $this->_redirect('/admin/hoi-dong/danh-sach-hdnt?' . $_SESSION['filterHDNT']); } } else { $this->_redirect('/admin/hoi-dong/danh-sach-hdnt?' . $_SESSION['filterHDNT']); } } }