From 6e5915933b7d99dca90687cab96a1c42d1ab93f7 Mon Sep 17 00:00:00 2001 From: tanghucheng Date: Tue, 11 Jul 2023 08:56:23 +0800 Subject: [PATCH] * Fix bug #36300. --- module/program/model.php | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/module/program/model.php b/module/program/model.php index be9d29f6b6..f45f36eadd 100644 --- a/module/program/model.php +++ b/module/program/model.php @@ -1389,7 +1389,35 @@ class programModel extends model ->exec(); } - /* 5. Update projectStatsTime in config. */ + /* 5. Update programStatsTime. */ + $projectList = $this->dao->select('id,progress,path')->from(TABLE_PROJECT) + ->where('type')->eq('project') + ->andWhere('parent')->ne(0) + ->fetchAll('id'); + $programProgress = array(); + foreach($projectList as $projectID => $project) + { + $path = explode(',', trim($project->path, ',')); + + foreach($path as $programID) + { + if($programID == $projectID) continue; + $programProgress[$programID][] = $project->progress; + } + } + + foreach($programProgress as $programID => $progress) + { + $count = count($progress); + $sum = array_sum($progress); + $average = round($sum / $count, 2); + $this->dao->update(TABLE_PROJECT) + ->set('progress')->eq($average) + ->where('id')->eq($programID) + ->exec(); + } + + /* 6. Update projectStatsTime in config. */ $this->loadModel('setting')->setItem('system.common.global.projectStatsTime', $now); $this->app->config->global->projectStatsTime = $now; }