From 7c367da904b9bc728c039129ca9a3d232613cf58 Mon Sep 17 00:00:00 2001 From: Luis Ramos Date: Fri, 6 Mar 2020 12:10:21 +0000 Subject: [PATCH] Adapt LineItem#supplied_by_any scope to include deleted variants and deleted products (both not included in the respective default scopes) and use it in Permissions::Order so that variants of deleted products are seen in reports --- app/models/spree/line_item_decorator.rb | 7 +++++-- app/services/permissions/order.rb | 6 +----- 2 files changed, 6 insertions(+), 7 deletions(-) diff --git a/app/models/spree/line_item_decorator.rb b/app/models/spree/line_item_decorator.rb index 9c99c9567f..2526f6670a 100644 --- a/app/models/spree/line_item_decorator.rb +++ b/app/models/spree/line_item_decorator.rb @@ -47,8 +47,11 @@ Spree::LineItem.class_eval do } scope :supplied_by_any, lambda { |enterprises| - joins(:product). - where('spree_products.supplier_id IN (?)', enterprises) + joins("LEFT OUTER JOIN spree_variants + ON spree_line_items.variant_id = spree_variants.id + LEFT OUTER JOIN spree_products + ON spree_variants.product_id = spree_products.id"). + where("spree_products.supplier_id IN (?)", enterprises) } scope :with_tax, -> { diff --git a/app/services/permissions/order.rb b/app/services/permissions/order.rb index 5e95ba92c8..39e78ec96e 100644 --- a/app/services/permissions/order.rb +++ b/app/services/permissions/order.rb @@ -90,11 +90,7 @@ module Permissions # Any from visible orders, where the product is produced by one of my managed producers def produced_line_items Spree::LineItem.where(order_id: visible_orders.select("DISTINCT spree_orders.id")). - joins(:product). - where(spree_products: - { - supplier_id: @permissions.managed_enterprises.is_primary_producer.select("enterprises.id") - }) + supplied_by_any(@permissions.managed_enterprises.is_primary_producer.select("enterprises.id")) end end end