From e62ff98e7cd8f7e2182b136f311e4936702cc2cb Mon Sep 17 00:00:00 2001 From: Kat Date: Thu, 23 Feb 2023 12:28:25 +0000 Subject: [PATCH] Infer Mscharge known as no for outright sale --- app/services/imports/sales_logs_import_service.rb | 8 +++++++- spec/services/imports/sales_logs_import_service_spec.rb | 8 ++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/app/services/imports/sales_logs_import_service.rb b/app/services/imports/sales_logs_import_service.rb index 39624be3c..ba979f3dd 100644 --- a/app/services/imports/sales_logs_import_service.rb +++ b/app/services/imports/sales_logs_import_service.rb @@ -104,7 +104,7 @@ module Imports attributes["hhregresstill"] = still_serving(xml_doc) attributes["proplen"] = safe_string_as_integer(xml_doc, "Q16aProplen2") attributes["mscharge"] = monthly_charges(xml_doc, attributes) - attributes["mscharge_known"] = 1 if attributes["mscharge"].present? + attributes["mscharge_known"] = mscharge_known(attributes) attributes["prevten"] = unsafe_string_as_integer(xml_doc, "Q6PrevTenure") attributes["mortgageused"] = unsafe_string_as_integer(xml_doc, "MORTGAGEUSED") attributes["wchair"] = unsafe_string_as_integer(xml_doc, "Q15Wheelchair") @@ -394,5 +394,11 @@ module Imports safe_string_as_decimal(xml_doc, "Q37MonthlyCharges") end end + + def mscharge_known(attributes) + return 1 if attributes["mscharge"].present? + + 0 if attributes["ownershipsch"] == 3 + end end end diff --git a/spec/services/imports/sales_logs_import_service_spec.rb b/spec/services/imports/sales_logs_import_service_spec.rb index 817d252e3..b55b7f940 100644 --- a/spec/services/imports/sales_logs_import_service_spec.rb +++ b/spec/services/imports/sales_logs_import_service_spec.rb @@ -188,6 +188,14 @@ RSpec.describe Imports::SalesLogsImportService do applicable_questions = sales_log.form.subsections.map { |s| s.applicable_questions(sales_log) }.flatten expect(applicable_questions.filter { |q| q.unanswered?(sales_log) }.map(&:id)).to be_empty end + + it "infers mscharge_known as no, if it is not given" do + allow(logger).to receive(:warn).and_return(nil) + sales_log_service.send(:create_log, sales_log_xml) + + sales_log = SalesLog.find_by(old_id: sales_log_id) + expect(sales_log.mscharge_known).to eq(0) + end end end end