Browse Source

CLDC-4188: Infer referral_register for renewals

needs a new dependencies array for 2026

this handles inferring as well as clearing inferred answers if the prior answer changes
pull/3153/head
Samuel Young 3 weeks ago
parent
commit
f7eef8a5fd
  1. 53
      app/models/derived_variables/lettings_log_variables.rb
  2. 2
      app/models/form/lettings/pages/referral_register_la.rb
  3. 4
      app/models/form/lettings/questions/referral_register.rb

53
app/models/derived_variables/lettings_log_variables.rb

@ -33,7 +33,7 @@ module DerivedVariables::LettingsLogVariables
def set_derived_fields!
clear_inapplicable_derived_values!
set_encoded_derived_values!(DEPENDENCIES)
set_encoded_derived_values!(dependencies)
if rsnvac.present?
self.newprop = has_first_let_vacancy_reason? ? 1 : 2
@ -177,7 +177,54 @@ module DerivedVariables::LettingsLogVariables
private
DEPENDENCIES = [
def dependencies
if form.start_year_2026_or_later?
DEPENDENCIES_2026
else
DEPENDENCIES_PRE_2026
end
end
DEPENDENCIES_2026 = [
{
conditions: {
renewal: 1,
},
derived_values: {
referral_register: 1, # new in 2026
waityear: 2,
offered: 0,
rsnvac: 14,
first_time_property_let_as_social_housing: 0,
},
},
{
conditions: {
net_income_known: 2,
},
derived_values: {
incref: 1,
},
},
{
conditions: {
net_income_known: 0,
},
derived_values: {
incref: 0,
},
},
{
conditions: {
net_income_known: 1,
},
derived_values: {
incref: 2,
},
},
].freeze
DEPENDENCIES_PRE_2026 = [
{
conditions: {
renewal: 1,
@ -218,7 +265,7 @@ private
].freeze
def clear_inapplicable_derived_values!
reset_invalidated_derived_values!(DEPENDENCIES)
reset_invalidated_derived_values!(dependencies)
if (startdate_changed? || renewal_changed?) && (renewal_was == 1 && startdate_was&.between?(Time.zone.local(2021, 4, 1), Time.zone.local(2022, 3, 31)))
self.underoccupation_benefitcap = nil
end

2
app/models/form/lettings/pages/referral_register_la.rb

@ -10,6 +10,6 @@ class Form::Lettings::Pages::ReferralRegisterLa < ::Form::Page
end
def routed_to?(log, _current_user)
log.owning_organisation&.la?
log.owning_organisation&.la? && !log.is_renewal?
end
end

4
app/models/form/lettings/questions/referral_register.rb

@ -38,5 +38,9 @@ class Form::Lettings::Questions::ReferralRegister < ::Form::Question
end
end
def derived?(log)
log.is_renewal?
end
QUESTION_NUMBER_FROM_YEAR = { 2026 => 84 }.freeze
end

Loading…
Cancel
Save