diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index 47ca80705..6838346d1 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -714,9 +714,17 @@ class LettingsLog < Log def process_postcode_changes! self.postcode_full = upcase_and_remove_whitespace(postcode_full) + + if is_renewal? + self.ppostcode_full = upcase_and_remove_whitespace(postcode_full) + end + return if postcode_full.blank? self.postcode_known = 1 + if is_renewal? + self.ppcodenk = 0 + end inferred_la = get_inferred_la(postcode_full) self.is_la_inferred = inferred_la.present? self.la = inferred_la if inferred_la.present? diff --git a/spec/models/lettings_log_derived_fields_spec.rb b/spec/models/lettings_log_derived_fields_spec.rb index e4edb194e..b2979ca61 100644 --- a/spec/models/lettings_log_derived_fields_spec.rb +++ b/spec/models/lettings_log_derived_fields_spec.rb @@ -1016,11 +1016,13 @@ RSpec.describe LettingsLog, type: :model do postcode = "SW1A 1AA" log.assign_attributes(postcode_known: 1, postcode_full: postcode, renewal: 1) - expect { log.send :process_postcode_changes! }.to change(log, :la).to(expected_la) - expect { log.set_derived_fields! } - .to change(log, :ppostcode_full).to(postcode) + expect { log.send :process_postcode_changes! } + .to change(log, :la).to(expected_la) + .and change(log, :ppostcode_full).to(postcode) .and change(log, :ppcodenk).to(0) - .and change(log, :prevloc).to(expected_la) + + expect { log.set_derived_fields! } + .to change(log, :prevloc).to(expected_la) end it "clears values for previous location and related fields when log is a renewal and current values are cleared" do