Class: Workarea::Admin::RevenueViewModel
- Inherits:
-
ApplicationViewModel
- Object
- ApplicationViewModel
- Workarea::Admin::RevenueViewModel
- Defined in:
- app/view_models/workarea/admin/revenue_view_model.rb
Instance Method Summary collapse
-
#initialize(revenue_stream) ⇒ RevenueViewModel
constructor
A new instance of RevenueViewModel.
- #name ⇒ Object
- #to_h ⇒ Object
- #top_sellers_revenue ⇒ Object
- #total_revenue ⇒ Object
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
#name ⇒ Object
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_h ⇒ Object
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_revenue ⇒ Object
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_revenue ⇒ Object
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 |