Class: Activity::OpenActivitiesStamper
- Inherits:
-
BaseService
- Object
- BaseService
- Activity::OpenActivitiesStamper
- Defined in:
- app/services/activity/open_activities_stamper.rb
Overview
Service object: open activities stamper.
Defined Under Namespace
Classes: Result
Instance Attribute Summary
Attributes inherited from BaseService
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, #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
11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'app/services/activity/open_activities_stamper.rb', line 11 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.map do |(activity_id, assigned_resource_id)| { activity_id: activity_id, assigned_resource_id: assigned_resource_id, open_date: end_datetime.to_date } end res = HistoricalOpenActivity.insert_all(historical_records) if historical_records.any? records_inserted = res&.rows&.size || 0 logger.info "HistoricalOpenActivity insert completed with #{records_inserted} open as of #{end_datetime}" Result.new(total_activities_open: records_inserted) end |