Class: Workarea::Admin::RevenueViewModel

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

Instance Method Summary collapse

Constructor Details

#initialize(revenue_stream) ⇒ RevenueViewModel

Returns a new instance of RevenueViewModel.



4
5
6
# File 'app/view_models/workarea/admin/revenue_view_model.rb', line 4

def initialize(revenue_stream)
  @revenue_stream = revenue_stream
end

Instance Method Details

#nameObject



20
21
22
# File 'app/view_models/workarea/admin/revenue_view_model.rb', line 20

def name
  @revenue_stream.revenue_class.name.to_s.demodulize.pluralize
end

#to_hObject



24
25
26
27
28
29
30
31
32
33
34
35
# File 'app/view_models/workarea/admin/revenue_view_model.rb', line 24

def to_h
  [
    {
      label: t('workarea.admin.insights.revenue.top_label', name: name),
      value: percentage(top_sellers_revenue)
    },
    {
      label: t('workarea.admin.insights.revenue.other_label', name: name),
      value: percentage(total_revenue - top_sellers_revenue)
    }
  ]
end

#top_sellers_revenueObject



12
13
14
15
16
17
18
# File 'app/view_models/workarea/admin/revenue_view_model.rb', line 12

def top_sellers_revenue
  @top_sellers_revenue ||=
    @revenue_stream
      .top
      .limit(5)
      .sum(:last_four_weeks_revenue)
end

#total_revenueObject



8
9
10
# File 'app/view_models/workarea/admin/revenue_view_model.rb', line 8

def total_revenue
  @total_revenue ||= @revenue_stream.sum(:last_four_weeks_revenue)
end