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" }