diff --git a/db/update20.0.sql b/db/update20.0.sql index cb7333579e..f65b35f90e 100644 --- a/db/update20.0.sql +++ b/db/update20.0.sql @@ -80,7 +80,7 @@ CREATE TABLE `zt_stakeholder` ( -- DROP TABLE IF EXISTS `zt_expect`; CREATE TABLE `zt_expect` ( - `id` mediumint(8) NOT NULL, + `id` mediumint(8) NOT NULL AUTO_INCREMENT, `userID` mediumint(8) NOT NULL, `program` mediumint(8) NOT NULL DEFAULT 0, `expect` text NOT NULL, diff --git a/db/zentao.sql b/db/zentao.sql index 3a7ec7f41f..47f1bd619c 100644 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -1301,7 +1301,7 @@ CREATE TABLE IF NOT EXISTS `zt_entry` ( ) ENGINE=MyISAM DEFAULT CHARSET=utf8; -- DROP TABLE IF EXISTS `zt_expect`; CREATE TABLE `zt_expect` ( - `id` mediumint(8) NOT NULL, + `id` mediumint(8) NOT NULL AUTO_INCREMENT, `userID` mediumint(8) NOT NULL, `program` mediumint(8) NOT NULL DEFAULT 0, `expect` text NOT NULL, diff --git a/module/my/view/program.html.php b/module/my/view/program.html.php index a2e9acec50..57e6da5093 100644 --- a/module/my/view/program.html.php +++ b/module/my/view/program.html.php @@ -37,13 +37,13 @@ idAB);?> - program->code);?> - program->name);?> - program->status);?> + program->PRJCode);?> + program->PRJName);?> + program->PRJStatus);?> program->begin);?> program->end);?> - program->budget);?> - program->PM);?> + program->PRJBudget);?> + program->PRJPM);?> actions;?> project->orderAB);?> @@ -93,7 +93,7 @@ id", $program, 'list', '', '', 'iframe', true);?> id", $program, 'list', '', '', 'iframe', true);?> createLink("program", "edit", "programID=$program->id"), "", '', "class='btn' title='{$lang->edit}'");?> - id", '', 'list', 'treemap-alt', '', '', '', '', $this->lang->program->children);?> + id", '', 'list', 'treemap-alt', '', '', '', '', $this->lang->program->PRJChildren);?> createLink("program", "delete", "programID=$program->id"), "", 'hiddenwin', "class='btn' title='{$lang->delete}'");?> diff --git a/module/stakeholder/control.php b/module/stakeholder/control.php index 288ef13b44..032cc3e543 100644 --- a/module/stakeholder/control.php +++ b/module/stakeholder/control.php @@ -149,44 +149,6 @@ class stakeholder extends control $this->display(); } - /** - * Stakeholder plan list. - * - * @param int $stakeholderID - * @access public - * @return void - */ - public function plan() - { - if($_POST) - { - $result = $this->stakeholder->savePlan(); - - $response['result'] = 'success'; - $response['message'] = $this->lang->saveSuccess; - if(!$result) - { - $response['result'] = 'fail'; - $response['message'] = dao::getError(); - $this->send($response); - } - - $response['locate'] = inlink('plan'); - $this->send($response); - } - - $this->view->title = $this->lang->stakeholder->planField->common; - $this->view->position[] = $this->lang->stakeholder->planField->common; - - $this->view->plans = $this->stakeholder->getPlans(); - $this->view->processGroup = $this->stakeholder->getProcessGroup(); - $this->view->activities = $this->stakeholder->getActivities(); - $this->view->processes = $this->stakeholder->getProcess(); - $this->view->stakeholders = $this->stakeholder->getListByType(); - - $this->display(); - } - /** * Ajax get members. * @@ -419,143 +381,6 @@ class stakeholder extends control $this->view->actions = $this->loadModel('action')->getList($object, $stakeholderID); } - /** - * Get expected list data. - * - * @param string $browseType - * @param string orderBy - * @param int recTotal - * @param int recPerPage - * @param int pageID - * @access public - * @return void - */ - public function expectation($browseType = 'all', $param = 0, $orderBy = 'id_desc', $recTotal = 0, $recPerPage = 20, $pageID = 1) - { - $this->config->stakeholder->search['params']['userID']['values'] = $this->stakeholder->getStakeholderUsers(); - - /* Build the search form. */ - $queryID = ($browseType == 'bysearch') ? (int)$param : 0; - $actionURL = $this->createLink('stakeholder', 'expectation', "browseType=bysearch&queryID=myQueryID"); - $this->stakeholder->buildSearchForm($actionURL, $queryID); - - $this->app->loadClass('pager', true); - $pager = pager::init($recTotal, $recPerPage, $pageID); - $expects = $this->stakeholder->getExpectList($browseType, $queryID, $orderBy, $pager); - - $this->view->title = $this->lang->stakeholder->common . $this->lang->colon . $this->lang->stakeholder->expectation; - $this->view->position[] = $this->lang->stakeholder->view; - - $this->view->pager = $pager; - $this->view->recTotal = $recTotal; - $this->view->recPerPage = $recPerPage; - $this->view->pageID = $pageID; - $this->view->param = $param; - $this->view->orderBy = $orderBy; - $this->view->browseType = $browseType; - $this->view->expects = $expects; - $this->view->users = $this->loadModel('user')->getPairs('noletter|noclosed'); - - $this->display(); - } - - /** - * Deleted expect. - * - * @access public - * @param int $expectID - * @param string $confirm yes|no - * @return void - */ - public function deleteExpect($expectID, $confirm = 'no') - { - if($confirm == 'no') - { - die(js::confirm($this->lang->stakeholder->confirmDeleteExpect, inLink('deleteExpect', "expectID=$expectID&confirm=yes"))); - } - else - { - $this->stakeholder->deleteExpect($expectID); - die(js::reload('parent')); - } - } - - /** - * Add expect. - * - * @access public - * @return void - */ - public function createExpect() - { - if($_POST) - { - $expectID = $this->stakeholder->expect(); - if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError())); - - $actionID = $this->loadModel('action')->create('expect', $expectID, 'Opened'); - $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inLink('expectation'))); - } - - $this->view->title = $this->lang->stakeholder->common . $this->lang->colon . $this->lang->stakeholder->createExpect; - $this->view->position[] = $this->lang->stakeholder->createExpect; - - $this->view->users = $this->stakeholder->getStakeholderUsers(); - - $this->display(); - } - - /** - * Edit expect. - * - * @param int $expectID - * @access public - * @return void - */ - public function editExpect($expectID) - { - if($_POST) - { - $changes = $this->stakeholder->editExpect($expectID); - if(dao::isError()) $this->send(array('result' => 'fail', 'message' => dao::getError())); - - $actionID = $this->loadModel('action')->create('expect', $expectID, 'Edited'); - - $this->action->logHistory($actionID, $changes); - $this->send(array('result' => 'success', 'message' => $this->lang->saveSuccess, 'locate' => inLink('expectation'))); - } - - $this->view->title = $this->lang->stakeholder->common . $this->lang->colon . $this->lang->stakeholder->editExpect; - $this->view->position[] = $this->lang->stakeholder->editExpect; - - $this->view->users = $this->stakeholder->getStakeholderUsers(); - $this->view->expect = $this->stakeholder->getExpectByID($expectID); - - $this->display(); - } - - /** - * Expect details. - * - * @access public - * @param int $expectID - * @return void - */ - public function viewExpect($expectID = 0) - { - $this->commonAction($expectID, 'expect'); - $expect = $this->stakeholder->getExpectByID($expectID); - - $this->view->title = $this->lang->stakeholder->common . $this->lang->colon . $this->lang->stakeholder->viewExpect; - $this->view->position[] = $this->lang->stakeholder->viewExpect; - - $this->view->expect = $expect; - $this->view->user = $this->stakeholder->getByID($expect->userID); - $this->view->users = $this->loadModel('project')->getTeamMemberPairs($this->session->PRJ ,'nodeleted'); - - $this->display(); - } - /** * Issue details. * diff --git a/module/stakeholder/lang/zh-cn.php b/module/stakeholder/lang/zh-cn.php index aaade6c01e..43f5f59eb8 100644 --- a/module/stakeholder/lang/zh-cn.php +++ b/module/stakeholder/lang/zh-cn.php @@ -6,7 +6,6 @@ $lang->stakeholder->batchCreate = '批量添加'; $lang->stakeholder->create = '添加干系人'; $lang->stakeholder->edit = '编辑干系人'; $lang->stakeholder->view = '干系人详情'; -$lang->stakeholder->plan = '介入计划表'; $lang->stakeholder->delete = '删除干系人'; $lang->stakeholder->createdBy = '创建者'; $lang->stakeholder->createdDate = '创建时间'; @@ -28,51 +27,27 @@ $lang->stakeholder->viewIssue = '活动问题列表'; $lang->stakeholder->userIssue = '干系人问题列表'; /* Fields. */ -$lang->stakeholder->id = '编号'; -$lang->stakeholder->user = '用户'; -$lang->stakeholder->type = '类型'; -$lang->stakeholder->name = '姓名'; -$lang->stakeholder->phone = '手机'; -$lang->stakeholder->qq = 'QQ'; -$lang->stakeholder->weixin = '微信'; -$lang->stakeholder->email = '邮箱'; -$lang->stakeholder->isKey = '关键干系人'; -$lang->stakeholder->inside = '内部干系人'; -$lang->stakeholder->outside = '外部干系人'; -$lang->stakeholder->from = '类型'; -$lang->stakeholder->company = '所属公司'; -$lang->stakeholder->nature = '性格特征'; -$lang->stakeholder->analysis = '影响分析'; -$lang->stakeholder->strategy = '应对策略'; -$lang->stakeholder->expect = '期望内容'; -$lang->stakeholder->progress = '达成进展'; -$lang->stakeholder->createdBy = '创建者'; -$lang->stakeholder->createdDate = '创建日期'; -$lang->stakeholder->noPlan = '暂无活动,请先进行过程裁剪。'; -$lang->stakeholder->emptyTip = '暂无问题。'; - -/* Plan */ -$lang->stakeholder->planField = new stdclass(); -$lang->stakeholder->planField->common = '干系人介入计划表'; -$lang->stakeholder->planField->process = '过程活动'; -$lang->stakeholder->planField->begin = '计划开展日期'; -$lang->stakeholder->planField->realBegin = '实际开展日期'; -$lang->stakeholder->planField->status = '状况跟踪'; -$lang->stakeholder->planField->inside = '内部干系人'; -$lang->stakeholder->planField->outside = '外部干系人'; -$lang->stakeholder->planField->comment = '备注'; -$lang->stakeholder->planField->situation = '实际参与情况'; -$lang->stakeholder->planField->issue = '问题列表'; -$lang->stakeholder->planField->statusTips = '状况跟踪:已获得承诺、已确认'; -$lang->stakeholder->planField->partakeTips = '参与类型: P(Principal:主要负责),I(Involved:参与),O(Optional:可选参与)'; - -$lang->stakeholder->planField->stautsList['no'] = 'N'; -$lang->stakeholder->planField->stautsList['yes'] = 'Y'; - -$lang->stakeholder->planField->partakeList[''] = ''; -$lang->stakeholder->planField->partakeList['principal'] = 'P'; -$lang->stakeholder->planField->partakeList['involved'] = 'I'; -$lang->stakeholder->planField->partakeList['optional'] = 'O'; +$lang->stakeholder->id = '编号'; +$lang->stakeholder->user = '用户'; +$lang->stakeholder->type = '类型'; +$lang->stakeholder->name = '姓名'; +$lang->stakeholder->phone = '手机'; +$lang->stakeholder->qq = 'QQ'; +$lang->stakeholder->weixin = '微信'; +$lang->stakeholder->email = '邮箱'; +$lang->stakeholder->isKey = '关键干系人'; +$lang->stakeholder->inside = '内部干系人'; +$lang->stakeholder->outside = '外部干系人'; +$lang->stakeholder->from = '类型'; +$lang->stakeholder->company = '所属公司'; +$lang->stakeholder->nature = '性格特征'; +$lang->stakeholder->analysis = '影响分析'; +$lang->stakeholder->strategy = '应对策略'; +$lang->stakeholder->expect = '期望内容'; +$lang->stakeholder->progress = '达成进展'; +$lang->stakeholder->createdBy = '创建者'; +$lang->stakeholder->createdDate = '创建日期'; +$lang->stakeholder->emptyTip = '暂无问题。'; $lang->stakeholder->keyList[0] = '否'; $lang->stakeholder->keyList[1] = '是'; @@ -84,16 +59,12 @@ $lang->stakeholder->fromList['team'] = '项目团队成员'; $lang->stakeholder->fromList['company'] = '公司同事'; $lang->stakeholder->fromList['outside'] = '外部人员'; -$lang->stakeholder->situationList['all'] = '全部参与'; -$lang->stakeholder->situationList['part'] = '部分参与'; -$lang->stakeholder->situationList['wait'] = '未开始'; - -$lang->stakeholder->userEmpty = '用户不能为空!'; -$lang->stakeholder->nameEmpty = '姓名不能为空!'; -$lang->stakeholder->companyEmpty = '所属公司不能为空!'; -$lang->stakeholder->confirmDelete = "您确定删除该干系人吗?"; +$lang->stakeholder->userEmpty = '用户不能为空!'; +$lang->stakeholder->nameEmpty = '姓名不能为空!'; +$lang->stakeholder->companyEmpty = '所属公司不能为空!'; +$lang->stakeholder->confirmDelete = "您确定删除该干系人吗?"; $lang->stakeholder->confirmDeleteExpect = "您确定删除该干系人期望吗?"; -$lang->stakeholder->createCommunicate = '添加沟通记录'; +$lang->stakeholder->createCommunicate = '添加沟通记录'; $lang->stakeholder->action = new stdclass(); $lang->stakeholder->action->communicate = array('main' => '$date, 由 $actor 沟通。'); diff --git a/module/stakeholder/model.php b/module/stakeholder/model.php index 3d29610162..ffdb83cdda 100644 --- a/module/stakeholder/model.php +++ b/module/stakeholder/model.php @@ -102,6 +102,7 @@ class stakeholderModel extends model */ public function batchCreate() { + $this->loadModel('action'); $data = (array)fixer::input('post')->get(); $members = $this->loadModel('project')->getTeamMemberPairs($this->session->PRJ); @@ -122,6 +123,9 @@ class stakeholderModel extends model $stakeholder->createdDate = isset($oldJoin[$account]) ? $oldJoin[$account] : helper::today(); $this->dao->insert(TABLE_STAKEHOLDER)->data($stakeholder)->exec(); + + $stakeholderID = $this->dao->lastInsertId(); + $this->action->create('stakeholder', $stakeholderID, 'Opened'); } /* Only changed account update userview. */ @@ -178,38 +182,6 @@ class stakeholderModel extends model return false; } - /** - * Save stakeholder plan. - * - * @param string $browseType - * @param string $orderBy - * @param object $pager - * @access public - * @return array - */ - public function savePlan() - { - $data = fixer::input('post')->get(); - - foreach($data->status as $activityID => $value) - { - $stakeholder = new stdclass(); - $stakeholder->activity = $activityID; - $stakeholder->status = $data->status[$activityID]; - $stakeholder->begin = $data->begin[$activityID]; - $stakeholder->realBegin = $data->realBegin[$activityID]; - $stakeholder->partake = json_encode($data->partake[$activityID]); - $stakeholder->situation = $data->situation[$activityID]; - $stakeholder->program = $this->session->PRJ; - $stakeholder->createdBy = $this->app->user->account; - $stakeholder->createdDate = helper::today(); - - $this->dao->replace(TABLE_INTERVENTION)->data($stakeholder)->exec(); - } - - return !dao::isError(); - } - /** * Get stakeholder list. * diff --git a/module/stakeholder/view/createexpect.html.php b/module/stakeholder/view/createexpect.html.php deleted file mode 100644 index cc00348e82..0000000000 --- a/module/stakeholder/view/createexpect.html.php +++ /dev/null @@ -1,44 +0,0 @@ - - * @package product - * @version $Id: browse.html.php 5096 2013-07-11 07:02:43Z chencongzhi520@gmail.com $ - * @link http://www.zentao.net - */ -?> - - -
-
-
-

stakeholder->createExpect;?>

-
-
- - - - - - - - - - - - - - - - - - - -
stakeholder->common;?>
stakeholder->expect;?>
stakeholder->progress;?>
-
-
-
- diff --git a/module/stakeholder/view/editexpect.html.php b/module/stakeholder/view/editexpect.html.php deleted file mode 100644 index 12112ce33c..0000000000 --- a/module/stakeholder/view/editexpect.html.php +++ /dev/null @@ -1,45 +0,0 @@ - - * @package product - * @version $Id: browse.html.php 5096 2013-07-11 07:02:43Z chencongzhi520@gmail.com $ - * @link http://www.zentao.net - */ -?> - - -
-
-
-

stakeholder->editExpect;?>

-
-
- - - - - - - - - - - - - - - - - id);?> - - - -
stakeholder->common;?>userID, "class='form-control chosen'");?>
stakeholder->expect;?>expect, "rows='6'");?>
stakeholder->progress;?>progress, "rows='6'");?>
-
-
-
- diff --git a/module/stakeholder/view/expectation.html.php b/module/stakeholder/view/expectation.html.php deleted file mode 100644 index c95eaa975e..0000000000 --- a/module/stakeholder/view/expectation.html.php +++ /dev/null @@ -1,77 +0,0 @@ - - * @package product - * @version $Id: browse.html.php 5096 2013-07-11 07:02:43Z chencongzhi520@gmail.com $ - * @link http://www.zentao.net - */ -?> - - -
-
-
- -
- - - - recTotal}&recPerPage={$pager->recPerPage}";?> - - - - - - - - - - - - - - - - - - -
- idAB);?> - stakeholder->common;?>stakeholder->createdBy;?>stakeholder->createdDate;?>actions;?>
- createLink('stakeholder', 'viewExpect', "id=$expect->id"), sprintf('%03d', $expect->id));?> - - realname;?> - key):?> - - - createdBy);?>createdDate;?> - id", $expect, 'list', 'edit', '', '', ''); - $deleteClass = common::hasPriv('stakeholder', 'deleteExpect') ? 'btn' : 'btn disabled'; - echo html::a($this->createLink('stakeholder', 'deleteExpect', "id=$expect->id"), '', 'hiddenwin', "title='{$lang->stakeholder->delete}' class='{$deleteClass}'"); - ?> -
- - - -
- -
noData;?>
- -
-
- diff --git a/module/stakeholder/view/plan.html.php b/module/stakeholder/view/plan.html.php deleted file mode 100644 index d10d32ad56..0000000000 --- a/module/stakeholder/view/plan.html.php +++ /dev/null @@ -1,130 +0,0 @@ - - -'; -$outsideList = ''; -$insideColspan = 1; -$outsideColspan = 1; -if(isset($stakeholders['inside'])) -{ - $insideColspan = count($stakeholders['inside']); - $insideList = ''; - foreach($stakeholders['inside'] as $user) - { - if($user->role) $user->name .= '(' . zget($lang->user->roleList, $user->role) . ')'; - $insideList .= "" . $user->name . ''; - } -} - -if(isset($stakeholders['outside'])) -{ - $outsideColspan = count($stakeholders['outside']); - $outsideList = ''; - foreach($stakeholders['outside'] as $user) - { - if($user->role) $user->name .= '(' . zget($lang->user->roleList, $user->role) . ')'; - $outsideList .= '' . $user->name . ''; - } -} -js::set('insideList', $insideList); -js::set('insideColspan', $insideColspan); -js::set('outsideList', $outsideList); -js::set('outsideColspan', $outsideColspan); -?> -
-
- -
- - - - - - - - - - - - - - - $activityGroup):?> - - - - - - - - - - - - - - - - - - - -
stakeholder->planField->process;?>stakeholder->planField->begin;?>stakeholder->planField->realBegin;?>stakeholder->planField->status;?>stakeholder->planField->situation;?>>stakeholder->planField->inside;?>>stakeholder->planField->outside;?>actions;?>
> - ' . zget($processes, $processID) . '';?> -
activity);?>> - activity);?> - activity]) ? $plans[$activity->activity]->begin : '';?>activity]) ? $plans[$activity->activity]->realBegin : '';?>activity]) ? zget($lang->stakeholder->planField->stautsList, $plans[$activity->activity]->status) : '';?>activity]) ? zget($lang->stakeholder->situationList, $plans[$activity->activity]->situation) : '';?> - activity]) ? json_decode($plans[$activity->activity]->partake) : new stdclass(); - if(isset($stakeholders['inside'])) - { - foreach($stakeholders['inside'] as $user) - { - if(isset($partake->{$user->account})) - { - echo '' . zget($lang->stakeholder->planField->partakeList, $partake->{$user->account}) . ''; - } - else - { - echo ''; - } - } - } - ?> - - {$user->account})) - { - echo '' . zget($lang->stakeholder->planField->partakeList, $partake->{$user->account}) . ''; - } - else - { - echo ''; - } - } - } - ?> - - ', '', "class='btn edit-btn' title=$lang->edit activity=$activity->activity");?> - activity", '', 'list', 'eye', '', 'iframe', true, '', $lang->stakeholder->planField->issue);?> -
- -
- -
-

stakeholder->noPlan;?>

-
- -
-
- diff --git a/module/stakeholder/view/view.html.php b/module/stakeholder/view/view.html.php index 6fbb64c681..aa3649c285 100644 --- a/module/stakeholder/view/view.html.php +++ b/module/stakeholder/view/view.html.php @@ -58,7 +58,7 @@ $createLink = $this->createLink('stakeholder', 'create');
stakeholder->expect . "($expect->createdDate)";?>
- expectr) ? $expect->expect : '
' . $lang->noData . '
';?> + expect) ? $expect->expect : '
' . $lang->noData . '
';?>
diff --git a/module/stakeholder/view/viewexpect.html.php b/module/stakeholder/view/viewexpect.html.php deleted file mode 100644 index 57d3004122..0000000000 --- a/module/stakeholder/view/viewexpect.html.php +++ /dev/null @@ -1,110 +0,0 @@ - - * @package company - * @version $Id: edit.html.php 4488 2013-02-27 02:54:49Z chencongzhi520@gmail.com $ - * @link http://www.zentao.net - */ -?> - - -createLink('stakeholder', 'expectation'); -$createLink = $this->createLink('stakeholder', 'createExpect'); -?> - -
-
-
-
-
stakeholder->expect;?>
-
- expect) ? $expect->expect : '
' . $lang->noData . '
';?> -
-
-
-
stakeholder->progress;?>
-
- progress) ? $expect->progress : '
' . $lang->noData . '
';?> -
-
-
- createLink('action', 'comment', "objectType=expect&objectID=$expect->id");?> -
-
-
-
-
- -
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
stakeholder->name;?>name?>
lang->stakeholder->type;?>stakeholder->typeList, $user->type, '');?>
lang->stakeholder->company;?>companyName;?>
lang->stakeholder->phone;?>phone;?>
lang->stakeholder->qq;?>qq;?>
lang->stakeholder->weixin;?>weixin;?>
lang->stakeholder->email;?>email;?>
lang->stakeholder->isKey;?>stakeholder->keyList, $user->key, '');?>
lang->stakeholder->from;?>stakeholder->fromList, $user->from, '');?>
-
-
-
-
-
-
- -