Пример #1
0
 public function updateField($name, $data, $id)
 {
     //tao selectbox thanh_vien dua vao value cua selectbox don_vi
     $tv = 'thanh_vien_' . $id;
     $giang_vien = new Default_Model_GiangVien();
     if ($data[$name] != '0') {
         $gvOptions = $giang_vien->getDSGVByDV($data[$name]);
     } else {
         $gvOptions = array('0' => '===== Chọn giảng viên =====');
     }
     $this->{$tv}->addMultiOptions($gvOptions);
     //tranh truong hop invalidation
     if (isset($data[$tv])) {
         $this->{$tv}->setValue($data[$tv]);
     }
 }
Пример #2
0
 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']);
         }
     }
 }
Пример #3
0
 public function init()
 {
     $this->setName('f2')->setMethod('post');
     $this->addElement('Hidden', 'search', array('value' => 1));
     $code = new Zend_Form_Element_Hidden('code');
     $code->setValue(0)->setAttrib('id', 'code')->removeDecorator('label');
     $ma = new Zend_Form_Element_Text('ma');
     $ma->setLabel('Mã đề tài (*)')->setDescription('vd : CS2000-01')->addFilter('StripTags')->addFilter('StringTrim')->addFilter('StringToUpper')->addValidator(new Zend_Validate_StringLength(0, 15))->setDecorators(array('ViewHelper', 'Errors', array('Description', array('tag' => 'small', 'style' => 'display : block')), array(array('data' => 'HtmlTag'), array('tag' => 'td', 'style' => 'width: 85%')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setAttribs(array('class' => 'text-input', 'id' => 'ma'))->setOrder(0);
     $ten = new Zend_Form_Element_Text('ten');
     $ten->setLabel('Tên đề tài (*)')->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addValidator('NotEmpty')->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setAttrib('class', 'text-input large-input')->setOrder(1);
     $namOptions = array("multiOptions" => Default_Model_Constraints::nam());
     $nam = new Zend_Form_Element_Select('nam', $namOptions);
     $nam->setRequired(true)->setLabel('Năm (*)')->setValue(date('Y'))->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setAttribs(array('id' => 'nam'))->setOrder(2);
     $don_vi = new Default_Model_DonVi();
     $donVis = $don_vi->getDSDVSGU();
     unset($donVis['1']);
     $dvOptions = array("multiOptions" => $donVis);
     $ma_don_vi = new Zend_Form_Element_Select('ma_don_vi', $dvOptions);
     $ma_don_vi->setRequired(true)->setLabel('Đơn vị (*)')->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setAttribs(array('class' => 'text-input', 'id' => 'ma_don_vi'))->setOrder(3);
     $bmOptions = array("multiOptions" => Khcn_Api::_()->getDbTable('bo_mon', 'default')->getBoMonByDonViAssoc(2));
     $bo_mon_id = new Zend_Form_Element_Select('bo_mon_id', $bmOptions);
     $bo_mon_id->setLabel('Bộ môn')->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr', 'id' => 'bo_mon_id-wrapper'))))->setAttribs(array('class' => 'text-input', 'id' => 'bo_mon_id'))->setRegisterInArrayValidator(false)->setOrder(4);
     $giang_vien = new Default_Model_GiangVien();
     $gvOptions = array("multiOptions" => $giang_vien->getDSGVByDV(2));
     $chu_nhiem = new Zend_Form_Element_Select('chu_nhiem', $gvOptions);
     $chu_nhiem->setRequired(true)->setLabel('Chủ nhiệm (*)')->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setAttribs(array('class' => 'text-input', 'id' => 'chu_nhiem'))->setRegisterInArrayValidator(false)->setOrder(5);
     $them_tv = new Zend_Form_Element_Button('them_tv');
     $them_tv->setLabel('Thêm thành viên')->setDecorators(array('ViewHelper', array(array('data' => 'HtmlTag'), array('tag' => 'span')), array(array('row' => 'HtmlTag'), array('tag' => 'span'))))->setAttribs(array('class' => 'button'));
     $xoa_tv = new Zend_Form_Element_Button('xoa_tv');
     $xoa_tv->setLabel('Xóa thành viên')->setDecorators(array('ViewHelper', array(array('data' => 'HtmlTag'), array('tag' => 'span')), array(array('row' => 'HtmlTag'), array('tag' => 'span'))))->setAttribs(array('class' => 'button'));
     $linh_vuc = new Default_Model_LinhVuc();
     $lvOptions = array("multiOptions" => $linh_vuc->getDSLV());
     $ma_linh_vuc = new Zend_Form_Element_Select('ma_linh_vuc', $lvOptions);
     $ma_linh_vuc->setRequired(true)->setLabel('Lĩnh vực (*)')->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setOrder(90);
     $statusOptions = array("multiOptions" => Default_Model_Constraints::detai_tinhtrang());
     $tinh_trang = new Zend_Form_Element_Select('tinh_trang', $statusOptions);
     $tinh_trang->setRequired(true)->setLabel('Tình trạng (*)')->setValue('0')->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setOrder(91);
     $thoi_gian_bat_dau = new Zend_Form_Element_Text('thoi_gian_bat_dau');
     $thoi_gian_bat_dau->setLabel('Ngày bắt đầu (*)')->setDescription('(YYYY-mm-dd)')->setRequired(true)->addFilter('StripTags')->addValidator('NotEmpty')->setDecorators(array('ViewHelper', 'Errors', array('Description', array('tag' => 'span')), array(array('data' => 'HtmlTag'), array('tag' => 'td', 'style' => 'width: 85%')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setAttribs(array('class' => 'text-input', 'id' => 'thoi_gian_bat_dau'))->setOrder(92);
     $thoi_gian_hoan_thanh = new Zend_Form_Element_Text('thoi_gian_hoan_thanh');
     $thoi_gian_hoan_thanh->setLabel('Ngày hoàn thành(*)')->setDescription('(YYYY-mm-dd)')->setRequired(true)->addFilter('StripTags')->addValidator('NotEmpty')->setDecorators(array('ViewHelper', 'Errors', array('Description', array('tag' => 'span')), array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setAttribs(array('class' => 'text-input', 'id' => 'thoi_gian_hoan_thanh'))->setOrder(93);
     $cqlOptions = array("multiOptions" => Default_Model_Constraints::detai_capquanly());
     $cap_quan_ly = new Zend_Form_Element_Select('cap_quan_ly', $cqlOptions);
     $cap_quan_ly->setRequired(true)->setLabel('Cấp quản lý (*)')->setValue('2')->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setOrder(94);
     $loai_dt = new Default_Model_LoaiDt();
     $ldtOptions = array("multiOptions" => $loai_dt->getDSLDT());
     $ma_loai = new Zend_Form_Element_Select('ma_loai', $ldtOptions);
     $ma_loai->setLabel('Loại đề tài')->setValue('0')->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setOrder(95);
     $stghOptions = array("multiOptions" => Default_Model_Constraints::detai_stgh());
     $so_thang_gia_han = new Zend_Form_Element_Select('so_thang_gia_han', $stghOptions);
     $so_thang_gia_han->setLabel('Số tháng gia hạn')->setValue('0')->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setOrder(96);
     $ngay_gia_han = new Zend_Form_Element_Text('ngay_gia_han');
     $ngay_gia_han->setLabel('Ngày gia hạn')->setDescription('(YYYY-mm-dd)')->setDecorators(array('ViewHelper', 'Errors', array('Description', array('tag' => 'span')), array(array('data' => 'HtmlTag'), array('tag' => 'td', 'style' => 'width: 85%')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setAttribs(array('class' => 'text-input', 'id' => 'ngay_gia_han'))->setOrder(97);
     $kinh_phi = new Zend_Form_Element_Text('kinh_phi');
     $kinh_phi->setLabel('Kinh phí')->setDescription('(VNĐ)')->addFilter('StringTrim')->setDecorators(array('ViewHelper', array('Description', array('tag' => 'small')), 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setAttribs(array('class' => 'text-input', 'onkeypress' => 'return inputNumber(event)', 'onkeyup' => 'formatInt(this)'))->setOrder(98);
     $xlOptions = array("multiOptions" => Default_Model_Constraints::detai_xeploai());
     $xep_loai = new Zend_Form_Element_Select('xep_loai', $xlOptions);
     $xep_loai->setLabel('Xếp loại')->setValue('0')->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setOrder(99);
     $file_tom_tat = new Zend_Form_Element_File('file_tom_tat');
     $file_tom_tat->setLabel('File Tóm Tắt')->setDescription('(*.doc, *.docx, *.pdf , < 10MB )')->setDestination(BASE_PATH . '/upload/files/de_tai')->addValidator(new Zend_Validate_File_Extension(array('doc,docx,pdf')))->addValidator(new Zend_Validate_File_FilesSize(array('min' => 1, 'max' => 10485760, 'bytestring' => true)))->setDecorators(array('File', 'Errors', array('Description', array('escape' => false, 'tag' => 'div', 'placement' => 'append')), array('HtmlTag', array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setOrder(100);
     $ghi_chu = new Zend_Form_Element_Textarea('ghi_chu');
     $ghi_chu->setLabel('Ghi chú')->addFilter('StripTags')->addFilter('StringTrim')->setDecorators(array('ViewHelper', 'Errors', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setAttribs(array('id' => 'ghi_chu', 'class' => 'textarea', 'rows' => '4'))->setOrder(101);
     $submitCon = new Zend_Form_Element_Submit('submitCon');
     $submitCon->setDecorators(array('ViewHelper', array(array('data' => 'HtmlTag'), array('tag' => 'span')), array(array('row' => 'HtmlTag'), array('tag' => 'span'))))->setAttribs(array('class' => 'button'));
     $submitExit = new Zend_Form_Element_Submit('submitExit');
     $submitExit->setDecorators(array('ViewHelper', array(array('data' => 'HtmlTag'), array('tag' => 'span')), array(array('row' => 'HtmlTag'), array('tag' => 'span'))))->setAttribs(array('class' => 'button'));
     $url = new Zend_View_Helper_Url();
     $link = $url->url(array('module' => 'admin', 'controller' => 'de-tai', 'action' => 'index'), null, true);
     $cancel = new Zend_Form_Element_Button('cancel');
     $cancel->setDecorators(array('ViewHelper', array(array('data' => 'HtmlTag'), array('tag' => 'span')), array(array('row' => 'HtmlTag'), array('tag' => 'span'))))->setAttribs(array('class' => 'button', 'onclick' => 'window.location.href="' . $link . '"'));
     $this->addElements(array($code, $ma, $ten, $nam, $ma_don_vi, $bo_mon_id, $chu_nhiem, $them_tv, $xoa_tv, $ma_linh_vuc, $tinh_trang, $thoi_gian_bat_dau, $thoi_gian_hoan_thanh, $cap_quan_ly, $ma_loai, $so_thang_gia_han, $ngay_gia_han, $kinh_phi, $xep_loai, $file_tom_tat, $ghi_chu, $submitCon, $submitExit, $cancel));
     $this->addDisplayGroup(array('submitCon', 'submitExit', 'cancel'), 'submit', array('order' => 102, 'decorators' => array('FormElements', array(array('data' => 'HtmlTag'), array('tag' => 'td', 'colspan' => 2)), array(array('row' => 'HtmlTag'), array('tag' => 'td')), array('HtmlTag', array('tag' => 'tr', 'id' => 'btn')))));
     $this->addDisplayGroup(array('them_tv', 'xoa_tv'), 'dang_ky', array('order' => 89, 'decorators' => array('FormElements', array(array('data' => 'HtmlTag'), array('tag' => 'td', 'colspan' => 2)), array(array('row' => 'HtmlTag'), array('tag' => 'td')), array('HtmlTag', array('tag' => 'tr', 'id' => 'btn_dk')))));
     $this->setDecorators(array('FormElements', 'Fieldset', array('HtmlTag', array('tag' => 'table', 'class' => 'de_tai')), 'Form'));
 }
Пример #4
0
 public function suaGvNgoaiSguAction()
 {
     $form = new Admin_Form_GiangVien();
     $don_vi = new Default_Model_DonVi();
     $form->removeElement('submitCon');
     $form->removeElement('ma');
     $form->submitExit->setLabel('Lưu');
     $form->cancel->setLabel('Không lưu');
     $form->ma_don_vi->setMultiOptions($don_vi->getDSDVNgoaiSGU());
     $this->view->form = $form;
     if ($this->getRequest()->isPost()) {
         $formData = $this->getRequest()->getPost();
         if ($form->isValid($formData)) {
             $giang_vien = new Default_Model_GiangVien();
             $ho_ten = Default_Model_Functions::tach_ho_ten($form->getValue('ho_ten'));
             $giang_vien->setId($form->getValue('id'))->setMa(null)->setHo($ho_ten['ho'])->setTen($ho_ten['ten'])->setChucVu($form->getValue('chuc_vu'))->setMaDonVi($form->getValue('ma_don_vi'))->setMaHocVi($form->getValue('ma_hoc_vi'))->setEmail($form->getValue('email'))->setSoDienThoai($form->getValue('so_dien_thoai'));
             $kq = $giang_vien->sua();
             if (!kq) {
                 $_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/ds-ngoai-sgu?' . $_SESSION['filterGV']);
             }
             $_SESSION['msg'] = 'Thành công !. Dữ liệu đã được cập nhật .';
             $_SESSION['type_msg'] = 'success';
             $this->_redirect('/admin/ds-ngoai-sgu?' . $_SESSION['filterGV']);
         } else {
             $form->populate($formData);
         }
     } else {
         $id = $this->_getParam('id');
         if (!empty($id)) {
             $data = $this->giang_vien->getGiangVien($id);
             if ($data != null) {
                 $data = $this->giang_vien->GiangVienToArray($data);
                 $data['ho_ten'] = $data['ho'] . ' ' . $data['ten'];
                 $form->populate($data);
             } else {
                 $_SESSION['msg'] = 'Lỗi !. Mã giảng viên không tồn tại .';
                 $_SESSION['type_msg'] = 'error';
                 $this->_redirect('/admin/ds-ngoai-sgu?' . $_SESSION['filterGV']);
             }
         } else {
             $this->_redirect('/admin/ds-ngoai-sgu?' . $_SESSION['filterGV']);
         }
     }
 }
Пример #5
0
 public function xoaAction()
 {
     $id = $this->_getParam('id');
     if (!empty($id)) {
         if ($id == '1' || $id == '33') {
             $_SESSION['msg'] = 'Lỗi !. Đơn vị này không được xóa .';
             $_SESSION['type_msg'] = 'error';
             $this->_redirect('/admin/don-vi/index');
         }
         $don_vi = $this->don_vi->getDonVi($id);
         if ($don_vi != null) {
             $giang_vien = new Default_Model_GiangVien();
             if ($giang_vien->KiemTraDV($don_vi['id'])) {
                 $_SESSION['msg'] = 'Lỗi !. Tồn tại dữ liệu liên quan.Vui lòng kiểm tra lại .';
                 $_SESSION['type_msg'] = 'error';
                 $this->_redirect('/admin/don-vi/index');
             }
             $kq = $this->don_vi->xoa($id);
             if (!$kq) {
                 $_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/don-vi/index');
             }
             $_SESSION['msg'] = 'Thành công !. Dữ liệu đã được xóa .';
             $_SESSION['type_msg'] = 'success';
             $this->_redirect('/admin/don-vi/index');
         } else {
             $_SESSION['msg'] = 'Lỗi !. Mã đơn vị không tồn tại .';
             $_SESSION['type_msg'] = 'error';
             $this->_redirect('/admin/don-vi/index');
         }
     } else {
         $this->_redirect('/admin/don-vi/index');
     }
 }
Пример #6
0
 public function suaAction()
 {
     $de_tai_id = $this->_getParam('id');
     $de_tai = Khcn_Api::_()->getItem('default_de_tai', $de_tai_id);
     $tableDK = Khcn_Api::_()->getDbTable('dang_ky', 'default');
     $form = new Admin_Form_DeTai();
     $form->removeElement('submitCon');
     $form->submitExit->setLabel('Lưu');
     $form->cancel->setLabel('Không lưu');
     $this->view->form = $form;
     if (!$this->getRequest()->isPost()) {
         //populate chủ nhiệm
         $giang_vien = new Default_Model_GiangVien();
         $gvOptions = $giang_vien->getDSGVByDV($de_tai->ma_don_vi);
         $chu_nhiem = $this->dang_ky->getMaChuNhiemByDT($de_tai_id);
         $form->chu_nhiem->setMultiOptions($gvOptions)->setValue($chu_nhiem);
         //populate thành viên
         $thanhViens = $this->dang_ky->getDSTVByDT($de_tai_id);
         $code = count($thanhViens);
         $form->code->setValue($code);
         $don_vi = new Default_Model_DonVi();
         $donVis = $don_vi->getDSDV();
         unset($donVis['1']);
         $dvOptions = array("multiOptions" => $donVis);
         $i = 0;
         foreach ($thanhViens as $thanh_vien) {
             $don_vi = new Zend_Form_Element_Select('don_vi_' . $i, $dvOptions);
             $don_vi->setValue($thanh_vien['ma_don_vi'])->setDecorators(Khcn_Form_Decorator_Select::getDecorator())->setAttribs(array('class' => 'text-input', 'id' => 'don_vi_' . $i, 'onchange' => 'change(this,' . $i . ')'));
             $giang_vien = new Default_Model_GiangVien();
             $gvOptions = array("multiOptions" => $giang_vien->getDSGVByDV($thanh_vien['ma_don_vi']));
             $ma_giang_vien = $thanh_vien['ma_giang_vien'];
             $thanh_vien = new Zend_Form_Element_Select('thanh_vien_' . $i, $gvOptions);
             $thanh_vien->setRequired(true)->setValue($ma_giang_vien)->setDecorators(Khcn_Form_Decorator_Select::getDecorator())->setAttribs(array('class' => 'text-input', 'id' => 'thanh_vien_' . $i))->setRegisterInArrayValidator(false);
             $form->addElements(array($don_vi, $thanh_vien));
             $form->addDisplayGroup(array('don_vi_' . $i, 'thanh_vien_' . $i), 'dk_tv_' . $i, array('order' => $i + 6, 'legend' => 'Thành viên', 'decorators' => array('FormElements', 'Fieldset', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'td')), array('HtmlTag', array('tag' => 'tr', 'id' => 'dk_tv_' . $i)))));
             $i++;
         }
         $url = new Zend_View_Helper_Url();
         if ($de_tai->ma_hd_duyet != null) {
             $hd_duyet = new Default_Model_Hdd();
             $hdd = $hd_duyet->getHDD($de_tai->ma_hd_duyet);
             $link = $url->url(array('module' => 'admin', 'controller' => 'hoi-dong', 'action' => 'sua-hdd', 'id' => $de_tai->ma_hd_duyet), null, true);
             $element = new Zend_Form_Element_Text('hdd');
             $element->setLabel('Hội đồng duyệt')->setValue($hdd['ma'])->setDescription('<a href="' . $link . '">Xem hội đồng duyệt</a>')->setDecorators(array('ViewHelper', array('Description', array('tag' => 'span', 'escape' => false)), array(array('data' => 'HtmlTag'), array('tag' => 'td')), array('Label', array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'tr'))))->setAttribs(array('class' => 'text-input', 'disabled' => 'disabled'))->setOrder(100);
             $form->addElement($element);
         }
         // Popuate Bo Mon
         if (!empty($de_tai->bo_mon_id)) {
             $boMons = Khcn_Api::_()->getDbTable('bo_mon', 'default')->getBoMonByDonViAssoc($de_tai->ma_don_vi);
             $form->bo_mon_id->setMultiOptions($boMons)->setValue($de_tai->bo_mon_id);
         }
         $form->populate($de_tai->toArray());
         return;
     }
     $form->preValidation($_POST);
     if (!$form->isValid($this->getRequest()->getPost())) {
         return;
     }
     $ma = trim($form->getValue('ma'));
     if (!empty($ma)) {
         if (!Default_Model_Functions::kiem_tra_ma($ma, null, true, 2)) {
             $_SESSION['msg'] = 'Lỗi !. Mã đề tài không đúng định dạng, vui lòng kiểm tra lại .';
             $_SESSION['type_msg'] = 'error';
             $this->_redirect('/admin/de-tai');
         }
         if ($this->de_tai->kiem_tra_id_ma($de_tai_id, $ma)) {
             $_SESSION['msg'] = 'Lỗi !. Mã đề tài đã tồn tại, vui lòng kiểm tra lại .';
             $_SESSION['type_msg'] = 'error';
             $this->_redirect('/admin/de-tai');
         }
     }
     $db = Zend_Registry::get('connectDB');
     $db->beginTransaction();
     try {
         if ($form->file_tom_tat->getFileName(null, false) != null) {
             //determine filename and extension
             $info = pathinfo($form->file_tom_tat->getFileName(null, false));
             $filename = $info['filename'];
             $ext = $info['extension'] ? "." . $info['extension'] : "";
             //filter for renaming.. prepend with current time
             $file_tom_tat = time() . '_' . Default_Model_Functions::convert_vi_to_en($filename) . $ext;
             $form->file_tom_tat->addFilter(new Zend_Filter_File_Rename(array("target" => $file_tom_tat, "overwrite" => true)));
             $form->getValue('file_tom_tat');
             $de_tai->file_tom_tat = $file_tom_tat;
         }
         $values = $form->getValues();
         if (empty($values['file_tom_tat'])) {
             unset($values['file_tom_tat']);
         }
         if (empty($values['ngay_gia_han'])) {
             $values['ngay_gia_han'] = new Zend_Db_Expr('NULL');
         }
         $values['ma'] = $ma;
         $values['kinh_phi'] = $values['kinh_phi'] != '' ? str_ireplace(',', '', $values['kinh_phi']) : 0;
         $de_tai->setFromArray($values);
         $de_tai->save();
         $thanhViens = array();
         $thanhViens[] = array('giang_vien_id' => $values['chu_nhiem'], 'nhiem_vu' => 1);
         for ($i = 0; $i < $values['code']; $i++) {
             $thanhViens[] = array('giang_vien_id' => $values['thanh_vien_' . $i], 'nhiem_vu' => 0);
         }
         $tableDK->setChucVu($de_tai_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/de-tai');
     }
     $_SESSION['msg'] = 'Thành công !. Dữ liệu đã được cập nhật .';
     $_SESSION['type_msg'] = 'success';
     $this->_redirect('/admin/de-tai');
 }