Order and fulfilment reports can filter by multiple hubs, producers and order cycles

This commit is contained in:
Rohan Mitchell
2014-06-05 14:56:46 +10:00
parent f8fa014796
commit e5f0818065
2 changed files with 9 additions and 17 deletions

View File

@@ -356,19 +356,12 @@ Spree::Admin::ReportsController.class_eval do
end
params[:q][:meta_sort] ||= "completed_at.desc"
q = params[:q].dup
if q[:order_cycle_id_eq] == '-1'
q[:order_cycle_id_null] = true
q[:order_cycle_id_eq] = nil
end
# -- Search
@search = Spree::Order.complete.not_state(:canceled).managed_by(spree_current_user).search(q)
@search = Spree::Order.complete.not_state(:canceled).managed_by(spree_current_user).search(params[:q])
orders = @search.result
@line_items = orders.map do |o|
lis = o.line_items.managed_by(spree_current_user)
lis = lis.supplied_by(params[:supplier_id]) if params[:supplier_id].present?
lis = lis.supplied_by_any(params[:supplier_id_in]) if params[:supplier_id_in].present?
lis
end.flatten
#payments = orders.map { |o| o.payments.select { |payment| payment.completed? } }.flatten # Only select completed payments

View File

@@ -10,19 +10,18 @@
= label_tag nil, t(:end), :class => 'inline'
.row
.alpha.two.columns= label_tag nil, "Distributor: "
.omega.fourteen.columns= f.collection_select(:distributor_id_eq, @distributors, :id, :name, :include_blank => @include_blank)
.alpha.two.columns= label_tag nil, "Distributors: "
.omega.fourteen.columns= f.collection_select(:distributor_id_in, @distributors, :id, :name, {}, {class: "select2 fullwidth", multiple: true})
.row
.alpha.two.columns= label_tag nil, "Supplier: "
.omega.fourteen.columns= select_tag(:supplier_id, options_from_collection_for_select(@suppliers, :id, :name, params[:supplier_id]), :prompt => @include_blank)
.alpha.two.columns= label_tag nil, "Suppliers: "
.omega.fourteen.columns= select_tag(:supplier_id_in, options_from_collection_for_select(@suppliers, :id, :name, params[:supplier_id_in]), {class: "select2 fullwidth", multiple: true})
.row
.alpha.two.columns= label_tag nil, "Order Cycle: "
.alpha.two.columns= label_tag nil, "Order Cycles: "
.omega.fourteen.columns
- order_cycles_select = [['No Order Cycle', '-1']]
- order_cycles_select += @order_cycles.collect {|oc| [ "#{oc.name}   (#{oc.orders_open_at.to_s(:short)} - #{oc.orders_close_at.to_s(:short)})".html_safe, oc.id ] }
= f.select(:order_cycle_id_eq, order_cycles_select, include_blank: @include_blank, selected: params[:q][:order_cycle_id_eq])
- order_cycles_select = @order_cycles.collect {|oc| [ "#{oc.name}   (#{oc.orders_open_at.to_s(:short)} - #{oc.orders_close_at.to_s(:short)})".html_safe, oc.id ] }
= f.select(:order_cycle_id_in, order_cycles_select, {selected: params[:q][:order_cycle_id_in]}, {class: "select2 fullwidth", multiple: true})
.row
.alpha.two.columns= label_tag nil, "Report Type: "