Class: Activity::OpenActivitiesStamper

Inherits:
BaseService show all
Defined in:
app/services/activity/open_activities_stamper.rb

Defined Under Namespace

Classes: Result

Instance Method Summary collapse

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