Browse Source

Merge sales logs

pull/1801/head
Kat 3 years ago
parent
commit
61e5d22ace
  1. 1
      app/models/sales_log.rb
  2. 9
      app/services/merge/merge_organisations_service.rb
  3. 16
      spec/services/merge/merge_organisations_service_spec.rb

1
app/models/sales_log.rb

@ -51,6 +51,7 @@ class SalesLog < Log
.where.not(postcode_full: nil) .where.not(postcode_full: nil)
.where("age1 IS NOT NULL OR age1_known = 1 OR age1_known = 2") .where("age1 IS NOT NULL OR age1_known = 1 OR age1_known = 2")
} }
scope :after_date, ->(date) { where("saledate >= ?", date) }
OPTIONAL_FIELDS = %w[purchid othtype].freeze OPTIONAL_FIELDS = %w[purchid othtype].freeze
RETIREMENT_AGES = { "M" => 65, "F" => 60, "X" => 65 }.freeze RETIREMENT_AGES = { "M" => 65, "F" => 60, "X" => 65 }.freeze

9
app/services/merge/merge_organisations_service.rb

@ -11,6 +11,7 @@ class Merge::MergeOrganisationsService
merge_users merge_users
merge_schemes_and_locations merge_schemes_and_locations
merge_lettings_logs merge_lettings_logs
merge_sales_logs
mark_organisations_as_merged mark_organisations_as_merged
@absorbing_organisation.save! @absorbing_organisation.save!
end end
@ -88,6 +89,14 @@ private
end end
end end
def merge_sales_logs
@merging_organisations.each do |merging_organisation|
merging_organisation.owned_sales_logs.after_date(Time.zone.today).each do |sales_log|
sales_log.update(owning_organisation: @absorbing_organisation)
end
end
end
def mark_organisations_as_merged def mark_organisations_as_merged
# @merging_organisations.update_all(merge_date: Time.zone.today) # @merging_organisations.update_all(merge_date: Time.zone.today)
end end

16
spec/services/merge/merge_organisations_service_spec.rb

@ -116,6 +116,22 @@ RSpec.describe Merge::MergeOrganisationsService do
expect(absorbing_organisation.owned_lettings_logs.find(owned_lettings_log_no_location.id).location).to eq(nil) expect(absorbing_organisation.owned_lettings_logs.find(owned_lettings_log_no_location.id).location).to eq(nil)
end end
end end
context "and merging sales logs" do
let!(:sales_log) { create(:sales_log, saledate: Time.zone.tomorrow, owning_organisation: merging_organisation) }
before do
create(:sales_log, saledate: Time.zone.yesterday, owning_organisation: merging_organisation)
end
it "moves relevant logs" do
merge_organisations_service.call
absorbing_organisation.reload
expect(absorbing_organisation.owned_sales_logs.count).to eq(1)
expect(absorbing_organisation.owned_sales_logs.first).to eq(sales_log)
end
end
end end
end end
end end

Loading…
Cancel
Save