Compare commits
3 Commits
LSS-5416-r
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7bfe9932e4 | ||
|
|
d574e522a9 | ||
|
|
d2e96821bb |
2
init.rb
2
init.rb
@@ -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'
|
||||
|
||||
@@ -59,14 +59,18 @@ class OverheadTimesheetHook < Redmine::Hook::ViewListener
|
||||
billable_options = context[:params][:timesheet][:billable]
|
||||
activities = []
|
||||
|
||||
if billable_options.include?("billable")
|
||||
activities << TimeEntryActivity.find_billable_activities
|
||||
if billable_options.include?("billable") && context[:timesheet].projects.present?
|
||||
context[:timesheet].projects.each do |project|
|
||||
activities << project.billable_activities
|
||||
end
|
||||
end
|
||||
|
||||
if billable_options.include?("overhead")
|
||||
activities << TimeEntryActivity.find_overhead_activities
|
||||
if billable_options.include?("overhead") && context[:timesheet].projects.present?
|
||||
context[:timesheet].projects.each do |project|
|
||||
activities << project.non_billable_activities
|
||||
end
|
||||
end
|
||||
|
||||
# Overrides the activities directly
|
||||
context[:timesheet].activities = activities.flatten.uniq.compact.collect(&:id).sort unless activities.empty?
|
||||
end
|
||||
end
|
||||
|
||||
41
lib/redmine_overhead/patches/project_patch.rb
Normal file
41
lib/redmine_overhead/patches/project_patch.rb
Normal 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
|
||||
Reference in New Issue
Block a user