diff --git a/app/views/ingredients/_filters.html.erb b/app/views/ingredients/_filters.html.erb index a92637e..ff1ff8f 100644 --- a/app/views/ingredients/_filters.html.erb +++ b/app/views/ingredients/_filters.html.erb @@ -35,7 +35,8 @@ <%= label_tag do %> - <%= check_box_tag 'formula[zero_nil]', session[:i_filters][:formula][:zero_nil] %> + <%= hidden_field_tag 'formula[zero_nil]', 0 %> + <%= check_box_tag 'formula[zero_nil]', 1, @formula_q.formula.zero_nil %> <%= t 'quantities.form.zero_nil' %> <% end %> diff --git a/app/views/measurements/_filters.html.erb b/app/views/measurements/_filters.html.erb index cbbe94a..ebaf623 100644 --- a/app/views/measurements/_filters.html.erb +++ b/app/views/measurements/_filters.html.erb @@ -30,7 +30,8 @@ <%= label_tag do %> - <%= check_box_tag 'formula[zero_nil]', session[:m_filters][:formula][:zero_nil] %> + <%= hidden_field_tag 'formula[zero_nil]', 0 %> + <%= check_box_tag 'formula[zero_nil]', 1, @formula_q.formula.zero_nil %> <%= t 'quantities.form.zero_nil' %> <% end %> diff --git a/lib/body_tracking/items_with_quantities.rb b/lib/body_tracking/items_with_quantities.rb index f935e2b..c99cad3 100644 --- a/lib/body_tracking/items_with_quantities.rb +++ b/lib/body_tracking/items_with_quantities.rb @@ -86,7 +86,11 @@ module BodyTracking if deps.empty? output_ids = items.select { |i| subitems[q.name][i.id].nil? }.map(&:id) input_q = q.formula.quantities - inputs = input_q.map { |i_q| [i_q, completed_q[i_q.name].values_at(*output_ids)] } + inputs = input_q.map do |i_q| + values = completed_q[i_q.name].values_at(*output_ids) + values.map! { |v, u| [v || BigDecimal(0), u] } if q.formula.zero_nil + [i_q, values] + end begin calculated = q.formula.calculate(inputs.to_h) rescue Exception => e