diff --git a/app/controllers/spree/admin/reports_controller_decorator.rb b/app/controllers/spree/admin/reports_controller_decorator.rb index 848fb8ec0d..8efd7b64b9 100644 --- a/app/controllers/spree/admin/reports_controller_decorator.rb +++ b/app/controllers/spree/admin/reports_controller_decorator.rb @@ -236,7 +236,8 @@ Spree::Admin::ReportsController.class_eval do end def suppliers_of_products_distributed_by(distributors) - distributors.map { |d| Spree::Product.in_distributor(d) }.flatten.map(&:supplier).uniq + distributors.map { |d| Spree::Product.in_distributor(d).includes(:supplier).all }. + flatten.map(&:supplier).uniq end # Load order cycles the current user has access to diff --git a/lib/open_food_network/packing_report.rb b/lib/open_food_network/packing_report.rb index 997059a666..b9f9bc7f52 100644 --- a/lib/open_food_network/packing_report.rb +++ b/lib/open_food_network/packing_report.rb @@ -95,7 +95,7 @@ module OpenFoodNetwork def columns if is_by_customer? [proc { |line_items| line_items.first.order.distributor.name }, - proc { |line_items| customer_code(line_items.first.order.email) }, + proc { |line_items| customer_code(line_items.first.order) }, proc { |line_items| line_items.first.order.bill_address.firstname }, proc { |line_items| line_items.first.order.bill_address.lastname }, proc { |line_items| line_items.first.product.supplier.name }, @@ -107,7 +107,7 @@ module OpenFoodNetwork [ proc { |line_items| line_items.first.order.distributor.name }, proc { |line_items| line_items.first.product.supplier.name }, - proc { |line_items| customer_code(line_items.first.order.email) }, + proc { |line_items| customer_code(line_items.first.order) }, proc { |line_items| line_items.first.order.bill_address.firstname }, proc { |line_items| line_items.first.order.bill_address.lastname }, proc { |line_items| line_items.first.product.name }, @@ -121,8 +121,9 @@ module OpenFoodNetwork private def line_item_includes - [{ order: [:bill_address, :distributor], - variant: [{ option_values: :option_type }, { product: :supplier }] }] + [{ option_values: :option_type, + order: [:bill_address, :distributor, :customer], + variant: { product: [:supplier, :shipping_category] } }] end def order_permissions @@ -142,8 +143,8 @@ module OpenFoodNetwork params[:report_type] == "pack_by_customer" end - def customer_code(email) - customer = Customer.where(email: email).first + def customer_code(order) + customer = order.customer customer.nil? ? "" : customer.code end