mirror of
https://github.com/meineerde/redmine.git
synced 2026-01-06 15:41:33 +00:00
Fixes float conversion failures (#1561).
git-svn-id: http://svn.redmine.org/redmine/trunk@14668 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
parent
9c7832d822
commit
b0a47cc5ba
@ -320,12 +320,12 @@ class IssueQuery < Query
|
||||
|
||||
# Returns sum of all the issue's estimated_hours
|
||||
def total_for_estimated_hours(scope)
|
||||
scope.sum(:estimated_hours)
|
||||
map_total(scope.sum(:estimated_hours)) {|t| t.to_f.round(2)}
|
||||
end
|
||||
|
||||
# Returns sum of all the issue's time entries hours
|
||||
def total_for_spent_hours(scope)
|
||||
if group_by_column.try(:name) == :project
|
||||
total = if group_by_column.try(:name) == :project
|
||||
# TODO: remove this when https://github.com/rails/rails/issues/21922 is fixed
|
||||
# We have to do a custom join without the time_entries.project_id column
|
||||
# that would trigger a ambiguous column name error
|
||||
@ -334,6 +334,7 @@ class IssueQuery < Query
|
||||
else
|
||||
scope.joins(:time_entries).sum("#{TimeEntry.table_name}.hours")
|
||||
end
|
||||
map_total(total) {|t| t.to_f.round(2)}
|
||||
end
|
||||
|
||||
# Returns the issues
|
||||
|
||||
@ -709,20 +709,22 @@ class Query < ActiveRecord::Base
|
||||
total_for_custom_field(custom_field, scope) {|t| t.to_i}
|
||||
end
|
||||
|
||||
def total_for_custom_field(custom_field, scope)
|
||||
def total_for_custom_field(custom_field, scope, &block)
|
||||
total = scope.joins(:custom_values).
|
||||
where(:custom_values => {:custom_field_id => custom_field.id}).
|
||||
where.not(:custom_values => {:value => ''}).
|
||||
sum("CAST(#{CustomValue.table_name}.value AS decimal(30,3))")
|
||||
|
||||
if block_given?
|
||||
if total.is_a?(Hash)
|
||||
total.keys.each {|k| total[k] = yield total[k]}
|
||||
else
|
||||
total = yield total
|
||||
end
|
||||
end
|
||||
total = map_total(total, &block) if block_given?
|
||||
total
|
||||
end
|
||||
|
||||
def map_total(total, &block)
|
||||
if total.is_a?(Hash)
|
||||
total.keys.each {|k| total[k] = yield total[k]}
|
||||
else
|
||||
total = yield total
|
||||
end
|
||||
total
|
||||
end
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user