Beispiel #1
0
 public function projectsAction()
 {
     /*--search options---*/
     $search = trim($this->_getParam('search'));
     $status = trim($this->_getParam('status'));
     $project_manager_id = trim($this->_getParam('project_manager_id'));
     $team_leader_id = trim($this->_getParam('team_leader_id'));
     $where = '1=1';
     $linkArray = array();
     $this->view->search = "Search...";
     if ($search != "" && $search != "Search...") {
         $where = "(p.title like '%{$search}%' or p.description like '%{$search}%' or p.client_info like '%{$search}%' or p.start_date like '%{$search}%' or p.end_date like '%{$search}%' or pm.first_name like '%{$search}%' or pm.last_name like '%{$search}%' or tl.first_name like '%{$search}%' or tl.last_name like '%{$search}%')";
         $linkArray['search'] = $search;
         $this->view->search = $search;
     }
     if ($status != "") {
         if (is_null($where)) {
             $where .= " p.status='{$status}'";
         } else {
             $where .= " and p.status='{$status}'";
         }
         $linkArray['status'] = $status;
         $this->view->status = $status;
     }
     if ($project_manager_id != "") {
         if (is_null($where)) {
             $where .= " p.project_manager_id='{$project_manager_id}'";
         } else {
             $where .= " and p.project_manager_id='{$project_manager_id}'";
         }
         $linkArray['project_manager_id'] = $project_manager_id;
         $this->view->project_manager_id = $project_manager_id;
     }
     if ($team_leader_id != "") {
         if (is_null($where)) {
             $where .= " p.team_leader_id='{$team_leader_id}'";
         } else {
             $where .= " and p.team_leader_id='{$team_leader_id}'";
         }
         $linkArray['team_leader_id'] = $team_leader_id;
         $this->view->team_leader_id = $team_leader_id;
     }
     /*----search options----*/
     $this->view->linkArray = $linkArray;
     $this->view->page_size = $page_size = $this->_getParam('page_size', 25);
     $page = $this->_getParam('page', 1);
     $model = new Application_Model_Project();
     $table = $model->getMapper()->getDbTable();
     $select = $table->select()->setIntegrityCheck(false)->from(array("p" => 'project'))->join(array("pm" => "user"), 'pm.id=p.project_manager_id', array("pm_first_name" => 'first_name', "pm_last_name" => 'last_name', 'pm_id' => 'id'))->join(array("tl" => "user"), 'tl.id=p.team_leader_id', array("tl_first_name" => 'first_name', "tl_last_name" => 'last_name', 'tl_id' => 'id'))->order('status Asc')->order('addedon desc')->where($where);
     //echo $sql = $select->__toString();
     $paginator = Base_Paginator::factory($select);
     $paginator->setItemCountPerPage($page_size);
     $paginator->setCurrentPageNumber($page);
     $this->view->totalItems = $paginator->getTotalItemCount();
     $this->view->paginator = $paginator;
     $this->view->projectManagers = $model->getActiveProjectManagers();
     $this->view->teamLeaders = $model->getActiveTeamLeaders();
 }