diff --git a/app/services/imports/lettings_logs_import_service.rb b/app/services/imports/lettings_logs_import_service.rb index 5930e60d9..8df04d2e9 100644 --- a/app/services/imports/lettings_logs_import_service.rb +++ b/app/services/imports/lettings_logs_import_service.rb @@ -66,6 +66,7 @@ module Imports attributes["startdate"] = compose_date(xml_doc, "DAY", "MONTH", "YEAR") attributes["owning_organisation_id"] = find_organisation_id(xml_doc, "OWNINGORGID") attributes["managing_organisation_id"] = find_organisation_id(xml_doc, "MANINGORGID") + attributes["creation_method"] = get_creation_method(xml_doc) attributes["joint"] = unsafe_string_as_integer(xml_doc, "joint") attributes["startertenancy"] = unsafe_string_as_integer(xml_doc, "_2a") attributes["tenancy"] = unsafe_string_as_integer(xml_doc, "Q2b") diff --git a/app/services/imports/logs_import_service.rb b/app/services/imports/logs_import_service.rb index e0780aad0..d9d19c62f 100644 --- a/app/services/imports/logs_import_service.rb +++ b/app/services/imports/logs_import_service.rb @@ -25,6 +25,16 @@ module Imports end end + CREATION_METHODS = { + "Bulk Upload" => "bulk upload", + "Manual Entry" => "single log", + }.freeze + + def get_creation_method(xml_doc) + upload_method = meta_field_value(xml_doc, "upload-method") + CREATION_METHODS[upload_method] + end + def find_organisation_id(xml_doc, id_field) old_visible_id = string_or_nil(xml_doc, id_field) organisation = Organisation.find_by(old_visible_id:) diff --git a/app/services/imports/sales_logs_import_service.rb b/app/services/imports/sales_logs_import_service.rb index bc39fcb16..35385deb3 100644 --- a/app/services/imports/sales_logs_import_service.rb +++ b/app/services/imports/sales_logs_import_service.rb @@ -31,6 +31,7 @@ module Imports attributes["owning_organisation_id"] = find_organisation_id(xml_doc, "OWNINGORGID") attributes["type"] = unsafe_string_as_integer(xml_doc, "DerSaleType") attributes["old_id"] = meta_field_value(xml_doc, "document-id") + attributes["creation_method"] = get_creation_method(xml_doc) attributes["created_at"] = Time.zone.parse(meta_field_value(xml_doc, "created-date")) attributes["updated_at"] = Time.zone.parse(meta_field_value(xml_doc, "modified-date")) attributes["purchid"] = string_or_nil(xml_doc, "PurchaserCode") diff --git a/spec/fixtures/imports/sales_logs/shared_ownership_sales_log2.xml b/spec/fixtures/imports/sales_logs/shared_ownership_sales_log2.xml index 6334674a2..678d8a71c 100644 --- a/spec/fixtures/imports/sales_logs/shared_ownership_sales_log2.xml +++ b/spec/fixtures/imports/sales_logs/shared_ownership_sales_log2.xml @@ -9,7 +9,7 @@ 2023-02-22T11:00:06.575832Z submitted-valid 2022 - Manual Entry + Bulk Upload diff --git a/spec/services/imports/lettings_logs_import_service_spec.rb b/spec/services/imports/lettings_logs_import_service_spec.rb index 869bd36fc..34f51d7da 100644 --- a/spec/services/imports/lettings_logs_import_service_spec.rb +++ b/spec/services/imports/lettings_logs_import_service_spec.rb @@ -478,6 +478,28 @@ RSpec.describe Imports::LettingsLogsImportService do end end + context "when the log being imported was manually entered" do + it "sets the creation method correctly" do + lettings_log_service.send(:create_log, lettings_log_xml) + + lettings_log = LettingsLog.find_by(old_id: lettings_log_id) + expect(lettings_log.creation_method).to eq "single log" + end + end + + context "when the log being imported was bulk uploaded" do + before do + lettings_log_xml.at_xpath("//meta:upload-method", { "meta" => "http://data.gov.uk/core/metadata" }).content = "Bulk Upload" + end + + it "sets the creation method correctly" do + lettings_log_service.send(:create_log, lettings_log_xml) + + lettings_log = LettingsLog.find_by(old_id: lettings_log_id) + expect(lettings_log.creation_method).to eq "bulk upload" + end + end + context "and income over the max" do before do lettings_log_xml.at_xpath("//xmlns:Q8Money").content = "25000" diff --git a/spec/services/imports/sales_logs_import_service_spec.rb b/spec/services/imports/sales_logs_import_service_spec.rb index aed2b1124..6413f4f89 100644 --- a/spec/services/imports/sales_logs_import_service_spec.rb +++ b/spec/services/imports/sales_logs_import_service_spec.rb @@ -263,8 +263,6 @@ RSpec.describe Imports::SalesLogsImportService do Singleton.__init__(FormHandler) example.run end - Timecop.return - Singleton.__init__(FormHandler) end before do @@ -1056,6 +1054,28 @@ RSpec.describe Imports::SalesLogsImportService do end end + context "when the log being imported was manually entered" do + let(:sales_log_id) { "shared_ownership_sales_log" } + + it "sets the creation method correctly" do + sales_log_service.send(:create_log, sales_log_xml) + + sales_log = SalesLog.find_by(old_id: sales_log_id) + expect(sales_log.creation_method).to eq "single log" + end + end + + context "when the log being imported was bulk uploaded" do + let(:sales_log_id) { "shared_ownership_sales_log2" } + + it "sets the creation method correctly" do + sales_log_service.send(:create_log, sales_log_xml) + + sales_log = SalesLog.find_by(old_id: sales_log_id) + expect(sales_log.creation_method).to eq "bulk upload" + end + end + context "when inferring age known" do let(:sales_log_id) { "discounted_ownership_sales_log" }