You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
24 lines
950 B
24 lines
950 B
desc "Alter noint values for bulk uploaded sales logs where these have not been set in the service" |
|
task correct_noint_value: :environment do |
|
update_counts = { |
|
in_progress: 0, |
|
completed: 0, |
|
pending: 0, |
|
deleted: 0, |
|
} |
|
affected_uploads = BulkUpload.where(log_type: "sales", noint_fix_status: BulkUpload.noint_fix_statuses[:not_applied]) |
|
affected_uploads.each do |upload| |
|
upload.logs.where(noint: 2).each do |log| |
|
noint_at_upload = log.versions.length == 1 ? log.noint : log.versions.first.next.reify.noint |
|
next unless noint_at_upload == 2 |
|
|
|
Rails.logger.info("Updating noint value on log #{log.id}, owning org #{log.owning_organisation_id}") |
|
update_counts[log.status.to_sym] += 1 |
|
log.noint = 1 |
|
log.skip_update_status = true |
|
log.save! |
|
end |
|
upload.update!(noint_fix_status: BulkUpload.noint_fix_statuses[:applied]) |
|
end |
|
Rails.logger.info("Logs updated; #{update_counts}") |
|
end
|
|
|