Browse Source

refactor merge organisations service

pull/1801/head
Kat 3 years ago
parent
commit
8d44a054db
  1. 40
      app/services/merge/merge_organisations_service.rb

40
app/services/merge/merge_organisations_service.rb

@ -6,14 +6,16 @@ class Merge::MergeOrganisationsService
def call
merge_organisation_details
merge_rent_periods
merge_organisation_relationships
merge_users
merge_schemes_and_locations
merge_lettings_logs
merge_sales_logs
mark_organisations_as_merged
@merging_organisations.each do |merging_organisation|
merge_rent_periods(merging_organisation)
merge_organisation_relationships(merging_organisation)
merge_users(merging_organisation)
merge_schemes_and_locations(merging_organisation)
merge_lettings_logs(merging_organisation)
merge_sales_logs(merging_organisation)
end
@absorbing_organisation.save!
mark_organisations_as_merged
end
private
@ -22,16 +24,13 @@ private
@absorbing_organisation.holds_own_stock = merge_boolean_organisation_attribute("holds_own_stock")
end
def merge_rent_periods
@merging_organisations.each do |merging_organisation|
def merge_rent_periods(merging_organisation)
merging_organisation.rent_periods.each do |rent_period|
@absorbing_organisation.organisation_rent_periods << OrganisationRentPeriod.new(rent_period:) unless @absorbing_organisation.rent_periods.include?(rent_period)
end
end
end
def merge_organisation_relationships
@merging_organisations.each do |merging_organisation|
def merge_organisation_relationships(merging_organisation)
merging_organisation.parent_organisation_relationships.each do |parent_organisation_relationship|
if parent_relationship_exists_on_absorbing_organisation?(parent_organisation_relationship)
parent_organisation_relationship.destroy!
@ -47,16 +46,12 @@ private
end
end
end
end
def merge_users
@merging_organisations.each do |merging_organisation|
def merge_users(merging_organisation)
merging_organisation.users.update_all(organisation_id: @absorbing_organisation.id)
end
end
def merge_schemes_and_locations
@merging_organisations.each do |merging_organisation|
def merge_schemes_and_locations(merging_organisation)
merging_organisation.owned_schemes.each do |scheme|
next if scheme.deactivated?
@ -67,10 +62,8 @@ private
SchemeDeactivationPeriod.create!(scheme:, deactivation_date: Time.zone.now)
end
end
end
def merge_lettings_logs
@merging_organisations.each do |merging_organisation|
def merge_lettings_logs(merging_organisation)
merging_organisation.owned_lettings_logs.after_date(Time.zone.today).each do |lettings_log|
if lettings_log.scheme.present?
scheme_to_set = @absorbing_organisation.owned_schemes.find_by(service_name: lettings_log.scheme.service_name)
@ -87,15 +80,12 @@ private
lettings_log.save!
end
end
end
def merge_sales_logs
@merging_organisations.each do |merging_organisation|
def merge_sales_logs(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
# @merging_organisations.update_all(merge_date: Time.zone.today)

Loading…
Cancel
Save