When the deliverable form isn't saved (validation errors) then the unsaved budgets would cause sorting errors due to nil ids.
63 lines
2.5 KiB
ERB
63 lines
2.5 KiB
ERB
<script type="text/html" id="labor-budget-template">
|
|
<% form.fields_for :labor_budgets, resource.labor_budgets.new(:id => 0) do |labor_budget| %>
|
|
<%= render :partial => 'labor_budget_form', :locals => {:labor_budget => labor_budget} %>
|
|
<% end %>
|
|
</script>
|
|
|
|
<script type="text/html" id="overhead-budget-template">
|
|
<% form.fields_for :overhead_budgets, resource.overhead_budgets.new(:id => 0) do |overhead_budget| %>
|
|
<%= render :partial => 'overhead_budget_form', :locals => {:overhead_budget => overhead_budget} %>
|
|
<% end %>
|
|
</script>
|
|
|
|
<script type="text/html" id="fixed-budget-template">
|
|
<% form.fields_for :fixed_budgets, resource.fixed_budgets.new(:id => 0) do |fixed_budget| %>
|
|
<%= render :partial => 'fixed_budget_form', :locals => {:fixed_budget => fixed_budget} %>
|
|
<% end %>
|
|
</script>
|
|
|
|
<% form.inputs :name => label, :class => "deliverable-finances #{fieldset_class}" do %>
|
|
|
|
<li style="display:none;" id='retainer-finances-message'>
|
|
<%= content_tag(:label, l(:text_retainer_monthly_message)) %>
|
|
</li>
|
|
|
|
<li class="numeric optional">
|
|
<%= content_tag(:label, l(:field_labor)) %>
|
|
<table id="deliverable-labor" class="deliverable_finance_table">
|
|
<tbody>
|
|
<% form.fields_for :labor_budgets, labor_budgets.sort_by {|b| b.id || 0 } do |labor_budget| %>
|
|
<%= render :partial => 'labor_budget_form', :locals => {:labor_budget => labor_budget} %>
|
|
<% end %>
|
|
</tbody>
|
|
</table>
|
|
</li>
|
|
|
|
<li class="numeric optional">
|
|
<%= content_tag(:label, l(:field_overhead)) %>
|
|
<table id="deliverable-overhead" class="deliverable_finance_table">
|
|
<tbody>
|
|
<% form.fields_for :overhead_budgets, overhead_budgets.sort_by {|b| b.id || 0 } do |overhead_budget| %>
|
|
<%= render :partial => 'overhead_budget_form', :locals => {:overhead_budget => overhead_budget} %>
|
|
<% end %>
|
|
</tbody>
|
|
</table>
|
|
</li>
|
|
|
|
<li class="numeric optional">
|
|
<div id="deliverable-fixed" class="fixed-item-form">
|
|
<label for="contract_discount">Fixed</label>
|
|
|
|
<% form.fields_for :fixed_budgets, fixed_budgets.sort_by {|b| b.id || 0 } do |fixed_budget| %>
|
|
<%= render :partial => 'fixed_budget_form', :locals => {:fixed_budget => fixed_budget} %>
|
|
<%= wikitoolbar_for "fixed-description#{fixed_budget.object.object_id}" %>
|
|
<% end %>
|
|
</div>
|
|
|
|
|
|
</li>
|
|
|
|
<%= form.input :total, :input_html => {:size => 10}, :wrapper_html => {:class => 'deliverable_total_input'}, :hint => l(:text_dollar_sign) %>
|
|
|
|
<% end %>
|