Browse Source

Derive household members from household count

pull/1369/head
Kat 3 years ago
parent
commit
523a7a8c1e
  1. 9
      app/models/derived_variables/sales_log_variables.rb
  2. 2
      spec/fixtures/imports/sales_logs/discounted_ownership_sales_log.xml
  3. 6
      spec/models/sales_log_spec.rb

9
app/models/derived_variables/sales_log_variables.rb

@ -21,12 +21,19 @@ module DerivedVariables::SalesLogVariables
self.pcode1, self.pcode2 = postcode_full.split(" ") if postcode_full.present?
self.totchild = total_child
self.totadult = total_adult + total_elder
self.hhmemb = totchild + totadult
self.hhmemb = number_of_household_members
self.hhtype = household_type
end
private
def number_of_household_members
return unless hholdcount.present? && jointpur.present?
number_of_buyers = joint_purchase? ? 2 : 1
hholdcount + number_of_buyers
end
def total_elder
ages = [age1, age2, age3, age4, age5, age6]
ages.count { |age| age.present? && age >= 60 }

2
spec/fixtures/imports/sales_logs/discounted_ownership_sales_log.xml vendored

@ -292,7 +292,7 @@
<Q43CashDeposit override-field=""/>
</Group>
<Group>
<HHMEMB>0</HHMEMB>
<HHMEMB>1</HHMEMB>
<TOTADULT>0</TOTADULT>
<TOTCHILD>0</TOTCHILD>
</Group>

6
spec/models/sales_log_spec.rb

@ -283,6 +283,12 @@ RSpec.describe SalesLog, type: :model do
expect(record_from_db["hhmemb"]).to eq(6)
end
it "correctly derives and saves hhmemb if it's a joint purchase" do
sales_log.update!(jointpur: 2, jointmore: 2)
record_from_db = ActiveRecord::Base.connection.execute("select hhmemb from sales_logs where id=#{sales_log.id}").to_a[0]
expect(record_from_db["hhmemb"]).to eq(5)
end
it "correctly derives and saves totchild" do
record_from_db = ActiveRecord::Base.connection.execute("select totchild from sales_logs where id=#{sales_log.id}").to_a[0]
expect(record_from_db["totchild"]).to eq(2)

Loading…
Cancel
Save