diff --git a/app/models/case_log.rb b/app/models/case_log.rb index 30a16a21e..7ceeaecdc 100644 --- a/app/models/case_log.rb +++ b/app/models/case_log.rb @@ -133,7 +133,7 @@ class CaseLog < ApplicationRecord enum postcode_known: POLAR, _suffix: true enum la_known: POLAR, _suffix: true - AUTOGENERATED_FIELDS = %w[id status created_at updated_at discarded_at renttype lettype is_la_inferred totchild].freeze + AUTOGENERATED_FIELDS = %w[id status created_at updated_at discarded_at renttype lettype is_la_inferred totchild totelder].freeze OPTIONAL_FIELDS = %w[postcode_known la_known first_time_property_let_as_social_housing].freeze @@ -214,6 +214,12 @@ private self.is_la_inferred = false if is_la_inferred.nil? self.la = get_la(property_postcode) self.totchild = get_totchild + self.totelder = get_totelder + end + + def get_totelder + ages = [age1, age2, age3, age4, age5, age6, age7, age8] + ages.count { |x| !x.nil? && x >= 60 } end def get_totchild diff --git a/db/migrate/20211214153925_add_totelder.rb b/db/migrate/20211214153925_add_totelder.rb new file mode 100644 index 000000000..a286ee241 --- /dev/null +++ b/db/migrate/20211214153925_add_totelder.rb @@ -0,0 +1,7 @@ +class AddTotelder < ActiveRecord::Migration[6.1] + def change + change_table :case_logs, bulk: true do |t| + t.column :totelder, :integer + end + end +end diff --git a/db/schema.rb b/db/schema.rb index dce7cd20a..17a7babce 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_143841) do +ActiveRecord::Schema.define(version: 2021_12_14_153925) do # These are extensions that must be enabled in order to support this database enable_extension "plpgsql" @@ -171,11 +171,12 @@ ActiveRecord::Schema.define(version: 2021_12_14_143841) do t.integer "lettype" t.integer "postcode_known" t.integer "la_known" + t.boolean "is_la_inferred" t.integer "day" t.integer "month" t.integer "year" - t.boolean "is_la_inferred" t.integer "totchild" + t.integer "totelder" 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 ea4e353f7..ae17489fb 100644 --- a/spec/models/case_log_spec.rb +++ b/spec/models/case_log_spec.rb @@ -1070,6 +1070,9 @@ RSpec.describe Form, type: :model do relat3: "Child - includes young adult and grown-up", relat4: "Other", relat5: "Child - includes young adult and grown-up", + age4: 60, + age2: 14, + age6: 88, }) end @@ -1079,6 +1082,13 @@ RSpec.describe Form, type: :model do record_from_db = ActiveRecord::Base.connection.execute("select totchild from case_logs where id=#{household_case_log.id}").to_a[0] expect(record_from_db["totchild"]).to eq(3) end + + it "correctly derives and saves totelder" do + household_case_log.reload + + record_from_db = ActiveRecord::Base.connection.execute("select totelder from case_logs where id=#{household_case_log.id}").to_a[0] + expect(record_from_db["totelder"]).to eq(2) + end end end end