Class: Workarea::Admin::Dashboards::ReportsViewModel
- Inherits:
-
ApplicationViewModel
- Object
- ApplicationViewModel
- Workarea::Admin::Dashboards::ReportsViewModel
- Defined in:
- app/view_models/workarea/admin/dashboards/reports_view_model.rb
Instance Method Summary collapse
- #average_order_value ⇒ Object
- #country_graph_data ⇒ Object
- #customers ⇒ Object
- #first_time_vs_returning_sales ⇒ Object
- #insights ⇒ Object
- #low_inventory ⇒ Object
- #marketing ⇒ Object
- #one_time_customers ⇒ Object
- #sales_by_category ⇒ Object
- #sales_by_country ⇒ Object
- #sales_by_discount ⇒ Object
- #sales_by_product ⇒ Object
- #sales_by_sku ⇒ Object
- #sales_by_tender ⇒ Object
- #sales_over_time ⇒ Object
- #searches ⇒ Object
- #tender_graph_data ⇒ Object
- #timeline ⇒ Object
Instance Method Details
#average_order_value ⇒ Object
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(), ) end |
#country_graph_data ⇒ Object
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 |
#customers ⇒ Object
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(), ) end |
#first_time_vs_returning_sales ⇒ Object
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(), ) end |
#insights ⇒ Object
17 18 19 |
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 17 def insights @insights ||= Reports::InsightsViewModel.wrap(nil, ).feed end |
#low_inventory ⇒ Object
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(), ) end |
#marketing ⇒ Object
21 22 23 |
# File 'app/view_models/workarea/admin/dashboards/reports_view_model.rb', line 21 def marketing @marketing ||= Dashboards::MarketingViewModel.wrap(nil, ) end |
#one_time_customers ⇒ Object
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(), ) end |
#sales_by_category ⇒ Object
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(), ) end |
#sales_by_country ⇒ Object
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(), ) end |
#sales_by_discount ⇒ Object
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(), ) end |
#sales_by_product ⇒ Object
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(), ) end |
#sales_by_sku ⇒ Object
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(), ) end |
#sales_by_tender ⇒ Object
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(), ) end |
#sales_over_time ⇒ Object
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(), ) end |
#searches ⇒ Object
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(), ) end |
#tender_graph_data ⇒ Object
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 |
#timeline ⇒ Object
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( .merge( starts_at: 3.months.ago, group_by: 'day' ) ), ) end |