Browse Source

feat: wip commit add person details to sales log csv service

pull/1951/head
natdeanlewissoftwire 3 years ago
parent
commit
f77aef7125
  1. 21
      app/services/csv/sales_log_csv_service.rb

21
app/services/csv/sales_log_csv_service.rb

@ -48,6 +48,15 @@ module Csv
},
}.freeze
PERSON_DETAILS = {}.tap { |hash|
(2..6).each do |i|
hash["age#{i}_known"] = { "refused_code" => "-9", "refused_label" => "Not known", "details_known_field" => "details_known_#{i}" }
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
FIELDS_ALWAYS_EXPORTED_AS_CODES = %w[
la
prevloc
@ -75,6 +84,13 @@ 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)
case @export_type
when "codes"
PERSON_DETAILS.find { |key, _value| key == attribute }[1]["refused_code"]
when "labels"
PERSON_DETAILS.find { |key, _value| key == attribute }[1]["refused_label"]
end
else
value = log.public_send(attribute)
case @export_type
@ -125,5 +141,10 @@ module Csv
non_question_fields = %w[id status created_at updated_at old_form_id collection_start_year creation_method is_dpo]
non_question_fields + attributes
end
def person_details_not_known?(log, attribute)
details_known_field = PERSON_DETAILS.find { |key, _value| key == attribute }[1]["details_known_field"]
log[details_known_field] == 1
end
end
end

Loading…
Cancel
Save