From 9567620ff4d72bbad09682616eb597becc989807 Mon Sep 17 00:00:00 2001 From: zhouxin Date: Mon, 13 Dec 2021 07:53:23 +0000 Subject: [PATCH] Finish task #45800. --- db/update16.0.beta1.sql | 1 + db/zentao.sql | 1 + module/project/model.php | 3 +++ module/weekly/model.php | 29 ++++++++++++++++++++++++----- 4 files changed, 29 insertions(+), 5 deletions(-) diff --git a/db/update16.0.beta1.sql b/db/update16.0.beta1.sql index 12e9d024b0..7c29d4ab27 100644 --- a/db/update16.0.beta1.sql +++ b/db/update16.0.beta1.sql @@ -106,3 +106,4 @@ ALTER TABLE `zt_kanbanlane` ADD COLUMN `region` mediumint(8) unsigned NOT NULL A ALTER TABLE `zt_kanbanlane` ADD COLUMN `group` mediumint(8) unsigned NOT NULL AFTER `region`; ALTER TABLE `zt_kanbancolumn` ADD COLUMN `region` mediumint(8) unsigned NOT NULL AFTER `type`; ALTER TABLE `zt_kanbancolumn` ADD COLUMN `group` mediumint(8) unsigned NOT NULL AFTER `region`; +ALTER TABLE `zt_project` ADD COLUMN `suspendedDate` date NOT NULL AFTER `canceledDate`; diff --git a/db/zentao.sql b/db/zentao.sql index 820e0beb02..a9d160e023 100644 --- a/db/zentao.sql +++ b/db/zentao.sql @@ -996,6 +996,7 @@ CREATE TABLE IF NOT EXISTS `zt_project` ( `closedDate` datetime NOT NULL, `canceledBy` varchar(30) NOT NULL DEFAULT '', `canceledDate` datetime NOT NULL, + `suspendedDate` date NOT NULL, `PO` varchar(30) NOT NULL DEFAULT '', `PM` varchar(30) NOT NULL DEFAULT '', `QD` varchar(30) NOT NULL DEFAULT '', diff --git a/module/project/model.php b/module/project/model.php index 2dadc62f81..d88648d13f 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -1245,6 +1245,7 @@ class projectModel extends model ->setDefault('status', 'suspended') ->setDefault('lastEditedBy', $this->app->user->account) ->setDefault('lastEditedDate', $now) + ->setDefault('suspendedDate', $now) ->remove('comment')->get(); $this->dao->update(TABLE_PROJECT)->data($project) @@ -1275,6 +1276,8 @@ class projectModel extends model ->remove('comment,readjustTime,readjustTask') ->get(); + if($oldProject->realBegan == '0000-00-00') $project->realBegan = helper::today(); + if(!$this->post->readjustTime) { unset($project->begin); diff --git a/module/weekly/model.php b/module/weekly/model.php index 349231ae93..8a434d85c8 100644 --- a/module/weekly/model.php +++ b/module/weekly/model.php @@ -22,9 +22,28 @@ class weeklyModel extends model public function getPageNav($project, $date) { $date = date('Ymd', strtotime($this->getThisMonday($date))); - $begin = $project->begin; - $weeks = $this->getWeekPairs($begin); - $current = zget($weeks, $date, ''); + if($project->status == 'wait') + { + $begin = helper::now(); + $end = $begin; + } + if($project->status == 'doing') + { + $begin = $project->realBegan != '0000-00-00' ? $project->realBegan : $date; + $end = $date; + } + if($project->status == 'suspended') + { + $begin = $project->realBegan != '0000-00-00' ? $project->realBegan : $project->suspendedDate; + $end = $project->suspendedDate; + } + if($project->status == 'closed') + { + $begin = $project->realBegan != '0000-00-00' ? $project->realBegan : $project->realEnd; + $end = $project->realEnd; + } + $weeks = $this->getWeekPairs($begin, $end); + $current = zget($weeks, $date, current($weeks)); $selectHtml = "
"; $selectHtml .= html::a('###', $this->lang->weekly->common . $this->lang->colon . $project->name, '', "class='btn'"); $selectHtml .= '
'; @@ -49,9 +68,9 @@ class weeklyModel extends model * @access public * @return array */ - public function getWeekPairs($begin) + public function getWeekPairs($begin, $end = '') { - $sn = $this->getWeekSN($begin, date('Y-m-d')); + $sn = $end != '' ? $this->getWeekSN($begin, $end) : $this->getWeekSN($begin, date('Y-m-d')); $weeks = array(); for($i = 0; $i <= $sn; $i++) {