[#4420] Added a Deliverable finance form for each Retainer month.
This commit is contained in:
@@ -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|
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user