[#4183] Implemented Contract#overhead_spent.
This commit is contained in:
1 parent
a9bae2e604
commit
7323537ea6
2 files changed
+39
-1
No files matched your search
@@ -39,7 +39,6 @@ class Contract < ActiveRecord::Base
|
|||||||
end
|
end
|
||||||
|
|
||||||
[:labor_spent,
|
[:labor_spent,
|
||||||
:overhead_spent,
|
|
||||||
:total_spent,
|
:total_spent,
|
||||||
:profit_spent
|
:profit_spent
|
||||||
].each do |mthd|
|
].each do |mthd|
|
||||||
@@ -56,6 +55,12 @@ class Contract < ActiveRecord::Base
|
|||||||
deliverables.inject(0) {|total, deliverable| total += deliverable.overhead_budget_total }
|
deliverables.inject(0) {|total, deliverable| total += deliverable.overhead_budget_total }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
# OPTIMIZE: N+1
|
||||||
|
# OPTIMIZE: also hits redmine_overhead which is known to be slow
|
||||||
|
def overhead_spent
|
||||||
|
deliverables.inject(0) {|total, deliverable| total += deliverable.overhead_spent }
|
||||||
|
end
|
||||||
|
|
||||||
# OPTIMIZE: N+1
|
# OPTIMIZE: N+1
|
||||||
def estimated_hour_budget
|
def estimated_hour_budget
|
||||||
deliverables.inject(0) {|total, deliverable| total += deliverable.estimated_hour_budget_total }
|
deliverables.inject(0) {|total, deliverable| total += deliverable.estimated_hour_budget_total }
|
||||||
|
|||||||
@@ -57,6 +57,39 @@ class ContractTest < ActiveSupport::TestCase
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
context "#overhead_spent" do
|
||||||
|
setup do
|
||||||
|
configure_overhead_plugin
|
||||||
|
end
|
||||||
|
|
||||||
|
should "sum all of the overhead spent on the Deliverables" do
|
||||||
|
@project = Project.generate!
|
||||||
|
@manager = User.generate!
|
||||||
|
@role = Role.generate!
|
||||||
|
User.add_to_project(@manager, @project, @role)
|
||||||
|
@rate = Rate.generate!(:project => @project,
|
||||||
|
:user => @manager,
|
||||||
|
:date_in_effect => Date.yesterday,
|
||||||
|
:amount => 100)
|
||||||
|
|
||||||
|
contract = Contract.generate!
|
||||||
|
contract.deliverables << @deliverable_1 = FixedDeliverable.generate!
|
||||||
|
@deliverable_1.issues << @issue1 = Issue.generate_for_project!(@project)
|
||||||
|
TimeEntry.generate!(:hours => 10, :issue => @issue1, :project => @project,
|
||||||
|
:activity => @non_billable_activity,
|
||||||
|
:user => @manager)
|
||||||
|
|
||||||
|
contract.deliverables << @deliverable_2 = HourlyDeliverable.generate!
|
||||||
|
@deliverable_2.issues << @issue2 = Issue.generate_for_project!(@project)
|
||||||
|
TimeEntry.generate!(:hours => 10, :issue => @issue2, :project => @project,
|
||||||
|
:activity => @non_billable_activity,
|
||||||
|
:user => @manager)
|
||||||
|
|
||||||
|
assert_equal 2000, contract.overhead_spent
|
||||||
|
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
context "#estimated_hour_budget" do
|
context "#estimated_hour_budget" do
|
||||||
should "sum all of the labor and overhead budgets of the Deliverables" do
|
should "sum all of the labor and overhead budgets of the Deliverables" do
|
||||||
contract = Contract.generate!
|
contract = Contract.generate!
|
||||||
|
|||||||
Reference in new issue
Block a user