Class: Admin::ReportsController

Inherits:
BaseController show all
Defined in:
app/controllers/admin/reports_controller.rb

Constant Summary

Constants inherited from BaseController

BaseController::INTERNAL_SERVER_ERROR_MESSAGE

Instance Method Summary collapse

Methods inherited from BaseController

#destroy_session, #identity_cache_memoization, #sign_in_page, #user_developer_session

Methods included from LogrageCustomLogger

#append_info_to_payload

Methods included from AdminHelper

#dynamic_pricings_formatter, #link_to_admin_reservations_path_by_id, #link_to_admin_restaurants_path_by_id, #link_to_log, #optional_locales, #optional_locales_with_labels, #staff_signed_in?

Methods included from UpdateLocaleConcern

#setup_locale

Methods inherited from ApplicationController

#after_sign_in_path_for, #after_sign_out_path_for, #default_url_options, #identity_cache_memoization, #render_not_found, #routing_error, search_params_key=

Methods included from ControllerHelpers

#check_boolean_param, #get_banners, #inventory_params, #reservation_params

Instance Method Details

#channel_filterObject



22
23
24
25
26
27
28
# File 'app/controllers/admin/reports_controller.rb', line 22

def channel_filter
  filter = params[:queries].try(:[], :channel_filter) ? params[:queries][:channel_filter].to_i : nil
  restaurant = params[:queries].try(:[], :restaurant)
  no_show = params[:queries].try(:[], :no_show) ? params[:queries][:no_show].to_i : nil
  @reservation_by_channel_report = Reservation.generate_reports_by_channel filter, restaurant, no_show
  respond_to :json
end

#daily_reservation_reportObject



36
37
38
39
40
# File 'app/controllers/admin/reports_controller.rb', line 36

def daily_reservation_report
  active = Reservation.where(date: params[:date]).where(active: true).exclude_temporary
  party_size = active.map(&:party_size).sum
  render json: { active: active.count, party_size: party_size }
end

#indexObject



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# File 'app/controllers/admin/reports_controller.rb', line 5

def index
  respond_to do |format|
    format.html do
      @restaurant_report = Restaurant.generate_reports
      @user_reports = User.generate_user_reports
      @restaurants = Restaurant.all
    end
    format.json do
      month_query = params[:queries].try :[], :month
      year_query = params[:queries].try :[], :year
      active_query = params[:queries].try :[], :isactive
      no_show = params[:queries].try(:[], :no_show) ? params[:queries][:no_show].to_i : nil
      @reservations = Reservation.generate_reports_by_restaurant month_query, year_query, active_query, no_show
    end
  end
end

#user_reportsObject



30
31
32
33
34
# File 'app/controllers/admin/reports_controller.rb', line 30

def user_reports
  operator = params[:credits].split(' ')
  query = "SELECT * FROM (SELECT `users`.`id`, `users`.`email`, `users`.`username`, `users`.`phone`, (SUM(`rewards`.`points_total`) - SUM(`rewards`.`points_pending`)) AS `credits` FROM `users` JOIN `rewards` ON `rewards`.`user_id` = `users`.`id` GROUP BY `users`.`id` ) AS r WHERE r.credits #{operator[0].to_sym} #{operator[1].to_i}"
  @users = User.find_by_sql(query)
end