Class: Analytic::OrdersSoldFact
- Inherits:
-
ApplicationRecord
- Object
- ApplicationRecord
- Analytic::OrdersSoldFact
- Includes:
- Utility
- Defined in:
- app/models/analytic/orders_sold_fact.rb
Overview
== Schema Information
Table name: analytic_orders_sold_facts
Database name: primary
id :integer not null, primary key
num_of_orders :integer
total_revenue :decimal(, )
catalog_id :integer
date_time_dimension_id :integer
report_grouping_dimension_id :integer
Belongs to collapse
Class Method Summary collapse
Class Method Details
.refresh_data(logger = nil) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
# File 'app/models/analytic/orders_sold_fact.rb', line 20 def self.refresh_data(logger = nil) logger ||= Rails.logger max_date_id = Analytic::OrdersSoldFact.maximum(:date_time_dimension_id) max_date_id = Analytic::DateTimeDimension.where(:date => "2012-01-01") if max_date_id.blank? @max_date = Analytic::DateTimeDimension.where(:id => max_date_id).pick(:date) sql = "INSERT INTO analytic_orders_sold_facts (num_of_orders,total_revenue,report_grouping_dimension_id,date_time_dimension_id,catalog_id) SELECT sum(num_of_orders) as num_of_orders,sum(total_revenue) as total_revenue,rg_id,d_id,catalog_id FROM (select count(distinct(order_id)) as num_of_orders,sum(revenue_consolidated) as total_revenue, (select p.catalog_id from parties p where p.id = i.customer_id) as catalog_id, rg.id as rg_id,dt.id as d_id from invoices i inner join analytic_date_time_dimensions dt on dt.date = i.created_at::date inner join analytic_report_grouping_dimensions rg on rg.report_grouping = i.report_grouping where i.created_at between '#{@max_date}' and current_date and i.report_grouping is not null and i.invoice_type in ('#{Invoice::SO}', '#{Invoice::MO}', '#{Invoice::TO}', '#{Invoice::SS}') group by rg_id,d_id,i.id,catalog_id) a group by rg_id,d_id,catalog_id order by d_id,rg_id" result = execute(sql) end |
Instance Method Details
#date_time_dimension ⇒ DateTimeDimension
17 |
# File 'app/models/analytic/orders_sold_fact.rb', line 17 belongs_to :date_time_dimension, optional: true |
#report_grouping_dimension ⇒ ReportGroupingDimension
18 |
# File 'app/models/analytic/orders_sold_fact.rb', line 18 belongs_to :report_grouping_dimension, optional: true |