Ejemplo n.º 1
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']);
         }
     }
 }
Ejemplo n.º 2
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');
 }