From 83dbebc5b8a509df6e94b515d9b1f52ac2c2addc Mon Sep 17 00:00:00 2001 From: tanghucheng Date: Wed, 28 Sep 2022 11:16:33 +0800 Subject: [PATCH] * Task#70759 Add relation productID for copyProject. --- module/program/model.php | 5 +++-- module/project/control.php | 6 ++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/module/program/model.php b/module/program/model.php index 5c3c36218c..90c0ddf67f 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -66,10 +66,11 @@ class programModel extends model * @param string $mode all|assign * @param string $status all|noclosed * @param string|array $append + * @param string|int $shadow all | 0 | 1 * @access public * @return array */ - public function getProductPairs($programID = 0, $mode = 'assign', $status = 'all', $append = '') + public function getProductPairs($programID = 0, $mode = 'assign', $status = 'all', $append = '', $shadow = 0) { /* Get the top programID. */ if($programID) @@ -86,8 +87,8 @@ class programModel extends model $views = empty($append) ? $this->app->user->view->products : $this->app->user->view->products . ",$append"; $products = $this->dao->select('*')->from(TABLE_PRODUCT) ->where('deleted')->eq(0) - ->andWhere('shadow')->eq(0) ->andWhere('vision')->eq($this->config->vision) + ->beginIF($shadow !== 'all')->andWhere('shadow')->eq((int)$shadow)->fi() ->beginIF($mode == 'assign')->andWhere('program')->eq($programID)->fi() ->beginIF(strpos($status, 'noclosed') !== false)->andWhere('status')->ne('closed')->fi() ->beginIF(!$this->app->user->admin)->andWhere('id')->in($views)->fi() diff --git a/module/project/control.php b/module/project/control.php index df020ebd52..4881cd6b68 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -529,6 +529,7 @@ class project extends control $products = array(); $productPlans = array(); + $shadow = 0; $parentProgram = $this->loadModel('program')->getByID($programID); if($copyProjectID) @@ -543,8 +544,9 @@ class project extends control $programID = $copyProject->parent; $model = $copyProject->model; $hasProduct = $copyProject->hasProduct; + $products = $this->product->getProducts($copyProjectID); - $products = $this->product->getProducts($copyProjectID); + if(!$copyProject->hasProduct) $shadow = 1; foreach($products as $product) { foreach($product->branches as $branch) @@ -573,7 +575,7 @@ class project extends control $this->view->users = $this->user->getPairs('noclosed|nodeleted'); $this->view->copyProjects = $this->project->getPairsByModel($model); $this->view->products = $products; - $this->view->allProducts = array('0' => '') + $this->program->getProductPairs($programID, 'assign', 'noclosed'); + $this->view->allProducts = array('0' => '') + $this->program->getProductPairs($programID, 'assign', 'noclosed', '', $shadow); $this->view->productPlans = array('0' => '') + $productPlans; $this->view->branchGroups = $this->loadModel('branch')->getByProducts(array_keys($products), 'noclosed'); $this->view->programID = $programID;