Browse Source

CLDC-4402: lettings logic

CLDC-4402-audit-start-year-2024-or-later-usage
samyou-softwire 1 week ago
parent
commit
d0e414e791
  1. 26
      app/models/derived_variables/lettings_log_variables.rb
  2. 3
      app/models/lettings_log.rb
  3. 11
      spec/shared/shared_examples_for_derived_fields.rb

26
app/models/derived_variables/lettings_log_variables.rb

@ -68,7 +68,7 @@ module DerivedVariables::LettingsLogVariables
self.has_benefits = get_has_benefits self.has_benefits = get_has_benefits
self.tshortfall_known = 0 if tshortfall self.tshortfall_known = 0 if tshortfall
self.nocharge = household_charge # Nocharge: 0 = No, 1 = Yes, Household charge: 0 = Yes, 1 = No self.nocharge = household_charge # Nocharge: 0 = No, 1 = Yes, Household charge: 0 = Yes, 1 = No
if form.start_year_2024_or_later? && is_bedsit? if is_bedsit?
self.beds = 1 self.beds = 1
end end
if bedsit_changed_to_not_bedsit? # make user answer num of bedrooms again if bedsit_changed_to_not_bedsit? # make user answer num of bedrooms again
@ -127,18 +127,16 @@ module DerivedVariables::LettingsLogVariables
self.previous_la_known = nil if is_renewal? self.previous_la_known = nil if is_renewal?
end end
if form.start_year_2024_or_later? if manual_address_entry_selected
if manual_address_entry_selected self.uprn_known = 0
self.uprn_known = 0 self.uprn_selection = nil
self.uprn_selection = nil self.uprn_confirmed = nil
self.uprn_confirmed = nil else
else self.uprn_confirmed = 1 if uprn.present?
self.uprn_confirmed = 1 if uprn.present? self.uprn_known = 1 if uprn.present?
self.uprn_known = 1 if uprn.present? reset_address_fields! if uprn.blank?
reset_address_fields! if uprn.blank? if uprn_changed?
if uprn_changed? self.uprn_selection = uprn
self.uprn_selection = uprn
end
end end
end end
@ -274,7 +272,7 @@ private
self.wchair = nil self.wchair = nil
self.location_id = nil self.location_id = nil
end end
if form.start_year_2024_or_later? && unittype_gn_changed? && unittype_gn_was == 2 if unittype_gn_changed? && unittype_gn_was == 2
self.beds = nil self.beds = nil
end end
end end

3
app/models/lettings_log.rb

@ -438,7 +438,7 @@ class LettingsLog < Log
end end
def is_beds_inferred? def is_beds_inferred?
form.start_year_2024_or_later? && is_bedsit? is_bedsit?
end end
def bedsit_changed_to_not_bedsit? def bedsit_changed_to_not_bedsit?
@ -1017,7 +1017,6 @@ private
def should_process_address_change? def should_process_address_change?
return unless uprn_selection || select_best_address_match return unless uprn_selection || select_best_address_match
return unless startdate return unless startdate
return unless form.start_year_2024_or_later?
return if skip_address_lookup return if skip_address_lookup
if select_best_address_match if select_best_address_match

11
spec/shared/shared_examples_for_derived_fields.rb

@ -23,16 +23,5 @@ RSpec.shared_examples "shared examples for derived fields" do |log_type|
.and change(log, :uprn).from("1").to(nil) .and change(log, :uprn).from("1").to(nil)
.and change(log, :uprn_confirmed).from(0).to(nil) .and change(log, :uprn_confirmed).from(0).to(nil)
end end
it "does not affect older logs with uprn_confirmed == 0" do
Timecop.freeze(Time.zone.local(2023, 4, 1)) do
log = FactoryBot.build(log_type, uprn_known: 0, uprn: nil, uprn_confirmed: 0)
allow(log.form).to receive(:start_year_2024_or_later?).and_return(false)
expect { log.set_derived_fields! }.to not_change(log, :uprn_known)
.and not_change(log, :uprn)
.and not_change(log, :uprn_confirmed)
end
Timecop.return
end
end end
end end

Loading…
Cancel
Save