Module: Spree::Admin::AnalyticsConcern
- Extended by:
- ActiveSupport::Concern
- Included in:
- DashboardController
- Defined in:
- app/controllers/concerns/spree/admin/analytics_concern.rb
Instance Method Summary collapse
- #analytics_time_range ⇒ Object
- #calc_growth_rate(current_amount, previous_amount) ⇒ Object
- #previous_analytics_time_range ⇒ Object
- #same_day? ⇒ Boolean
- #set_analytics_defaults ⇒ Object
Instance Method Details
#analytics_time_range ⇒ Object
26 27 28 |
# File 'app/controllers/concerns/spree/admin/analytics_concern.rb', line 26 def analytics_time_range @analytics_time_range ||= (params[:date_from].to_time.beginning_of_day)..(params[:date_to].to_time.end_of_day) end |
#calc_growth_rate(current_amount, previous_amount) ⇒ Object
40 41 42 43 44 45 46 47 48 |
# File 'app/controllers/concerns/spree/admin/analytics_concern.rb', line 40 def calc_growth_rate(current_amount, previous_amount) if previous_amount.zero? && current_amount.positive? 100 elsif current_amount.zero? && previous_amount.zero? 0 else ((current_amount.to_f / previous_amount) * 100) - 100 end end |
#previous_analytics_time_range ⇒ Object
30 31 32 33 34 |
# File 'app/controllers/concerns/spree/admin/analytics_concern.rb', line 30 def previous_analytics_time_range duration = analytics_time_range.last - analytics_time_range.first @previous_analytics_time_range ||= analytics_time_range.first.ago(duration)..analytics_time_range.last.ago(duration).end_of_day end |
#same_day? ⇒ Boolean
36 37 38 |
# File 'app/controllers/concerns/spree/admin/analytics_concern.rb', line 36 def same_day? analytics_time_range.first.to_date == analytics_time_range.last.to_date end |
#set_analytics_defaults ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'app/controllers/concerns/spree/admin/analytics_concern.rb', line 10 def set_analytics_defaults params[:analytics_currency] ||= current_currency params[:date_from] = if params[:date_from].present? params[:date_from].to_date&.in_time_zone(current_timezone) else 1.month.ago.end_of_day.to_date.in_time_zone(current_timezone) end params[:date_to] = if params[:date_to].present? params[:date_to].to_date&.in_time_zone(current_timezone) else Time.zone.now.beginning_of_day.to_date.in_time_zone(current_timezone) end end |