Browse Source

Prioritise addresses over UPRN - sales

pull/1866/head
Kat 3 years ago
parent
commit
df98f8e5c0
  1. 10
      app/services/imports/sales_logs_import_service.rb
  2. 19
      spec/services/imports/sales_logs_import_service_spec.rb

10
app/services/imports/sales_logs_import_service.rb

@ -153,13 +153,13 @@ module Imports
attributes["percentage_discount_value_check"] = 0 attributes["percentage_discount_value_check"] = 0
# 2023/34 attributes # 2023/34 attributes
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
attributes["proplen_asked"] = 0 if attributes["proplen"]&.positive? attributes["proplen_asked"] = 0 if attributes["proplen"]&.positive?
attributes["proplen_asked"] = 1 if attributes["proplen"]&.zero? attributes["proplen_asked"] = 1 if attributes["proplen"]&.zero?
@ -606,5 +606,9 @@ module Imports
applicable_questions = sales_log.form.subsections.map { |s| s.applicable_questions(sales_log).select { |q| q.enabled?(sales_log) } }.flatten applicable_questions = sales_log.form.subsections.map { |s| s.applicable_questions(sales_log).select { |q| q.enabled?(sales_log) } }.flatten
applicable_questions.filter { |q| q.unanswered?(sales_log) }.map(&:id) - sales_log.optional_fields applicable_questions.filter { |q| q.unanswered?(sales_log) }.map(&:id) - sales_log.optional_fields
end end
def address_given?(attributes)
attributes["address_line1"].present? && attributes["town_or_city"].present?
end
end end
end end

19
spec/services/imports/sales_logs_import_service_spec.rb

@ -1684,7 +1684,24 @@ RSpec.describe Imports::SalesLogsImportService do
expect(sales_log&.postcode_full).to eq("A1 1AA") expect(sales_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
sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id)
expect(sales_log&.uprn_known).to eq(0) # no
expect(sales_log&.uprn).to be_nil
expect(sales_log&.address_line1).to eq("address 1")
expect(sales_log&.address_line2).to eq("address 2")
expect(sales_log&.town_or_city).to eq("towncity")
expect(sales_log&.county).to eq("county")
expect(sales_log&.postcode_full).to eq("A1 1AA")
end
it "correctly sets address and uprn if uprn is given and address is not given" do
sales_log_xml.at_xpath("//xmlns:AddressLine1").content = ""
sales_log_xml.at_xpath("//xmlns:AddressLine2").content = ""
sales_log_xml.at_xpath("//xmlns:TownCity").content = ""
sales_log_xml.at_xpath("//xmlns:County").content = ""
sales_log_service.send(:create_log, sales_log_xml) sales_log_service.send(:create_log, sales_log_xml)
sales_log = SalesLog.find_by(old_id: sales_log_id) sales_log = SalesLog.find_by(old_id: sales_log_id)

Loading…
Cancel
Save