diff --git a/app/constants/db_enums.rb b/app/constants/db_enums.rb index 99b7b438a..0b2f2b3fb 100644 --- a/app/constants/db_enums.rb +++ b/app/constants/db_enums.rb @@ -204,4 +204,36 @@ module DbEnums "Other" => 6, } end + + def self.incfreq + { + "Weekly" => 1, + "Monthly" => 2, + "Yearly" => 3, + } + end + + def self.benefits + { + "All" => 1, + "Some" => 2, + "None" => 3, + "Do not know" => 4, + } + end + + def self.period + { + "Weekly for 52 weeks" => 1, + "Fortnightly" => 2, + "Four-weekly" => 3, + "Calendar monthly" => 4, + "Weekly for 50 weeks" => 5, + "Weekly for 49 weeks" => 6, + "Weekly for 48 weeks" => 7, + "Weekly for 47 weeks" => 8, + "Weekly for 46 weeks" => 9, + "Weekly for 53 weeks" => 10, + } + end end diff --git a/app/models/case_log.rb b/app/models/case_log.rb index 0387083f0..6f8935108 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -94,6 +94,10 @@ class CaseLog < ApplicationRecord enum cbl: DbEnums.polar2, _suffix: true enum chr: DbEnums.polar2, _suffix: true enum cap: DbEnums.polar2, _suffix: true + enum wchair: DbEnums.polar2, _suffix: true + enum incfreq: DbEnums.incfreq, _suffix: true + enum benefits: DbEnums.benefits, _suffix: true + enum period: DbEnums.period, _suffix: true AUTOGENERATED_FIELDS = %w[id status created_at updated_at discarded_at].freeze diff --git a/db/migrate/20211103090530_change_field_types.rb b/db/migrate/20211103090530_change_field_types.rb index e6f0d9a07..3775f2203 100644 --- a/db/migrate/20211103090530_change_field_types.rb +++ b/db/migrate/20211103090530_change_field_types.rb @@ -48,6 +48,14 @@ class ChangeFieldTypes < ActiveRecord::Migration[6.1] t.change :landlord, "integer USING landlord::integer" t.change :rsnvac, "integer USING rsnvac::integer" t.change :unittype_gn, "integer USING unittype_gn::integer" + t.change :beds, "integer USING beds::integer" + t.change :wchair, "integer USING wchair::integer" + t.change :incfreq, "integer USING incfreq::integer" + t.change :benefits, "integer USING benefits::integer" + t.change :period, "integer USING period::integer" + t.change :brent, "integer USING brent::integer" + t.change :scharge, "integer USING scharge::integer" + t.change :pscharge, "integer USING pscharge::integer" end end @@ -100,6 +108,14 @@ class ChangeFieldTypes < ActiveRecord::Migration[6.1] t.change :landlord, :string t.change :rsnvac, :string t.change :unittype_gn, :string + t.change :beds, :string + t.change :wchair, :string + t.change :incfreq, :string + t.change :benefits, :string + t.change :period, :string + t.change :brent, :string + t.change :scharge, :string + t.change :pscharge, :string end end end diff --git a/db/schema.rb b/db/schema.rb index ff7ae942b..d21fd49c0 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -80,19 +80,20 @@ ActiveRecord::Schema.define(version: 2021_11_03_090530) do t.string "property_reference" t.integer "unittype_gn" t.string "property_building_type" - t.string "beds" + t.integer "beds" t.string "property_void_date" t.string "property_major_repairs" t.string "property_major_repairs_date" - t.string "wchair" + t.integer "offered" + t.integer "wchair" t.integer "earnings" - t.string "incfreq" - t.string "benefits" + t.integer "incfreq" + t.integer "benefits" t.string "housing_benefit" - t.string "period" - t.string "brent" - t.string "scharge" - t.string "pscharge" + t.integer "period" + t.integer "brent" + t.integer "scharge" + t.integer "pscharge" t.string "supcharge" t.string "tcharge" t.string "outstanding_amount" diff --git a/spec/fixtures/complete_case_log.json b/spec/fixtures/complete_case_log.json index 2ea30df95..353118f72 100644 --- a/spec/fixtures/complete_case_log.json +++ b/spec/fixtures/complete_case_log.json @@ -66,13 +66,13 @@ "property_major_repairs": "Yes", "property_major_repairs_date": "05/05/2020", "offered": 2, - "wchair": true, + "wchair": "Yes", "net_income_known": "Yes", "earnings": 0, "incfreq": null, "benefits": "Some", "housing_benefit": "Universal Credit with housing element, but not Housing Benefit", - "period": "Weekly", + "period": "Fortnightly", "brent": 200, "scharge": 50, "pscharge": 40, diff --git a/spec/helpers/tasklist_helper_spec.rb b/spec/helpers/tasklist_helper_spec.rb index 46c2fc9aa..db9ac3cae 100644 --- a/spec/helpers/tasklist_helper_spec.rb +++ b/spec/helpers/tasklist_helper_spec.rb @@ -30,7 +30,11 @@ RSpec.describe TasklistHelper do end it "returns completed if all the questions in the subsection have been answered" do - %w[earnings incfreq benefits housing_benefit].each { |x| case_log[x] = "value" } + case_log["earnings"] = "value" + case_log["incfreq"] = "Weekly" + case_log["benefits"] = "All" + case_log["housing_benefit"] = "Do not know" + status = get_subsection_status("income_and_benefits", case_log, income_and_benefits_questions) expect(status).to eq(:completed) end