Class: Workarea::Admin::ReportsController

Inherits:
ApplicationController show all
Defined in:
app/controllers/workarea/admin/reports_controller.rb

Instance Method Summary collapse

Methods inherited from ApplicationController

#current_user, #find_sort, #wrap_in_view_model, wrap_in_view_model

Methods included from Publishing

#allow_publishing!, #allow_publishing?, #set_publishing_options

Methods included from Visiting

#most_visited

Instance Method Details

#average_order_valueObject



6
7
8
9
10
11
# File 'app/controllers/workarea/admin/reports_controller.rb', line 6

def average_order_value
  @report = Reports::AverageOrderValueViewModel.wrap(
    Workarea::Reports::AverageOrderValue.new(params),
    view_model_options
  )
end

#customersObject



24
25
26
27
28
29
# File 'app/controllers/workarea/admin/reports_controller.rb', line 24

def customers
  @report = Reports::CustomersViewModel.wrap(
    Workarea::Reports::Customers.new(params),
    view_model_options
  )
end

#downloadObject



127
128
129
130
# File 'app/controllers/workarea/admin/reports_controller.rb', line 127

def download
  export = Workarea::Reports::Export.find(params[:id])
  send_file export.file.file, filename: export.file_name
end

#exportObject



115
116
117
118
119
120
121
122
123
124
125
# File 'app/controllers/workarea/admin/reports_controller.rb', line 115

def export
  export = Workarea::Reports::Export.new(params[:export])

  if export.save
    flash[:success] = t('workarea.admin.reports.flash_messages.success')
    redirect_back fallback_location: root_path
  else
    flash[:error] = export.errors.full_messages.to_sentence
    export.report_type.present? ? send(export.report_type) : redirect_to(root_path)
  end
end

#first_time_vs_returning_salesObject



13
14
15
16
17
18
# File 'app/controllers/workarea/admin/reports_controller.rb', line 13

def first_time_vs_returning_sales
  @report = Reports::FirstTimeVsReturningSalesViewModel.wrap(
    Workarea::Reports::FirstTimeVsReturningSales.new(params),
    view_model_options
  )
end

#insightsObject



20
21
22
# File 'app/controllers/workarea/admin/reports_controller.rb', line 20

def insights
  @insights = Reports::InsightsViewModel.wrap(nil, view_model_options)
end

#low_inventoryObject



108
109
110
111
112
113
# File 'app/controllers/workarea/admin/reports_controller.rb', line 108

def low_inventory
  @report = Reports::LowInventoryViewModel.wrap(
    Workarea::Reports::LowInventory.new(params),
    view_model_options
  )
end

#referenceObject



31
32
33
34
35
36
# File 'app/controllers/workarea/admin/reports_controller.rb', line 31

def reference
  @terms =
    t('workarea.admin.reports.reference.terms')
      .sort_by(&:first)
      .map { |_key, term| OpenStruct.new(term) }
end

#sales_by_categoryObject



38
39
40
41
42
43
# File 'app/controllers/workarea/admin/reports_controller.rb', line 38

def sales_by_category
  @report = Reports::SalesByCategoryViewModel.wrap(
    Workarea::Reports::SalesByCategory.new(params),
    view_model_options
  )
end

#sales_by_countryObject



45
46
47
48
49
50
# File 'app/controllers/workarea/admin/reports_controller.rb', line 45

def sales_by_country
  @report = Reports::SalesByCountryViewModel.wrap(
    Workarea::Reports::SalesByCountry.new(params),
    view_model_options
  )
end

#sales_by_discountObject



52
53
54
55
56
57
# File 'app/controllers/workarea/admin/reports_controller.rb', line 52

def sales_by_discount
  @report = Reports::SalesByDiscountViewModel.wrap(
    Workarea::Reports::SalesByDiscount.new(params),
    view_model_options
  )
end

#sales_by_productObject



59
60
61
62
63
64
# File 'app/controllers/workarea/admin/reports_controller.rb', line 59

def sales_by_product
  @report = Reports::SalesByProductViewModel.wrap(
    Workarea::Reports::SalesByProduct.new(params),
    view_model_options
  )
end

#sales_by_skuObject



73
74
75
76
77
78
# File 'app/controllers/workarea/admin/reports_controller.rb', line 73

def sales_by_sku
  @report = Reports::SalesBySkuViewModel.wrap(
    Workarea::Reports::SalesBySku.new(params),
    view_model_options
  )
end

#sales_by_tenderObject



80
81
82
83
84
85
# File 'app/controllers/workarea/admin/reports_controller.rb', line 80

def sales_by_tender
  @report = Reports::SalesByTenderViewModel.wrap(
    Workarea::Reports::SalesByTender.new(params),
    view_model_options
  )
end

#sales_by_traffic_referrerObject



66
67
68
69
70
71
# File 'app/controllers/workarea/admin/reports_controller.rb', line 66

def sales_by_traffic_referrer
  @report = Reports::SalesByTrafficReferrerViewModel.wrap(
    Workarea::Reports::SalesByTrafficReferrer.new(params),
    view_model_options
  )
end

#sales_over_timeObject



87
88
89
90
91
92
# File 'app/controllers/workarea/admin/reports_controller.rb', line 87

def sales_over_time
  @report = Reports::SalesOverTimeViewModel.wrap(
    Workarea::Reports::SalesOverTime.new(params),
    view_model_options
  )
end

#searchesObject



94
95
96
97
98
99
# File 'app/controllers/workarea/admin/reports_controller.rb', line 94

def searches
  @report = Reports::SearchesViewModel.wrap(
    Workarea::Reports::Searches.new(params),
    view_model_options
  )
end

#timelineObject



101
102
103
104
105
106
# File 'app/controllers/workarea/admin/reports_controller.rb', line 101

def timeline
  @report = Reports::TimelineViewModel.wrap(
    Workarea::Reports::SalesOverTime.new(params.merge(group_by: 'day')),
    view_model_options
  )
end