Browse Source

Refactor some csv methods, add person relationship mapping

pull/2939/head
Kat 3 months ago
parent
commit
08add64322
  1. 2
      app/controllers/test_data_controller.rb
  2. 85
      app/helpers/bulk_upload/lettings_log_to_csv.rb
  3. 1
      config/routes.rb

2
app/controllers/test_data_controller.rb

@ -35,6 +35,8 @@ class TestDataController < ApplicationController
end
end
def create_2025_test_sales_bulk_upload; end
def create_test_sales_log
return render_not_found unless FeatureToggle.create_test_logs_enabled?

85
app/helpers/bulk_upload/lettings_log_to_csv.rb

@ -16,67 +16,31 @@ class BulkUpload::LettingsLogToCsv
def to_csv_row(seed: nil)
year = log.collection_start_year
case year
when 2022
to_2022_csv_row(seed:)
when 2023
to_2023_csv_row(seed:)
when 2024
to_2024_csv_row(seed:)
when 2025
to_2025_csv_row(seed:)
else
raise NotImplementedError "No mapping function implemented for year #{year}"
end
send("to_#{year}_csv_row", seed:)
rescue NoMethodError
raise NotImplementedError, "No mapping function implemented for year #{year}"
end
def to_row
year = log.collection_start_year
case year
when 2022
to_2022_row
when 2023
to_2023_row
when 2024
to_2024_row
when 2025
to_2025_row
else
send("to_#{year}_row")
rescue NoMethodError
raise NotImplementedError "No mapping function implemented for year #{year}"
end
end
def default_field_numbers_row(seed: nil)
year = log.collection_start_year
case year
when 2022
default_2022_field_numbers_row(seed:)
when 2023
default_2023_field_numbers_row(seed:)
when 2024
default_2024_field_numbers_row(seed:)
when 2025
default_2025_field_numbers_row(seed:)
else
send("default_#{year}_field_numbers_row", seed:)
rescue NoMethodError
raise NotImplementedError "No mapping function implemented for year #{year}"
end
end
def default_field_numbers
year = log.collection_start_year
case year
when 2022
default_2022_field_numbers
when 2023
default_2023_field_numbers
when 2024
default_2024_field_numbers
when 2025
default_2025_field_numbers
else
send("default_#{year}_field_numbers")
rescue NoMethodError
raise NotImplementedError "No mapping function implemented for year #{year}"
end
end
def to_2022_csv_row(seed: nil)
if seed
@ -192,18 +156,18 @@ class BulkUpload::LettingsLogToCsv
log.tenancycode,
log.propcode,
log.declaration,
log.unittype_gn,
log.rsnvac,
log.unitletas,
log.uprn,
log.address_line1&.tr(",", " "),
log.address_line2&.tr(",", " "), # 20
log.town_or_city&.tr(",", " "),
log.county&.tr(",", " "),
((log.postcode_full || "").split(" ") || [""]).first,
((log.postcode_full || "").split(" ") || [""]).last,
log.la,
log.rsnvac,
log.unittype_gn,
log.builtype,
log.wchair,
log.beds,
@ -226,34 +190,34 @@ class BulkUpload::LettingsLogToCsv
log.ethnic,
log.nationality_all_group,
log.ecstat1,
log.relat2,
relat_number(log.relat2),
log.age2 || overrides[:age2],
log.sex2,
log.ecstat2, # 50
log.relat3,
relat_number(log.relat3),
log.age3 || overrides[:age3],
log.sex3,
log.ecstat3,
log.relat4,
relat_number(log.relat4),
log.age4 || overrides[:age4],
log.sex4,
log.ecstat4,
log.relat5,
relat_number(log.relat5),
log.age5 || overrides[:age5], # 60
log.sex5,
log.ecstat5,
log.relat6,
relat_number(log.relat6),
log.age6 || overrides[:age6],
log.sex6,
log.ecstat6,
log.relat7,
relat_number(log.relat7),
log.age7 || overrides[:age7],
log.sex7,
log.ecstat7, # 70
log.relat8,
relat_number(log.relat8),
log.age8 || overrides[:age8],
log.sex8,
log.ecstat8,
@ -726,4 +690,15 @@ private
log.hhregres
end
end
def relat_number(value)
case value
when "P"
1
when "R"
3
when "C", "X"
2
end
end
end

1
config/routes.rb

@ -404,5 +404,6 @@ Rails.application.routes.draw do
get "create-test-sales-log", to: "test_data#create_test_sales_log"
get "create-setup-test-sales-log", to: "test_data#create_setup_test_sales_log"
get "create-2024-test-sales-bulk-upload", to: "test_data#create_2024_test_sales_bulk_upload"
get "create-2025-test-sales-bulk-upload", to: "test_data#create_2025_test_sales_bulk_upload"
end
end

Loading…
Cancel
Save