From f814b46198213f850fa64a4e0518f555a9b301d8 Mon Sep 17 00:00:00 2001 From: leiyong <1549684884@qq.com> Date: Wed, 11 Nov 2020 14:11:38 +0800 Subject: [PATCH] * The waterfall model displays hierarchies and associated products. --- module/project/control.php | 2 +- module/project/model.php | 21 ++++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/module/project/control.php b/module/project/control.php index 8c5df51651..151a3153c2 100644 --- a/module/project/control.php +++ b/module/project/control.php @@ -2317,7 +2317,7 @@ class project extends control public function ajaxGetDropMenu($projectID, $module, $method, $extra) { $project = $this->project->getByID($projectID); - $program = $this->project->getByID($project->parent); + $program = $this->project->getByID($project->project); $this->view->link = $this->project->getProjectLink($module, $method, $extra); $this->view->projectID = $projectID; diff --git a/module/project/model.php b/module/project/model.php index 67918d90a7..e488455387 100644 --- a/module/project/model.php +++ b/module/project/model.php @@ -869,25 +869,28 @@ class projectModel extends model */ public function getProjectsByProgram($program) { - $projects = $this->dao->select('t1.*, t3.name as productName')->from(TABLE_PROJECT)->alias('t1') - ->leftJoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t1.id = t2.project') - ->leftJoin(TABLE_PRODUCT)->alias('t3')->on('t2.product = t3.id') - ->where('t1.parent')->eq((int)$program->id) + $projects = $this->dao->select('t1.*,t2.product as productID')->from(TABLE_PROJECT)->alias('t1') + ->leftJoin(TABLE_PROJECTPRODUCT)->alias('t2')->on('t1.id=t2.project') + ->where('t1.project')->eq((int)$program->id) ->andWhere('t1.deleted')->eq('0') - ->orderBy('t1.order desc') + ->orderBy('t1.id_desc') ->fetchAll('id'); + /* The waterfall model displays hierarchies and associated products. */ if($program->model == 'waterfall') { foreach($projects as $projectID => $project) { - if($project->parent and isset($projects[$project->id]) and isset($projects[$project->parent])) $projects[$project->id]->name = $projects[$project->parent]->name . '/' . $project->name; + if($project->parent and isset($projects[$project->parent])) $projects[$project->id]->name = $projects[$project->parent]->name . '/' . $project->name; } - if($program->product == 'multiple') + + $products = $this->loadModel('product')->getProductsByProject($program->id); + foreach($projects as $projectID => $project) { - foreach($projects as $projectID => $project) $projects[$projectID]->name = $project->productName . '/' . $project->name; + if(isset($products[$project->productID])) $projects[$projectID]->name = $products[$project->productID] . '/' . $project->name; } - foreach($projects as $projectID => $project) unset($projects[$project->parent]); + + foreach($projects as $project) if($project->grade == 2) unset($projects[$project->parent]); } return $projects;