Files
redmine_rate/lib/rate_time_entry_patch.rb
T
Eric Davis 6aa00eeeb9 Added a helper method to TimeEntry that will encapsulate the rate API for a TimeEntry.
* TimeEntry#cost will return the amount the TimeEntry costs based on:
** logged hours times the assigned rate amount
** logged hours times the effective project rate for the user
** logged hours times the effective default rate for the user
** 0 if the user has no rates at all

  #1924
2009-01-21 15:11:35 -08:00

39 lines
796 B
Ruby

require_dependency 'time_entry'
module RateTimeEntryPatch
def self.included(base) # :nodoc:
base.extend(ClassMethods)
base.send(:include, InstanceMethods)
# Same as typing in the class
base.class_eval do
unloadable # Send unloadable so it will not be unloaded in development
belongs_to :rate
end
end
module ClassMethods
end
module InstanceMethods
# Returns the current cost of the TimeEntry based on it's rate and hours
def cost
if self.rate.nil?
amount = Rate.amount_for(self.user, self.project, self.spent_on.to_s)
else
amount = rate.amount
end
return 0.0 if amount.nil?
return amount.to_f * hours.to_f
end
end
end
TimeEntry.send(:include, RateTimeEntryPatch)