diff --git a/app/helpers/contracts_helper.rb b/app/helpers/contracts_helper.rb
index ccfff86..f387247 100644
--- a/app/helpers/contracts_helper.rb
+++ b/app/helpers/contracts_helper.rb
@@ -6,10 +6,9 @@ module ContractsHelper
end
end
- def format_budget_for_deliverable(deliverable, total)
- # TODO LATER: calculate amount used
- if total > 0
- content_tag(:span, "0", :class => 'spent-amount') +
+ def format_budget_for_deliverable(deliverable, spent, total)
+ if total > 0 || spent > 0
+ content_tag(:span, h(number_to_currency(spent, :unit => '')), :class => 'spent-amount') +
" " +
content_tag(:span, h(number_to_currency(total, :unit => '')), :class => 'total-amount')
else
diff --git a/app/views/contracts/show.html.erb b/app/views/contracts/show.html.erb
index 8f3a82c..ccf4f2e 100644
--- a/app/views/contracts/show.html.erb
+++ b/app/views/contracts/show.html.erb
@@ -43,10 +43,10 @@
<%# TODO: Status %>
<%= h deliverable.manager.try(:name) %> |
- <%= format_budget_for_deliverable(deliverable, deliverable.labor_budget_total) %>
+ <%= format_budget_for_deliverable(deliverable, deliverable.labor_budget_spent, deliverable.labor_budget_total) %>
|
- <%= format_budget_for_deliverable(deliverable, deliverable.overhead_budget_total) %>
+ <%= format_budget_for_deliverable(deliverable, deliverable.overhead_spent, deliverable.overhead_budget_total) %>
|
--- |
<%= link_to(l(:button_edit), edit_contract_deliverable_path(@project, resource, deliverable), :class => 'icon icon-edit') %> |
diff --git a/test/integration/contracts_show_test.rb b/test/integration/contracts_show_test.rb
index 3a89e43..507d4b9 100644
--- a/test/integration/contracts_show_test.rb
+++ b/test/integration/contracts_show_test.rb
@@ -4,7 +4,7 @@ class ContractsShowTest < ActionController::IntegrationTest
include Redmine::I18n
def setup
- @project = Project.generate!(:identifier => 'main')
+ @project = Project.generate!(:identifier => 'main').reload
@contract = Contract.generate!(:project => @project)
end
@@ -92,4 +92,72 @@ class ContractsShowTest < ActionController::IntegrationTest
end
end
+
+ should "show the total labor budget spent for a Deliverable" do
+ configure_overhead_plugin
+
+ @manager = User.generate!
+
+ @deliverable1 = FixedDeliverable.generate!(:contract => @contract, :manager => @manager)
+ OverheadBudget.generate!(:deliverable => @deliverable1,
+ :hours => 100,
+ :budget => 4000.5)
+
+ @issue1 = Issue.generate_for_project!(@project)
+ @time_entry1 = TimeEntry.generate!(:issue => @issue1,
+ :project => @project,
+ :activity => @billable_activity,
+ :spent_on => Date.today,
+ :hours => 10,
+ :user => @manager)
+
+ @rate = Rate.generate!(:project => @project,
+ :user => @manager,
+ :date_in_effect => Date.yesterday,
+ :amount => 100)
+
+ @deliverable1.issues << @issue1
+
+ assert_equal 1, @deliverable1.issues.count
+
+ visit_contract_page(@contract)
+ assert_select "table#deliverables" do
+ assert_select "td.labor", :text => /1,000.00/
+ end
+
+ end
+
+ should "show the total overhead budget spent for a Deliverable" do
+ configure_overhead_plugin
+
+ @manager = User.generate!
+
+ @deliverable1 = FixedDeliverable.generate!(:contract => @contract, :manager => @manager)
+ OverheadBudget.generate!(:deliverable => @deliverable1,
+ :hours => 100,
+ :budget => 4000.5)
+
+ @issue1 = Issue.generate_for_project!(@project)
+ @time_entry1 = TimeEntry.generate!(:issue => @issue1,
+ :project => @project,
+ :activity => @non_billable_activity,
+ :spent_on => Date.today,
+ :hours => 20,
+ :user => @manager)
+
+ @rate = Rate.generate!(:project => @project,
+ :user => @manager,
+ :date_in_effect => Date.yesterday,
+ :amount => 100)
+
+ @deliverable1.issues << @issue1
+
+ assert_equal 1, @deliverable1.issues.count
+
+ visit_contract_page(@contract)
+ assert_select "table#deliverables" do
+ assert_select "td.overhead", :text => /2,000.00/
+ end
+
+ end
end