Browse Source

Save manualy entered address for new build properties

CLDC-3845-bu-new-builds-address
Kat 2 weeks ago
parent
commit
9168252ddb
  1. 34
      app/models/log.rb
  2. 6
      app/services/bulk_upload/lettings/year2024/row_parser.rb
  3. 30
      spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb

34
app/models/log.rb

@ -57,7 +57,7 @@ class Log < ApplicationRecord
scope :filter_by_owning_organisation_text_search, ->(param, _user) { where(owning_organisation: Organisation.search_by(param)) }
scope :filter_by_managing_organisation_text_search, ->(param, _user) { where(managing_organisation: Organisation.search_by(param)) }
attr_accessor :skip_update_status, :skip_update_uprn_confirmed, :select_best_address_match, :skip_dpo_validation
attr_accessor :skip_update_status, :skip_update_uprn_confirmed, :select_best_address_match, :skip_dpo_validation, :bu_newbuilds_address_entry
delegate :present?, to: :address_options, prefix: true
@ -102,21 +102,23 @@ class Log < ApplicationRecord
end
end
if uprn_selection == "uprn_not_listed"
self.uprn_known = 0
self.uprn_confirmed = nil
self.uprn = nil
self.address_line1 = address_line1_input
self.address_line2 = nil
self.town_or_city = nil
self.county = nil
self.postcode_full = postcode_full_input if postcode_full_input.match(POSTCODE_REGEXP)
process_postcode_changes!
else
self.uprn = uprn_selection
self.uprn_confirmed = 1
self.skip_update_uprn_confirmed = true
process_uprn_change!
unless bu_newbuilds_address_entry
if uprn_selection == "uprn_not_listed"
self.uprn_known = 0
self.uprn_confirmed = nil
self.uprn = nil
self.address_line1 = address_line1_input
self.address_line2 = nil
self.town_or_city = nil
self.county = nil
self.postcode_full = postcode_full_input if postcode_full_input.match(POSTCODE_REGEXP)
process_postcode_changes!
else
self.uprn = uprn_selection
self.uprn_confirmed = 1
self.skip_update_uprn_confirmed = true
process_uprn_change!
end
end
end
end

6
app/services/bulk_upload/lettings/year2024/row_parser.rb

@ -438,7 +438,7 @@ class BulkUpload::Lettings::Year2024::RowParser
validate :validate_assigned_to_when_support, on: :after_log
validate :validate_all_charges_given, on: :after_log, if: proc { is_carehome.zero? }
validate :validate_address_option_found, on: :after_log, unless: -> { supported_housing? }
validate :validate_address_option_found, on: :after_log, unless: -> { supported_housing? || rsnvac == 15 }
validate :validate_uprn_exists_if_any_key_address_fields_are_blank, on: :after_log, unless: -> { supported_housing? }
validate :validate_address_fields, on: :after_log, unless: -> { supported_housing? }
@ -1340,7 +1340,9 @@ private
attributes["address_line1_input"] = address_line1_input
attributes["postcode_full_input"] = postcode_full
attributes["select_best_address_match"] = true if field_16.blank?
attributes["select_best_address_match"] = true if field_16.blank? && rsnvac != 15
attributes["uprn_selection"] = "uprn_not_listed" if rsnvac == 15
attributes["bu_newbuilds_address_entry"] = true if field_16.blank? && rsnvac == 15
end
attributes

30
spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb

@ -1767,6 +1767,36 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
end
end
end
context "when it is a new build" do
let(:attributes) { setup_section_params.merge({
field_24: "15",
field_17: "Address line 1",
field_18: "Address line 2",
field_19: "Town or city",
field_20: "County",
field_21: "DS1",
field_22: "1AA",
field_23: "E09000008",
}) }
it "sets manual address entry fields" do
stub_request(:get, /api\.postcodes\.io/)
.to_return(status: 200, body: "{\"status\":200,\"result\":{}", headers: {})
parser.valid?
expect(parser.log.select_best_address_match).to be_nil
expect(parser.log.uprn_selection).to eq("uprn_not_listed")
expect(parser.log.uprn_known).to be(0)
expect(parser.log.uprn_confirmed).to be_nil
expect(parser.log.address_line1).to eq("Address line 1")
expect(parser.log.address_line2).to eq("Address line 2")
expect(parser.log.town_or_city).to eq("Town or city")
expect(parser.log.county).to eq("County")
expect(parser.log.postcode_full).to eq("DS1 1AA")
expect(parser.log.la).to eq("E09000008")
end
end
end
context "with a supported housing log" do

Loading…
Cancel
Save