34 lines
756 B
Ruby
34 lines
756 B
Ruby
module OverheadIssuePatch
|
|
def self.included(base)
|
|
base.send(:include, InstanceMethods)
|
|
|
|
base.class_eval do
|
|
unloadable
|
|
end
|
|
end
|
|
|
|
module InstanceMethods
|
|
def billable_time_spent
|
|
time_entry_hours_based_on_billable_flag(true)
|
|
end
|
|
|
|
def overhead_time_spent
|
|
time_entry_hours_based_on_billable_flag(false)
|
|
end
|
|
|
|
private
|
|
# Totals time_entries that are billable (true) or overhead (false)
|
|
# and returns the rounded value
|
|
def time_entry_hours_based_on_billable_flag(billable_flag=true)
|
|
time = time_entries.inject(0.0) {|sum, time_entry|
|
|
sum += time_entry.hours if time_entry.billable? == billable_flag
|
|
sum
|
|
}
|
|
return 0 if time <= 0
|
|
return time
|
|
|
|
end
|
|
end
|
|
end
|
|
|