From 38116ef5790e0b4d4e73bd8411259af545354bb7 Mon Sep 17 00:00:00 2001 From: Manny Dinssa <44172848+Dinssa@users.noreply.github.com> Date: Mon, 4 Nov 2024 15:25:58 +0000 Subject: [PATCH] Move split shared validate partner count into lettings and sales methods --- app/models/validations/household_validations.rb | 9 ++++++++- .../validations/sales/household_validations.rb | 9 ++++++++- app/models/validations/shared_validations.rb | 15 --------------- 3 files changed, 16 insertions(+), 17 deletions(-) diff --git a/app/models/validations/household_validations.rb b/app/models/validations/household_validations.rb index 8fe940ae5..f2ffd1401 100644 --- a/app/models/validations/household_validations.rb +++ b/app/models/validations/household_validations.rb @@ -52,7 +52,14 @@ module Validations::HouseholdValidations end def validate_partner_count(record) - shared_validate_partner_count(record, 8) + return if record.form.start_year_after_2024? + + partner_numbers = (2..8).select { |n| person_is_partner?(record["relat#{n}"]) } + if partner_numbers.count > 1 + partner_numbers.each do |n| + record.errors.add "relat#{n}", I18n.t("validations.lettings.household.relat.one_partner") + end + end end def validate_person_1_economic(record) diff --git a/app/models/validations/sales/household_validations.rb b/app/models/validations/sales/household_validations.rb index fb1ea65c2..8c0705bac 100644 --- a/app/models/validations/sales/household_validations.rb +++ b/app/models/validations/sales/household_validations.rb @@ -2,7 +2,14 @@ module Validations::Sales::HouseholdValidations include Validations::SharedValidations def validate_partner_count(record) - shared_validate_partner_count(record, 6) + return if record.form.start_year_after_2024? + + partner_numbers = (2..6).select { |n| person_is_partner?(record["relat#{n}"]) } + if partner_numbers.count > 1 + partner_numbers.each do |n| + record.errors.add "relat#{n}", I18n.t("validations.sales.household.relat.one_partner") + end + end end def validate_buyers_living_in_property(record) diff --git a/app/models/validations/shared_validations.rb b/app/models/validations/shared_validations.rb index 7d824941d..ec52cfeef 100644 --- a/app/models/validations/shared_validations.rb +++ b/app/models/validations/shared_validations.rb @@ -88,21 +88,6 @@ module Validations::SharedValidations { scope: status, date: date&.to_formatted_s(:govuk_date), deactivation_date: closest_reactivation&.deactivation_date&.to_formatted_s(:govuk_date) } end - def shared_validate_partner_count(record, max_people) - return if record.form.start_year_after_2024? - - partner_numbers = (2..max_people).select { |n| person_is_partner?(record["relat#{n}"]) } - if partner_numbers.count > 1 - partner_numbers.each do |n| - if record.sales? - record.errors.add "relat#{n}", I18n.t("validations.sales.household.relat.one_partner") - else - record.errors.add "relat#{n}", I18n.t("validations.lettings.household.relat.one_partner") - end - end - end - end - def date_valid?(question, record) if record[question].is_a?(ActiveSupport::TimeWithZone) && record[question].year.zero? record.errors.add question, I18n.t("validations.shared.date.invalid_date")