From 917c17af59bbf68c1b5deb7df4a932066a20878b Mon Sep 17 00:00:00 2001 From: Rohan Mitchell Date: Fri, 24 Jul 2015 18:31:49 +1000 Subject: [PATCH] Clarify quantities used for calculations, show excess available via max_quantity --- .../reports/bulk_coop_allocation_report.rb | 8 ++++---- lib/open_food_network/reports/bulk_coop_report.rb | 12 ++++++------ .../reports/bulk_coop_supplier_report.rb | 8 ++++---- 3 files changed, 14 insertions(+), 14 deletions(-) diff --git a/lib/open_food_network/reports/bulk_coop_allocation_report.rb b/lib/open_food_network/reports/bulk_coop_allocation_report.rb index 0b7fad2793..52efbc677c 100644 --- a/lib/open_food_network/reports/bulk_coop_allocation_report.rb +++ b/lib/open_food_network/reports/bulk_coop_allocation_report.rb @@ -2,7 +2,7 @@ require 'open_food_network/reports/bulk_coop_report' module OpenFoodNetwork::Reports class BulkCoopAllocationReport < BulkCoopReport - header "Customer", "Product", "Unit Size", "Variant", "Variant value", "Variant unit", "Weight", "Sum Total", "Sum Max Total", "Total Available", "Unallocated" + header "Customer", "Product", "Unit Size", "Variant", "Variant value", "Variant unit", "Weight", "Sum Total", "Total Available", "Unallocated", "Max quantity excess" organise do group { |li| li.variant.product } @@ -17,9 +17,9 @@ module OpenFoodNetwork::Reports column { |lis| "" } column { |lis| "" } column { |lis| total_amount(lis) } - column { |lis| total_max_quantity_amount(lis) } column { |lis| total_available(lis) } column { |lis| remainder(lis) } + column { |lis| max_quantity_excess(lis) } end organise do @@ -41,8 +41,8 @@ module OpenFoodNetwork::Reports column { |lis| OpenFoodNetwork::OptionValueNamer.new(lis.first.variant).value } column { |lis| OpenFoodNetwork::OptionValueNamer.new(lis.first.variant).unit } column { |lis| lis.first.variant.weight || 0 } - column { |lis| lis.sum { |li| li.quantity } } - column { |lis| lis.sum { |li| li.max_quantity || 0 } } + column { |lis| total_amount(lis) } + column { |lis| "" } column { |lis| "" } column { |lis| "" } end diff --git a/lib/open_food_network/reports/bulk_coop_report.rb b/lib/open_food_network/reports/bulk_coop_report.rb index e0d2ed9806..5c0916585d 100644 --- a/lib/open_food_network/reports/bulk_coop_report.rb +++ b/lib/open_food_network/reports/bulk_coop_report.rb @@ -33,15 +33,11 @@ module OpenFoodNetwork::Reports lis.sum { |li| (li.quantity || 0) * scaled_amount(li) } end - def total_max_quantity_amount(lis) - lis.sum { |li| (li.max_quantity || 0) * scaled_amount(li) } - end - def units_required(lis) if group_buy_unit_size(lis).zero? 0 else - ( max_quantity_amount(lis) / group_buy_unit_size(lis) ).ceil + ( total_amount(lis) / group_buy_unit_size(lis) ).ceil end end @@ -50,10 +46,14 @@ module OpenFoodNetwork::Reports end def remainder(lis) - remainder = total_available(lis) - max_quantity_amount(lis) + remainder = total_available(lis) - total_amount(lis) remainder >= 0 ? remainder : '' end + def max_quantity_excess(lis) + max_quantity_amount(lis) - total_amount(lis) + end + def max_quantity_amount(lis) lis.sum do |li| max_quantity = [li.max_quantity || 0, li.quantity || 0].max diff --git a/lib/open_food_network/reports/bulk_coop_supplier_report.rb b/lib/open_food_network/reports/bulk_coop_supplier_report.rb index 168727a9ba..b40557ea1a 100644 --- a/lib/open_food_network/reports/bulk_coop_supplier_report.rb +++ b/lib/open_food_network/reports/bulk_coop_supplier_report.rb @@ -2,7 +2,7 @@ require 'open_food_network/reports/bulk_coop_report' module OpenFoodNetwork::Reports class BulkCoopSupplierReport < BulkCoopReport - header "Supplier", "Product", "Unit Size", "Variant", "Variant value", "Variant unit", "Weight", "Sum Total", "Sum Max Total", "Units Required", "Unallocated" + header "Supplier", "Product", "Unit Size", "Variant", "Variant value", "Variant unit", "Weight", "Sum Total", "Units Required", "Unallocated", "Max quantity excess" organise do group { |li| li.variant.product.supplier } @@ -21,9 +21,9 @@ module OpenFoodNetwork::Reports column { |lis| "" } column { |lis| "" } column { |lis| total_amount(lis) } - column { |lis| total_max_quantity_amount(lis) } column { |lis| units_required(lis) } column { |lis| remainder(lis) } + column { |lis| max_quantity_excess(lis) } end organise do @@ -41,8 +41,8 @@ module OpenFoodNetwork::Reports column { |lis| OpenFoodNetwork::OptionValueNamer.new(lis.first.variant).value } column { |lis| OpenFoodNetwork::OptionValueNamer.new(lis.first.variant).unit } column { |lis| lis.first.variant.weight || 0 } - column { |lis| lis.sum(&:quantity) } - column { |lis| lis.sum { |li| li.max_quantity || 0 } } + column { |lis| total_amount(lis) } + column { |lis| '' } column { |lis| '' } column { |lis| '' } end