2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
# File 'app/workers/user_avg_per_pax_booking_worker.rb', line 2
def perform(reservation_id)
reservation = Reservation.find(reservation_id)
return false if reservation.cancelled? || reservation.user.blank? || !reservation.package? || !reservation.reached_goal?
user = reservation.user
avg_pax_per_booking = user.avg_pax_per_booking.presence || 0
reservations = user.reservations.reached_goal_scope
reservations_count = reservations.count
reservations_total_adult = reservations.sum(:adult)
total_avg_pax_per_booking = reservations_count.zero? ? 0 : (reservations_total_adult / reservations_count)
user.update(avg_pax_per_booking: total_avg_pax_per_booking)
end
|