Browse Source

Mark related bulk uploads as cancelled by user

pull/2596/head
Kat 2 years ago
parent
commit
45f8839634
  1. 9
      app/models/user.rb
  2. 5
      db/migrate/20240911152702_add_moved_user_to_bu.rb
  3. 3
      db/schema.rb
  4. 26
      spec/models/user_spec.rb

9
app/models/user.rb

@ -312,6 +312,7 @@ class User < ApplicationRecord
unassign_organisations(lettings_logs_to_reassign, sales_logs_to_reassign, current_organisation)
end
cancel_related_bulk_uploads
send_organisation_change_email(current_organisation, new_organisation, log_reassignment, logs_count)
rescue StandardError => e
Rails.logger.error("User update failed with: #{e.message}")
@ -401,4 +402,12 @@ private
}
DeviseNotifyMailer.new.send_email(email, template_id, personalisation)
end
def cancel_related_bulk_uploads
lettings_bu_ids = LettingsLog.where(assigned_to: self, status: "pending").map(&:bulk_upload_id).compact.uniq
BulkUpload.where(id: lettings_bu_ids).update!(choice: "cancelled-by-moved-user", moved_user_id: id)
sales_bu_ids = SalesLog.where(assigned_to: self, status: "pending").map(&:bulk_upload_id).compact.uniq
BulkUpload.where(id: sales_bu_ids).update!(choice: "cancelled-by-moved-user", moved_user_id: id)
end
end

5
db/migrate/20240911152702_add_moved_user_to_bu.rb

@ -0,0 +1,5 @@
class AddMovedUserToBu < ActiveRecord::Migration[7.0]
def change
add_column :bulk_uploads, :moved_user_id, :integer
end
end

3
db/schema.rb

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2024_08_22_080228) do
ActiveRecord::Schema[7.0].define(version: 2024_09_11_152702) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -42,6 +42,7 @@ ActiveRecord::Schema[7.0].define(version: 2024_08_22_080228) do
t.text "choice"
t.integer "total_logs_count"
t.string "rent_type_fix_status", default: "not_applied"
t.integer "moved_user_id"
t.index ["identifier"], name: "index_bulk_uploads_on_identifier", unique: true
t.index ["user_id"], name: "index_bulk_uploads_on_user_id"
end

26
spec/models/user_spec.rb

@ -587,6 +587,32 @@ RSpec.describe User, type: :model do
expect(user.organisation).not_to eq(new_organisation)
end
end
context "and the user has pending logs assigned to them" do
let(:lettings_bu) { create(:bulk_upload, :lettings) }
let(:sales_bu) { create(:bulk_upload, :sales) }
let!(:pending_lettings_log) { build(:lettings_log, status: "pending", assigned_to: user, bulk_upload: lettings_bu) }
let!(:pending_sales_log) { build(:sales_log, status: "pending", assigned_to: user, bulk_upload: sales_bu) }
before do
pending_lettings_log.skip_update_status = true
pending_lettings_log.save!
pending_sales_log.skip_update_status = true
pending_sales_log.save!
end
it "sets choice for fixing the logs to cancelled-by-moved-user" do
user.reassign_logs_and_update_organisation(new_organisation, "reassign_all")
expect(lettings_bu.reload.choice).to eq("cancelled-by-moved-user")
expect(sales_bu.reload.choice).to eq("cancelled-by-moved-user")
expect(lettings_bu.moved_user_id).to eq(user.id)
expect(sales_bu.moved_user_id).to eq(user.id)
expect(pending_lettings_log.reload.status).to eq("pending")
expect(pending_sales_log.reload.status).to eq("pending")
end
end
end
context "when reassigning stock owners for logs" do

Loading…
Cancel
Save