Browse Source

Make sure we don't repeat people details

pull/1903/head
Kat 3 years ago
parent
commit
0a1c0de209
  1. 7
      app/services/imports/lettings_logs_import_service.rb
  2. 12
      spec/services/imports/lettings_logs_import_service_spec.rb

7
app/services/imports/lettings_logs_import_service.rb

@ -76,15 +76,18 @@ module Imports
attributes["irproduct_other"] = string_or_nil(xml_doc, "IRProductOther") attributes["irproduct_other"] = string_or_nil(xml_doc, "IRProductOther")
attributes["rent_type"] = rent_type(xml_doc, attributes["lar"], attributes["irproduct"]) attributes["rent_type"] = rent_type(xml_doc, attributes["lar"], attributes["irproduct"])
attributes["hhmemb"] = household_members(xml_doc, previous_status) attributes["hhmemb"] = household_members(xml_doc, previous_status)
people_indexes = people_with_details_ids(xml_doc)
available_people_indexes = people_indexes + (people_indexes.max + 1..8).to_a
(1..8).each do |index| (1..8).each do |index|
person_index = people_with_details_ids(xml_doc)[index - 1] || index person_index = available_people_indexes[index - 1]
attributes["age#{index}"] = safe_string_as_integer(xml_doc, "P#{person_index}Age") attributes["age#{index}"] = safe_string_as_integer(xml_doc, "P#{person_index}Age")
attributes["age#{index}_known"] = age_known(xml_doc, index, person_index, attributes["hhmemb"]) attributes["age#{index}_known"] = age_known(xml_doc, index, person_index, attributes["hhmemb"])
attributes["sex#{index}"] = sex(xml_doc, person_index) attributes["sex#{index}"] = sex(xml_doc, person_index)
attributes["ecstat#{index}"] = unsafe_string_as_integer(xml_doc, "P#{person_index}Eco") attributes["ecstat#{index}"] = unsafe_string_as_integer(xml_doc, "P#{person_index}Eco")
end end
(2..8).each do |index| (2..8).each do |index|
person_index = people_with_details_ids(xml_doc)[index - 1] || index person_index = available_people_indexes[index - 1]
attributes["relat#{index}"] = relat(xml_doc, person_index) attributes["relat#{index}"] = relat(xml_doc, person_index)
attributes["details_known_#{index}"] = details_known(index, attributes) attributes["details_known_#{index}"] = details_known(index, attributes)

12
spec/services/imports/lettings_logs_import_service_spec.rb

@ -1286,7 +1286,7 @@ RSpec.describe Imports::LettingsLogsImportService do
context "and there are several household members" do context "and there are several household members" do
context "and one person details are skipped" do context "and one person details are skipped" do
before do before do
lettings_log_xml.at_xpath("//xmlns:HHMEMB").content = 2 lettings_log_xml.at_xpath("//xmlns:HHMEMB").content = 3
lettings_log_xml.at_xpath("//xmlns:P2AR").content = nil lettings_log_xml.at_xpath("//xmlns:P2AR").content = nil
lettings_log_xml.at_xpath("//xmlns:P2Age").content = nil lettings_log_xml.at_xpath("//xmlns:P2Age").content = nil
lettings_log_xml.at_xpath("//xmlns:P2Sex").content = nil lettings_log_xml.at_xpath("//xmlns:P2Sex").content = nil
@ -1302,14 +1302,20 @@ RSpec.describe Imports::LettingsLogsImportService do
lettings_log_service.send(:create_log, lettings_log_xml) lettings_log_service.send(:create_log, lettings_log_xml)
lettings_log = LettingsLog.where(old_id: lettings_log_id).first lettings_log = LettingsLog.where(old_id: lettings_log_id).first
expect(lettings_log&.hhmemb).to eq(2) expect(lettings_log&.hhmemb).to eq(3)
expect(lettings_log&.details_known_2).to eq(0) expect(lettings_log&.details_known_2).to eq(0)
expect(lettings_log&.age2_known).to eq(0) expect(lettings_log&.age2_known).to eq(0)
expect(lettings_log&.age2).to eq(7) expect(lettings_log&.age2).to eq(7)
expect(lettings_log&.sex2).to eq("M") expect(lettings_log&.sex2).to eq("M")
expect(lettings_log&.relat2).to eq("C") expect(lettings_log&.relat2).to eq("C")
[3, 4, 5].each do |i| expect(lettings_log&.details_known_3).to eq(0)
expect(lettings_log&.age3_known).to eq(0)
expect(lettings_log&.age3).to eq(nil)
expect(lettings_log&.sex3).to eq(nil)
expect(lettings_log&.relat3).to eq(nil)
[4, 5].each do |i|
expect(lettings_log&.send("details_known_#{i}")).to eq(nil) expect(lettings_log&.send("details_known_#{i}")).to eq(nil)
expect(lettings_log&.send("age#{i}_known")).to eq(nil) expect(lettings_log&.send("age#{i}_known")).to eq(nil)
expect(lettings_log&.send("age#{i}")).to eq(nil) expect(lettings_log&.send("age#{i}")).to eq(nil)

Loading…
Cancel
Save