From 328e368496e67e1abffd881fbdfa97aa727559f2 Mon Sep 17 00:00:00 2001 From: Nat Dean-Lewis Date: Tue, 10 Feb 2026 08:53:22 +0000 Subject: [PATCH 1/5] CLDC-4177: use shared field count --- app/helpers/bulk_upload/sales_log_to_csv.rb | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/app/helpers/bulk_upload/sales_log_to_csv.rb b/app/helpers/bulk_upload/sales_log_to_csv.rb index 79b136adb..cb31d9365 100644 --- a/app/helpers/bulk_upload/sales_log_to_csv.rb +++ b/app/helpers/bulk_upload/sales_log_to_csv.rb @@ -70,8 +70,7 @@ class BulkUpload::SalesLogToCsv when 2025 (1..121).to_a when 2026 - # TODO: CLDC-4162: Replace with actual field numbers when 2026 format is known - (1..121).to_a + (1..BulkUpload::Lettings::Year2026::CsvParser::FIELDS).to_a else raise NotImplementedError "No mapping function implemented for year #{year}" end From 0fd753ffd08bea8db9c421926b63b36be43fe252 Mon Sep 17 00:00:00 2001 From: Nat Dean-Lewis Date: Tue, 10 Feb 2026 08:58:46 +0000 Subject: [PATCH 2/5] CLDC-4177: refactor to remove max cols going forwards --- app/services/bulk_upload/sales/validator.rb | 2 +- app/services/bulk_upload/sales/year2026/csv_parser.rb | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/app/services/bulk_upload/sales/validator.rb b/app/services/bulk_upload/sales/validator.rb index c26d8d1ca..7b1dbd48e 100644 --- a/app/services/bulk_upload/sales/validator.rb +++ b/app/services/bulk_upload/sales/validator.rb @@ -167,7 +167,7 @@ private column_count = rows.map(&:size).max - errors.add(:base, I18n.t("validations.sales.#{@bulk_upload.year}.bulk_upload.wrong_template.over_max_column_count")) if column_count > csv_parser.class::MAX_COLUMNS + errors.add(:base, I18n.t("validations.sales.#{@bulk_upload.year}.bulk_upload.wrong_template.over_max_column_count")) if column_count > csv_parser.class::FIELDS + 1 end def validate_correct_template diff --git a/app/services/bulk_upload/sales/year2026/csv_parser.rb b/app/services/bulk_upload/sales/year2026/csv_parser.rb index e6a6fa9c0..78e467807 100644 --- a/app/services/bulk_upload/sales/year2026/csv_parser.rb +++ b/app/services/bulk_upload/sales/year2026/csv_parser.rb @@ -5,7 +5,6 @@ class BulkUpload::Sales::Year2026::CsvParser # TODO: CLDC-4162: Update when 2026 format is known FIELDS = 127 - MAX_COLUMNS = FIELDS + 1 FORM_YEAR = 2026 attr_reader :path From 3dfa78807bc4bb46db4a763cc6f6e8dccf5ed6e7 Mon Sep 17 00:00:00 2001 From: Nat Dean-Lewis Date: Tue, 10 Feb 2026 09:12:27 +0000 Subject: [PATCH 3/5] CLDC-4141: update schema --- db/schema.rb | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/db/schema.rb b/db/schema.rb index 6fd081249..70c4c347f 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -84,7 +84,7 @@ ActiveRecord::Schema[7.2].define(version: 2026_01_28_121417) do t.datetime "last_accessed" t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.check_constraint "log_type::text = ANY (ARRAY['lettings'::character varying, 'sales'::character varying]::text[])", name: "log_type_check" + t.check_constraint "log_type::text = ANY (ARRAY['lettings'::character varying::text, 'sales'::character varying::text])", name: "log_type_check" t.check_constraint "year >= 2000 AND year <= 2099", name: "year_check" end @@ -375,15 +375,6 @@ ActiveRecord::Schema[7.2].define(version: 2026_01_28_121417) do t.bigint "created_by_id" t.boolean "manual_address_entry_selected", default: false t.integer "referral_type" - t.integer "working_situation_illness_check" - t.string "sexrab1" - t.string "sexrab2" - t.string "sexrab3" - t.string "sexrab4" - t.string "sexrab5" - t.string "sexrab6" - t.string "sexrab7" - t.string "sexrab8" t.index ["assigned_to_id"], name: "index_lettings_logs_on_assigned_to_id" t.index ["bulk_upload_id"], name: "index_lettings_logs_on_bulk_upload_id" t.index ["created_by_id"], name: "index_lettings_logs_on_created_by_id" From 3c60ef15ad5906c829f78d7b1fc082ed6d4da443 Mon Sep 17 00:00:00 2001 From: Nat Dean-Lewis Date: Tue, 10 Feb 2026 09:15:35 +0000 Subject: [PATCH 4/5] CLDC-4141: update schema --- db/schema.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/schema.rb b/db/schema.rb index 70c4c347f..234ddc6be 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -84,7 +84,7 @@ ActiveRecord::Schema[7.2].define(version: 2026_01_28_121417) do t.datetime "last_accessed" t.datetime "created_at", null: false t.datetime "updated_at", null: false - t.check_constraint "log_type::text = ANY (ARRAY['lettings'::character varying::text, 'sales'::character varying::text])", name: "log_type_check" + t.check_constraint "log_type::text = ANY (ARRAY['lettings'::character varying, 'sales'::character varying]::text[])", name: "log_type_check" t.check_constraint "year >= 2000 AND year <= 2099", name: "year_check" end From 15aa8d7e7a0a07f247a9cb05b270181960554909 Mon Sep 17 00:00:00 2001 From: Nat Dean-Lewis Date: Tue, 10 Feb 2026 09:16:17 +0000 Subject: [PATCH 5/5] CLDC-4141: update schema --- db/schema.rb | 1 + 1 file changed, 1 insertion(+) diff --git a/db/schema.rb b/db/schema.rb index 234ddc6be..727e809c7 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -375,6 +375,7 @@ ActiveRecord::Schema[7.2].define(version: 2026_01_28_121417) do t.bigint "created_by_id" t.boolean "manual_address_entry_selected", default: false t.integer "referral_type" + t.integer "working_situation_illness_check" t.index ["assigned_to_id"], name: "index_lettings_logs_on_assigned_to_id" t.index ["bulk_upload_id"], name: "index_lettings_logs_on_bulk_upload_id" t.index ["created_by_id"], name: "index_lettings_logs_on_created_by_id"