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.
25 lines
950 B
25 lines
950 B
10 months ago
|
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
|