Browse Source

Fix rent_type 2024 BU mapping

pull/2501/head
Kat 2 years ago committed by kosiakkatrina
parent
commit
c503b0d358
  1. 15
      app/services/bulk_upload/lettings/year2024/row_parser.rb
  2. 50
      spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb

15
app/services/bulk_upload/lettings/year2024/row_parser.rb

@ -12,7 +12,7 @@ class BulkUpload::Lettings::Year2024::RowParser
field_8: "What is the tenancy start date?", field_8: "What is the tenancy start date?",
field_9: "What is the tenancy start date?", field_9: "What is the tenancy start date?",
field_10: "What is the tenancy start date?", field_10: "What is the tenancy start date?",
field_11: "Is this a London Affordable Rent letting?", field_11: "What is the rent type?",
field_12: "Which 'Other' type of Intermediate Rent is this letting?", field_12: "Which 'Other' type of Intermediate Rent is this letting?",
field_13: "What is the tenant code?", field_13: "What is the tenant code?",
field_14: "What is the property reference?", field_14: "What is the property reference?",
@ -136,6 +136,15 @@ class BulkUpload::Lettings::Year2024::RowParser
field_130: "What do you expect the outstanding amount to be?", field_130: "What do you expect the outstanding amount to be?",
}.freeze }.freeze
RENT_TYPE_BU_MAPPING = {
1 => 0,
2 => 1,
3 => 2,
4 => 3,
5 => 4,
6 => 5,
}.freeze
attribute :bulk_upload attribute :bulk_upload
attribute :block_log_creation, :boolean, default: -> { false } attribute :block_log_creation, :boolean, default: -> { false }
@ -280,7 +289,7 @@ class BulkUpload::Lettings::Year2024::RowParser
category: :setup, category: :setup,
}, },
inclusion: { inclusion: {
in: (0..5).to_a, in: (1..6).to_a,
message: I18n.t("validations.invalid_option", question: "rent type"), message: I18n.t("validations.invalid_option", question: "rent type"),
unless: -> { field_11.blank? }, unless: -> { field_11.blank? },
category: :setup, category: :setup,
@ -1134,7 +1143,7 @@ private
attributes["assigned_to"] = assigned_to || bulk_upload.user attributes["assigned_to"] = assigned_to || bulk_upload.user
attributes["created_by"] = bulk_upload.user attributes["created_by"] = bulk_upload.user
attributes["needstype"] = field_4 attributes["needstype"] = field_4
attributes["rent_type"] = field_11 attributes["rent_type"] = RENT_TYPE_BU_MAPPING[field_11]
attributes["startdate"] = startdate attributes["startdate"] = startdate
attributes["unittype_gn"] = field_26 attributes["unittype_gn"] = field_26
attributes["builtype"] = field_27 attributes["builtype"] = field_27

50
spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb

@ -24,7 +24,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
field_8: now.day.to_s, field_8: now.day.to_s,
field_9: now.month.to_s, field_9: now.month.to_s,
field_10: now.strftime("%g"), field_10: now.strftime("%g"),
field_11: "0", field_11: "1",
field_15: "1", field_15: "1",
} }
end end
@ -136,7 +136,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
field_22: "2TD", field_22: "2TD",
field_1: owning_org.old_visible_id, field_1: owning_org.old_visible_id,
field_2: managing_org.old_visible_id, field_2: managing_org.old_visible_id,
field_11: "0", field_11: "1",
field_7: "2", field_7: "2",
field_26: "2", field_26: "2",
field_27: "1", field_27: "1",
@ -412,7 +412,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
let(:attributes) do let(:attributes) do
valid_attributes.merge({ field_5: "S#{scheme.id}", valid_attributes.merge({ field_5: "S#{scheme.id}",
field_4: "2", field_4: "2",
field_11: "1", field_11: "2",
field_6: location.old_visible_id, field_6: location.old_visible_id,
field_1: owning_org.old_visible_id, field_1: owning_org.old_visible_id,
field_122: 0, field_122: 0,
@ -461,7 +461,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
let(:attributes) do let(:attributes) do
valid_attributes.merge({ field_5: "S#{scheme.id}", valid_attributes.merge({ field_5: "S#{scheme.id}",
field_4: "2", field_4: "2",
field_11: "1", field_11: "2",
field_6: location.old_visible_id, field_6: location.old_visible_id,
field_1: owning_org.old_visible_id, field_1: owning_org.old_visible_id,
field_122: 0, field_122: 0,
@ -471,7 +471,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
let(:attributes_too) do let(:attributes_too) do
valid_attributes.merge({ field_5: "S#{scheme.id}", valid_attributes.merge({ field_5: "S#{scheme.id}",
field_4: "2", field_4: "2",
field_11: "1", field_11: "2",
field_6: location.old_visible_id, field_6: location.old_visible_id,
field_1: owning_org.old_visible_id, field_1: owning_org.old_visible_id,
field_122: 0, field_122: 0,
@ -554,7 +554,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
let(:attributes) do let(:attributes) do
valid_attributes.merge({ field_5: "S#{scheme.id}", valid_attributes.merge({ field_5: "S#{scheme.id}",
field_4: "2", field_4: "2",
field_11: "1", field_11: "2",
field_6: location.id, field_6: location.id,
field_1: owning_org.old_visible_id, field_1: owning_org.old_visible_id,
field_122: 0, field_122: 0,
@ -603,7 +603,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
let(:attributes) do let(:attributes) do
valid_attributes.merge({ field_5: "S#{scheme.id}", valid_attributes.merge({ field_5: "S#{scheme.id}",
field_4: "2", field_4: "2",
field_11: "1", field_11: "2",
field_6: location.id, field_6: location.id,
field_1: owning_org.old_visible_id, field_1: owning_org.old_visible_id,
field_122: 0, field_122: 0,
@ -613,7 +613,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
let(:attributes_too) do let(:attributes_too) do
valid_attributes.merge({ field_5: "S#{scheme.id}", valid_attributes.merge({ field_5: "S#{scheme.id}",
field_4: "2", field_4: "2",
field_11: "1", field_11: "2",
field_6: location.id, field_6: location.id,
field_1: owning_org.old_visible_id, field_1: owning_org.old_visible_id,
field_122: 0, field_122: 0,
@ -665,7 +665,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
field_123: 1, field_123: 1,
field_29: 1, field_29: 1,
field_4: 1, field_4: 1,
field_11: "1", field_11: "2",
field_23: "E09000008" }) field_23: "E09000008" })
end end
@ -712,7 +712,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
allow(FeatureToggle).to receive(:bulk_upload_duplicate_log_check_enabled?).and_return(true) allow(FeatureToggle).to receive(:bulk_upload_duplicate_log_check_enabled?).and_return(true)
end end
let(:attributes) { valid_attributes.merge(field_11: "0.00") } let(:attributes) { valid_attributes.merge(field_11: "1.00") }
it "returns true" do it "returns true" do
expect(parser).to be_valid expect(parser).to be_valid
@ -724,7 +724,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
allow(FeatureToggle).to receive(:bulk_upload_duplicate_log_check_enabled?).and_return(true) allow(FeatureToggle).to receive(:bulk_upload_duplicate_log_check_enabled?).and_return(true)
end end
let(:attributes) { valid_attributes.merge(field_11: "0.56") } let(:attributes) { valid_attributes.merge(field_11: "1.56") }
it "returns false" do it "returns false" do
expect(parser).not_to be_valid expect(parser).not_to be_valid
@ -872,7 +872,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
describe "#field_5, field_6" do # scheme and location fields describe "#field_5, field_6" do # scheme and location fields
context "when nullable not permitted" do context "when nullable not permitted" do
let(:attributes) { { bulk_upload:, field_4: "2", field_11: "1", field_5: nil, field_6: nil } } let(:attributes) { { bulk_upload:, field_4: "2", field_11: "2", field_5: nil, field_6: nil } }
it "cannot be nulled" do it "cannot be nulled" do
parser.valid? parser.valid?
@ -882,7 +882,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
end end
context "when nullable permitted" do context "when nullable permitted" do
let(:attributes) { { bulk_upload:, field_4: "1", field_11: "0", field_5: nil, field_6: nil } } let(:attributes) { { bulk_upload:, field_4: "1", field_11: "1", field_5: nil, field_6: nil } }
it "can be nulled" do it "can be nulled" do
parser.valid? parser.valid?
@ -900,7 +900,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
end end
context "when matching scheme cannot be found" do context "when matching scheme cannot be found" do
let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "1", field_5: "S123", field_6: location.id } } let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "2", field_5: "S123", field_6: location.id } }
it "returns a setup error" do it "returns a setup error" do
expect(parser.errors.where(:field_5, category: :setup).map(&:message)).to eq(["This scheme code does not belong to the owning organisation or managing organisation"]) expect(parser.errors.where(:field_5, category: :setup).map(&:message)).to eq(["This scheme code does not belong to the owning organisation or managing organisation"])
@ -909,7 +909,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
end end
context "when missing location" do context "when missing location" do
let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "1", field_5: "S#{scheme.id}", field_6: nil } } let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "2", field_5: "S#{scheme.id}", field_6: nil } }
it "returns a setup error" do it "returns a setup error" do
expect(parser.errors[:field_5]).to be_blank expect(parser.errors[:field_5]).to be_blank
@ -919,7 +919,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
end end
context "when matching location cannot be found" do context "when matching location cannot be found" do
let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "1", field_5: "S#{scheme.id}", field_6: "123" } } let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "2", field_5: "S#{scheme.id}", field_6: "123" } }
it "returns a setup error" do it "returns a setup error" do
expect(parser.errors[:field_5]).to be_blank expect(parser.errors[:field_5]).to be_blank
@ -928,7 +928,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
end end
context "when matching location exists" do context "when matching location exists" do
let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "1", field_5: "S#{scheme.id}", field_6: location.id } } let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "2", field_5: "S#{scheme.id}", field_6: location.id } }
it "does not return an error" do it "does not return an error" do
expect(parser.errors[:field_5]).to be_blank expect(parser.errors[:field_5]).to be_blank
@ -948,7 +948,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
context "when location exists but not related" do context "when location exists but not related" do
let(:other_scheme) { create(:scheme, :with_old_visible_id) } let(:other_scheme) { create(:scheme, :with_old_visible_id) }
let(:other_location) { create(:location, :with_old_visible_id, scheme: other_scheme) } let(:other_location) { create(:location, :with_old_visible_id, scheme: other_scheme) }
let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "1", field_5: "S#{scheme.id}", field_6: other_location.id } } let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "2", field_5: "S#{scheme.id}", field_6: other_location.id } }
it "returns a setup error" do it "returns a setup error" do
expect(parser.errors[:field_5]).to be_blank expect(parser.errors[:field_5]).to be_blank
@ -959,7 +959,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
context "when scheme belongs to someone else" do context "when scheme belongs to someone else" do
let(:other_scheme) { create(:scheme, :with_old_visible_id) } let(:other_scheme) { create(:scheme, :with_old_visible_id) }
let(:other_location) { create(:location, :with_old_visible_id, scheme: other_scheme) } let(:other_location) { create(:location, :with_old_visible_id, scheme: other_scheme) }
let(:attributes) { { bulk_upload:, field_4: "2", field_11: "1", field_5: "S#{other_scheme.id}", field_6: other_location.id, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id } } let(:attributes) { { bulk_upload:, field_4: "2", field_11: "2", field_5: "S#{other_scheme.id}", field_6: other_location.id, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id } }
it "returns a setup error" do it "returns a setup error" do
expect(parser.errors.where(:field_5, category: :setup).map(&:message)).to eq(["This scheme code does not belong to the owning organisation or managing organisation"]) expect(parser.errors.where(:field_5, category: :setup).map(&:message)).to eq(["This scheme code does not belong to the owning organisation or managing organisation"])
@ -968,7 +968,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
end end
context "when scheme belongs to owning org" do context "when scheme belongs to owning org" do
let(:attributes) { { bulk_upload:, field_4: "2", field_11: "1", field_5: "S#{scheme.id}", field_6: location.id, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id } } let(:attributes) { { bulk_upload:, field_4: "2", field_11: "2", field_5: "S#{scheme.id}", field_6: location.id, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id } }
it "does not return an error" do it "does not return an error" do
expect(parser.errors[:field_5]).to be_blank expect(parser.errors[:field_5]).to be_blank
@ -979,7 +979,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
context "when scheme belongs to managing org" do context "when scheme belongs to managing org" do
let(:managing_org_scheme) { create(:scheme, :with_old_visible_id, owning_organisation: managing_org) } let(:managing_org_scheme) { create(:scheme, :with_old_visible_id, owning_organisation: managing_org) }
let(:managing_org_location) { create(:location, :with_old_visible_id, scheme: managing_org_scheme) } let(:managing_org_location) { create(:location, :with_old_visible_id, scheme: managing_org_scheme) }
let(:attributes) { { bulk_upload:, field_4: "2", field_11: "1", field_5: "S#{managing_org_scheme.id}", field_6: managing_org_location.id, field_2: managing_org.old_visible_id } } let(:attributes) { { bulk_upload:, field_4: "2", field_11: "2", field_5: "S#{managing_org_scheme.id}", field_6: managing_org_location.id, field_2: managing_org.old_visible_id } }
it "clears the scheme answer" do it "clears the scheme answer" do
expect(parser.errors[:field_5]).to include("You must answer scheme name") expect(parser.errors[:field_5]).to include("You must answer scheme name")
@ -989,7 +989,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
context "when matching location exists but is incomplete" do context "when matching location exists but is incomplete" do
let(:incomplete_location) { create(:location, :with_old_visible_id, :incomplete, scheme:) } let(:incomplete_location) { create(:location, :with_old_visible_id, :incomplete, scheme:) }
let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "1", field_5: "S#{scheme.id}", field_6: incomplete_location.id } } let(:attributes) { { bulk_upload:, field_1: owning_org.old_visible_id, field_2: owning_org.old_visible_id, field_4: "2", field_11: "2", field_5: "S#{scheme.id}", field_6: incomplete_location.id } }
it "returns a setup error for scheme" do it "returns a setup error for scheme" do
expect(parser.errors.where(:field_5).map(&:message)).to eq(["This location is incomplete. Select another location or update this one"]) expect(parser.errors.where(:field_5).map(&:message)).to eq(["This location is incomplete. Select another location or update this one"])
@ -1253,7 +1253,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
describe "fields 7, 8, 9 => startdate" do describe "fields 7, 8, 9 => startdate" do
context "when any one of these fields is blank" do context "when any one of these fields is blank" do
let(:attributes) { { bulk_upload:, field_11: "0", field_8: nil, field_9: nil, field_10: nil } } let(:attributes) { { bulk_upload:, field_11: "1", field_8: nil, field_9: nil, field_10: nil } }
it "returns an error" do it "returns an error" do
parser.valid? parser.valid?
@ -1273,7 +1273,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
end end
context "when invalid date given" do context "when invalid date given" do
let(:attributes) { { bulk_upload:, field_11: "0", field_8: "a", field_9: "12", field_10: "23" } } let(:attributes) { { bulk_upload:, field_11: "1", field_8: "a", field_9: "12", field_10: "23" } }
it "does not raise an error" do it "does not raise an error" do
expect { parser.valid? }.not_to raise_error expect { parser.valid? }.not_to raise_error
@ -1817,7 +1817,7 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do
end end
context "when soft validation is triggered and not required" do context "when soft validation is triggered and not required" do
let(:attributes) { setup_section_params.merge({ field_125: 120, field_126: 120, field_127: 120, field_128: 120, field_123: 1, field_29: 1, field_4: 1, field_11: "1", field_23: "E09000008" }) } let(:attributes) { setup_section_params.merge({ field_125: 120, field_126: 120, field_127: 120, field_128: 120, field_123: 1, field_29: 1, field_4: 1, field_11: "2", field_23: "E09000008" }) }
it "adds an error to the relevant fields" do it "adds an error to the relevant fields" do
parser.valid? parser.valid?

Loading…
Cancel
Save