From 3ceaf1dee08f248f598f323597eb651759172571 Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Tue, 3 Oct 2023 15:10:40 +0100 Subject: [PATCH] feat: combine age not known and details not known fields --- app/services/csv/lettings_log_csv_service.rb | 13 ++++--------- app/services/csv/sales_log_csv_service.rb | 7 ++++--- 2 files changed, 8 insertions(+), 12 deletions(-) diff --git a/app/services/csv/lettings_log_csv_service.rb b/app/services/csv/lettings_log_csv_service.rb index f5894891e..578565a5c 100644 --- a/app/services/csv/lettings_log_csv_service.rb +++ b/app/services/csv/lettings_log_csv_service.rb @@ -118,20 +118,15 @@ module Csv }.freeze PERSON_DETAILS = {}.tap { |hash| + hash["age1"] = { "refused_code" => "-9", "refused_label" => "Not known", "age_known_field" => "age1_known" } (2..8).each do |i| - hash["age#{i}"] = { "refused_code" => "-9", "refused_label" => "Not known", "details_known_field" => "details_known_#{i}" } + hash["age#{i}"] = { "refused_code" => "-9", "refused_label" => "Not known", "details_known_field" => "details_known_#{i}", "age_known_field" => "age#{i}_known" } hash["sex#{i}"] = { "refused_code" => "R", "refused_label" => "Prefers not to say", "details_known_field" => "details_known_#{i}" } hash["relat#{i}"] = { "refused_code" => "R", "refused_label" => "Prefers not to say", "details_known_field" => "details_known_#{i}" } hash["ecstat#{i}"] = { "refused_code" => "10", "refused_label" => "Prefers not to say", "details_known_field" => "details_known_#{i}" } end }.freeze - AGE_KNOWN_FIELDS = {}.tap { |hash| - (1..8).each do |i| - hash["age#{i}"] = { "age_known_field" => "age#{i}_known" } - end - }.freeze - FIELDS_ALWAYS_EXPORTED_AS_CODES = %w[ la prevloc @@ -163,7 +158,7 @@ module Csv get_label(value, attribute, log) elsif DATE_FIELDS.include? attribute log.public_send(attribute)&.iso8601 - elsif (PERSON_DETAILS.any? { |key, _value| key == attribute } && person_details_not_known?(log, attribute)) || (AGE_KNOWN_FIELDS.any? { |key, _value| key == attribute } && age_not_known?(log, attribute) ) + elsif PERSON_DETAILS.any? { |key, _value| key == attribute } && (person_details_not_known?(log, attribute) || age_not_known?(log, attribute)) case @export_type when "codes" PERSON_DETAILS.find { |key, _value| key == attribute }[1]["refused_code"] @@ -247,7 +242,7 @@ module Csv end def age_not_known?(log, attribute) - age_known_field = AGE_KNOWN_FIELDS.find { |key, _value| key == attribute }[1]["age_known_field"] + age_known_field = PERSON_DETAILS.find { |key, _value| key == attribute }[1]["age_known_field"] log[age_known_field] == 1 end end diff --git a/app/services/csv/sales_log_csv_service.rb b/app/services/csv/sales_log_csv_service.rb index 2720a3994..471f2ccde 100644 --- a/app/services/csv/sales_log_csv_service.rb +++ b/app/services/csv/sales_log_csv_service.rb @@ -49,8 +49,9 @@ module Csv }.freeze PERSON_DETAILS = {}.tap { |hash| + hash["age1"] = { "refused_code" => "-9", "refused_label" => "Not known", "age_known_field" => "age1_known" } (2..6).each do |i| - hash["age#{i}"] = { "refused_code" => "-9", "refused_label" => "Not known", "details_known_field" => "details_known_#{i}" } + hash["age#{i}"] = { "refused_code" => "-9", "refused_label" => "Not known", "details_known_field" => "details_known_#{i}", "age_known_field" => "age#{i}_known" } hash["sex#{i}"] = { "refused_code" => "R", "refused_label" => "Prefers not to say", "details_known_field" => "details_known_#{i}" } hash["relat#{i}"] = { "refused_code" => "R", "refused_label" => "Prefers not to say", "details_known_field" => "details_known_#{i}" } hash["ecstat#{i}"] = { "refused_code" => "10", "refused_label" => "Prefers not to say", "details_known_field" => "details_known_#{i}" } @@ -90,7 +91,7 @@ module Csv get_label(value, attribute, log) elsif DATE_FIELDS.include? attribute log.send(attribute)&.iso8601 - elsif (PERSON_DETAILS.any? { |key, _value| key == attribute } && person_details_not_known?(log, attribute)) || (AGE_KNOWN_FIELDS.any? { |key, _value| key == attribute } && age_not_known?(log, attribute) ) + elsif PERSON_DETAILS.any? { |key, _value| key == attribute } && (person_details_not_known?(log, attribute) || age_not_known?(log, attribute)) case @export_type when "codes" PERSON_DETAILS.find { |key, _value| key == attribute }[1]["refused_code"] @@ -154,7 +155,7 @@ module Csv end def age_not_known?(log, attribute) - age_known_field = AGE_KNOWN_FIELDS.find { |key, _value| key == attribute }[1]["age_known_field"] + age_known_field = PERSON_DETAILS.find { |key, _value| key == attribute }[1]["age_known_field"] log[age_known_field] == 1 end end