From 7bc31d6be0a576cad3ba08ecbd37ff9d5e7b46f4 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Thu, 23 Sep 2010 11:00:05 -0700 Subject: [PATCH] Refactor: extract method --- app/models/hourly_deliverable.rb | 14 ++++++++++---- app/models/retainer_deliverable.rb | 5 +---- 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/app/models/hourly_deliverable.rb b/app/models/hourly_deliverable.rb index 1053045..ffddb97 100644 --- a/app/models/hourly_deliverable.rb +++ b/app/models/hourly_deliverable.rb @@ -32,10 +32,7 @@ class HourlyDeliverable < Deliverable return 0 unless self.issues.count > 0 time_logs = self.issues.collect(&:time_entries).flatten - hours = time_logs.inject(0) {|total, time_entry| - total += time_entry.hours if time_entry.billable? - total - } + hours = billable_hours_on_time_entries(time_logs) fixed_budget_amount = fixed_budget_total_spent(date) + fixed_markup_budget_total_spent(date) return (hours * contract.billable_rate) + fixed_budget_amount @@ -49,4 +46,13 @@ class HourlyDeliverable < Deliverable def clear_total write_attribute(:total, nil) end + + protected + + def billable_hours_on_time_entries(time_entries) + time_entries.inject(0) {|total, time_entry| + total += time_entry.hours if time_entry.billable? + total + } + end end diff --git a/app/models/retainer_deliverable.rb b/app/models/retainer_deliverable.rb index ddf24aa..3ef53b6 100644 --- a/app/models/retainer_deliverable.rb +++ b/app/models/retainer_deliverable.rb @@ -193,10 +193,7 @@ class RetainerDeliverable < HourlyDeliverable issue_ids = self.issues.collect(&:id) time_logs = time_entries_for_date_and_issue_ids(date, issue_ids) - hours = time_logs.inject(0) {|total, time_entry| - total += time_entry.hours if time_entry.billable? - total - } + hours = billable_hours_on_time_entries(time_logs) fixed_budget_amount = fixed_budget_total_spent(date) + fixed_markup_budget_total_spent(date)