Class: Analytic::DateTimeDimension
- Inherits:
-
ApplicationRecord
- Object
- ApplicationRecord
- Analytic::DateTimeDimension
- Defined in:
- app/models/analytic/date_time_dimension.rb
Overview
== Schema Information
Table name: analytic_date_time_dimensions
Database name: primary
id :integer not null, primary key
date :date
day :integer
month :integer
quarter :integer
week :integer
week_start_date :date
weekday_name :string(255)
weekend :string(255)
year :integer
Indexes
analytic_date_time_dimensions_date (date)
analytic_date_time_dimensions_quarter (quarter)
analytic_date_time_dimensions_year (year)
month_date (month,date)
weekend_date (weekend,date)
Has many collapse
- #item_sold_facts ⇒ ActiveRecord::Relation<ItemSoldFact>
- #product_line_sold_facts ⇒ ActiveRecord::Relation<ProductLineSoldFact>
Class Method Summary collapse
Class Method Details
.populate_date_time_dimension ⇒ Object
31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'app/models/analytic/date_time_dimension.rb', line 31 def self.populate_date_time_dimension min_date = Analytic::DateTimeDimension.maximum(:date) + 1.day max_date = Date.current.beginning_of_year.end_of_month + 1.years (min_date..max_date).each do |d| dt_dimension = Analytic::DateTimeDimension.new dt_dimension.date = d dt_dimension.year = d.year dt_dimension.month = d.month dt_dimension.day = d.day dt_dimension.week = d.cweek dt_dimension.week_start_date = d.beginning_of_week dt_dimension.weekday_name = d.strftime("%A") dt_dimension.quarter = (d.month / 3.0).ceil dt_dimension.weekend = (d.wday == 0 || d.wday == 6) ? 'Weekend' : 'Weekday' dt_dimension.save! end end |
Instance Method Details
#item_sold_facts ⇒ ActiveRecord::Relation<ItemSoldFact>
29 |
# File 'app/models/analytic/date_time_dimension.rb', line 29 has_many :item_sold_facts |
#product_line_sold_facts ⇒ ActiveRecord::Relation<ProductLineSoldFact>
28 |
# File 'app/models/analytic/date_time_dimension.rb', line 28 has_many :product_line_sold_facts |