Beispiel #1
0
 /**
  * Adds new fields to form
  *
  * @param string $name
  * @param string $value
  * @param int    $order
  */
 public function addNewField($name, $data, $order, $option, $id)
 {
     //tạo 2 selectbox don_vi va thanh_vien
     $don_vi = new Zend_Form_Element_Select($name, $option);
     $don_vi->setValue($data[$name])->setDecorators(Khcn_Form_Decorator_Select::getDecorator())->setAttribs(array('class' => 'text-input', 'id' => $name, 'onchange' => 'change(this,' . $id . ')'));
     //tao selectnox thanh_vien dua vao value cua selectbox don_vi
     $gvOptions = array("multiOptions" => Khcn_Api::_()->getDbTable('giang_vien', 'default')->getGiangViensByDonViAssoc($data[$name]));
     $thanh_vien = new Zend_Form_Element_Select('thanh_vien_' . $id, $gvOptions);
     $thanh_vien->setRequired(true)->setDecorators(Khcn_Form_Decorator_Select::getDecorator())->setAttribs(array('class' => 'text-input', 'id' => 'thanh_vien_' . $id))->setRegisterInArrayValidator(false);
     //tranh truong hop invalidation
     if (isset($data['thanh_vien_' . $id])) {
         $thanh_vien->setValue($data['thanh_vien_' . $id]);
     }
     //add vao form
     $this->addElements(array($don_vi, $thanh_vien));
     $this->addDisplayGroup(array($name, 'thanh_vien_' . $id), 'dk_tv_' . $id, array('order' => $order, '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_' . $id)))));
 }
Beispiel #2
0
 public function init()
 {
     $this->setName('f2')->setMethod('post');
     $id = new Zend_Form_Element_Hidden('id');
     $id->addFilter('Int')->setAttribs(array('id' => 'id'));
     $this->addElement($id);
     $code = new Zend_Form_Element_Hidden('code');
     $code->setValue(5)->setAttrib('id', 'code')->removeDecorator('label');
     $this->addElement($code);
     $ma = new Zend_Form_Element_Text('ma');
     $ma->setLabel('Mã hội đồng (*)')->setOrder(1)->setDescription('vd : HDNT2000-01')->setRequired(true)->addFilter('StripTags')->addFilter('StringTrim')->addFilter('StringToUpper')->addValidator('NotEmpty')->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'));
     $this->addElement($ma);
     $ngay_thanh_lap = new Zend_Form_Element_Text('ngay_thanh_lap');
     $ngay_thanh_lap->setLabel('Ngày thành lập (*)')->setDescription('(dd-mm-YYYY)')->setOrder(2)->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' => 'ngay_thanh_lap'));
     $this->addElement($ngay_thanh_lap);
     $ghi_chu = new Zend_Form_Element_Text('ghi_chu');
     $ghi_chu->setLabel('Ghi chú')->setOrder(3)->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('class' => 'text-input medium-input'));
     $this->addElement($ghi_chu);
     //dang ky thanh vien hoi dong
     //danh sach don vi
     $don_vi = new Default_Model_DonVi();
     $donVis = $don_vi->getDSDV();
     unset($donVis['1']);
     $donVis = array('0' => '============= Chọn đơn vị =============') + $donVis;
     $dvOptions = array("multiOptions" => $donVis);
     //danh sach giang vien
     $giangViens = array();
     $giangViens[0] = '===== Chọn giảng viên =====';
     $gvOptions = array("multiOptions" => $giangViens);
     $chucDanhs = Default_Model_Constraints::pcnt_chuc_danh();
     /*
      *  0	 : Chủ tịch
      *	1 	 : Phản biện 1
      *	2	 : Phản biện 2
      *	3	 : Ủy viên
      *  4	 : Ủy viên - Thư ký
      */
     for ($i = 0; $i <= 4; $i++) {
         $dv = new Zend_Form_Element_Select('don_vi_' . $i, $dvOptions);
         $dv->setValue(0)->setDecorators(Khcn_Form_Decorator_Select::getDecorator())->setAttribs(array('id' => 'don_vi_' . $i, 'onchange' => 'change(this,' . $i . ')'));
         $gv = new Zend_Form_Element_Select('thanh_vien_' . $i, $gvOptions);
         $gv->setRequired(true)->setDecorators(Khcn_Form_Decorator_Select::getDecorator())->setAttribs(array('id' => 'thanh_vien_' . $i))->setRegisterInArrayValidator(false);
         $this->addElements(array($dv, $gv));
         $this->addDisplayGroup(array('don_vi_' . $i, 'thanh_vien_' . $i), 'dk_tvhd_' . $i, array('order' => $i + 4, 'Legend' => $chucDanhs[$i] . ' (*)', '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_tvhd_' . $i)))));
     }
     $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')->setOrder(11)->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' => 'ma_linh_vuc'));
     $this->addElement($ma_linh_vuc);
     $namOptions = array("multiOptions" => Default_Model_Constraints::nam());
     $nam = new Zend_Form_Element_Select('nam', $namOptions);
     $nam->setRequired(true)->setLabel('Năm')->setOrder(12)->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'));
     $this->addElement($nam);
     $dsdt = new Zend_Form_Element_Button('dsdt');
     $dsdt->setLabel('Danh sách đề tài')->setDecorators(array('ViewHelper', array(array('data' => 'HtmlTag'), array('tag' => 'span')), array(array('row' => 'HtmlTag'), array('tag' => 'span'))))->setAttribs(array('class' => 'button', 'id' => 'dsdt'));
     $this->addElement($dsdt);
     $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'));
     $this->addElement($submitCon);
     $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'));
     $this->addElement($submitExit);
     $link = Zend_Controller_Front::getInstance()->getRouter()->assemble(array('module' => 'admin', 'controller' => 'hoi-dong', 'action' => 'danh-sach-hdnt'), 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->addElement($cancel);
     $this->addDisplayGroup(array('dsdt'), 'function', array('order' => 13, 'decorators' => array('FormElements', array(array('data' => 'HtmlTag'), array('tag' => 'td')), array(array('row' => 'HtmlTag'), array('tag' => 'td')), array('HtmlTag', array('tag' => 'tr', 'id' => 'btn_function')))));
     $this->addDisplayGroup(array('submitCon', 'submitExit', 'cancel'), 'submit', array('order' => 14, 'decorators' => array('FormElements', array(array('data' => 'HtmlTag'), array('tag' => 'td', 'colspan' => 2)), array(array('row' => 'HtmlTag'), array('tag' => 'td')))));
     $this->setDecorators(array('FormElements', array('HtmlTag', array('tag' => 'table', 'class' => 'hdd')), 'Form'));
 }
Beispiel #3
0
 public function suaAction()
 {
     $this->view->form = $form = new Admin_Form_BaiBao_Edit();
     $id = $this->_getParam('id');
     $bai_bao = Khcn_Api::_()->getItem('default_bai_bao', $id);
     $form->populate($bai_bao->toArray());
     $form->removeElement('submitCon');
     $form->submitExit->setLabel('Lưu');
     if (!$this->getRequest()->isPost()) {
         //populate thành viên
         $thanhViens = $bai_bao->getGiangViens();
         $code = count($thanhViens);
         $form->code->setValue($code);
         $donVis = Khcn_Api::_()->getDbTable('don_vi', 'default')->getDonVisAssoc();
         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 . ')'));
             $gvOptions = array("multiOptions" => Khcn_Api::_()->getDbTable('giang_vien', 'default')->getGiangViensByDonViAssoc($thanh_vien->ma_don_vi));
             $ma_giang_vien = $thanh_vien->getIdentity();
             $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++;
         }
         return;
     }
     $form->preValidation($_POST);
     if (!$form->isValid($this->getRequest()->getPost())) {
         return;
     }
     $table = Khcn_Api::_()->getDbTable('bai_bao', 'default');
     $db = $table->getAdapter();
     $db->beginTransaction();
     try {
         if ($form->file->getFileName(null, false) != null) {
             //determine filename and extension
             $info = pathinfo($form->file->getFileName(null, false));
             $filename = $info['filename'];
             $ext = $info['extension'] ? "." . $info['extension'] : "";
             //filter for renaming.. prepend with current time
             $file = time() . '_' . Default_Model_Functions::convert_vi_to_en($filename) . $ext;
             $form->file->addFilter(new Zend_Filter_File_Rename(array("target" => $file, "overwrite" => true)))->addFilter(new Khcn_Filter_File_Resize(array('width' => 720, 'height' => 720, 'keepRatio' => true)));
             $form->getValue('file');
             $bai_bao->ten_file = $file;
         }
         $values = $form->getValues();
         $bai_bao->setFromArray($values);
         $bai_bao->save();
         // Update thanh vien
         // Clear all
         Khcn_Api::_()->getDbTable('bai_bao_tac_gia', 'default')->delete(array('bai_bao_id = ?' => $bai_bao->getIdentity()));
         // Them thanh vien
         for ($i = 0; $i < $values['code']; $i++) {
             $row = Khcn_Api::_()->getDbTable('bai_bao_tac_gia', 'default')->createRow();
             $row->bai_bao_id = $bai_bao->getIdentity();
             $row->giang_vien_id = $values['thanh_vien_' . $i];
             $row->save();
         }
         $db->commit();
         $_SESSION['msg'] = 'Thành công !. Dữ liệu đã được cập nhật .';
         $_SESSION['type_msg'] = 'success';
         $this->_redirect('/admin/bai-bao/index');
     } catch (Exception $e) {
         $db->rollBack();
         throw $e;
     }
 }
Beispiel #4
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');
 }