Module: Dashboard::V2::ReportsShared

Extended by:
ActiveSupport::Concern
Includes:
Modules::Owners::Reports, MoneyRails::ActionViewExtension
Included in:
ReportsController
Defined in:
app/controllers/dashboard/v2/reports_shared.rb

Instance Method Summary collapse

Methods included from CopperHelper

#copper_sort_restaurants

Methods included from Modules::Owners::Reports::DineInCoversReport

#build_reports_dine_in_covers_by_day

Methods included from Modules::Owners::Reports::SoldOutReport

#build_sold_out_report, #status_seat_by

Methods included from Modules::Owners::Reports::SalesAndRatingReport

#build_package_sales, #build_ratings

Methods included from Modules::Owners::Reports::ServiceTypeReport

#build_reports_service_type_by_day, #build_reports_service_type_by_hour, #service_type_report_by

Methods included from Modules::Owners::Reports::PackageReport

#build_package_reports_by_day, #build_package_reports_by_hour, #package_report_by

Methods included from Modules::Owners::Reports::DineInReport

#build_reports_by_day, #build_reports_by_hour

Methods included from Modules::Owners::Reports::BranchCoversReport

#build_reports_branch_covers_by_day

Instance Method Details

#download_menu_reportObject

Raises:

  • (NotImplementedError)


104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 104

def download_menu_report
  permitted_params = params.require(:menu_report).permit(:start_time, :end_time, :date)
  start_time = permitted_params[:start_time].gsub('/', '')
  end_time = permitted_params[:end_time].gsub('/', '')
  reservations = restaurant.reservations.active_and_show_scope.where(date: permitted_params.fetch(:date,
                                                                                                  Date.today).to_date).where.not(service_type: :dine_in).exclude_temporary
  reservations = filter_by_time(reservations, start_time, end_time) if start_time.present? && end_time.present?
  raise NotImplementedError unless permitted_params.fetch(:by_table, 'true') == 'true'

  respond_to do |format|
    format.csv do
      if reservations.count > 100
        GenerateDeliveryMenuWorker.perform_async reservations.to_sql, current_user.email, :csv
        redirect_back fallback_location: back_fallback_location,
                      notice: 'We will send the CSV file to your email as soon as possible'
      else
        generator = GenerateDeliveryMenuWorker.new
        csv = generator.reservations_to_csv(reservations)
        send_data csv, filename: "menu-report-#{Time.zone.now}.csv"
      end
    end
  end
end

#indexObject



15
16
17
18
19
20
21
22
23
24
25
26
27
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 15

def index
  respond_to do |format|
    format.html do
      set_meta_tags(title: 'Reports')
      render('dashboard/v2/reports/index.html')
    end

    format.json do
      json = report_params[:is_by_hour] == 'true' ? build_reports_by_hour : build_reports_by_day
      render(json: json)
    end
  end
end

#report_branch_covers_by_hourObject



59
60
61
62
63
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 59

def report_branch_covers_by_hour
  @restaurants_list = restaurants_list
  @reports_branch_covers_by_day = build_reports_branch_covers_by_day
  render 'dashboard/v2/reports/report_branch_covers_by_hour.html', layout: false
end

#report_by_dayObject



29
30
31
32
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 29

def report_by_day
  @reports_by_day = build_reports_by_day
  render 'dashboard/v2/reports/report_by_day.html', layout: false
end

#report_by_hourObject



34
35
36
37
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 34

def report_by_hour
  @reports_by_hour = build_reports_by_hour
  render 'dashboard/v2/reports/report_by_hour.html', layout: false
end

#report_cover_dine_in_by_dayObject



80
81
82
83
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 80

def report_cover_dine_in_by_day
  @report_service_type_by_day = build_reports_dine_in_covers_by_day
  render 'dashboard/v2/reports/report_dine_in_covers_by_day.html', layout: false
end

#report_package_by_dayObject



54
55
56
57
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 54

def report_package_by_day
  @reports_package_by_day = build_package_reports_by_day
  render 'dashboard/v2/reports/reports_package_by_day.html', layout: false
end

#report_package_by_hourObject



39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 39

def report_package_by_hour
  @reports_package_by_hour = build_package_reports_by_hour
  @restaurant_group_id = params[:restaurant_group_id]
  @restaurant_id = params[:restaurant_id]
  @start_date = params[:start_date]
  @start_time = params[:start_time]
  @end_time = params[:end_time]
  @download_url = if @restaurant_group_id.present?
                    '/dashboard/v2/group/reports/download_menu_report.csv'
                  else
                    '/dashboard/v2/reports/download_menu_report.csv'
                  end
  render 'dashboard/v2/reports/reports_package_by_hour.html', layout: false
end

#report_sales_and_ratingObject



75
76
77
78
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 75

def report_sales_and_rating
  @report_rating = build_ratings
  render 'dashboard/v2/reports/report_sales_and_rating.html', layout: false
end

#report_service_type_by_dayObject



70
71
72
73
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 70

def report_service_type_by_day
  @report_service_type_by_day = build_reports_service_type_by_day
  render 'dashboard/v2/reports/report_service_type_by_day.html', layout: false
end

#report_service_type_by_hourObject



65
66
67
68
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 65

def report_service_type_by_hour
  @report_service_type_by_hour = build_reports_service_type_by_hour
  render 'dashboard/v2/reports/report_service_type_by_hour.html', layout: false
end

#report_sold_outObject



85
86
87
88
89
90
91
92
93
94
95
96
97
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 85

def report_sold_out
  date = params[:selected_date]

  @date = date.nil? ? Time.now.beginning_of_month : date.to_date
  @next_date = @date.beginning_of_month.next_month
  @prev_date = @date.beginning_of_month.prev_month
  @start_date = if date.nil?
                  @date
                else
                  @date.beginning_of_month
                end
  render 'dashboard/v2/reports/report_sold_out.html', layout: false
end

#report_sold_out_per_dateObject



99
100
101
102
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 99

def report_sold_out_per_date
  @report_sold_out = build_sold_out_report
  render 'dashboard/v2/reports/report_sold_out_per_date.html', layout: false
end

#sync_package_soldsObject



128
129
130
131
132
133
134
# File 'app/controllers/dashboard/v2/reports_shared.rb', line 128

def sync_package_solds
  restaurant_id = restaurant.is_a?(::Restaurant) ? restaurant.id : params.require(:restaurant_id)
  rps = RestaurantPackageSold.new(restaurant_id)
  rps.sync_package_solds

  render json: { success: true }
end