diff --git a/app/models/log.rb b/app/models/log.rb index 366761e26..c0bf979df 100644 --- a/app/models/log.rb +++ b/app/models/log.rb @@ -41,7 +41,7 @@ class Log < ApplicationRecord } scope :created_by, ->(user) { where(created_by: user) } - attr_accessor :skip_update_status + attr_accessor :skip_update_status, :skip_update_uprn_confirmed def process_uprn_change! if uprn.present? @@ -53,7 +53,7 @@ class Log < ApplicationRecord presenter = UprnDataPresenter.new(service.result) self.uprn_known = 1 - self.uprn_confirmed = nil + self.uprn_confirmed = nil unless skip_update_uprn_confirmed self.address_line1 = presenter.address_line1 self.address_line2 = presenter.address_line2 self.town_or_city = presenter.town_or_city diff --git a/app/services/bulk_upload/lettings/year2023/row_parser.rb b/app/services/bulk_upload/lettings/year2023/row_parser.rb index dad4c92a1..632a0e914 100644 --- a/app/services/bulk_upload/lettings/year2023/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/row_parser.rb @@ -1153,6 +1153,8 @@ private attributes["first_time_property_let_as_social_housing"] = first_time_property_let_as_social_housing attributes["uprn_known"] = field_18.present? ? 1 : 0 + attributes["uprn_confirmed"] = 1 if field_18.present? + attributes["skip_update_uprn_confirmed"] = true attributes["uprn"] = field_18 attributes["address_line1"] = field_19 attributes["address_line2"] = field_20 diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index 227ef8096..6638432cf 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -795,7 +795,8 @@ private attributes["mortlen"] = mortlen - attributes["proplen"] = proplen + attributes["proplen"] = proplen if proplen&.positive? + attributes["proplen_asked"] = attributes["proplen"]&.present? ? 0 : 1 attributes["jointmore"] = field_15 attributes["staircase"] = field_87 attributes["privacynotice"] = field_29 @@ -812,6 +813,9 @@ private attributes["mortgageused"] = mortgageused attributes["uprn"] = field_19 + attributes["uprn_known"] = field_19.present? ? 1 : 0 + attributes["uprn_confirmed"] = 1 if field_19.present? + attributes["skip_update_uprn_confirmed"] = true attributes["address_line1"] = field_20 attributes["address_line2"] = field_21 attributes["town_or_city"] = field_22 diff --git a/spec/requests/lettings_logs_controller_spec.rb b/spec/requests/lettings_logs_controller_spec.rb index 7f1dda118..e0c785b71 100644 --- a/spec/requests/lettings_logs_controller_spec.rb +++ b/spec/requests/lettings_logs_controller_spec.rb @@ -1138,14 +1138,14 @@ RSpec.describe LettingsLogsController, type: :request do it "only displays affected logs" do get "/lettings-logs/update-logs", headers:, params: {} expect(page).to have_content("You need to update 3 logs") - expect(page).to have_content(affected_lettings_logs.first.id) - expect(page).not_to have_content(non_affected_lettings_logs.first.id) + expect(page).to have_link("Update now", href: "/lettings-logs/#{affected_lettings_logs.first.id}/tenancy-start-date") + expect(page).not_to have_link("Update now", href: "/lettings-logs/#{non_affected_lettings_logs.first.id}/tenancy-start-date") end it "only displays the logs created by the user" do get "/lettings-logs/update-logs", headers:, params: {} - expect(page).to have_content(affected_lettings_logs.second.id) - expect(page).not_to have_content(other_user_affected_lettings_log.id) + expect(page).to have_link("Update now", href: "/lettings-logs/#{affected_lettings_logs.second.id}/tenancy-start-date") + expect(page).not_to have_link("Update now", href: "/lettings-logs/#{other_user_affected_lettings_log.id}/tenancy-start-date") expect(page).to have_content("You need to update 3 logs") end diff --git a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb index d881b972b..4cd9e40bc 100644 --- a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb @@ -1077,6 +1077,7 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do it "sets to 1" do expect(parser.log.uprn_known).to be(1) + expect(parser.log.uprn_confirmed).to be(1) end end diff --git a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb index f6e9632c6..c7ef89374 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -542,6 +542,12 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do it "is valid" do expect(parser.errors[:field_19]).to be_blank end + + it "sets UPRN and UPRN known" do + expect(parser.log.uprn).to eq("100023336956") + expect(parser.log.uprn_known).to eq(1) + expect(parser.log.uprn_confirmed).to eq(1) + end end context "when UPRN not known but address known" do @@ -673,6 +679,24 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do end end + describe "#uprn_known" do + context "when uprn known" do + let(:attributes) { setup_section_params.merge({ field_19: "100023336956" }) } + + it "is correctly set" do + expect(parser.log.uprn_known).to be(1) + end + end + + context "when uprn not known" do + let(:attributes) { setup_section_params.merge({ field_19: nil }) } + + it "is correctly set" do + expect(parser.log.uprn_known).to be(0) + end + end + end + describe "#address_line1" do let(:attributes) { setup_section_params.merge({ field_20: "some street" }) } @@ -776,5 +800,41 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do expect(parser.log.soctenant).to be(1) end end + + describe "with living before purchase years for shared ownership more than 0" do + let(:attributes) { setup_section_params.merge({ field_7: "1", field_86: "1" }) } + + it "is sets living before purchase asked to yes and sets the correct living before purchase years" do + expect(parser.log.proplen_asked).to be(0) + expect(parser.log.proplen).to be(1) + end + end + + describe "with living before purchase years for discounted ownership more than 0" do + let(:attributes) { setup_section_params.merge({ field_7: "2", field_115: "1" }) } + + it "is sets living before purchase asked to yes and sets the correct living before purchase years" do + expect(parser.log.proplen_asked).to be(0) + expect(parser.log.proplen).to be(1) + end + end + + describe "with living before purchase years for shared ownership set to 0" do + let(:attributes) { setup_section_params.merge({ field_7: "1", field_86: "0" }) } + + it "is sets living before purchase asked to no" do + expect(parser.log.proplen_asked).to be(1) + expect(parser.log.proplen).to be_nil + end + end + + describe "with living before purchase 0 years for discounted ownership set to 0" do + let(:attributes) { setup_section_params.merge({ field_7: "2", field_115: "0" }) } + + it "is sets living before purchase asked to no" do + expect(parser.log.proplen_asked).to be(1) + expect(parser.log.proplen).to be_nil + end + end end end