diff --git a/app/models/derived_variables/lettings_log_variables.rb b/app/models/derived_variables/lettings_log_variables.rb index 9ea820dc0..360dbf03b 100644 --- a/app/models/derived_variables/lettings_log_variables.rb +++ b/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 diff --git a/app/models/form/lettings/pages/referral_register_la.rb b/app/models/form/lettings/pages/referral_register_la.rb index ae1266b8e..ee570f1cb 100644 --- a/app/models/form/lettings/pages/referral_register_la.rb +++ b/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 diff --git a/app/models/form/lettings/questions/referral_register.rb b/app/models/form/lettings/questions/referral_register.rb index 214748323..d6e184758 100644 --- a/app/models/form/lettings/questions/referral_register.rb +++ b/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