diff --git a/db/update21.0.sql b/db/update21.0.sql index 0af563e747..9bc71ee734 100644 --- a/db/update21.0.sql +++ b/db/update21.0.sql @@ -51,3 +51,5 @@ DELETE FROM `zt_actionrecent` WHERE `objectType` = 'account'; DELETE FROM `zt_config` WHERE `module` ='common' AND `section` = 'zentaoWebsite'; ALTER TABLE `zt_review` ADD `toAuditBy` varchar(30) not NULL default '' AFTER `lastAuditedDate`; ALTER TABLE `zt_review` ADD `toAuditDate` datetime NULL AFTER `toAuditBy`; + +ALTER TABLE `zt_design` ADD `storyVersion` smallint(6) UNSIGNED NOT NULL DEFAULT 0 AFTER `story`; diff --git a/module/design/control.php b/module/design/control.php index 3635458a39..848cb98751 100755 --- a/module/design/control.php +++ b/module/design/control.php @@ -154,6 +154,9 @@ class design extends control ->setDefault('createdBy', $this->app->user->account) ->get(); + $story = $this->loadModel('story')->getById($designData->story); + if($story) $designData->storyVersion = $story->version; + $designID = $this->design->create($designData); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); @@ -263,6 +266,13 @@ class design extends control if($_POST) { $designData = form::data()->setDefault('editedBy', $this->app->user->account)->get(); + + if($design->story != $designData->story) + { + $story = $this->loadModel('story')->getById($designData->story); + if($story) $designData->storyVersion = $story->version; + } + $changes = $this->design->update($designID, $designData); if(dao::isError()) return $this->send(array('result' => 'fail', 'message' => dao::getError())); diff --git a/module/design/model.php b/module/design/model.php index bc905a6098..0d1888215d 100755 --- a/module/design/model.php +++ b/module/design/model.php @@ -58,11 +58,15 @@ class designModel extends model public function batchCreate(int $projectID = 0, int $productID = 0, array $designs = array()): bool { $this->loadModel('action'); + + $stories = is_array($_POST['story']) ? $this->loadModel('story')->getByList($this->post->story) : array(); + foreach($designs as $rowID => $design) { $design->product = $productID; $design->project = $projectID; $design->createdBy = $this->app->user->account; + if(!empty($stories[$design->story])) $design->storyVersion = $stories[$design->story]->version; $this->dao->insert(TABLE_DESIGN)->data($design)->autoCheck()->batchCheck($this->config->design->batchcreate->requiredFields, 'notempty')->exec(); if(dao::isError())