From c7441f5d61b39a9dec74bb1358362dba7ac5a8bb Mon Sep 17 00:00:00 2001 From: natdeanlewissoftwire Date: Thu, 12 Jan 2023 12:13:00 +0000 Subject: [PATCH] feat: add sales partner count validation --- .../form/sales/questions/buyer2_relationship_to_buyer1.rb | 2 +- app/models/validations/household_validations.rb | 4 ---- app/models/validations/sales/household_validations.rb | 7 +++++++ app/models/validations/shared_validations.rb | 4 ++++ 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/app/models/form/sales/questions/buyer2_relationship_to_buyer1.rb b/app/models/form/sales/questions/buyer2_relationship_to_buyer1.rb index a37605332..5a2b51ba7 100644 --- a/app/models/form/sales/questions/buyer2_relationship_to_buyer1.rb +++ b/app/models/form/sales/questions/buyer2_relationship_to_buyer1.rb @@ -10,7 +10,7 @@ class Form::Sales::Questions::Buyer2RelationshipToBuyer1 < ::Form::Question end ANSWER_OPTIONS = { - "P" => { "value" => "Parent" }, + "P" => { "value" => "Partner" }, "C" => { "value" => "Child", "hint" => "Must be eligible for child benefit, aged under 16 or under 20 if still in full-time education." }, "X" => { "value" => "Other" }, "R" => { "value" => "Buyer prefers not to say" }, diff --git a/app/models/validations/household_validations.rb b/app/models/validations/household_validations.rb index 7053d3571..42f8f6ecb 100644 --- a/app/models/validations/household_validations.rb +++ b/app/models/validations/household_validations.rb @@ -202,10 +202,6 @@ private economic_status == 10 end - def tenant_is_partner?(relationship) - relationship == "P" - end - def tenant_is_child?(relationship) relationship == "C" end diff --git a/app/models/validations/sales/household_validations.rb b/app/models/validations/sales/household_validations.rb index 940c3d6c7..4335d67e7 100644 --- a/app/models/validations/sales/household_validations.rb +++ b/app/models/validations/sales/household_validations.rb @@ -6,4 +6,11 @@ module Validations::Sales::HouseholdValidations record.errors.add :hholdcount, I18n.t("validations.numeric.valid", field: "Number of other people living in the property", min: 0, max: 4) end end + + def validate_partner_count(record) + partner_count = (2..6).count { |n| tenant_is_partner?(record["relat#{n}"]) } + if partner_count > 1 + record.errors.add :base, I18n.t("validations.household.relat.one_partner") + end + end end diff --git a/app/models/validations/shared_validations.rb b/app/models/validations/shared_validations.rb index 2694fd743..6ef66e3cd 100644 --- a/app/models/validations/shared_validations.rb +++ b/app/models/validations/shared_validations.rb @@ -68,4 +68,8 @@ 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 tenant_is_partner?(relationship) + relationship == "P" + end end