diff --git a/app/models/budget.rb b/app/models/budget.rb index 2c1ea2f..0ff6310 100644 --- a/app/models/budget.rb +++ b/app/models/budget.rb @@ -110,15 +110,8 @@ class Budget # Dollar amount of time that has been logged to the project itself def amount_missing_on_issues time_logs = TimeEntry.find_all_by_project_id_and_issue_id(self.project, nil) - total = 0 - - # Find each Member for their rate - time_logs.each do |time_log| - rate = Rate.amount_for(time_log.user, time_log.project, time_log.spent_on.to_s) - total += (rate * time_log.hours) unless rate.nil? - end - - return total + + return time_logs.collect(&:cost).inject { |sum, n| sum + n} end # Dollar amount of time that has been logged to issues that are not assigned to deliverables @@ -132,14 +125,8 @@ class Budget return 0 if all_issues.empty? missing_issues = all_issues - deliverable_issues - time_logs = missing_issues.collect(&:time_entries).flatten - time_logs.each do |time_log| - rate = Rate.amount_for(time_log.user, time_log.project, time_log.spent_on.to_s) - total += (rate * time_log.hours) unless rate.nil? - end - - return total + return time_logs.collect(&:cost).inject { |sum, n| sum + n} end end diff --git a/app/models/fixed_deliverable.rb b/app/models/fixed_deliverable.rb index 21b2644..dd6ba10 100644 --- a/app/models/fixed_deliverable.rb +++ b/app/models/fixed_deliverable.rb @@ -16,14 +16,8 @@ class FixedDeliverable < Deliverable # Get all timelogs assigned time_logs = self.issues.collect(&:time_entries).flatten - - # Find each Member for their rate - time_logs.each do |time_log| - rate = Rate.amount_for(time_log.user, time_log.project, time_log.spent_on.to_s) - total += (rate * time_log.hours) unless rate.nil? - end - return total + return total + time_logs.collect(&:cost).inject { |sum, n| sum + n} end diff --git a/app/models/hourly_deliverable.rb b/app/models/hourly_deliverable.rb index 3921f36..3102c59 100644 --- a/app/models/hourly_deliverable.rb +++ b/app/models/hourly_deliverable.rb @@ -10,13 +10,7 @@ class HourlyDeliverable < Deliverable # Get all timelogs assigned time_logs = self.issues.collect(&:time_entries).flatten - # Find each Member for their rate - time_logs.each do |time_log| - rate = Rate.amount_for(time_log.user, time_log.project, time_log.spent_on.to_s) - total += (rate * time_log.hours) unless rate.nil? - end - - return total + return time_logs.collect(&:cost).inject { |sum, n| sum + n} end def profit # :nodoc: diff --git a/app/models/member_spent.rb b/app/models/member_spent.rb index 9551799..f8f2dd4 100644 --- a/app/models/member_spent.rb +++ b/app/models/member_spent.rb @@ -25,15 +25,9 @@ class MemberSpent project.members.each do |member| member_time_entries = time_entries.select { |tl| tl.user_id == member.user.id} - spent = 0.0 - hours = 0.0 + spent = member_time_entries.collect(&:cost).inject { |sum, n| sum + n} + hours = member_time_entries.collect(&:hours).inject { |sum, n| sum + n} - member_time_entries.each do |time_entry| - rate = Rate.amount_for(time_entry.user, time_entry.project, time_entry.spent_on.to_s) - spent += time_entry.hours.to_f * rate unless rate.nil? - hours += time_entry.hours - end - membership << MemberSpent.new({ :user => member.user, :hours => hours, diff --git a/spec/models/fixed_deliverable_spec.rb b/spec/models/fixed_deliverable_spec.rb index e9952b8..a16d544 100644 --- a/spec/models/fixed_deliverable_spec.rb +++ b/spec/models/fixed_deliverable_spec.rb @@ -26,10 +26,9 @@ describe FixedDeliverable, '.spent' do @issue1 = mock_model(Issue) @issue_1_time_entry = mock_model(TimeEntry, :issue_id => @issue1.id, :user => @user, :project => @project, :hours => 1.0, :spent_on => Date.today) + @issue_1_time_entry.should_receive(:cost).and_return(60.0) @issue1.stub!(:time_entries).and_return([@issue_1_time_entry]) - Rate.should_receive(:amount_for).with(@user, @project, @issue_1_time_entry.spent_on.to_s).and_return(60.0) - @deliverable = FixedDeliverable.new({ :subject => 'test' }) @issues = [@issue1] @deliverable.stub!(:fixed_cost).and_return(5000.0) diff --git a/spec/models/hourly_deliverable_spec.rb b/spec/models/hourly_deliverable_spec.rb index 662f764..41150eb 100644 --- a/spec/models/hourly_deliverable_spec.rb +++ b/spec/models/hourly_deliverable_spec.rb @@ -14,10 +14,9 @@ describe HourlyDeliverable, '.spent' do @issue1 = mock_model(Issue) @issue_1_time_entry = mock_model(TimeEntry, :issue_id => @issue1.id, :user => @user, :project => @project, :hours => 1.0, :spent_on => Date.today) + @issue_1_time_entry.should_receive(:cost).and_return(60.0) @issue1.stub!(:time_entries).and_return([@issue_1_time_entry]) - Rate.should_receive(:amount_for).with(@user, @project, @issue_1_time_entry.spent_on.to_s).and_return(60.0) - @deliverable = HourlyDeliverable.new({ :subject => 'test' }) @issues = [@issue1] @deliverable.should_receive(:issues).twice.and_return(@issues)