diff --git a/app/services/bulk_upload/lettings/row_parser.rb b/app/services/bulk_upload/lettings/row_parser.rb index 89a7a83cc..42172baea 100644 --- a/app/services/bulk_upload/lettings/row_parser.rb +++ b/app/services/bulk_upload/lettings/row_parser.rb @@ -350,6 +350,9 @@ private offered: %i[field_99], propcode: %i[field_100], + + majorrepairs: %i[field_92 field_93 field_94], + mrcdate: %i[field_92 field_93 field_94], } end @@ -554,9 +557,20 @@ private attributes["propcode"] = field_100 + attributes["majorrepairs"] = majorrepairs + attributes["mrcdate"] = mrcdate + attributes end + def majorrepairs + mrcdate.present? ? 1 : 0 + end + + def mrcdate + Date.new(field_94 + 2000, field_93, field_92) if field_94.present? && field_93.present? && field_92.present? + end + def ppcodenk case field_65 when 1 diff --git a/spec/services/bulk_upload/lettings/row_parser_spec.rb b/spec/services/bulk_upload/lettings/row_parser_spec.rb index 035f89ed8..bbb51ddb9 100644 --- a/spec/services/bulk_upload/lettings/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/row_parser_spec.rb @@ -637,5 +637,31 @@ RSpec.describe BulkUpload::Lettings::RowParser do expect(parser.log.propcode).to eq("abc123") end end + + describe "#mrcdate" do + let(:attributes) { { bulk_upload:, field_92: "13", field_93: "12", field_94: "22" } } + + it "sets value given" do + expect(parser.log.mrcdate).to eq(Date.new(2022, 12, 13)) + end + end + + describe "#majorrepairs" do + context "when mrcdate given" do + let(:attributes) { { bulk_upload:, field_92: "13", field_93: "12", field_94: "22" } } + + it "sets #majorrepairs to 1" do + expect(parser.log.majorrepairs).to eq(1) + end + end + + context "when mrcdate not given" do + let(:attributes) { { bulk_upload:, field_92: "", field_93: "", field_94: "" } } + + it "sets #majorrepairs to 0" do + expect(parser.log.majorrepairs).to eq(0) + end + end + end end end