Add billable/non_billable methods to Project (from redmine_contracts)

This commit is contained in:
Eric Davis
2011-11-14 16:28:45 -08:00
parent d574e522a9
commit 7bfe9932e4
2 changed files with 43 additions and 0 deletions

View File

@@ -23,6 +23,8 @@ Dispatcher.to_prepare do
require_dependency 'enumeration'
require_dependency 'time_entry_activity'
TimeEntryActivity.send(:include, OverheadTimeEntryActivityPatch)
require_dependency 'project'
Project.send(:include, RedmineOverhead::Patches::ProjectPatch)
end
require 'overhead_budget_hook'

View File

@@ -0,0 +1,41 @@
module RedmineOverhead
module Patches
module ProjectPatch
def self.included(base)
base.extend(ClassMethods)
base.send(:include, InstanceMethods)
base.class_eval do
unloadable
end
end
module ClassMethods
end
module InstanceMethods
def billable_activities
activities_sorted_by_billable[:billable]
end
def non_billable_activities
activities_sorted_by_billable[:non_billable]
end
private
def activities_sorted_by_billable
split_activities = activities.partition do |activity|
activity.billable?
end
{
:billable => split_activities.first,
:non_billable => split_activities.second
}
end
end
end
end
end