diff --git a/app/models/derived_variables/sales_log_variables.rb b/app/models/derived_variables/sales_log_variables.rb index 034816090..a527ed3f0 100644 --- a/app/models/derived_variables/sales_log_variables.rb +++ b/app/models/derived_variables/sales_log_variables.rb @@ -15,5 +15,6 @@ module DerivedVariables::SalesLogVariables if mscharge_known.present? && mscharge_known.zero? self.mscharge = 0 end + self.pcode1, self.pcode2 = postcode_full.split(" ") if postcode_full.present? end end diff --git a/spec/models/sales_log_spec.rb b/spec/models/sales_log_spec.rb index c470bc5d3..bad72db3b 100644 --- a/spec/models/sales_log_spec.rb +++ b/spec/models/sales_log_spec.rb @@ -127,6 +127,13 @@ RSpec.describe SalesLog, type: :model do record_from_db = ActiveRecord::Base.connection.execute("select deposit from sales_logs where id=#{sales_log.id}").to_a[0] expect(record_from_db["deposit"]).to eq(nil) end + + it "correctly derives and saves pcode1 and pcode1 and pcode2" do + sales_log.update!(postcode_full: "W6 0SP") + record_from_db = ActiveRecord::Base.connection.execute("select pcode1, pcode2 from sales_logs where id=#{sales_log.id}").to_a[0] + expect(record_from_db["pcode1"]).to eq("W6") + expect(record_from_db["pcode2"]).to eq("0SP") + end end context "when saving addresses" do