Class: Workarea::Admin::Dashboards::ReportsViewModel

Inherits:
ApplicationViewModel
  • Object
show all
Defined in:
app/view_models/workarea/admin/dashboards/reports_view_model.rb

Instance Method Summary collapse

Instance Method Details

#average_order_valueObject



32
33
34
35
36
37
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 32

def average_order_value
  @average_order_value ||= Reports::AverageOrderValueViewModel.wrap(
    Workarea::Reports::AverageOrderValue.new(options),
    options
  )
end

#country_graph_dataObject



5
6
7
8
9
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 5

def country_graph_data
  sales_by_country.results.take(5).reduce({}) do |memo, result|
    memo.merge(result['_id'] => result['revenue'])
  end
end

#customersObject



88
89
90
91
92
93
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 88

def customers
  @customers ||= Reports::CustomersViewModel.wrap(
    Workarea::Reports::Customers.new(options),
    options
  )
end

#first_time_vs_returning_salesObject



95
96
97
98
99
100
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 95

def first_time_vs_returning_sales
  @first_time_vs_returning_sales ||= Reports::FirstTimeVsReturningSalesViewModel.wrap(
    Workarea::Reports::FirstTimeVsReturningSales.new(options),
    options
  )
end

#insightsObject



17
18
19
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 17

def insights
  @insights ||= Reports::InsightsViewModel.wrap(nil, options).feed
end

#low_inventoryObject



109
110
111
112
113
114
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 109

def low_inventory
  @low_inventory ||= Reports::LowInventoryViewModel.wrap(
    Workarea::Reports::LowInventory.new(options),
    options
  )
end

#marketingObject



21
22
23
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 21

def marketing
  @marketing ||= Dashboards::MarketingViewModel.wrap(nil, options)
end

#one_time_customersObject



81
82
83
84
85
86
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 81

def one_time_customers
  @one_time_customers ||= Reports::OneTimeCustomersViewModel.wrap(
    Workarea::Reports::OneTimeCustomers.new(options),
    options
  )
end

#sales_by_categoryObject



46
47
48
49
50
51
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 46

def sales_by_category
  @sales_by_category ||= Reports::SalesByCategoryViewModel.wrap(
    Workarea::Reports::SalesByCategory.new(options),
    options
  )
end

#sales_by_countryObject



67
68
69
70
71
72
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 67

def sales_by_country
  @sales_by_country ||= Reports::SalesByCountryViewModel.wrap(
    Workarea::Reports::SalesByCountry.new(options),
    options
  )
end

#sales_by_discountObject



60
61
62
63
64
65
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 60

def sales_by_discount
  @sales_by_discount ||= Reports::SalesByDiscountViewModel.wrap(
    Workarea::Reports::SalesByDiscount.new(options),
    options
  )
end

#sales_by_productObject



39
40
41
42
43
44
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 39

def sales_by_product
  @sales_by_product ||= Reports::SalesByProductViewModel.wrap(
    Workarea::Reports::SalesByProduct.new(options),
    options
  )
end

#sales_by_skuObject



53
54
55
56
57
58
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 53

def sales_by_sku
  @sales_by_sku ||= Reports::SalesBySkuViewModel.wrap(
    Workarea::Reports::SalesBySku.new(options),
    options
  )
end

#sales_by_tenderObject



74
75
76
77
78
79
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 74

def sales_by_tender
  @sales_by_tender ||= Reports::SalesByTenderViewModel.wrap(
    Workarea::Reports::SalesByTender.new(options),
    options
  )
end

#sales_over_timeObject



25
26
27
28
29
30
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 25

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

#searchesObject



102
103
104
105
106
107
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 102

def searches
  @searches ||= Reports::SearchesViewModel.wrap(
    Workarea::Reports::Searches.new(options),
    options
  )
end

#tender_graph_dataObject



11
12
13
14
15
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 11

def tender_graph_data
  sales_by_tender.results.take(5).reduce({}) do |memo, result|
    memo.merge(result.name => result.revenue)
  end
end

#timelineObject



116
117
118
119
120
121
122
123
124
125
126
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 116

def timeline
  @timeline ||= Reports::TimelineViewModel.wrap(
    Workarea::Reports::SalesOverTime.new(
      options.merge(
        starts_at: 3.months.ago,
        group_by: 'day'
      )
    ),
    options
  )
end