diff --git a/app/models/case_log.rb b/app/models/case_log.rb index 3657628ae..661240ce9 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -274,6 +274,7 @@ private self.property_postcode = nil self.postcode = nil self.postcod2 = nil + self.has_benefits = get_has_benefits end def get_totelder @@ -303,6 +304,13 @@ private end end + def get_has_benefits + return "yes" if ["1. Housing benefit", + "6. Universal Credit with housing element (excluding housing benefit)", + "7. Universal Credit (without housing element)", + "8. Housing benefit and Universal Credit (without housing element)"].include?(hb) + end + def all_fields_completed? mandatory_fields.none? { |field| public_send(field).nil? if respond_to?(field) } end diff --git a/db/schema.rb b/db/schema.rb index 79bbaeab6..6578e596d 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -178,6 +178,7 @@ ActiveRecord::Schema.define(version: 2022_01_10_115720) do t.integer "totelder" t.integer "totadult" t.integer "net_income_known" + t.string "has_benefits" 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/models/case_log_spec.rb b/spec/models/case_log_spec.rb index b0fd2dd6b..1b3b813e4 100644 --- a/spec/models/case_log_spec.rb +++ b/spec/models/case_log_spec.rb @@ -1038,6 +1038,8 @@ RSpec.describe Form, type: :model do other_hhmemb: 6, rent_type: "London living rent", needstype: "General needs", + hb: "1. Housing benefit", + hbrentshortfall: "No", }) end @@ -1218,5 +1220,12 @@ RSpec.describe Form, type: :model do expect(record_from_db["totadult"]).to eq(3) end end + + it "correctly derives and saves has_benefits" do + case_log.reload + + record_from_db = ActiveRecord::Base.connection.execute("select has_benefits from case_logs where id=#{case_log.id}").to_a[0] + expect(record_from_db["has_benefits"]).to eq("yes") + end end end