Module: Dashboard::V2::ReportsShared
Instance Method Summary
collapse
#copper_sort_restaurants
#build_reports_dine_in_covers_by_day
#build_sold_out_report, #status_seat_by
#build_package_sales, #build_ratings
#build_reports_service_type_by_day, #build_reports_service_type_by_hour, #service_type_report_by
#build_package_reports_by_day, #build_package_reports_by_hour, #package_report_by
#build_reports_by_day, #build_reports_by_hour
#build_reports_branch_covers_by_day
Instance Method Details
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
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
|
#index ⇒ Object
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_hour ⇒ Object
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_day ⇒ Object
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_hour ⇒ Object
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_day ⇒ Object
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_day ⇒ Object
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_hour ⇒ Object
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_rating ⇒ Object
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_day ⇒ Object
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_hour ⇒ Object
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_out ⇒ Object
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_date ⇒ Object
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_solds ⇒ Object
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
|