20 lines
966 B
Plaintext
20 lines
966 B
Plaintext
<% @hours.collect {|h| h[criterias[level]]}.uniq.each do |value| %>
|
|
<% hours_for_value = select_hours(hours, criterias[level], value) -%>
|
|
<% next if hours_for_value.empty? -%>
|
|
<tr class="<%= cycle('odd', 'even') %> <%= 'last-level' unless criterias.length > level+1 %>">
|
|
<%= '<td></td>' * level %>
|
|
<td><%= value.nil? ? l(:label_none) : @available_criterias[criterias[level]][:klass].find_by_id(value) %></td>
|
|
<%= '<td></td>' * (criterias.length - level - 1) -%>
|
|
<% total = 0 -%>
|
|
<% @periods.each do |period| -%>
|
|
<% sum = sum_hours(select_hours(hours_for_value, @columns, period.to_s)); total += sum -%>
|
|
<td class="hours"><%= html_hours("%.2f" % sum) if sum > 0 %></td>
|
|
<% end -%>
|
|
<td class="hours"><%= html_hours("%.2f" % total) if total > 0 %></td>
|
|
</tr>
|
|
<% if criterias.length > level+1 -%>
|
|
<%= render(:partial => 'report_criteria', :locals => {:criterias => criterias, :hours => hours_for_value, :level => (level + 1)}) %>
|
|
<% end -%>
|
|
|
|
<% end %>
|