From afa93c24ebf0a9025e7204df4d858879321db57b Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Tue, 5 Dec 2023 13:38:59 +0000 Subject: [PATCH] Revert "Merge branch 'CLDC-2996-merged-scheme-activation-date-bug' into CLDC-2691-support-nav-bug" This reverts commit 37d4b1e1942a1d9bb73063908460ef01e3fefeea, reversing changes made to 1d76829922240a93b222909feed7a36bd41a2548. --- app/models/location.rb | 8 +++++--- app/models/scheme.rb | 5 ++--- app/services/merge/merge_organisations_service.rb | 4 ++-- spec/helpers/locations_helper_spec.rb | 9 --------- spec/helpers/schemes_helper_spec.rb | 11 ----------- .../merge/merge_organisations_service_spec.rb | 11 ++--------- 6 files changed, 11 insertions(+), 37 deletions(-) diff --git a/app/models/location.rb b/app/models/location.rb index 64272d549..65e0466b3 100644 --- a/app/models/location.rb +++ b/app/models/location.rb @@ -21,9 +21,9 @@ class Location < ApplicationRecord scope :search_by_postcode, ->(postcode) { where("REPLACE(postcode, ' ', '') ILIKE ?", "%#{postcode.delete(' ')}%") } scope :search_by_name, ->(name) { where("name ILIKE ?", "%#{name}%") } scope :search_by, ->(param) { search_by_name(param).or(search_by_postcode(param)) } - scope :started, -> { where("locations.startdate <= ?", Time.zone.today).or(where(startdate: nil)) } + scope :started, -> { where("startdate <= ?", Time.zone.today).or(where(startdate: nil)) } scope :active, -> { where(confirmed: true).and(started) } - scope :started_in_2_weeks, -> { where("locations.startdate <= ?", Time.zone.today + 2.weeks).or(where(startdate: nil)) } + scope :started_in_2_weeks, -> { where("startdate <= ?", Time.zone.today + 2.weeks).or(where(startdate: nil)) } scope :active_in_2_weeks, -> { where(confirmed: true).and(started_in_2_weeks) } scope :confirmed, -> { where(confirmed: true) } scope :unconfirmed, -> { where.not(confirmed: true) } @@ -122,7 +122,9 @@ class Location < ApplicationRecord end def available_from - startdate || FormHandler.instance.earliest_open_collection_start_date(now: created_at) + return startdate if startdate.present? + + FormHandler.instance.earliest_open_collection_start_date(now: created_at) end def open_deactivation diff --git a/app/models/scheme.rb b/app/models/scheme.rb index a8a17ebdb..9d760998d 100644 --- a/app/models/scheme.rb +++ b/app/models/scheme.rb @@ -243,7 +243,7 @@ class Scheme < ApplicationRecord end def validate_confirmed - required_attributes = attribute_names - %w[id created_at updated_at old_id old_visible_id confirmed end_date sensitive secondary_client_group total_units deactivation_date deactivation_date_type startdate] + required_attributes = attribute_names - %w[id created_at updated_at old_id old_visible_id confirmed end_date sensitive secondary_client_group total_units deactivation_date deactivation_date_type] if confirmed == true required_attributes.any? do |attribute| @@ -262,7 +262,7 @@ class Scheme < ApplicationRecord end def available_from - startdate || FormHandler.instance.earliest_open_collection_start_date(now: created_at) + FormHandler.instance.earliest_open_collection_start_date(now: created_at) end def open_deactivation @@ -282,7 +282,6 @@ class Scheme < ApplicationRecord return :deactivated if open_deactivation&.deactivation_date.present? && date >= open_deactivation.deactivation_date return :deactivating_soon if open_deactivation&.deactivation_date.present? && date < open_deactivation.deactivation_date return :reactivating_soon if last_deactivation_before(date)&.reactivation_date.present? && date < last_deactivation_before(date).reactivation_date - return :activating_soon if startdate.present? && date < startdate :active end diff --git a/app/services/merge/merge_organisations_service.rb b/app/services/merge/merge_organisations_service.rb index a6a148b21..1599db5fa 100644 --- a/app/services/merge/merge_organisations_service.rb +++ b/app/services/merge/merge_organisations_service.rb @@ -69,9 +69,9 @@ private merging_organisation.owned_schemes.each do |scheme| next if scheme.deactivated? - new_scheme = Scheme.create!(scheme.attributes.except("id", "owning_organisation_id", "old_id", "old_visible_id").merge(owning_organisation: @absorbing_organisation, startdate: @merge_date)) + new_scheme = Scheme.create!(scheme.attributes.except("id", "owning_organisation_id", "old_id", "old_visible_id").merge(owning_organisation: @absorbing_organisation)) scheme.locations.each do |location| - new_scheme.locations << Location.new(location.attributes.except("id", "scheme_id", "old_id", "old_visible_id").merge(startdate: [location&.startdate, @merge_date].compact.max)) unless location.deactivated? + new_scheme.locations << Location.new(location.attributes.except("id", "scheme_id", "old_id", "old_visible_id")) unless location.deactivated? end @merged_schemes[merging_organisation.name] << { name: new_scheme.service_name, code: new_scheme.id } SchemeDeactivationPeriod.create!(scheme:, deactivation_date: @merge_date) diff --git a/spec/helpers/locations_helper_spec.rb b/spec/helpers/locations_helper_spec.rb index fec1ce53b..da4b17322 100644 --- a/spec/helpers/locations_helper_spec.rb +++ b/spec/helpers/locations_helper_spec.rb @@ -214,15 +214,6 @@ RSpec.describe LocationsHelper do expect(availability_attribute).to eq("Active from 1 April 2022") end - - context "when location was merged" do - it "displays merge date as availability date" do - location.update!(startdate: Time.zone.local(2022, 4, 16)) - availability_attribute = display_location_attributes(location).find { |x| x[:name] == "Availability" }[:value] - - expect(availability_attribute).to eq("Active from 16 April 2022") - end - end end context "with previous deactivations" do diff --git a/spec/helpers/schemes_helper_spec.rb b/spec/helpers/schemes_helper_spec.rb index ff3030932..6aaa10260 100644 --- a/spec/helpers/schemes_helper_spec.rb +++ b/spec/helpers/schemes_helper_spec.rb @@ -303,17 +303,6 @@ RSpec.describe SchemesHelper do expect(display_scheme_attributes(scheme)).to eq(attributes) end end - - context "when scheme was merged from another organisation" do - before do - FactoryBot.create(:location, scheme:) - scheme.startdate = Time.zone.local(2023, 1, 5) - end - - it "returns correct availability" do - expect(display_scheme_attributes(scheme)).to include({ name: "Availability", value: "Active from 5 January 2023" }) - end - end end describe "edit_scheme_text" do diff --git a/spec/services/merge/merge_organisations_service_spec.rb b/spec/services/merge/merge_organisations_service_spec.rb index 1c82318e5..b6168d57a 100644 --- a/spec/services/merge/merge_organisations_service_spec.rb +++ b/spec/services/merge/merge_organisations_service_spec.rb @@ -305,9 +305,6 @@ RSpec.describe Merge::MergeOrganisationsService do context "and merging organisation schemes and locations" do let!(:scheme) { create(:scheme, owning_organisation: merging_organisation) } let!(:location) { create(:location, scheme:) } - let!(:location_without_startdate) { create(:location, scheme:, startdate: nil) } - let!(:location_with_past_startdate) { create(:location, scheme:, startdate: Time.zone.today - 2.months) } - let!(:location_with_future_startdate) { create(:location, scheme:, startdate: Time.zone.today + 2.months) } let!(:deactivated_location) { create(:location, scheme:) } let!(:deactivated_scheme) { create(:scheme, owning_organisation: merging_organisation) } let!(:owned_lettings_log) { create(:lettings_log, :sh, scheme:, location:, startdate: Time.zone.tomorrow, owning_organisation: merging_organisation) } @@ -332,12 +329,8 @@ RSpec.describe Merge::MergeOrganisationsService do absorbing_organisation.reload expect(absorbing_organisation.owned_schemes.count).to eq(1) expect(absorbing_organisation.owned_schemes.first.service_name).to eq(scheme.service_name) - expect(absorbing_organisation.owned_schemes.first.startdate).to eq(Time.zone.yesterday) - expect(absorbing_organisation.owned_schemes.first.locations.count).to eq(4) - expect(absorbing_organisation.owned_schemes.first.locations.map(&:postcode)).to match_array([location, location_without_startdate, location_with_past_startdate, location_with_future_startdate].map(&:postcode)) - expect(absorbing_organisation.owned_schemes.first.locations.find_by(postcode: location_without_startdate.postcode).startdate).to eq(Time.zone.yesterday) - expect(absorbing_organisation.owned_schemes.first.locations.find_by(postcode: location_with_past_startdate.postcode).startdate).to eq(Time.zone.yesterday) - expect(absorbing_organisation.owned_schemes.first.locations.find_by(postcode: location_with_future_startdate.postcode).startdate).to eq(Time.zone.today + 2.months) + expect(absorbing_organisation.owned_schemes.first.locations.count).to eq(1) + expect(absorbing_organisation.owned_schemes.first.locations.first.postcode).to eq(location.postcode) expect(scheme.scheme_deactivation_periods.count).to eq(1) expect(scheme.scheme_deactivation_periods.first.deactivation_date.to_date).to eq(Time.zone.yesterday) end