13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'app/workers/loyalty_programs/reminder_worker.rb', line 13
def perform(user_loyalty_id)
user_loyalty = UserLoyalty.find_by(id: user_loyalty_id)
expired_date_level = user_loyalty.expired_date_level
return if user_loyalty.blank?
return if expired_date_level.blank?
today = Time.now_in_tz(user_loyalty.user.time_zone)
reminder_at = (expired_date_level - 1.month).end_of_day
if user_loyalty.no_booking_in_current_level? && reminder_at.to_date == today.to_date && !user_loyalty.hunger?
Netcore::LoyaltyWorker.perform_in(
Netcore::LoyaltyWorker::DELAY, :maintain_user_level, user_loyalty.user_id
)
elsif reminder_at.to_date >= today.to_date
LoyaltyPrograms::ReminderWorker.perform_at(reminder_at, user_loyalty.id)
end
end
|