diff --git a/app/services/imports/sales_logs_import_service.rb b/app/services/imports/sales_logs_import_service.rb
index f3a8c8fec..76dfbc538 100644
--- a/app/services/imports/sales_logs_import_service.rb
+++ b/app/services/imports/sales_logs_import_service.rb
@@ -97,7 +97,7 @@ module Imports
attributes["pregla"] = 1 if string_or_nil(xml_doc, "PREGLA") == "Yes"
attributes["pregghb"] = 1 if string_or_nil(xml_doc, "PREGHBA") == "Yes"
attributes["pregother"] = 1 if string_or_nil(xml_doc, "PREGOTHER") == "Yes"
- attributes["ppostcode_full"] = compose_postcode(xml_doc, "PPOSTC1", "PPOSTC2")
+ attributes["ppostcode_full"] = parse_postcode(string_or_nil(xml_doc, "Q7Postcode"))
attributes["prevloc"] = string_or_nil(xml_doc, "Q7ONSLACode")
attributes["ppcodenk"] = previous_postcode_known(xml_doc, attributes["ppostcode_full"], attributes["prevloc"]) # Q7UNKNOWNPOSTCODE check mapping
attributes["ppostc1"] = string_or_nil(xml_doc, "PPOSTC1")
@@ -124,7 +124,7 @@ module Imports
attributes["mortgagelenderother"] = mortgage_lender_other(xml_doc, attributes)
attributes["pcode1"] = string_or_nil(xml_doc, "PCODE1")
attributes["pcode2"] = string_or_nil(xml_doc, "PCODE2")
- attributes["postcode_full"] = compose_postcode(xml_doc, "PCODE1", "PCODE2")
+ attributes["postcode_full"] = parse_postcode(string_or_nil(xml_doc, "Q14Postcode"))
attributes["pcodenk"] = 0 if attributes["postcode_full"].present? # known if given
attributes["soctenant"] = soctenant(attributes)
attributes["ethnic_group2"] = nil # 23/24 variable
@@ -442,6 +442,12 @@ module Imports
end
end
+ def parse_postcode(postcode)
+ return if postcode.blank?
+
+ UKPostcode.parse(postcode).to_s
+ end
+
def set_default_values(attributes)
attributes["armedforcesspouse"] ||= 7
attributes["hhregres"] ||= 8
diff --git a/spec/fixtures/imports/sales_logs/discounted_ownership_sales_log.xml b/spec/fixtures/imports/sales_logs/discounted_ownership_sales_log.xml
index b697c4960..6be983074 100644
--- a/spec/fixtures/imports/sales_logs/discounted_ownership_sales_log.xml
+++ b/spec/fixtures/imports/sales_logs/discounted_ownership_sales_log.xml
@@ -33,7 +33,7 @@
3
3 House
1 Purpose built
- SW1A 1AA
+ GL519EX
@@ -208,7 +208,7 @@
3 Private tenant
- GL51 9EX
+ GL519EX
Cheltenham
E07000078
diff --git a/spec/services/imports/sales_logs_import_service_spec.rb b/spec/services/imports/sales_logs_import_service_spec.rb
index ed306b6ab..d86193839 100644
--- a/spec/services/imports/sales_logs_import_service_spec.rb
+++ b/spec/services/imports/sales_logs_import_service_spec.rb
@@ -764,8 +764,7 @@ RSpec.describe Imports::SalesLogsImportService do
it "correctly sets LA if postcode is not given" do
sales_log_xml.at_xpath("//xmlns:Q14ONSLACode").content = "E07000142"
- sales_log_xml.at_xpath("//xmlns:PCODE1").content = ""
- sales_log_xml.at_xpath("//xmlns:PCODE2").content = ""
+ sales_log_xml.at_xpath("//xmlns:Q14Postcode").content = ""
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
@@ -778,8 +777,7 @@ RSpec.describe Imports::SalesLogsImportService do
it "correctly sets previous LA if postcode is not given" do
sales_log_xml.at_xpath("//xmlns:Q7ONSLACode").content = "E07000142"
- sales_log_xml.at_xpath("//xmlns:PPOSTC1").content = ""
- sales_log_xml.at_xpath("//xmlns:PPOSTC2").content = ""
+ sales_log_xml.at_xpath("//xmlns:Q7Postcode").content = ""
sales_log_xml.at_xpath("//xmlns:Q7UnknownPostcode").content = ""
sales_log_service.send(:create_log, sales_log_xml)
@@ -790,6 +788,17 @@ RSpec.describe Imports::SalesLogsImportService do
expect(sales_log&.prevloc).to eq("E07000142")
expect(sales_log&.status).to eq("completed")
end
+
+ it "correctly sets posctode if given" do
+ sales_log_xml.at_xpath("//xmlns:Q7Postcode").content = "GL519EX"
+ sales_log_xml.at_xpath("//xmlns:Q7UnknownPostcode").content = ""
+ sales_log_service.send(:create_log, sales_log_xml)
+
+ sales_log = SalesLog.find_by(old_id: sales_log_id)
+ expect(sales_log&.ppcodenk).to eq(0)
+ expect(sales_log&.ppostcode_full).to eq("GL51 9EX")
+ expect(sales_log&.status).to eq("completed")
+ end
end
end
end