From 678d03d74c51691b505eb0ea54bde0b104982a64 Mon Sep 17 00:00:00 2001 From: baarkerlounger Date: Fri, 7 Jan 2022 10:55:39 +0000 Subject: [PATCH] Make net_income_known enum --- app/models/case_log.rb | 9 ++++----- app/models/constants/case_log.rb | 7 +++++++ ...0107103143_convert_net_income_known_to_enum.rb | 15 +++++++++++++++ db/schema.rb | 6 +++--- spec/factories/case_log.rb | 2 +- spec/fixtures/complete_case_log.json | 2 +- 6 files changed, 31 insertions(+), 10 deletions(-) create mode 100644 db/migrate/20220107103143_convert_net_income_known_to_enum.rb diff --git a/app/models/case_log.rb b/app/models/case_log.rb index 002077842..9bebe2bfc 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -130,6 +130,7 @@ class CaseLog < ApplicationRecord enum lettype: LET_TYPE, _suffix: true enum postcode_known: POLAR, _suffix: true enum la_known: POLAR, _suffix: true + enum net_income_known: NET_INCOME_KNOWN, _suffix: true AUTOGENERATED_FIELDS = %w[id status created_at updated_at discarded_at renttype lettype is_la_inferred totchild totelder totadult].freeze OPTIONAL_FIELDS = %w[postcode_known @@ -316,9 +317,11 @@ private dynamically_not_required << "tenancyother" end - if net_income_known == "No" + if net_income_known == "Tenant prefers not to say" dynamically_not_required << "earnings" dynamically_not_required << "incfreq" + else + dynamically_not_required << "incref" end start_range = (other_hhmemb || 0) + 2 @@ -329,10 +332,6 @@ private dynamically_not_required << "ecstat#{n}" end - if net_income_known != "Tenant prefers not to say" - dynamically_not_required << "incref" - end - required.delete_if { |key, _value| dynamically_not_required.include?(key) } end end diff --git a/app/models/constants/case_log.rb b/app/models/constants/case_log.rb index 21052e773..7f1d3b48f 100644 --- a/app/models/constants/case_log.rb +++ b/app/models/constants/case_log.rb @@ -1070,4 +1070,11 @@ module Constants::CaseLog "Non-binary" => "X", "Prefer not to say" => "R", }.freeze + + NET_INCOME_KNOWN = { + "Yes – the household has a weekly income" => 0, + "Yes – the household has a monthly income" => 1, + "Yes – the household has a yearly income" => 2, + "Tenant prefers not to say" => 3, + }.freeze end diff --git a/db/migrate/20220107103143_convert_net_income_known_to_enum.rb b/db/migrate/20220107103143_convert_net_income_known_to_enum.rb new file mode 100644 index 000000000..b68ab1ccb --- /dev/null +++ b/db/migrate/20220107103143_convert_net_income_known_to_enum.rb @@ -0,0 +1,15 @@ +class ConvertNetIncomeKnownToEnum < ActiveRecord::Migration[7.0] + def up + change_table :case_logs, bulk: true do |t| + t.remove :net_income_known + t.column :net_income_known, :integer + end + end + + def down + change_table :case_logs, bulk: true do |t| + t.remove :net_income_known + t.column :net_income_known, :string + end + end +end diff --git a/db/schema.rb b/db/schema.rb index 242c019fe..45a2d88f0 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema.define(version: 2021_12_14_163230) do +ActiveRecord::Schema.define(version: 2022_01_07_103143) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -127,7 +127,6 @@ ActiveRecord::Schema.define(version: 2021_12_14_163230) do t.datetime "discarded_at" t.string "tenancyother" t.integer "override_net_income_validation" - t.string "net_income_known" t.string "gdpr_acceptance" t.string "gdpr_declined" t.string "property_owner_organisation" @@ -163,9 +162,9 @@ ActiveRecord::Schema.define(version: 2021_12_14_163230) do t.string "why_dont_you_know_la" t.integer "unitletas" t.integer "builtype" - t.datetime "property_void_date" t.bigint "owning_organisation_id" t.bigint "managing_organisation_id" + t.datetime "property_void_date" t.integer "renttype" t.integer "needstype" t.integer "lettype" @@ -178,6 +177,7 @@ ActiveRecord::Schema.define(version: 2021_12_14_163230) do t.integer "totchild" t.integer "totelder" t.integer "totadult" + t.integer "net_income_known" t.index ["discarded_at"], name: "index_case_logs_on_discarded_at" t.index ["managing_organisation_id"], name: "index_case_logs_on_managing_organisation_id" t.index ["owning_organisation_id"], name: "index_case_logs_on_owning_organisation_id" diff --git a/spec/factories/case_log.rb b/spec/factories/case_log.rb index 72763bdbb..2c7d4ef0a 100644 --- a/spec/factories/case_log.rb +++ b/spec/factories/case_log.rb @@ -113,7 +113,7 @@ FactoryBot.define do discarded_at { nil } tenancyother { nil } override_net_income_validation { nil } - net_income_known { "Yes" } + net_income_known { "Yes – the household has a weekly income" } gdpr_acceptance { "Yes" } gdpr_declined { "No" } property_owner_organisation { "Test" } diff --git a/spec/fixtures/complete_case_log.json b/spec/fixtures/complete_case_log.json index 4298aad27..b55aadba9 100644 --- a/spec/fixtures/complete_case_log.json +++ b/spec/fixtures/complete_case_log.json @@ -74,7 +74,7 @@ "mrcyear": 2020, "offered": 2, "wchair": "Yes", - "net_income_known": "Yes", + "net_income_known": "Yes – the household has a weekly income", "earnings": 0, "incfreq": null, "benefits": "Some",