From f0bf950abe9d692207c57bde36fe057c1e2a1f16 Mon Sep 17 00:00:00 2001 From: samyou-softwire Date: Wed, 1 Apr 2026 13:58:35 +0100 Subject: [PATCH] CLDC-4250: Add a new validation for universal credit and household income sources --- app/models/lettings_log.rb | 21 +++++++------------ .../validations/financial_validations.rb | 9 ++++++++ .../validations/lettings/financial.en.yml | 3 +++ 3 files changed, 19 insertions(+), 14 deletions(-) diff --git a/app/models/lettings_log.rb b/app/models/lettings_log.rb index 0ac9f728d..2e6b800eb 100644 --- a/app/models/lettings_log.rb +++ b/app/models/lettings_log.rb @@ -542,7 +542,7 @@ class LettingsLog < Log reason == 1 end - def receives_housing_benefit_only? + def receives_housing_benefit? # 1: Housing benefit hb == 1 end @@ -551,13 +551,7 @@ class LettingsLog < Log hb == 3 end - # Option 8 has been removed starting from 22/23 - def receives_housing_benefit_and_universal_credit? - # 8: Housing benefit and Universal Credit (without housing element) - hb == 8 - end - - def receives_uc_with_housing_element_excl_housing_benefit? + def receives_universal_credit # 6: Universal Credit with housing element (excluding housing benefit) hb == 6 end @@ -572,12 +566,11 @@ class LettingsLog < Log end def receives_housing_related_benefits? - if collection_start_year <= 2021 - receives_housing_benefit_only? || receives_uc_with_housing_element_excl_housing_benefit? || - receives_housing_benefit_and_universal_credit? - else - receives_housing_benefit_only? || receives_uc_with_housing_element_excl_housing_benefit? - end + receives_housing_benefit? || receives_universal_credit + end + + def no_household_income_comes_from_benefits? + benefits == 3 end def local_housing_referral? diff --git a/app/models/validations/financial_validations.rb b/app/models/validations/financial_validations.rb index 3dd6890be..82a5550f4 100644 --- a/app/models/validations/financial_validations.rb +++ b/app/models/validations/financial_validations.rb @@ -175,6 +175,15 @@ module Validations::FinancialValidations end end + def validate_housing_universal_credit_matches_income_proportion(record) + return unless record.hb && record.benefits && record.form.start_year_2026_or_later? + + if record.receives_universal_credit && record.no_household_income_comes_from_benefits? + record.errors.add :hb, I18n.t("validations.lettings.financial.hb.benefits_received_not_match_income_source") + record.errors.add :benefits, I18n.t("validations.lettings.financial.benefits.benefits_received_not_match_income_source") + end + end + private def validate_charges(record) diff --git a/config/locales/validations/lettings/financial.en.yml b/config/locales/validations/lettings/financial.en.yml index d91610602..bc731d696 100644 --- a/config/locales/validations/lettings/financial.en.yml +++ b/config/locales/validations/lettings/financial.en.yml @@ -12,6 +12,7 @@ en: outstanding_amount_not_expected: "Answer must be ‘yes’ as you have answered the outstanding amount question." benefits: part_or_full_time: "Answer cannot be ‘all’ for income from Universal Credit, state pensions or benefits if the tenant or their partner works part-time or full-time." + benefits_received_not_match_income_source: "You answered that none of the household’s income is from Universal Credit, state pensions or benefits, but also that the tenant is likely to be receiving Universal Credit." earnings: over_hard_max: "The household’s income cannot be greater than %{hard_max} per week given the household’s working situation." under_hard_min: "The household’s income cannot be less than %{hard_min} per week given the household’s working situation." @@ -87,3 +88,5 @@ en: needstype: rent_below_hard_min: "Rent is below the absolute minimum expected for a property of this type based on this lettings type." rent_above_hard_max: "Rent is higher than the absolute maximum expected for a property of this type based on this lettings type." + hb: + benefits_received_not_match_income_source: "You answered that none of the household’s income is from Universal Credit, state pensions or benefits, but also that the tenant is likely to be receiving Universal Credit."