Class: Activity::OpenActivitiesStamper
- Inherits:
-
BaseService
- Object
- BaseService
- Activity::OpenActivitiesStamper
- Defined in:
- app/services/activity/open_activities_stamper.rb
Defined Under Namespace
Classes: Result
Instance Method Summary collapse
-
#process(end_date: Date.current) ⇒ Object
Take all activities open and with due date close of business today or date passed.
Methods inherited from BaseService
#initialize, #log_debug, #log_error, #log_info, #log_warning, #logger, #options, #tagged_logger
Constructor Details
This class inherits a constructor from BaseService
Instance Method Details
#process(end_date: Date.current) ⇒ Object
Take all activities open and with due date close of business today or date passed.
Create a historical record
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/services/activity/open_activities_stamper.rb', line 8 def process(end_date: Date.current) end_datetime = end_date.end_of_day open_activities = Activity.open_activities.where(Activity[:target_datetime].lteq(end_datetime)).pluck(:id, :assigned_resource_id) historical_records = [] open_activities.each do |(activity_id, assigned_resource_id)| historical_records << HistoricalOpenActivity.new(activity_id: activity_id, assigned_resource_id: assigned_resource_id, open_date: end_datetime.to_date ) end require 'activerecord-import/base' require 'activerecord-import/active_record/adapters/postgresql_adapter' res = HistoricalOpenActivity.import historical_records, on_duplicate_key_ignore: true records_inserted = res.ids.size rescue 0 logger.info "HistoricalOpenActivity insert completed with #{records_inserted} open as of #{end_datetime}" return Result.new(total_activities_open: records_inserted) end |