From 17fb4a7247cff10d7b6104a862a3ec4b5f33f255 Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Fri, 24 Jul 2015 07:17:20 +1000 Subject: [PATCH] DRY by extracting calculation to method --- lib/open_food_network/reports/bulk_coop_report.rb | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/lib/open_food_network/reports/bulk_coop_report.rb b/lib/open_food_network/reports/bulk_coop_report.rb index 877d5c4280..6f1e6dc6f9 100644 --- a/lib/open_food_network/reports/bulk_coop_report.rb +++ b/lib/open_food_network/reports/bulk_coop_report.rb @@ -30,11 +30,11 @@ module OpenFoodNetwork::Reports end def total_amount(lis) - lis.sum { |li| (li.quantity || 0) * (li.variant.unit_value || 0) / (li.product.variant_unit_scale || 1) } + lis.sum { |li| (li.quantity || 0) * scaled_amount(li) } end def total_max_quantity_amount(lis) - lis.sum { |li| (li.max_quantity || 0) * (li.variant.unit_value || 0) / (li.product.variant_unit_scale || 1) } + lis.sum { |li| (li.max_quantity || 0) * scaled_amount(li) } end def units_required(lis) @@ -56,9 +56,14 @@ module OpenFoodNetwork::Reports def max_quantity_amount(lis) lis.sum do |li| max_quantity = [li.max_quantity || 0, li.quantity || 0].max - max_quantity * (li.variant.unit_value || 0) / (li.product.variant_unit_scale || 1) + max_quantity * scaled_amount(li) end end + + def scaled_amount(li) + (li.variant.unit_value || 0) / (li.product.variant_unit_scale || 1) + end + end end end