From 342594cf4fdadd7e4cf8d506610d08d23db05977 Mon Sep 17 00:00:00 2001 From: Samuel Young Date: Fri, 5 Dec 2025 15:44:02 +0000 Subject: [PATCH] CLDC-4133: Use linked la if available for supported housing logs calling record.la will automatically map old ECodes to newer ones, so no need to check the location directly without this locations still tied to old ecodes could not be assigned logs, despite being valid --- .../validations/property_validations.rb | 32 ++++++------------- 1 file changed, 9 insertions(+), 23 deletions(-) diff --git a/app/models/validations/property_validations.rb b/app/models/validations/property_validations.rb index ed155da95..c5ed9728a 100644 --- a/app/models/validations/property_validations.rb +++ b/app/models/validations/property_validations.rb @@ -55,11 +55,10 @@ module Validations::PropertyValidations # see also: this validation in sales/property_validations.rb def validate_la_in_england(record) return unless record.form.start_year_2025_or_later? + return unless record.la + return if record.la.in?(LocalAuthority.england.pluck(:code)) if record.is_general_needs? - return unless record.la - return if record.la.in?(LocalAuthority.england.pluck(:code)) - record.errors.add :la, I18n.t("validations.lettings.property.la.not_in_england") record.errors.add :postcode_full, I18n.t("validations.lettings.property.postcode_full.not_in_england") record.errors.add :uprn, I18n.t("validations.lettings.property.uprn.not_in_england") @@ -70,9 +69,6 @@ module Validations::PropertyValidations record.errors.add :startdate, I18n.t("validations.lettings.property.startdate.postcode_not_in_england") end elsif record.is_supported_housing? - return unless record.location - return if record.location.location_code.in?(LocalAuthority.england.pluck(:code)) - record.errors.add :location_id, I18n.t("validations.lettings.property.location_id.not_in_england") record.errors.add :scheme_id, I18n.t("validations.lettings.property.scheme_id.not_in_england") record.errors.add :startdate, I18n.t("validations.lettings.property.startdate.location_not_in_england") @@ -82,32 +78,22 @@ module Validations::PropertyValidations # see also: this validation in sales/property_validations.rb def validate_la_is_active(record) return unless record.form.start_year_2025_or_later? && record.startdate.present? + return unless record.la - if record.is_general_needs? - return unless record.la - - la = LocalAuthority.england.find_by(code: record.la) + la = LocalAuthority.england.find_by(code: record.la) - # will be caught by the not in england validation - return if la.nil? - # only compare end date if it exists - return if record.startdate >= la.start_date && (la.end_date.nil? || record.startdate <= la.end_date) + # will be caught by the not in england validation + return if la.nil? + # only compare end date if it exists + return if record.startdate >= la.start_date && (la.end_date.nil? || record.startdate <= la.end_date) + if record.is_general_needs? record.errors.add :la, I18n.t("validations.lettings.property.la.la_not_valid_for_date", la: la.name) record.errors.add :postcode_full, I18n.t("validations.lettings.property.postcode_full.la_not_valid_for_date", la: la.name) record.errors.add :uprn, I18n.t("validations.lettings.property.uprn.la_not_valid_for_date", la: la.name) record.errors.add :uprn_selection, I18n.t("validations.lettings.property.uprn_selection.la_not_valid_for_date", la: la.name) record.errors.add :startdate, I18n.t("validations.lettings.property.startdate.la_not_valid_for_date", la: la.name) elsif record.is_supported_housing? - return unless record.location - - la = LocalAuthority.england.find_by(code: record.location.location_code) - - # will be caught by the not in england validation - return if la.nil? - # only compare end date if it exists - return if record.startdate >= la.start_date && (la.end_date.nil? || record.startdate <= la.end_date) - record.errors.add :location_id, I18n.t("validations.lettings.property.location_id.la_not_valid_for_date", la: la.name) record.errors.add :scheme_id, I18n.t("validations.lettings.property.scheme_id.la_not_valid_for_date", la: la.name) record.errors.add :startdate, I18n.t("validations.lettings.property.startdate.la_not_valid_for_date", la: la.name)