[#4183] Implemented FixedDeliverable#profit_left (was called profit_spent).
This commit is contained in:
@@ -26,6 +26,12 @@ class FixedDeliverable < Deliverable
|
||||
budgets = labor_budget_total + overhead_budget_total
|
||||
(total || 0.0) - budgets
|
||||
end
|
||||
|
||||
# The amount of money remaining after expenses have been taken out
|
||||
# Profit left = Total - Labor spent - Overhead spent
|
||||
def profit_left
|
||||
total_spent - labor_budget_spent - overhead_spent
|
||||
end
|
||||
|
||||
# Hardcoded value used as a wrapper for the old Budget plugin API.
|
||||
#
|
||||
|
||||
@@ -27,4 +27,41 @@ class FixedDeliverableTest < ActiveSupport::TestCase
|
||||
assert_equal 1000, FixedDeliverable.generate(:total => 1_000).total_spent
|
||||
end
|
||||
end
|
||||
|
||||
context "#profit_left" do
|
||||
should "be the total_spent minus the labor budget spent minus the overhead budget spent" do
|
||||
configure_overhead_plugin
|
||||
|
||||
@project = Project.generate!
|
||||
@developer = User.generate!
|
||||
@manager = User.generate!
|
||||
@role = Role.generate!
|
||||
User.add_to_project(@developer, @project, @role)
|
||||
User.add_to_project(@manager, @project, @role)
|
||||
@rate = Rate.generate!(:project => @project,
|
||||
:user => @developer,
|
||||
:date_in_effect => Date.yesterday,
|
||||
:amount => 55)
|
||||
@rate = Rate.generate!(:project => @project,
|
||||
:user => @manager,
|
||||
:date_in_effect => Date.yesterday,
|
||||
:amount => 75)
|
||||
|
||||
@deliverable_1 = FixedDeliverable.generate!(:total => 2000)
|
||||
@deliverable_1.issues << @issue1 = Issue.generate_for_project!(@project)
|
||||
TimeEntry.generate!(:hours => 15, :issue => @issue1, :project => @project,
|
||||
:activity => @billable_activity,
|
||||
:user => @developer)
|
||||
TimeEntry.generate!(:hours => 4, :issue => @issue1, :project => @project,
|
||||
:activity => @non_billable_activity,
|
||||
:user => @manager)
|
||||
|
||||
# Check intermediate values
|
||||
assert_equal 825, @deliverable_1.labor_budget_spent
|
||||
assert_equal 300, @deliverable_1.overhead_spent
|
||||
|
||||
assert_equal 875, @deliverable_1.profit_left
|
||||
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user