From d33f48f04063e6da6596bcbf4e4bf0f8c81e489f Mon Sep 17 00:00:00 2001 From: Samuel Young Date: Mon, 22 Dec 2025 13:41:14 +0000 Subject: [PATCH] CLDC-4162: Integrate 2026 parsers into codebase --- app/helpers/bulk_upload/lettings_log_to_csv.rb | 11 ++++++++++- app/helpers/bulk_upload/sales_log_to_csv.rb | 9 ++++++++- app/models/bulk_upload.rb | 2 ++ app/services/bulk_upload/lettings/log_creator.rb | 2 ++ app/services/bulk_upload/lettings/validator.rb | 2 ++ app/services/bulk_upload/sales/log_creator.rb | 2 ++ app/services/bulk_upload/sales/validator.rb | 2 ++ 7 files changed, 28 insertions(+), 2 deletions(-) diff --git a/app/helpers/bulk_upload/lettings_log_to_csv.rb b/app/helpers/bulk_upload/lettings_log_to_csv.rb index b81fec3d7..1efe9070b 100644 --- a/app/helpers/bulk_upload/lettings_log_to_csv.rb +++ b/app/helpers/bulk_upload/lettings_log_to_csv.rb @@ -17,7 +17,7 @@ class BulkUpload::LettingsLogToCsv def to_csv_row(seed: nil) year = log.collection_start_year case year - when 2022, 2023, 2024, 2025 + when 2022, 2023, 2024, 2025, 2026 to_year_csv_row(year, seed:) else raise NotImplementedError "No mapping function implemented for year #{year}" @@ -91,6 +91,15 @@ class BulkUpload::LettingsLogToCsv (1..129).to_a end + def default_2026_field_numbers + (1..129).to_a + end + + def to_2026_row + # TODO: Implement when 2026 format is known + to_2025_row + end + def to_2025_row [ overrides[:organisation_id] || log.owning_organisation&.old_visible_id, # 1 diff --git a/app/helpers/bulk_upload/sales_log_to_csv.rb b/app/helpers/bulk_upload/sales_log_to_csv.rb index 17dd2af20..f4eb08496 100644 --- a/app/helpers/bulk_upload/sales_log_to_csv.rb +++ b/app/helpers/bulk_upload/sales_log_to_csv.rb @@ -19,7 +19,7 @@ class BulkUpload::SalesLogToCsv case year when 2022 to_2022_csv_row - when 2023, 2024, 2025 + when 2023, 2024, 2025, 2026 to_year_csv_row(year, seed:) else raise NotImplementedError "No mapping function implemented for year #{year}" @@ -69,6 +69,8 @@ class BulkUpload::SalesLogToCsv (1..131).to_a when 2025 (1..121).to_a + when 2026 + (1..121).to_a else raise NotImplementedError "No mapping function implemented for year #{year}" end @@ -532,6 +534,11 @@ class BulkUpload::SalesLogToCsv ] end + def to_2026_row + # TODO: Implement when 2026 template is available + to_2025_row + end + def custom_field_numbers_row(seed: nil, field_numbers: nil) if seed ["Field number"] + field_numbers.shuffle(random: Random.new(seed)) diff --git a/app/models/bulk_upload.rb b/app/models/bulk_upload.rb index dd09b365b..789f710a3 100644 --- a/app/models/bulk_upload.rb +++ b/app/models/bulk_upload.rb @@ -104,6 +104,8 @@ class BulkUpload < ApplicationRecord end year_class = case year + when 2026 + "Year2026" when 2025 "Year2025" when 2024 diff --git a/app/services/bulk_upload/lettings/log_creator.rb b/app/services/bulk_upload/lettings/log_creator.rb index ab5405381..3a2cd5423 100644 --- a/app/services/bulk_upload/lettings/log_creator.rb +++ b/app/services/bulk_upload/lettings/log_creator.rb @@ -36,6 +36,8 @@ private BulkUpload::Lettings::Year2024::CsvParser.new(path:) when 2025 BulkUpload::Lettings::Year2025::CsvParser.new(path:) + when 2026 + BulkUpload::Lettings::Year2026::CsvParser.new(path:) else raise "csv parser not found" end diff --git a/app/services/bulk_upload/lettings/validator.rb b/app/services/bulk_upload/lettings/validator.rb index e1be94eec..f48f851f2 100644 --- a/app/services/bulk_upload/lettings/validator.rb +++ b/app/services/bulk_upload/lettings/validator.rb @@ -115,6 +115,8 @@ private BulkUpload::Lettings::Year2024::CsvParser.new(path:) when 2025 BulkUpload::Lettings::Year2025::CsvParser.new(path:) + when 2026 + BulkUpload::Lettings::Year2026::CsvParser.new(path:) else raise "csv parser not found" end diff --git a/app/services/bulk_upload/sales/log_creator.rb b/app/services/bulk_upload/sales/log_creator.rb index a21e7a31a..26b3341a5 100644 --- a/app/services/bulk_upload/sales/log_creator.rb +++ b/app/services/bulk_upload/sales/log_creator.rb @@ -35,6 +35,8 @@ private BulkUpload::Sales::Year2024::CsvParser.new(path:) when 2025 BulkUpload::Sales::Year2025::CsvParser.new(path:) + when 2026 + BulkUpload::Sales::Year2026::CsvParser.new(path:) else raise "csv parser not found" end diff --git a/app/services/bulk_upload/sales/validator.rb b/app/services/bulk_upload/sales/validator.rb index cef816ff0..c26d8d1ca 100644 --- a/app/services/bulk_upload/sales/validator.rb +++ b/app/services/bulk_upload/sales/validator.rb @@ -111,6 +111,8 @@ private BulkUpload::Sales::Year2024::CsvParser.new(path:) when 2025 BulkUpload::Sales::Year2025::CsvParser.new(path:) + when 2026 + BulkUpload::Sales::Year2026::CsvParser.new(path:) else raise "csv parser not found" end