Class: ScheduleWorkers::EventDriven::ExpirationEvents::ExpiredPromotionBadgeDynamicPriceWorker
- Inherits:
-
ApplicationWorker
- Object
- ApplicationWorker
- ScheduleWorkers::EventDriven::ExpirationEvents::ExpiredPromotionBadgeDynamicPriceWorker
- Defined in:
- app/workers/schedule_workers/event_driven/expiration_events/expired_promotion_badge_dynamic_price_worker.rb
Instance Method Summary collapse
-
#perform ⇒ Object
Performs the expiration event handling for package dynamic pricing which have promotion badge percentage.
Methods inherited from ApplicationWorker
Instance Method Details
#perform ⇒ Object
Performs the expiration event handling for package dynamic pricing which have promotion badge percentage.
This method is responsible for processing expired promotion badge percentage by checking their expiration dates against the previous day's date in the 'Asia/Bangkok' time zone. This worker runs every day at 00:00 (midnight) It retrieves the expired records and processes each one accordingly.
17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'app/workers/schedule_workers/event_driven/expiration_events/expired_promotion_badge_dynamic_price_worker.rb', line 17 def perform yesterday = Time.use_zone('Asia/Bangkok') { Time.zone.yesterday } expired_restaurant_packages = HhPackage::RestaurantPackage.where( "EXISTS ( SELECT 1 FROM hh_package_pricings WHERE hh_package_pricings.package_id = hh_package_restaurant_packages.package_id AND hh_package_pricings.promotion_badge_percentage IS NOT NULL AND hh_package_pricings.end_date = ? )", yesterday.to_date ) expired_restaurant_packages.each do |expired_rp| process_expired_restaurant_package(expired_rp) end rescue StandardError => e APMErrorHandler.report(e) end |