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")