Browse Source

move validation on child income to financial validations to stop it being triggered on lettings logs, minor amendments to tests broken by changes

pull/1101/head
Arthur Campbell 3 years ago
parent
commit
1c72c6bb21
  1. 28
      app/models/validations/sales/financial_validations.rb
  2. 8
      app/models/validations/shared_validations.rb
  3. 1
      spec/models/sales_log_spec.rb

28
app/models/validations/sales/financial_validations.rb

@ -25,10 +25,10 @@ module Validations::Sales::FinancialValidations
end
def validate_combined_income(record)
return unless record.ecstat1 && record.income1 && record.ecstat2 && record.income2 && record.la && record.ownershipsch == 1
return unless record.income1 && record.income2 && record.la && record.ownershipsch == 1
combined_income = record.income1 + record.income2
relevant_fields = %i[income1 ecstat1 income2 ecstat2 ownershipsch la postcode_full]
relevant_fields = %i[income1 income2 ownershipsch la postcode_full]
if record.london_property? && combined_income > 90_000
relevant_fields.each { |field| record.errors.add field, I18n.t("validations.financial.income.combined_over_hard_max", hard_max: 90_000) }
elsif record.property_not_in_london? && combined_income > 80_000
@ -52,6 +52,20 @@ module Validations::Sales::FinancialValidations
end
end
def validate_child_income(record)
return unless record.income2 && (record.relat2 || record.ecstat2)
if record.income2.positive?
if is_relationship_child? record.relat2
record.errors.add :relat2, I18n.t("validations.financial.income.child_has_income")
record.errors.add :income2, I18n.t("validations.financial.income.child_has_income")
elsif is_economic_status_child? record.ecstat2
record.errors.add :ecstat2, I18n.t("validations.financial.income.child_has_income")
record.errors.add :income2, I18n.t("validations.financial.income.child_has_income")
end
end
end
def validate_percentage_owned_not_too_much_if_older_person(record)
return unless record.old_persons_shared_ownership? && record.stairowned
@ -60,4 +74,14 @@ module Validations::Sales::FinancialValidations
record.errors.add :type, I18n.t("validations.financial.staircasing.older_person_percentage_owned_maximum_75")
end
end
private
def is_relationship_child?(relationship)
relationship == "C"
end
def is_economic_status_child?(economic_status)
economic_status == 9
end
end

8
app/models/validations/shared_validations.rb

@ -139,12 +139,4 @@ private
record.errors.add question.id.to_sym, I18n.t("validations.numeric.above_min", field:, min:)
end
end
def is_relationship_child?(relationship)
relationship == "C"
end
def is_economic_status_child?(economic_status)
economic_status == 9
end
end

1
spec/models/sales_log_spec.rb

@ -261,6 +261,7 @@ RSpec.describe SalesLog, type: :model do
relat4: "X",
relat5: "X",
relat6: "P",
income2: 0,
ecstat2: 9,
ecstat3: 7,
age1: 47,

Loading…
Cancel
Save