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

Loading…
Cancel
Save