summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2013-09-11 22:00:18 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2013-09-11 22:00:18 +0000
commitcb747a34effe57a268d768e8a4174a9425ed2f27 (patch)
treeb59fce18479b9a8049f74a3c6402f1b94a539aa5
parente7931941a7a3272ad9a5888fa849cb9263f8e4bd (diff)
downloadredmine-cb747a34effe57a268d768e8a4174a9425ed2f27.tar.gz
redmine-cb747a34effe57a268d768e8a4174a9425ed2f27.zip
Wrong done_ratio calculation for parent with subtask having estimated_hours=0 ().
Patch by Daniel Felix. git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@12131 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/models/issue.rb3
1 files changed, 2 insertions, 1 deletions
diff --git a/app/models/issue.rb b/app/models/issue.rb
index d04f5bd04..e6851e4fb 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -1364,7 +1364,8 @@ class Issue < ActiveRecord::Base
if average == 0
average = 1
end
- done = p.leaves.sum("COALESCE(estimated_hours, #{average}) * (CASE WHEN is_closed = #{connection.quoted_true} THEN 100 ELSE COALESCE(done_ratio, 0) END)", :joins => :status).to_f
+ done = p.leaves.sum("COALESCE(CASE WHEN estimated_hours > 0 THEN estimated_hours ELSE NULL END, #{average}) " +
+ "* (CASE WHEN is_closed = #{connection.quoted_true} THEN 100 ELSE COALESCE(done_ratio, 0) END)", :joins => :status).to_f
progress = done / (average * leaves_count)
p.done_ratio = progress.round
end