From c90e7337f55ab709542db26273bf5e9d18ad5500 Mon Sep 17 00:00:00 2001 From: Eric Davis Date: Thu, 10 Jul 2008 17:36:14 -0700 Subject: [PATCH] FixedDeliverable.spent will now return the fixed cost. #1439 --- app/models/fixed_deliverable.rb | 6 +++--- spec/models/fixed_deliverable_spec.rb | 12 ++++++++---- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/app/models/fixed_deliverable.rb b/app/models/fixed_deliverable.rb index 5ca869d..9eccb75 100644 --- a/app/models/fixed_deliverable.rb +++ b/app/models/fixed_deliverable.rb @@ -6,10 +6,10 @@ class FixedDeliverable < Deliverable 0 end - # Returns the amount spent. It will always be related to the progress of the - # FixedDeliverable because it is managed by the user + # Returns the amount spent. It will always be the fixed cost because + # that money has been allocated already and is managed by the user def spent - (self.progress.to_f / 100 ) * self.budget + self.fixed_cost || 0.0 end def profit # :nodoc: diff --git a/spec/models/fixed_deliverable_spec.rb b/spec/models/fixed_deliverable_spec.rb index 56016e3..4116c7a 100644 --- a/spec/models/fixed_deliverable_spec.rb +++ b/spec/models/fixed_deliverable_spec.rb @@ -8,11 +8,15 @@ describe FixedDeliverable, '.score' do end describe FixedDeliverable, '.spent' do - it 'should always equal the progress % * budget' do + it 'should always equal the fixed cost if there are no hours logged' do @deliverable = FixedDeliverable.new({ :subject => 'test' }) - @deliverable.stub!(:progress).and_return(50.0) - @deliverable.stub!(:budget).and_return(5000.0) - @deliverable.spent.should eql(2500.0) + @deliverable.stub!(:fixed_cost).and_return(5000.0) + @deliverable.spent.should eql(5000.0) + end + + it 'should return 0.0 if fixed_cost is not set' do + @deliverable = FixedDeliverable.new({ :subject => 'test' }) + @deliverable.spent.should eql(0.0) end end