diff --git a/app/services/bulk_upload/lettings/year2023/row_parser.rb b/app/services/bulk_upload/lettings/year2023/row_parser.rb index cc68cabeb..59cf7ea34 100644 --- a/app/services/bulk_upload/lettings/year2023/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2023/row_parser.rb @@ -1577,13 +1577,15 @@ private end def mrcdate - Date.new(field_38 + 2000, field_37, field_36) if field_38.present? && field_37.present? && field_36.present? + year = field_38.to_s.strip.length.between?(1, 2) ? field_38 + 2000 : field_38 + Date.new(year, field_37, field_36) if field_38.present? && field_37.present? && field_36.present? rescue Date::Error Date.new end def voiddate - Date.new(field_35 + 2000, field_34, field_33) if field_35.present? && field_34.present? && field_33.present? + year = field_35.to_s.strip.length.between?(1, 2) ? field_35 + 2000 : field_35 + Date.new(year, field_34, field_33) if field_35.present? && field_34.present? && field_33.present? rescue Date::Error Date.new end diff --git a/app/services/bulk_upload/lettings/year2024/row_parser.rb b/app/services/bulk_upload/lettings/year2024/row_parser.rb index 4fc612e57..312a5472a 100644 --- a/app/services/bulk_upload/lettings/year2024/row_parser.rb +++ b/app/services/bulk_upload/lettings/year2024/row_parser.rb @@ -1592,13 +1592,15 @@ private end def mrcdate - Date.new(field_35 + 2000, field_34, field_33) if field_35.present? && field_34.present? && field_33.present? + year = field_35.to_s.strip.length.between?(1, 2) ? field_35 + 2000 : field_35 + Date.new(year, field_34, field_33) if field_35.present? && field_34.present? && field_33.present? rescue Date::Error Date.new end def voiddate - Date.new(field_32 + 2000, field_31, field_30) if field_32.present? && field_31.present? && field_30.present? + year = field_32.to_s.strip.length.between?(1, 2) ? field_32 + 2000 : field_32 + Date.new(year, field_31, field_30) if field_32.present? && field_31.present? && field_30.present? rescue Date::Error Date.new end diff --git a/app/services/bulk_upload/sales/year2023/row_parser.rb b/app/services/bulk_upload/sales/year2023/row_parser.rb index 66cf65a52..d87c94dce 100644 --- a/app/services/bulk_upload/sales/year2023/row_parser.rb +++ b/app/services/bulk_upload/sales/year2023/row_parser.rb @@ -961,13 +961,15 @@ private end def hodate - Date.new(field_97 + 2000, field_96, field_95) if field_97.present? && field_96.present? && field_95.present? + year = field_97.to_s.strip.length.between?(1, 2) ? field_97 + 2000 : field_97 + Date.new(year, field_96, field_95) if field_97.present? && field_96.present? && field_95.present? rescue Date::Error Date.new end def exdate - Date.new(field_94 + 2000, field_93, field_92) if field_94.present? && field_93.present? && field_92.present? + year = field_94.to_s.strip.length.between?(1, 2) ? field_94 + 2000 : field_94 + Date.new(year, field_93, field_92) if field_94.present? && field_93.present? && field_92.present? rescue Date::Error Date.new end diff --git a/app/services/bulk_upload/sales/year2024/row_parser.rb b/app/services/bulk_upload/sales/year2024/row_parser.rb index 667a9b4e0..360f234b7 100644 --- a/app/services/bulk_upload/sales/year2024/row_parser.rb +++ b/app/services/bulk_upload/sales/year2024/row_parser.rb @@ -1001,13 +1001,15 @@ private end def hodate - Date.new(field_96 + 2000, field_95, field_94) if field_96.present? && field_95.present? && field_94.present? + year = field_96.to_s.strip.length.between?(1, 2) ? field_96 + 2000 : field_96 + Date.new(year, field_95, field_94) if field_96.present? && field_95.present? && field_94.present? rescue Date::Error Date.new end def exdate - Date.new(field_93 + 2000, field_92, field_91) if field_93.present? && field_92.present? && field_91.present? + year = field_93.to_s.strip.length.between?(1, 2) ? field_93 + 2000 : field_93 + Date.new(year, field_92, field_91) if field_93.present? && field_92.present? && field_91.present? rescue Date::Error Date.new 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 58551e8d9..314db674d 100644 --- a/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2023/row_parser_spec.rb @@ -2556,6 +2556,14 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do end end + context "when valid (4 digit year)" do + let(:attributes) { { bulk_upload:, field_36: "13", field_37: "12", field_38: "2022" } } + + it "sets value given" do + expect(parser.log.mrcdate).to eq(Date.new(2022, 12, 13)) + end + end + context "when invalid" do let(:attributes) { { bulk_upload:, field_36: "13", field_37: "13", field_38: "22" } } @@ -2592,6 +2600,14 @@ RSpec.describe BulkUpload::Lettings::Year2023::RowParser do end end + context "when valid (4 digit year)" do + let(:attributes) { { bulk_upload:, field_33: "13", field_34: "12", field_35: "2022" } } + + it "sets value given" do + expect(parser.log.voiddate).to eq(Date.new(2022, 12, 13)) + end + end + context "when invalid" do let(:attributes) { { bulk_upload:, field_33: "13", field_34: "13", field_35: "22" } } diff --git a/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb b/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb index dbe43bb0d..d82effa0b 100644 --- a/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb +++ b/spec/services/bulk_upload/lettings/year2024/row_parser_spec.rb @@ -2669,6 +2669,14 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do end end + context "when valid (4 digit year)" do + let(:attributes) { { bulk_upload:, field_33: "13", field_34: "12", field_35: "2022" } } + + it "sets value given" do + expect(parser.log.mrcdate).to eq(Date.new(2022, 12, 13)) + end + end + context "when invalid" do let(:attributes) { { bulk_upload:, field_33: "13", field_34: "13", field_35: "22" } } @@ -2705,6 +2713,14 @@ RSpec.describe BulkUpload::Lettings::Year2024::RowParser do end end + context "when valid (4 digit year)" do + let(:attributes) { { bulk_upload:, field_30: "13", field_31: "12", field_32: "2022" } } + + it "sets value given" do + expect(parser.log.voiddate).to eq(Date.new(2022, 12, 13)) + end + end + context "when invalid" do let(:attributes) { { bulk_upload:, field_30: "13", field_31: "13", field_32: "22" } } 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 69627eccd..824754b25 100644 --- a/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2023/row_parser_spec.rb @@ -88,10 +88,10 @@ RSpec.describe BulkUpload::Sales::Year2023::RowParser do field_90: "1", field_92: "30", field_93: "3", - field_94: "22", + field_94: "2022", field_95: "24", field_96: "3", - field_97: "22", + field_97: "2022", field_98: "3", field_99: "1", field_100: "1", diff --git a/spec/services/bulk_upload/sales/year2024/row_parser_spec.rb b/spec/services/bulk_upload/sales/year2024/row_parser_spec.rb index bb12a83a4..96914fc44 100644 --- a/spec/services/bulk_upload/sales/year2024/row_parser_spec.rb +++ b/spec/services/bulk_upload/sales/year2024/row_parser_spec.rb @@ -95,10 +95,10 @@ RSpec.describe BulkUpload::Sales::Year2024::RowParser do field_89: "1", field_91: "30", field_92: "3", - field_93: "22", + field_93: "2022", field_94: "24", field_95: "3", - field_96: "22", + field_96: "2022", field_97: "3", field_98: "1", field_99: "1",