app->loadClass('pager', true); $pager = pager::init($recTotal, $recPerPage, $pageID); $stakeholders = $this->stakeholder->getStakeholders($browseType, $orderBy, $pager); $this->view->title = $this->lang->stakeholder->browse; $this->view->position[] = $this->lang->stakeholder->browse; $this->view->pager = $pager; $this->view->recTotal = $recTotal; $this->view->recPerPage = $recPerPage; $this->view->pageID = $pageID; $this->view->orderBy = $orderBy; $this->view->browseType = $browseType; $this->view->stakeholders = $stakeholders; $this->display(); } /** * Create a stakeholder. * * @param int programID * @access public * @return void */ public function create($programID = 0) { if($_POST) { $stakeholderID = $this->stakeholder->create($programID); $response['result'] = 'success'; $response['message'] = $this->lang->saveSuccess; if(!$stakeholderID or dao::isError()) { $response['result'] = 'fail'; $response['message'] = dao::getError(); $this->send($response); } $actionID = $this->loadModel('action')->create('stakeholder', $stakeholderID, 'added'); $moduleName = $programID ? 'program' : $this->moduleName; $methodName = $programID ? 'pgmstakeholder' : 'browse'; $param = $programID ? "programID=$programID" : ''; $locate = $this->createLink($moduleName, $methodName, $param); $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => $locate)); } if($programID) { $this->loadModel('program'); $this->app->rawModule = 'program'; $this->app->rawMethod = 'pgmstakeholder'; $this->lang->navGroup->program = 'program'; $this->lang->program->switcherMenu = $this->program->getPGMSwitcher($programID, true); $this->program->setPGMViewMenu($programID); $this->view->members = $this->program->getPRJTeamMemberPairs($programID); } else { $this->view->members = $this->loadModel('project')->getTeamMemberPairs($this->session->PRJ); } $this->view->title = $this->lang->stakeholder->create; $this->view->position[] = $this->lang->stakeholder->create; $this->view->companys = $this->loadModel('company')->getOutsideCompanies(); $this->view->programID = $programID; $this->display(); } /** * Batch create stakeholders. * * @access public * @return void */ public function batchCreate($dept = '', $parentID = 0) { if($_POST) { $this->stakeholder->batchCreate(); die(js::locate($this->createLink('stakeholder', 'browse'), 'parent')); } $this->loadModel('user'); $this->loadModel('dept'); $deptUsers = $dept === '' ? array() : $this->dept->getDeptUserPairs($dept); $this->view->title = $this->lang->stakeholder->batchCreate; $this->view->position[] = $this->lang->stakeholder->batchCreate; $this->view->project = $this->loadModel('program')->getPGMByID($this->session->PRJ); $this->view->users = $this->user->getPairs('all|nodeleted|noclosed'); $this->view->deptUsers = $deptUsers; $this->view->dept = $dept; $this->view->projectID = $this->session->PRJ; $this->view->depts = array('' => '') + $this->dept->getOptionMenu(); $this->view->stakeholders = $this->stakeholder->getStakeholders('all', 'id_desc'); $this->view->parentStakeholders = $this->program->getStakeholders($parentID, 't1.id_desc'); $this->display(); } /** * Edit a stakeholder. * * @param int $stakeholderID * @access public * @return void */ public function edit($stakeholderID = 0) { $stakeholder = $this->stakeholder->getByID($stakeholderID); if($_POST) { $changes = $this->stakeholder->edit($stakeholderID); $response['result'] = 'success'; $response['message'] = $this->lang->saveSuccess; if(dao::isError()) { $response['result'] = 'fail'; $response['message'] = dao::getError(); $this->send($response); } $actionID = $this->loadModel('action')->create('stakeholder', $stakeholderID, 'Edited'); $this->action->logHistory($actionID, $changes); $response['locate'] = $this->createLink('stakeholder', 'browse', ''); $this->send($response); } $users = array('' => ''); if($stakeholder->type == 'team') $users = $this->loadModel('project')->getTeamMemberPairs($this->session->PRJ); elseif($stakeholder->type == 'company') { $members = $this->loadModel('project')->getTeamMemberPairs($this->session->PRJ); $users = $this->loadModel('user')->getPairs('noclosed'); $users = array('' => '') + array_diff($users, $members); } $this->view->title = $this->lang->stakeholder->edit; $this->view->position[] = $this->lang->stakeholder->edit; $this->view->stakeholder = $stakeholder; $this->view->users = $users; $this->view->companys = $this->loadModel('company')->getOutsideCompanies(); $this->display(); } /** * Ajax get members. * * @param string $user * @param int $programID * @access public * @return void */ public function ajaxGetMembers($user = '', $programID = 0) { $members = $programID == 0 ? $this->loadModel('project')->getTeamMemberPairs($this->session->PRJ) : $this->loadModel('program')->getPRJTeamMemberPairs($programID); die(html::select('user', $members, $user, "class='form-control chosen'")); } /** * Ajax get company user. * * @param string $user * @param int $programID * @access public * @return void */ public function ajaxGetCompanyUser($user = '', $programID = 0) { $members = $programID == 0 ? $this->loadModel('project')->getTeamMemberPairs($this->session->PRJ) : $this->loadModel('program')->getPRJTeamMemberPairs($programID); $users = $this->loadModel('user')->getPairs('noclosed'); $companyUsers = array('' => '') + array_diff($users, $members); die(html::select('user', $companyUsers, $user, "class='form-control chosen'")); } /** * Ajax get outside user. * * @access public * @return void */ public function ajaxGetOutsideUser() { $users = $this->loadModel('user')->getPairs('noclosed|outside|noletter'); die(html::select('user', $users, '', "class='form-control chosen' onchange=changeUser(this.value);")); } /** * Ajax get outside company. * * @access public * @return void */ public function ajaxGetOutsideCompany() { $companys = $this->loadModel('company')->getOutsideCompanies(); die(html::select('company', $companys, '', "class='form-control chosen'")); } /** * Ajax get control. * * @access public * @return void */ public function ajaxGetControl($activityID = 0) { $plan = $this->dao->select('*')->from(TABLE_INTERVENTION)->where('activity')->eq($activityID)->fetch(); $begin = html::input("begin[$activityID]", isset($plan->begin) ? $plan->begin : '', 'class="form-control form-date"'); $realBegin = html::input("realBegin[$activityID]", isset($plan->realBegin) ? $plan->realBegin: '', 'class="form-control form-date"'); $status = html::select("status[$activityID]", $this->lang->stakeholder->planField->stautsList, isset($plan->status) ? $plan->status : '', 'class="form-control"'); $situation = html::select("situation[$activityID]", $this->lang->stakeholder->situationList, isset($plan->situation) ? $plan->situation : '', 'class="form-control"'); $stakeholders = $this->stakeholder->getListByType(); $partakeList = isset($plan->partake) ? json_decode($plan->partake) : new stdclass(); $insideList = array("