Browse Source

add mortgage to derived variables so that mortgage value is set to 0 if a mortgage is not being used in the sale

pull/1214/head
Arthur Campbell 4 years ago
parent
commit
2db9d9f9f3
  1. 3
      app/models/derived_variables/sales_log_variables.rb
  2. 5
      app/models/sales_log.rb
  3. 6
      spec/models/sales_log_spec.rb

3
app/models/derived_variables/sales_log_variables.rb

@ -15,6 +15,9 @@ module DerivedVariables::SalesLogVariables
if mscharge_known.present? && mscharge_known.zero?
self.mscharge = 0
end
if mortgage_not_used?
self.mortgage = 0
end
self.pcode1, self.pcode2 = postcode_full.split(" ") if postcode_full.present?
self.totchild = total_child
self.totadult = total_adult + total_elder

5
app/models/sales_log.rb

@ -28,7 +28,6 @@ class SalesLog < Log
before_validation :process_previous_postcode_changes!, if: :ppostcode_full_changed?
before_validation :reset_location_fields!, unless: :postcode_known?
before_validation :reset_previous_location_fields!, unless: :previous_postcode_known?
before_validation :set_mortgage_value_zero, if: :mortgage_not_used?
before_validation :set_derived_fields!
scope :filter_by_year, ->(year) { where(saledate: Time.zone.local(year.to_i, 4, 1)...Time.zone.local(year.to_i + 1, 4, 1)) }
@ -187,10 +186,6 @@ class SalesLog < Log
mortgageused == 2
end
def set_mortgage_value_zero
self.mortgage = 0
end
def process_postcode_changes!
self.postcode_full = upcase_and_remove_whitespace(postcode_full)
process_postcode(postcode_full, "pcodenk", "is_la_inferred", "la")

6
spec/models/sales_log_spec.rb

@ -140,6 +140,12 @@ RSpec.describe SalesLog, type: :model do
expect(record_from_db["pcode1"]).to eq("W6")
expect(record_from_db["pcode2"]).to eq("0SP")
end
it "derives a mortgage value of 0 when mortgage is not used" do
sales_log.update!(mortgageused: 2)
record_from_db = ActiveRecord::Base.connection.execute("select mortgage from sales_logs where id=#{sales_log.id}").to_a[0]
expect(record_from_db["mortgage"]).to eq(0.0)
end
end
context "when saving addresses" do

Loading…
Cancel
Save