Browse Source

CLDC-3676: add 2024 soft validation behaviour back

CLDC-3676-remove-all-pre-2025-validations
samyou-softwire 2 weeks ago
parent
commit
d5717659f2
  1. 24
      app/models/validations/sales/soft_validations.rb

24
app/models/validations/sales/soft_validations.rb

@ -2,6 +2,14 @@ module Validations::Sales::SoftValidations
include Validations::Sales::SaleInformationValidations include Validations::Sales::SaleInformationValidations
ALLOWED_INCOME_RANGES_SALES = { ALLOWED_INCOME_RANGES_SALES = {
2024 => {
1 => OpenStruct.new(soft_min: 5000),
2 => OpenStruct.new(soft_min: 1500),
3 => OpenStruct.new(soft_min: 1000),
5 => OpenStruct.new(soft_min: 2000),
0 => OpenStruct.new(soft_min: 2000),
},
2025 => {
1 => OpenStruct.new(soft_min: 13_400, soft_max: 150_000), 1 => OpenStruct.new(soft_min: 13_400, soft_max: 150_000),
2 => OpenStruct.new(soft_min: 2_600, soft_max: 80_000), 2 => OpenStruct.new(soft_min: 2_600, soft_max: 80_000),
3 => OpenStruct.new(soft_min: 2_080, soft_max: 30_000), 3 => OpenStruct.new(soft_min: 2_080, soft_max: 30_000),
@ -12,6 +20,7 @@ module Validations::Sales::SoftValidations
8 => OpenStruct.new(soft_min: 520, soft_max: 150_000), 8 => OpenStruct.new(soft_min: 520, soft_max: 150_000),
9 => OpenStruct.new(soft_min: 520, soft_max: 150_000), 9 => OpenStruct.new(soft_min: 520, soft_max: 150_000),
0 => OpenStruct.new(soft_min: 520, soft_max: 150_000), 0 => OpenStruct.new(soft_min: 520, soft_max: 150_000),
},
}.freeze }.freeze
def income1_outside_soft_range_for_ecstat? def income1_outside_soft_range_for_ecstat?
@ -67,7 +76,7 @@ module Validations::Sales::SoftValidations
end end
def savings_over_soft_max? def savings_over_soft_max?
soft_max = type == 24 ? 200_000 : 100_000 soft_max = form.start_year_2025_or_later? && type == 24 ? 200_000 : 100_000
savings && savings > soft_max savings && savings > soft_max
end end
@ -120,7 +129,7 @@ module Validations::Sales::SoftValidations
def grant_outside_common_range? def grant_outside_common_range?
return unless grant && type && saledate return unless grant && type && saledate
return if [21, 8].include?(type) return if form.start_year_2024_or_later? && [21, 8].include?(type)
!grant.between?(9_000, 16_000) !grant.between?(9_000, 16_000)
end end
@ -188,9 +197,10 @@ private
def income_under_soft_min?(income, ecstat) def income_under_soft_min?(income, ecstat)
return unless income && ecstat return unless income && ecstat
return false unless ALLOWED_INCOME_RANGES_SALES[ecstat] income_ranges = form.start_year_2025_or_later? ? ALLOWED_INCOME_RANGES_SALES[2025] : ALLOWED_INCOME_RANGES_SALES[2024]
return false unless income_ranges[ecstat]
income < ALLOWED_INCOME_RANGES_SALES[ecstat][:soft_min] income < income_ranges[ecstat][:soft_min]
end end
def income1_over_soft_max_for_ecstat? def income1_over_soft_max_for_ecstat?
@ -202,11 +212,11 @@ private
end end
def income_over_soft_max?(income, ecstat) def income_over_soft_max?(income, ecstat)
return unless income && ecstat return unless income && ecstat && form.start_year_2025_or_later?
return false unless ALLOWED_INCOME_RANGES_SALES[ecstat] return false unless ALLOWED_INCOME_RANGES_SALES[2025][ecstat]
income > ALLOWED_INCOME_RANGES_SALES[ecstat][:soft_max] income > ALLOWED_INCOME_RANGES_SALES[2025][ecstat][:soft_max]
end end
def income_over_discounted_sale_soft_max?(income) def income_over_discounted_sale_soft_max?(income)

Loading…
Cancel
Save