From 6c6f756de88241e48a1131986381845ce34f22fe Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Mon, 9 Jun 2008 15:31:57 -0700 Subject: [PATCH] Added labor_budget virtual field and made that the Budget column. #1190 --- app/controllers/deliverables_controller.rb | 6 ++++-- app/models/deliverable.rb | 3 +++ app/models/fixed_deliverable.rb | 5 +++++ app/models/hourly_deliverable.rb | 5 +++++ 4 files changed, 17 insertions(+), 2 deletions(-) diff --git a/app/controllers/deliverables_controller.rb b/app/controllers/deliverables_controller.rb index 169042e..0f95f97 100644 --- a/app/controllers/deliverables_controller.rb +++ b/app/controllers/deliverables_controller.rb @@ -125,7 +125,7 @@ class DeliverablesController < ApplicationController # Sorting orders def sort_order - if %w(score spent progress).include?(session[@sort_name][:key]) + if %w(score spent progress labor_budget).include?(session[@sort_name][:key]) return { } else return { :order => sort_clause } @@ -134,7 +134,7 @@ class DeliverablesController < ApplicationController # Sort +deliverables+ manually using the virtual fields def sort_if_needed(deliverables) - if %w(score spent progress).include?(session[@sort_name][:key]) + if %w(score spent progress labor_budget).include?(session[@sort_name][:key]) case session[@sort_name][:key] when "score": sorted = deliverables.sort {|a,b| a.score <=> b.score} @@ -142,6 +142,8 @@ class DeliverablesController < ApplicationController sorted = deliverables.sort {|a,b| a.spent <=> b.spent} when "progress": sorted = deliverables.sort {|a,b| a.progress <=> b.progress} + when "labor_budget": + sorted = deliverables.sort {|a,b| a.labor_budget <=> b.labor_budget} end return sorted if session[@sort_name][:order] == 'asc' diff --git a/app/models/deliverable.rb b/app/models/deliverable.rb index b502b42..f0c0bd3 100644 --- a/app/models/deliverable.rb +++ b/app/models/deliverable.rb @@ -117,6 +117,9 @@ class Deliverable < ActiveRecord::Base end end + def labor_budget + 0 + end # Returns true if the deliverable can be edited by user, otherwise false def editable_by?(user) diff --git a/app/models/fixed_deliverable.rb b/app/models/fixed_deliverable.rb index 72553bd..5c1ff00 100644 --- a/app/models/fixed_deliverable.rb +++ b/app/models/fixed_deliverable.rb @@ -17,4 +17,9 @@ class FixedDeliverable < Deliverable return (read_attribute(:profit_percent).to_f / 100.0) * read_attribute(:fixed_cost) end end + + def labor_budget + return read_attribute(:fixed_cost) + end + end diff --git a/app/models/hourly_deliverable.rb b/app/models/hourly_deliverable.rb index aedd511..30fcab1 100644 --- a/app/models/hourly_deliverable.rb +++ b/app/models/hourly_deliverable.rb @@ -30,5 +30,10 @@ class HourlyDeliverable < Deliverable return (read_attribute(:profit_percent).to_f / 100.0) * (read_attribute(:cost_per_hour) * read_attribute(:total_hours)) end end + + def labor_budget + return read_attribute(:cost_per_hour).to_f * read_attribute(:total_hours).to_f + end + end