5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
# File 'app/my_lib/modules/owners/reports/dine_in_covers_report.rb', line 5
def build_reports_dine_in_covers_by_day
reservations = active_reservations_filter_by('day')
Rails.cache.fetch("#{self.class}:dine_in_covers_report_by:day:#{restaurants_cache_key}:#{reservations.cache_key}:#{I18n.locale}") do
data = reservations.where(service_type: :dine_in)
.select("restaurant_id, party_size, COUNT('id') bookings")
.group('party_size')
total_bookings = 0
row_data = data.map do |row|
total_bookings += row['bookings'].to_i
{
covers: row['party_size'],
booking: row['bookings']
}
end.sort_by { |r| r[:covers] }
[row_data, total_bookings]
end
end
|