Browse Source

Prioritise addresses over UPRN

pull/1866/head
Kat 3 years ago
parent
commit
b756900cf6
  1. 10
      app/services/imports/lettings_logs_import_service.rb
  2. 19
      spec/services/imports/lettings_logs_import_service_spec.rb

10
app/services/imports/lettings_logs_import_service.rb

@ -200,13 +200,13 @@ module Imports
attributes["first_time_property_let_as_social_housing"] = first_time_let(attributes["rsnvac"]) attributes["first_time_property_let_as_social_housing"] = first_time_let(attributes["rsnvac"])
attributes["declaration"] = declaration(xml_doc) attributes["declaration"] = declaration(xml_doc)
attributes["uprn"] = string_or_nil(xml_doc, "UPRN")
attributes["uprn_known"] = attributes["uprn"].present? ? 1 : 0
attributes["uprn_confirmed"] = attributes["uprn"].present? ? 1 : 0
attributes["address_line1"] = string_or_nil(xml_doc, "AddressLine1") attributes["address_line1"] = string_or_nil(xml_doc, "AddressLine1")
attributes["address_line2"] = string_or_nil(xml_doc, "AddressLine2") attributes["address_line2"] = string_or_nil(xml_doc, "AddressLine2")
attributes["town_or_city"] = string_or_nil(xml_doc, "TownCity") attributes["town_or_city"] = string_or_nil(xml_doc, "TownCity")
attributes["county"] = string_or_nil(xml_doc, "County") attributes["county"] = string_or_nil(xml_doc, "County")
attributes["uprn"] = address_given?(attributes) ? nil : string_or_nil(xml_doc, "UPRN")
attributes["uprn_known"] = attributes["uprn"].present? ? 1 : 0
attributes["uprn_confirmed"] = attributes["uprn"].present? ? 1 : 0
set_partial_charges_to_zero(attributes) set_partial_charges_to_zero(attributes)
@ -650,5 +650,9 @@ module Imports
OrganisationRelationship.find_or_create_by!(parent_organisation_id:, child_organisation_id:) OrganisationRelationship.find_or_create_by!(parent_organisation_id:, child_organisation_id:)
end end
def address_given?(attributes)
attributes["address_line1"].present? && attributes["town_or_city"].present?
end
end end
end end

19
spec/services/imports/lettings_logs_import_service_spec.rb

@ -1531,7 +1531,24 @@ RSpec.describe Imports::LettingsLogsImportService do
expect(lettings_log&.postcode_full).to eq("A1 1AA") expect(lettings_log&.postcode_full).to eq("A1 1AA")
end end
it "correctly sets address and uprn if uprn is given" do it "prioritises address and doesn't set UPRN if both address and UPRN is given" do
lettings_log_service.send(:create_log, lettings_log_xml)
lettings_log = LettingsLog.find_by(old_id: lettings_log_id)
expect(lettings_log&.uprn_known).to eq(0) # no
expect(lettings_log&.uprn).to be_nil
expect(lettings_log&.address_line1).to eq("address 1")
expect(lettings_log&.address_line2).to eq("address 2")
expect(lettings_log&.town_or_city).to eq("towncity")
expect(lettings_log&.county).to eq("county")
expect(lettings_log&.postcode_full).to eq("A1 1AA")
end
it "correctly sets address and uprn if uprn is given and address isn't given" do
lettings_log_xml.at_xpath("//xmlns:AddressLine1").content = ""
lettings_log_xml.at_xpath("//xmlns:AddressLine2").content = ""
lettings_log_xml.at_xpath("//xmlns:TownCity").content = ""
lettings_log_xml.at_xpath("//xmlns:County").content = ""
lettings_log_service.send(:create_log, lettings_log_xml) lettings_log_service.send(:create_log, lettings_log_xml)
lettings_log = LettingsLog.find_by(old_id: lettings_log_id) lettings_log = LettingsLog.find_by(old_id: lettings_log_id)

Loading…
Cancel
Save