public function dangKyAction()
 {
     // Set up require's
     $viewer = Khcn_Api::_()->getViewer();
     if (!$this->_helper->requireUser()->isValid()) {
         return;
     }
     if (!$this->_helper->requireAuth()->setAuthParams('giang_vien', $viewer, 'create')->isValid()) {
         return;
     }
     $this->view->user = $user = $viewer;
     if ($user->isGiangVien()) {
         return $this->_helper->redirector->gotoRoute(array(), 'default', true);
     }
     $tableGV = Khcn_Api::_()->getDbTable('giang_vien', 'default');
     $verify_teacher = Khcn_Api::_()->getApi('settings', 'default')->getSetting('default_verify_teacher', true);
     $this->view->form = $form = new Default_Form_GiangVien_Create();
     $form->removeElement('ma_giang_vien');
     $queue = Khcn_Api::_()->getDbTable('queue', 'default')->getQueueByND($user->id);
     $this->view->is_queue = $is_queue = false;
     if ($queue) {
         $this->view->is_queue = $is_queue = true;
         $this->view->queue = $queue;
     }
     if (!$this->getRequest()->isPost()) {
         return;
     }
     if (!$form->isValid($this->getRequest()->getPost())) {
         return;
     }
     $db = $tableGV->getAdapter();
     $db->beginTransaction();
     try {
         $values = $form->getValues();
         if ($verify_teacher) {
             $tableQueue = Khcn_Api::_()->getDbTable('queue', 'default');
             $row = $tableQueue->getQueueByND($user->id);
             if (!$row) {
                 $row = $tableQueue->createRow();
                 $row->nguoi_dung_id = $user->id;
                 $row->ma_giang_vien = $values['ma'];
                 $row->ho = $values['ho'];
                 $row->ten = $values['ten'];
                 $row->email = $values['email'];
                 $row->don_vi_id = $values['ma_don_vi'];
                 $row->hoc_vi_id = $values['ma_hoc_vi'];
                 $row->so_dien_thoai = $values['so_dien_thoai'];
                 $row->chuc_vu = $values['chuc_vu'];
                 $row->save();
             }
             $autoRedirect = false;
             $message = "Thông tin giảng viên của bạn cần được xác nhận. Xin vui lòng liên hệ phòng Khoa học Công nghệ để được kích hoạt nhanh nhất.";
         } else {
             $giang_vien = $tableGV->getGiangVienByOptions(array('ma_giang_vien' => $values['ma']));
             if (!$giang_vien) {
                 $giang_vien = $tableGV->createRow();
                 $giang_vien->ma = $values['ma'];
             }
             $giang_vien->ho = $values['ho'];
             $giang_vien->ten = $values['ten'];
             $giang_vien->email = $values['email'];
             $giang_vien->so_dien_thoai = $values['so_dien_thoai'];
             $giang_vien->chuc_vu = $values['chuc_vu'];
             $giang_vien->ma_don_vi = $values['ma_don_vi'];
             $giang_vien->ma_hoc_vi = $values['ma_hoc_vi'];
             $giang_vien->save();
             $user->giang_vien_id = $giang_vien->id;
             $user->ma_quyen = Khcn_Api::_()->getDbTable('quyen', 'default')->getLevelIdByType('teacher');
             $user->save();
             $autoRedirect = true;
             $message = "Thành công. Thông tin giảng viên đã được cập nhật.";
         }
         $db->commit();
         return $this->_forward('thong-bao', 'index', 'default', array('messages' => array(Zend_Registry::get('Zend_Translate')->_($message))));
     } catch (Exception $e) {
         $db->rollBack();
         throw $e;
     }
 }
Example #2
0
 public function init()
 {
     parent::init();
     $this->setAttrib('class', 'global_form form_giang_vien_create form_giang_vien_edit');
 }