mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-02-27 01:43:22 +00:00
New scope Order.not_state to filter out cancelled orders from reports
This commit is contained in:
@@ -27,7 +27,7 @@ Spree::Admin::ReportsController.class_eval do
|
||||
end
|
||||
params[:q][:meta_sort] ||= "completed_at.desc"
|
||||
|
||||
@search = Spree::Order.complete.not_state('canceled').managed_by(spree_current_user).search(params[:q])
|
||||
@search = Spree::Order.complete.not_state(:canceled).managed_by(spree_current_user).search(params[:q])
|
||||
orders = @search.result
|
||||
|
||||
@report = OpenFoodWeb::OrderAndDistributorReport.new orders
|
||||
@@ -56,7 +56,7 @@ Spree::Admin::ReportsController.class_eval do
|
||||
end
|
||||
params[:q][:meta_sort] ||= "completed_at.desc"
|
||||
|
||||
@search = Spree::Order.complete.not_state('canceled').managed_by(spree_current_user).search(params[:q])
|
||||
@search = Spree::Order.complete.not_state(:canceled).managed_by(spree_current_user).search(params[:q])
|
||||
|
||||
orders = @search.result
|
||||
|
||||
@@ -88,7 +88,7 @@ Spree::Admin::ReportsController.class_eval do
|
||||
end
|
||||
params[:q][:meta_sort] ||= "completed_at.desc"
|
||||
|
||||
@search = Spree::Order.complete.not_state('canceled').managed_by(spree_current_user).search(params[:q])
|
||||
@search = Spree::Order.complete.not_state(:canceled).managed_by(spree_current_user).search(params[:q])
|
||||
|
||||
orders = @search.result
|
||||
@line_items = orders.map { |o| o.line_items.managed_by(spree_current_user) }.flatten
|
||||
@@ -241,7 +241,7 @@ Spree::Admin::ReportsController.class_eval do
|
||||
end
|
||||
params[:q][:meta_sort] ||= "completed_at.desc"
|
||||
|
||||
@search = Spree::Order.complete.not_state('canceled').managed_by(spree_current_user).search(params[:q])
|
||||
@search = Spree::Order.complete.not_state(:canceled).managed_by(spree_current_user).search(params[:q])
|
||||
|
||||
orders = @search.result
|
||||
payments = orders.map { |o| o.payments.select { |payment| payment.completed? } }.flatten # Only select completed payments
|
||||
@@ -346,7 +346,7 @@ Spree::Admin::ReportsController.class_eval do
|
||||
end
|
||||
params[:q][:meta_sort] ||= "completed_at.desc"
|
||||
|
||||
@search = Spree::Order.complete.not_state('canceled').managed_by(spree_current_user).search(params[:q])
|
||||
@search = Spree::Order.complete.not_state(:canceled).managed_by(spree_current_user).search(params[:q])
|
||||
|
||||
orders = @search.result
|
||||
@line_items = orders.map { |o| o.line_items.managed_by(spree_current_user) }.flatten
|
||||
|
||||
@@ -34,6 +34,10 @@ Spree::Order.class_eval do
|
||||
joins('LEFT OUTER JOIN spree_products ON (spree_products.id = spree_variants.product_id)')
|
||||
}
|
||||
|
||||
scope :not_state, lambda { |state|
|
||||
where("state != ?", state)
|
||||
}
|
||||
|
||||
|
||||
# -- Methods
|
||||
def products_available_from_new_distribution
|
||||
|
||||
@@ -216,13 +216,10 @@ describe Spree::Order do
|
||||
describe "scopes" do
|
||||
describe "not_state" do
|
||||
it "finds only orders not in specified state" do
|
||||
pending "write this test"
|
||||
s0 = create(:supplier_enterprise)
|
||||
s1 = create(:supplier_enterprise)
|
||||
p0 = create(:product, :supplier => s0)
|
||||
p1 = create(:product, :supplier => s1)
|
||||
o = FactoryGirl.create(:completed_order_with_totals)
|
||||
o.cancel!
|
||||
|
||||
Spree::Product.in_supplier_or_distributor(s1).should == [p1]
|
||||
Spree::Order.not_state(:canceled).should_not include o
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user