From 4b7bfd34628a6d846cb589f5c72ee6c5cffbd005 Mon Sep 17 00:00:00 2001 From: Samuel Young Date: Thu, 29 Jan 2026 15:44:18 +0000 Subject: [PATCH] CLDC-4188: Add validation between prevten and referral_register block two other validations from previous years --- app/models/lettings_log.rb | 8 ++++++-- app/models/validations/household_validations.rb | 10 ++++++++-- config/locales/validations/lettings/household.en.yml | 4 ++++ 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index c31d2173f..347150693 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -377,8 +377,12 @@ class LettingsLog < Log end def is_internal_transfer? - # 1: Internal Transfer - referral == 1 + if form.start_year_2026_or_later? + referral_register == 2 + else + # 1: Internal Transfer + referral == 1 + end end def is_from_prp_only_housing_register_or_waiting_list? diff --git a/app/models/validations/household_validations.rb b/app/models/validations/household_validations.rb index 8ba58ba2b..f29ad7877 100644 --- a/app/models/validations/household_validations.rb +++ b/app/models/validations/household_validations.rb @@ -162,7 +162,7 @@ module Validations::HouseholdValidations # 27 Owner occupation (low-cost home ownership) # 28 Living with Friends or Family # 29 Prison / Approved Probation Hostel - if record.is_internal_transfer? && [3, 4, 7, 10, 13, 14, 19, 23, 24, 25, 26, 27, 28, 29].include?(record.prevten) + if record.is_internal_transfer? && [3, 4, 7, 10, 13, 14, 19, 23, 24, 25, 26, 27, 28, 29].include?(record.prevten) && !record.form.start_year_2026_or_later? label = record.form.get_question("prevten", record).present? ? record.form.get_question("prevten", record).label_from_value(record.prevten) : "" record.errors.add :prevten, :internal_transfer_non_social_housing, message: I18n.t("validations.lettings.household.prevten.internal_transfer", prevten: label) record.errors.add :referral, :internal_transfer_non_social_housing, message: I18n.t("validations.lettings.household.referral.prevten_invalid", prevten: label) @@ -172,7 +172,13 @@ module Validations::HouseholdValidations def validate_referral(record) return unless record.owning_organisation - if record.is_internal_transfer? && record.owning_organisation.provider_type == "PRP" && record.is_prevten_la_general_needs? + if record.form.start_year_2026_or_later? + if record.is_internal_transfer? && record.owning_organisation.la? && ![30, 31, 32, 33, 35, 38, 6].include?(record.prevten) + label = record.form.get_question("prevten", record).present? ? record.form.get_question("prevten", record).label_from_value(record.prevten) : "" + record.errors.add :prevten, message: I18n.t("validations.lettings.household.prevten.general_needs.internal_transfer", prevten: label) + record.errors.add :referral_register, message: I18n.t("validations.lettings.household.referral.general_needs.internal_transfer", prevten: label) + end + elsif record.is_internal_transfer? && record.owning_organisation.provider_type == "PRP" && record.is_prevten_la_general_needs? record.errors.add :prevten, :internal_transfer_fixed_or_lifetime, message: I18n.t("validations.lettings.household.prevten.la_general_needs.internal_transfer") record.errors.add :referral, :internal_transfer_fixed_or_lifetime, message: I18n.t("validations.lettings.household.referral.la_general_needs.internal_transfer") end diff --git a/config/locales/validations/lettings/household.en.yml b/config/locales/validations/lettings/household.en.yml index 297cbed02..2b159a1c4 100644 --- a/config/locales/validations/lettings/household.en.yml +++ b/config/locales/validations/lettings/household.en.yml @@ -98,8 +98,12 @@ en: internal_transfer: "Answer cannot be %{prevten} as this tenancy is an internal transfer." la_general_needs: internal_transfer: "Answer cannot be a fixed-term or lifetime local authority general needs tenancy as it’s an internal transfer and a private registered provider is on the tenancy agreement." + general_needs: + internal_transfer: "Answer cannot be %{prevten} as this tenancy is an internal transfer. Internal transfers are for existing social tenants only, your answer to where the household was immediately before this letting shows the tenant was not in the social sector immediately prior to this letting." referral: prevten_invalid: "Answer cannot be internal transfer as the household situation immediately before this letting was %{prevten}." la_general_needs: internal_transfer: "Answer cannot be internal transfer as it’s the same landlord on the tenancy agreement and the household had either a fixed-term or lifetime local authority general needs tenancy immediately before this letting." + general_needs: + internal_transfer: "Answer cannot be internal transfer as the household situation immediately before this letting was %{prevten}. Internal transfers are for existing social tenants only, your answer to where the household was immediately before this letting shows the tenant was not in the social sector immediately prior to this letting."