4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'app/helpers/crm/order_dashboard_helper.rb', line 4
def order_dashboard_tab_options
params_hash = { company_id: @company_id, report_grouping: @report_grouping, sales_rep_id: @sales_rep_id, sort_by: @sort_by, sort_direction: @sort_direction }
base = get_orders_from_selections
state_to_tab = {
'pending' => :pending,
'profit_review' => :profit_review,
'in_cr_hold' => :in_cr_hold,
'crm_back_order' => :back_order,
'pending_release_authorization' => :pending_release_authorization,
'pending_payment' => :pending_payment,
'pre_pack' => :pre_pack,
'awaiting_carrier_assignment' => :awaiting_carrier_assignment
}
state_to_tab['awaiting_deliveries'] = :awaiting_deliveries if @report_grouping == "Amazon"
counters = state_to_tab.values.index_with { 0 }
base.where(state: state_to_tab.keys).group(:state).count.each do |state, n|
counters[state_to_tab[state]] = n
end
awaiting = base.all_awaiting_deliveries.with_associations.joins(:deliveries)
counters[:orders_need_attention] = awaiting.where("deliveries.state = 'quoting'").count
counters[:dropship_orders_need_attention] = awaiting.where("deliveries.state = 'awaiting_po_fulfillment' OR deliveries.state = 'processing_po_fulfillment'").count
counters[:future_release] = base.future_release.count
tabs = {
orders_need_attention: order_dashboard_tab_orders_need_attention_path(params_hash),
dropship_orders_need_attention: order_dashboard_tab_dropship_orders_need_attention_path(params_hash),
pending: order_dashboard_tab_pending_path(params_hash),
profit_review: order_dashboard_tab_profit_review_path(params_hash),
in_cr_hold: order_dashboard_tab_in_cr_hold_path(params_hash),
back_order: order_dashboard_tab_back_order_path(params_hash),
pending_release_authorization: order_dashboard_tab_pending_release_authorization_path(params_hash),
pending_payment: order_dashboard_tab_pending_payment_path(params_hash),
pre_pack: order_dashboard_tab_pre_pack_path(params_hash),
awaiting_carrier_assignment: order_dashboard_tab_awaiting_carrier_assignment_path(params_hash),
awaiting_deliveries: order_dashboard_tab_awaiting_deliveries_path(params_hash),
future_release: order_dashboard_tab_future_release_path(params_hash)
}
counters.each_with_object({}) do |(key, count), hsh|
hsh[key] = { counter: count, remote_href: tabs[key] } if count.positive?
end
end
|