[#4420] Added a Deliverable finance form for each Retainer month.

This commit is contained in:
Eric Davis
2010-08-30 10:30:59 -07:00
parent c3c472b3b1
commit c13f31b1b5
5 changed files with 37 additions and 5 deletions

View File

@@ -44,7 +44,15 @@ class RetainerDeliverable < HourlyDeliverable
month_acc
end
def labor_budgets_for_date(date)
labor_budgets.all(:conditions => {:year => date.year, :month => date.month})
end
def overhead_budgets_for_date(date)
overhead_budgets.all(:conditions => {:year => date.year, :month => date.month})
end
def create_budgets_for_periods
# For each month in the time span
months.each do |month|

View File

@@ -1,10 +1,10 @@
<% form.inputs :name => l(:text_deliverable_finances), :id => 'deliverable-finances' do %>
<% form.inputs :name => label, :class => 'deliverable-finances' do %>
<li class="numeric optional">
<%= content_tag(:label, l(:field_labor)) %>
<table id="deliverable-labor" class="deliverable_finance_table">
<% form.fields_for :labor_budgets do |labor_budget| %>
<% form.fields_for :labor_budgets, labor_budgets do |labor_budget| %>
<tr>
<%# TODO: Select field for the Time Entry Activity in a td %>
<td>
@@ -31,7 +31,7 @@
<%= content_tag(:label, l(:field_overhead)) %>
<table id="deliverable-overhead" class="deliverable_finance_table">
<% form.fields_for :overhead_budgets do |overhead_budget| %>
<% form.fields_for :overhead_budgets, overhead_budgets do |overhead_budget| %>
<tr>
<%# TODO: Select field for the Time Entry Activity in a td %>
<td>

View File

@@ -28,7 +28,13 @@
<% end %>
<% end %>
<%= render :partial => 'finance_form', :locals => {:form => form, :resource => resource} %>
<% if resource.retainer? %>
<% resource.months.each do |month| %>
<%= render :partial => 'finance_form', :locals => {:form => form, :labor_budgets => resource.labor_budgets_for_date(month), :overhead_budgets => resource.overhead_budgets_for_date(month), :label => l(:text_deliverable_finances_date, :date => month.strftime("%B, %Y")) } %>
<% end %>
<% else %>
<%= render :partial => 'finance_form', :locals => {:form => form, :labor_budgets => resource.labor_budgets, :overhead_budgets => resource.overhead_budgets, :label => l(:text_deliverable_finances) } %>
<% end %>
</div>

View File

@@ -28,6 +28,7 @@ en:
field_feature_sign_off: Feature Sign Off
field_warranty_sign_off: Warranty Sign Off
text_deliverable_finances: Deliverable Finances
text_deliverable_finances_date: "Deliverable Finances - {{date}}"
text_short_hours: hrs
text_dollar_sign: '$'
field_client_point_of_contact: "Point of Contact"

View File

@@ -90,4 +90,21 @@ class DeliverablesEditTest < ActionController::IntegrationTest
assert_equal 10, @overhead_budget.hours
assert_equal 1000.0, @overhead_budget.budget
end
should "show a Deliverable Finances section for each Retainer period" do
@retainer_deliverable = RetainerDeliverable.spawn(:contract => @contract, :manager => @manager, :title => "Retainer")
@retainer_deliverable.labor_budgets << @labor_budget = LaborBudget.spawn(:deliverable => @retainer_deliverable, :budget => 1000, :hours => 10)
@retainer_deliverable.overhead_budgets << @overhead_budget = OverheadBudget.spawn(:deliverable => @retainer_deliverable, :budget => 1000, :hours => 10)
@retainer_deliverable.start_date = '2010-01-01'
@retainer_deliverable.end_date = '2010-12-31'
@retainer_deliverable.save!
assert_equal 12, @retainer_deliverable.months.length
visit_contract_page(@contract)
click_link_within "#deliverable_details_#{@retainer_deliverable.id}", 'Edit'
assert_response :success
assert_template 'deliverables/edit'
assert_select 'fieldset.deliverable-finances', :count => 12
end
end