From bb90c3bdcda816ff1640165c01990b4d809814b6 Mon Sep 17 00:00:00 2001 From: liugang Date: Wed, 21 Sep 2022 13:22:13 +0800 Subject: [PATCH] * Fix bug of get the no-product project's name. --- module/product/model.php | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/module/product/model.php b/module/product/model.php index b3a18cfb38..25c41b7db3 100644 --- a/module/product/model.php +++ b/module/product/model.php @@ -239,8 +239,9 @@ class productModel extends model if($product->shadow) { $projectName = $this->dao->select('t2.name')->from(TABLE_PROJECTPRODUCT)->alias('t1') - ->leftJoin(TABLE_PROJECT)->alias('t2')->on("t1.project = t2.id AND t2.type = 'project'") + ->leftJoin(TABLE_PROJECT)->alias('t2')->on('t1.project = t2.id') ->where('t1.product')->eq($productID) + ->andWhere('t2.type')->eq('project') ->fetch('name'); if($projectName) $product->name = $projectName; } @@ -309,9 +310,9 @@ class productModel extends model { $shadowProducts = $this->dao->select('t1.id, t3.name')->from(TABLE_PRODUCT)->alias('t1') ->leftJoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t1.id = t2.product') - ->leftJoin(TABLE_PROJECT)->alias('t3')->on("t2.project = t3.id") + ->leftJoin(TABLE_PROJECT)->alias('t3')->on('t2.project = t3.id') ->where('t1.id')->in($shadowProducts) - ->andWhere("t3.type = 'project'") + ->andWhere('t3.type')->eq('project') ->fetchPairs(); foreach($shadowProducts as $id => $name) @@ -390,16 +391,17 @@ class productModel extends model $this->dao->select('t1.*, IF(t1.shadow = 1, t4.name, t1.name) AS name, IF(INSTR(" closed", t1.status) < 2, 0, 1) AS isClosed')->from(TABLE_PRODUCT)->alias('t1') ->leftJoin(TABLE_PROGRAM)->alias('t2')->on('t1.program = t2.id') ->leftJoin(TABLE_PROJECTPRODUCT)->alias('t3')->on('t1.id = t3.product') - ->leftJoin(TABLE_PROJECT)->alias('t4')->on("t3.project = t4.id AND t4.type = 'project'"); + ->leftJoin(TABLE_PROJECT)->alias('t4')->on('t3.project = t4.id') + ->where('t4.type')->eq('project'); } else { $this->dao->select('t1.*, IF(INSTR(" closed", t1.status) < 2, 0, 1) AS isClosed')->from(TABLE_PRODUCT)->alias('t1') - ->leftJoin(TABLE_PROGRAM)->alias('t2')->on('t1.program = t2.id'); + ->leftJoin(TABLE_PROGRAM)->alias('t2')->on('t1.program = t2.id') + ->where(1); } /* Order by program. */ - return $this->dao->where(1) - ->beginIF(strpos($mode, 'all') === false)->andWhere('t1.deleted')->eq(0)->fi() + return $this->dao->beginIF(strpos($mode, 'all') === false)->andWhere('t1.deleted')->eq(0)->fi() ->beginIF($programID)->andWhere('t1.program')->eq($programID)->fi() ->beginIF(strpos($mode, 'noclosed') !== false)->andWhere('t1.status')->ne('closed')->fi() ->beginIF(!$this->app->user->admin and $this->config->vision == 'rnd')->andWhere('t1.id')->in($views)->fi() @@ -414,7 +416,7 @@ class productModel extends model { $this->dao->select('t1.*, IF(t1.shadow = 1, t3.name, t1.name) AS name, IF(INSTR(" closed", t1.status) < 2, 0, 1) AS isClosed')->from(TABLE_PRODUCT)->alias('t1') ->leftJoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t1.id = t2.product') - ->leftJoin(TABLE_PROJECT)->alias('t3')->on("t2.project = t3.id") + ->leftJoin(TABLE_PROJECT)->alias('t3')->on('t2.project = t3.id') ->where('t3.type')->eq('project'); } else