diff --git a/app/services/imports/sales_logs_import_service.rb b/app/services/imports/sales_logs_import_service.rb index b3a3cd52b..2fb619619 100644 --- a/app/services/imports/sales_logs_import_service.rb +++ b/app/services/imports/sales_logs_import_service.rb @@ -107,7 +107,8 @@ module Imports attributes["hhregresstill"] = still_serving(xml_doc) attributes["proplen"] = safe_string_as_integer(xml_doc, "Q16aProplen2") || safe_string_as_integer(xml_doc, "Q16aProplensec2") attributes["mscharge"] = monthly_charges(xml_doc, attributes) - attributes["has_mscharge"] = 1 if attributes["mscharge"].present? + attributes["has_mscharge"] = 1 if attributes["mscharge"]&.positive? + attributes["has_mscharge"] = 0 if attributes["mscharge"].present? && attributes["mscharge"] <= 0 attributes["prevten"] = unsafe_string_as_integer(xml_doc, "Q6PrevTenure") attributes["mortlen"] = mortgage_length(xml_doc, attributes) attributes["extrabor"] = borrowing(xml_doc, attributes) diff --git a/spec/services/imports/sales_logs_import_service_spec.rb b/spec/services/imports/sales_logs_import_service_spec.rb index 3ab0c4a97..5862efa23 100644 --- a/spec/services/imports/sales_logs_import_service_spec.rb +++ b/spec/services/imports/sales_logs_import_service_spec.rb @@ -1478,6 +1478,40 @@ RSpec.describe Imports::SalesLogsImportService do expect(sales_log&.jointmore).to eq(3) end end + + context "when mscharge is 0" do + let(:sales_log_id) { "shared_ownership_sales_log" } + + before do + sales_log_xml.at_xpath("//xmlns:Q29MonthlyCharges").content = "0" + allow(logger).to receive(:warn).and_return(nil) + end + + it "sets has_mscharge to no" do + sales_log_service.send(:create_log, sales_log_xml) + + sales_log = SalesLog.find_by(old_id: sales_log_id) + expect(sales_log&.has_mscharge).to be(0) + expect(sales_log&.mscharge).to be(nil) + end + end + + context "when mscharge is more than 0" do + let(:sales_log_id) { "shared_ownership_sales_log" } + + before do + sales_log_xml.at_xpath("//xmlns:Q29MonthlyCharges").content = "100" + allow(logger).to receive(:warn).and_return(nil) + end + + it "sets has_mscharge to yes" do + sales_log_service.send(:create_log, sales_log_xml) + + sales_log = SalesLog.find_by(old_id: sales_log_id) + expect(sales_log&.has_mscharge).to be(1) + expect(sales_log&.mscharge).to eq(100) + end + end end end end