Cleanup of values when a project is empty. #1137
This commit is contained in:
@@ -38,7 +38,12 @@ class Budget
|
|||||||
end
|
end
|
||||||
|
|
||||||
def budget_ratio
|
def budget_ratio
|
||||||
return ((self.spent / self.budget) * 100).round
|
budget = self.budget # cache result
|
||||||
|
if budget > 0.0
|
||||||
|
return ((self.spent / budget) * 100).round
|
||||||
|
else
|
||||||
|
self.progress
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
def spent
|
def spent
|
||||||
@@ -50,7 +55,7 @@ class Budget
|
|||||||
end
|
end
|
||||||
|
|
||||||
def overruns
|
def overruns
|
||||||
if self.left > 0
|
if self.left >= 0
|
||||||
return 0
|
return 0
|
||||||
else
|
else
|
||||||
return self.left * -1
|
return self.left * -1
|
||||||
|
|||||||
@@ -20,10 +20,10 @@
|
|||||||
Overruns: <%= h number_to_currency(@budget.overruns, :precision => 0) %>
|
Overruns: <%= h number_to_currency(@budget.overruns, :precision => 0) %>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Next Due Date: <%= h distance_of_time_in_words_to_now(@budget.next_due_date) %>
|
Next Due Date: <%= h distance_of_time_in_words_to_now(@budget.next_due_date) if @budget.next_due_date %>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Completion: <%= h distance_of_time_in_words_to_now(@budget.final_due_date) %>
|
Completion: <%= h distance_of_time_in_words_to_now(@budget.final_due_date) if @budget.final_due_date %>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
Profit: TODO
|
Profit: TODO
|
||||||
|
|||||||
@@ -224,6 +224,17 @@ describe Budget,'.budget_ratio' do
|
|||||||
@budget.should_receive(:spent).and_return(2000.00)
|
@budget.should_receive(:spent).and_return(2000.00)
|
||||||
@budget.budget_ratio.should eql(40)
|
@budget.budget_ratio.should eql(40)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
it 'should return progress if the budget is < 0' do
|
||||||
|
@project = mock_model(Project)
|
||||||
|
Project.stub!(:find).with(@project.id).and_return(@project)
|
||||||
|
|
||||||
|
@budget = Budget.new(@project.id)
|
||||||
|
@budget.should_receive(:budget).and_return(0.0)
|
||||||
|
@budget.should_receive(:progress).and_return(50)
|
||||||
|
@budget.budget_ratio.should eql(50)
|
||||||
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user