diff --git a/app/controllers/address_search_controller.rb b/app/controllers/address_search_controller.rb index 09fbddd1f..a50434ea1 100644 --- a/app/controllers/address_search_controller.rb +++ b/app/controllers/address_search_controller.rb @@ -53,17 +53,13 @@ class AddressSearchController < ApplicationController def manual_input log = params[:log_type] == "lettings_log" ? LettingsLog.find(params[:log_id]) : SalesLog.find(params[:log_id]) - log.update!(uprn: nil, uprn_known: 0, uprn_confirmed: nil, address_search: nil) + log.update!(address_search_input: false) redirect_to manual_address_link(log) end def search_input log = params[:log_type] == "lettings_log" ? LettingsLog.find(params[:log_id]) : SalesLog.find(params[:log_id]) - if log.log_type == "lettings_log" - log.update!(uprn: nil, uprn_known: 0, uprn_confirmed: nil, address_search: nil, address_line1: nil, address_line2: nil, town_or_city: nil, county: nil, postcode_full: nil, is_la_inferred: false) - else - log.update!(uprn: nil, uprn_known: 0, uprn_confirmed: nil, address_search: nil, address_line1: nil, address_line2: nil, town_or_city: nil, county: nil, postcode_full: nil, is_la_inferred: false, pcode1: nil, pcode2: nil) - end + log.update!(address_search_input: true) redirect_to search_address_link(log) end diff --git a/app/models/derived_variables/lettings_log_variables.rb b/app/models/derived_variables/lettings_log_variables.rb index 817019d9e..1c3487536 100644 --- a/app/models/derived_variables/lettings_log_variables.rb +++ b/app/models/derived_variables/lettings_log_variables.rb @@ -114,21 +114,15 @@ module DerivedVariables::LettingsLogVariables self.previous_la_known = nil if is_renewal? end - if address_search + if address_search_input self.uprn = address_search - if uprn_known_was == 1 - self.address_line1 = nil - self.address_line2 = nil - self.town_or_city = nil - self.county = nil - self.postcode_known = nil - self.postcode_full = nil - self.la = nil - self.address_line1_input = nil - self.postcode_full_input = nil - end self.uprn_known = 1 self.uprn_confirmed = 1 + else + self.uprn = nil + self.uprn_known = 0 + self.uprn_confirmed = 0 + reset_address_fields! if address_search_input_was == true end if is_renewal? diff --git a/app/models/derived_variables/sales_log_variables.rb b/app/models/derived_variables/sales_log_variables.rb index 9bbc28841..2ed1484fc 100644 --- a/app/models/derived_variables/sales_log_variables.rb +++ b/app/models/derived_variables/sales_log_variables.rb @@ -54,48 +54,25 @@ module DerivedVariables::SalesLogVariables if uprn_known&.zero? self.uprn = nil if uprn_known_was == 1 - self.address_line1 = nil - self.address_line2 = nil - self.town_or_city = nil - self.county = nil - self.pcodenk = nil - self.postcode_full = nil - self.la = nil - self.address_line1_input = nil - self.postcode_full_input = nil + reset_address_fields! end end if uprn_known == 1 && uprn_confirmed&.zero? - self.uprn = nil - self.uprn_known = 0 - self.uprn_confirmed = nil - self.address_line1 = nil - self.address_line2 = nil - self.town_or_city = nil - self.county = nil - self.pcodenk = nil - self.postcode_full = nil - self.la = nil - self.address_line1_input = nil - self.postcode_full_input = nil + reset_address_fields! end - if address_search + self.address_search_input = true if address_search_input.nil? + + if address_search_input self.uprn = address_search - if uprn_known_was == 1 - self.address_line1 = nil - self.address_line2 = nil - self.town_or_city = nil - self.county = nil - self.pcodenk = nil - self.postcode_full = nil - self.la = nil - self.address_line1_input = nil - self.postcode_full_input = nil - end self.uprn_known = 1 self.uprn_confirmed = 1 + else + self.uprn = nil + self.uprn_known = 0 + self.uprn_confirmed = 0 + reset_address_fields! if address_search_input_was == true end if form.start_year_2025_or_later? && is_bedsit? @@ -259,4 +236,22 @@ private def prevten_was_social_housing? [1, 2].include?(prevten) || [1, 2].include?(prevtenbuy2) end + + def reset_address_fields! + # binding.pry + self.uprn = nil + self.uprn_known = nil + self.uprn_confirmed = nil + self.address_line1 = nil + self.address_line2 = nil + self.town_or_city = nil + self.county = nil + self.pcode1 = nil + self.pcode2 = nil + self.pcodenk = nil + self.address_line1_input = nil + self.postcode_full_input = nil + self.postcode_full = nil + self.is_la_inferred = nil + end end diff --git a/app/models/form/lettings/pages/address_fallback.rb b/app/models/form/lettings/pages/address_fallback.rb index 763f9d3da..13f680dfd 100644 --- a/app/models/form/lettings/pages/address_fallback.rb +++ b/app/models/form/lettings/pages/address_fallback.rb @@ -3,14 +3,7 @@ class Form::Lettings::Pages::AddressFallback < ::Form::Page super @id = "address" @copy_key = "lettings.property_information.address" - @depends_on = [ - { "is_supported_housing?" => false, "uprn_known" => nil, "uprn_selection" => "uprn_not_listed" }, - { "is_supported_housing?" => false, "uprn_known" => 0, "uprn_selection" => "uprn_not_listed" }, - { "is_supported_housing?" => false, "uprn_confirmed" => 0, "uprn_selection" => "uprn_not_listed" }, - { "is_supported_housing?" => false, "uprn_known" => nil, "address_options_present?" => false }, - { "is_supported_housing?" => false, "uprn_known" => 0, "address_options_present?" => false }, - { "is_supported_housing?" => false, "uprn_confirmed" => 0, "address_options_present?" => false }, - ] + @depends_on = [{ "is_supported_housing?" => false, "address_search_input" => false }] @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/lettings/pages/address_search.rb b/app/models/form/lettings/pages/address_search.rb index a63f5ca9b..e4c701616 100644 --- a/app/models/form/lettings/pages/address_search.rb +++ b/app/models/form/lettings/pages/address_search.rb @@ -2,9 +2,7 @@ class Form::Lettings::Pages::AddressSearch < ::Form::Page def initialize(id, hsh, subsection) super @id = "address_search" - @depends_on = [ - { "address_manually_entered?" => false }, - ] + @depends_on = [{ "is_supported_housing?" => false, "address_search_input" => true }] end def questions diff --git a/app/models/form/sales/pages/address_fallback.rb b/app/models/form/sales/pages/address_fallback.rb index b6818ae0c..9542f5007 100644 --- a/app/models/form/sales/pages/address_fallback.rb +++ b/app/models/form/sales/pages/address_fallback.rb @@ -3,14 +3,7 @@ class Form::Sales::Pages::AddressFallback < ::Form::Page super @id = "address" @copy_key = "sales.property_information.address" - @depends_on = [ - { "uprn_known" => nil, "uprn_selection" => "uprn_not_listed" }, - { "uprn_known" => 0, "uprn_selection" => "uprn_not_listed" }, - { "uprn_confirmed" => 0, "uprn_selection" => "uprn_not_listed" }, - { "uprn_known" => nil, "address_options_present?" => false }, - { "uprn_known" => 0, "address_options_present?" => false }, - { "uprn_confirmed" => 0, "address_options_present?" => false }, - ] + @depends_on = [{ "address_search_input" => false }] @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] end diff --git a/app/models/form/sales/pages/address_search.rb b/app/models/form/sales/pages/address_search.rb index a893d5687..7588ad126 100644 --- a/app/models/form/sales/pages/address_search.rb +++ b/app/models/form/sales/pages/address_search.rb @@ -2,9 +2,7 @@ class Form::Sales::Pages::AddressSearch < ::Form::Page def initialize(id, hsh, subsection) super @id = "address_search" - @depends_on = [ - { "address_manually_entered?" => false }, - ] + @depends_on = [{ "address_search_input" => true }] end def questions diff --git a/app/models/log.rb b/app/models/log.rb index e0c085971..6aad0d953 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -189,10 +189,6 @@ class Log < ApplicationRecord ethnic_group == 17 end - def address_manually_entered? - uprn.nil? && address_search.nil? && address_line1.present? && town_or_city.present? - end - def collection_period_open? return false if older_than_previous_collection_year? diff --git a/db/migrate/20250214133727_add_address_search_input_to_logs.rb b/db/migrate/20250214133727_add_address_search_input_to_logs.rb new file mode 100644 index 000000000..a477962f2 --- /dev/null +++ b/db/migrate/20250214133727_add_address_search_input_to_logs.rb @@ -0,0 +1,6 @@ +class AddAddressSearchInputToLogs < ActiveRecord::Migration[7.2] + def change + add_column :sales_logs, :address_search_input, :boolean, default: true + add_column :lettings_logs, :address_search_input, :boolean, default: true + end +end diff --git a/db/schema.rb b/db/schema.rb index 8a26e4ac2..00dd3bd28 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.2].define(version: 2025_02_03_084427) do +ActiveRecord::Schema[7.2].define(version: 2025_02_14_133727) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -374,6 +374,7 @@ ActiveRecord::Schema[7.2].define(version: 2025_02_03_084427) do t.integer "multiple_partners_value_check" t.bigint "created_by_id" t.string "address_search" + t.boolean "address_search_input", default: true t.index ["assigned_to_id"], name: "index_lettings_logs_on_assigned_to_id" t.index ["bulk_upload_id"], name: "index_lettings_logs_on_bulk_upload_id" t.index ["created_by_id"], name: "index_lettings_logs_on_created_by_id" @@ -771,6 +772,7 @@ ActiveRecord::Schema[7.2].define(version: 2025_02_03_084427) do t.integer "has_management_fee" t.decimal "management_fee", precision: 10, scale: 2 t.string "address_search" + t.boolean "address_search_input", default: true t.index ["assigned_to_id"], name: "index_sales_logs_on_assigned_to_id" t.index ["bulk_upload_id"], name: "index_sales_logs_on_bulk_upload_id" t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id"