Browse Source

Update charges hard maximums

pull/1912/head
Kat 3 years ago
parent
commit
13621237f1
  1. 24
      app/models/validations/financial_validations.rb
  2. 24
      config/locales/en.yml
  3. 144
      spec/models/validations/financial_validations_spec.rb

24
app/models/validations/financial_validations.rb

@ -149,32 +149,32 @@ private
CHARGE_MAXIMUMS = { CHARGE_MAXIMUMS = {
scharge: { scharge: {
private_registered_provider: { private_registered_provider: {
general_needs: 155, general_needs: 800,
supported_housing: 480, supported_housing: 800,
}, },
local_authority: { local_authority: {
general_needs: 155, general_needs: 500,
supported_housing: 365, supported_housing: 500,
}, },
}, },
pscharge: { pscharge: {
private_registered_provider: { private_registered_provider: {
general_needs: 30, general_needs: 700,
supported_housing: 200, supported_housing: 700,
}, },
local_authority: { local_authority: {
general_needs: 35, general_needs: 200,
supported_housing: 75, supported_housing: 200,
}, },
}, },
supcharg: { supcharg: {
private_registered_provider: { private_registered_provider: {
general_needs: 40, general_needs: 800,
supported_housing: 465, supported_housing: 800,
}, },
local_authority: { local_authority: {
general_needs: 60, general_needs: 200,
supported_housing: 120, supported_housing: 200,
}, },
}, },
}.freeze }.freeze

24
config/locales/en.yml

@ -369,25 +369,25 @@ en:
less_than_shortfall: "Enter an amount that is more than the shortfall in basic rent" less_than_shortfall: "Enter an amount that is more than the shortfall in basic rent"
scharge: scharge:
private_registered_provider: private_registered_provider:
general_needs: "Enter a value for the service charge between £0 and £155 per week if the landlord is a private registered provider and it is a general needs letting" general_needs: "Enter a value for the service charge between £0 and £88 per week if the landlord is a private registered provider and it is a general needs letting"
supported_housing: "Enter a value for the service charge between £0 and £480 per week if the landlord is a private registered provider and it is a supported housing letting" supported_housing: "Enter a value for the service charge between £0 and £800 per week if the landlord is a private registered provider and it is a supported housing letting"
local_authority: local_authority:
general_needs: "Enter a value for the service charge between £0 and £155 per week if the landlord is a local authority and it is a general needs letting" general_needs: "Enter a value for the service charge between £0 and £500 per week if the landlord is a local authority and it is a general needs letting"
supported_housing: "Enter a value for the service charge between £0 and £365 per week if the landlord is a local authority and it is a supported housing letting" supported_housing: "Enter a value for the service charge between £0 and £500 per week if the landlord is a local authority and it is a supported housing letting"
pscharge: pscharge:
private_registered_provider: private_registered_provider:
general_needs: "Enter a value for the personal service charge between £0 and £30 per week if the landlord is a private registered provider and it is a general needs letting" general_needs: "Enter a value for the personal service charge between £0 and £700 per week if the landlord is a private registered provider and it is a general needs letting"
supported_housing: "Enter a value for the personal service charge between £0 and £200 per week if the landlord is a private registered provider and it is a supported housing letting" supported_housing: "Enter a value for the personal service charge between £0 and £700 per week if the landlord is a private registered provider and it is a supported housing letting"
local_authority: local_authority:
general_needs: "Enter a value for the personal service charge between £0 and £35 per week if the landlord is a local authority and it is a general needs letting" general_needs: "Enter a value for the personal service charge between £0 and £200 per week if the landlord is a local authority and it is a general needs letting"
supported_housing: "Enter a value for the personal service charge between £0 and £75 per week if the landlord is a local authority and it is a supported housing letting" supported_housing: "Enter a value for the personal service charge between £0 and £200 per week if the landlord is a local authority and it is a supported housing letting"
supcharg: supcharg:
private_registered_provider: private_registered_provider:
general_needs: "Enter a value for the support charge between £0 and £40 per week if the landlord is a private registered provider and it is a general needs letting" general_needs: "Enter a value for the support charge between £0 and £800 per week if the landlord is a private registered provider and it is a general needs letting"
supported_housing: "Enter a value for the support charge between £0 and £465 per week if the landlord is a private registered provider and it is a supported housing letting" supported_housing: "Enter a value for the support charge between £0 and £800 per week if the landlord is a private registered provider and it is a supported housing letting"
local_authority: local_authority:
general_needs: "Enter a value for the support charge between £0 and £60 per week if the landlord is a local authority and it is a general needs letting" general_needs: "Enter a value for the support charge between £0 and £200 per week if the landlord is a local authority and it is a general needs letting"
supported_housing: "Enter a value for the support charge between £0 and £120 per week if the landlord is a local authority and it is a supported housing letting" supported_housing: "Enter a value for the support charge between £0 and £200 per week if the landlord is a local authority and it is a supported housing letting"
ecstat: ecstat:
over_hard_max: "Net income of %{hard_max} per week is too high given the tenant’s working situation" over_hard_max: "Net income of %{hard_max} per week is too high given the tenant’s working situation"
brent: brent:

144
spec/models/validations/financial_validations_spec.rb

@ -263,39 +263,39 @@ RSpec.describe Validations::FinancialValidations do
[{ [{
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "scharge", value: 156 }, charge: { field: "scharge", value: 801 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "scharge", value: 672 }, charge: { field: "scharge", value: 3471 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "scharge", value: 311 }, charge: { field: "scharge", value: 1601 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "pscharge", value: 31 }, charge: { field: "pscharge", value: 701 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "pscharge", value: 150 }, charge: { field: "pscharge", value: 3200 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "pscharge", value: 61 }, charge: { field: "pscharge", value: 1401 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "supcharg", value: 41 }, charge: { field: "supcharg", value: 801 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "supcharg", value: 200 }, charge: { field: "supcharg", value: 3471 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "supcharg", value: 81 }, charge: { field: "supcharg", value: 1601 },
}].each do |test_case| }].each do |test_case|
it "does not allow charges outside the range when period is #{test_case[:period][:label]}" do it "does not allow charges outside the range when period is #{test_case[:period][:label]}" do
record.period = test_case[:period][:value] record.period = test_case[:period][:value]
@ -308,39 +308,39 @@ RSpec.describe Validations::FinancialValidations do
[{ [{
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "scharge", value: 154 }, charge: { field: "scharge", value: 799 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "scharge", value: 670 }, charge: { field: "scharge", value: 3400 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "scharge", value: 309 }, charge: { field: "scharge", value: 1599 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "pscharge", value: 30 }, charge: { field: "pscharge", value: 699 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "pscharge", value: 120 }, charge: { field: "pscharge", value: 2500 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "pscharge", value: 59 }, charge: { field: "pscharge", value: 1399 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "supcharg", value: 39 }, charge: { field: "supcharg", value: 799 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "supcharg", value: 120 }, charge: { field: "supcharg", value: 3000 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "supcharg", value: 79 }, charge: { field: "supcharg", value: 1599 },
}].each do |test_case| }].each do |test_case|
it "does allow charges inside the range when period is #{test_case[:period][:label]}" do it "does allow charges inside the range when period is #{test_case[:period][:label]}" do
record.period = test_case[:period][:value] record.period = test_case[:period][:value]
@ -357,39 +357,39 @@ RSpec.describe Validations::FinancialValidations do
[{ [{
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "scharge", value: 481 }, charge: { field: "scharge", value: 801 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "scharge", value: 2081 }, charge: { field: "scharge", value: 3471 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "scharge", value: 961 }, charge: { field: "scharge", value: 1601 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "pscharge", value: 201 }, charge: { field: "pscharge", value: 701 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "pscharge", value: 1000 }, charge: { field: "pscharge", value: 3200 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "pscharge", value: 400.80 }, charge: { field: "pscharge", value: 1401 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "supcharg", value: 466 }, charge: { field: "supcharg", value: 801 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "supcharg", value: 3100 }, charge: { field: "supcharg", value: 3471 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "supcharg", value: 990 }, charge: { field: "supcharg", value: 1601 },
}].each do |test_case| }].each do |test_case|
it "does not allow charges outside the range when period is #{test_case[:period][:label]}" do it "does not allow charges outside the range when period is #{test_case[:period][:label]}" do
record.period = test_case[:period][:value] record.period = test_case[:period][:value]
@ -402,39 +402,39 @@ RSpec.describe Validations::FinancialValidations do
[{ [{
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "scharge", value: 366 }, charge: { field: "scharge", value: 799 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "scharge", value: 1582 }, charge: { field: "scharge", value: 3400 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "scharge", value: 731 }, charge: { field: "scharge", value: 1599 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "pscharge", value: 199.99 }, charge: { field: "pscharge", value: 699 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "pscharge", value: 800 }, charge: { field: "pscharge", value: 2500 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "pscharge", value: 400 }, charge: { field: "pscharge", value: 1399 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "supcharg", value: 464 }, charge: { field: "supcharg", value: 799 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "supcharg", value: 2000 }, charge: { field: "supcharg", value: 3400 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "supcharg", value: 880 }, charge: { field: "supcharg", value: 1599 },
}].each do |test_case| }].each do |test_case|
it "does allow charges inside the range when period is #{test_case[:period][:label]}" do it "does allow charges inside the range when period is #{test_case[:period][:label]}" do
record.period = test_case[:period][:value] record.period = test_case[:period][:value]
@ -455,39 +455,39 @@ RSpec.describe Validations::FinancialValidations do
[{ [{
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "scharge", value: 156 }, charge: { field: "scharge", value: 501 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "scharge", value: 672 }, charge: { field: "scharge", value: 2300 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "scharge", value: 311 }, charge: { field: "scharge", value: 1001 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "pscharge", value: 36 }, charge: { field: "pscharge", value: 201 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "pscharge", value: 190 }, charge: { field: "pscharge", value: 1000 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "pscharge", value: 71 }, charge: { field: "pscharge", value: 401 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "supcharg", value: 61 }, charge: { field: "supcharg", value: 201 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "supcharg", value: 300 }, charge: { field: "supcharg", value: 1000 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "supcharg", value: 122 }, charge: { field: "supcharg", value: 401 },
}].each do |test_case| }].each do |test_case|
it "does not allow charges outside the range when period is #{test_case[:period][:label]}" do it "does not allow charges outside the range when period is #{test_case[:period][:label]}" do
record.period = test_case[:period][:value] record.period = test_case[:period][:value]
@ -500,39 +500,39 @@ RSpec.describe Validations::FinancialValidations do
[{ [{
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "scharge", value: 44 }, charge: { field: "scharge", value: 499 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "scharge", value: 160 }, charge: { field: "scharge", value: 2000 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "scharge", value: 89 }, charge: { field: "scharge", value: 999 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "pscharge", value: 34 }, charge: { field: "pscharge", value: 199 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "pscharge", value: 140 }, charge: { field: "pscharge", value: 800 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "pscharge", value: 69 }, charge: { field: "pscharge", value: 399 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "supcharg", value: 59.99 }, charge: { field: "supcharg", value: 199.99 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "supcharg", value: 240 }, charge: { field: "supcharg", value: 800 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "supcharg", value: 119 }, charge: { field: "supcharg", value: 399 },
}].each do |test_case| }].each do |test_case|
it "does allow charges inside the range when period is #{test_case[:period][:label]}" do it "does allow charges inside the range when period is #{test_case[:period][:label]}" do
record.period = test_case[:period][:value] record.period = test_case[:period][:value]
@ -549,39 +549,39 @@ RSpec.describe Validations::FinancialValidations do
[{ [{
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "scharge", value: 365.90 }, charge: { field: "scharge", value: 501 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "scharge", value: 2081 }, charge: { field: "scharge", value: 2300 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "scharge", value: 961 }, charge: { field: "scharge", value: 1001 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "pscharge", value: 76 }, charge: { field: "pscharge", value: 201 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "pscharge", value: 400 }, charge: { field: "pscharge", value: 1000 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "pscharge", value: 151 }, charge: { field: "pscharge", value: 401 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "supcharg", value: 121 }, charge: { field: "supcharg", value: 201 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "supcharg", value: 620 }, charge: { field: "supcharg", value: 1000 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "supcharg", value: 241 }, charge: { field: "supcharg", value: 401 },
}].each do |test_case| }].each do |test_case|
it "does not allow charges outside the range when period is #{test_case[:period][:label]}" do it "does not allow charges outside the range when period is #{test_case[:period][:label]}" do
record.period = test_case[:period][:value] record.period = test_case[:period][:value]
@ -617,39 +617,39 @@ RSpec.describe Validations::FinancialValidations do
[{ [{
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "scharge", value: 364.88 }, charge: { field: "scharge", value: 499 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "scharge", value: 1200 }, charge: { field: "scharge", value: 2000 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "scharge", value: 700.99 }, charge: { field: "scharge", value: 999 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "pscharge", value: 74 }, charge: { field: "pscharge", value: 199 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "pscharge", value: 210 }, charge: { field: "pscharge", value: 800 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "pscharge", value: 149 }, charge: { field: "pscharge", value: 399 },
}, },
{ {
period: { label: "weekly", value: 1 }, period: { label: "weekly", value: 1 },
charge: { field: "supcharg", value: 119 }, charge: { field: "supcharg", value: 199.99 },
}, },
{ {
period: { label: "monthly", value: 4 }, period: { label: "monthly", value: 4 },
charge: { field: "supcharg", value: 480 }, charge: { field: "supcharg", value: 800 },
}, },
{ {
period: { label: "every 2 weeks", value: 2 }, period: { label: "every 2 weeks", value: 2 },
charge: { field: "supcharg", value: 239 }, charge: { field: "supcharg", value: 399 },
}].each do |test_case| }].each do |test_case|
it "does allow charges inside the range when period is #{test_case[:period][:label]}" do it "does allow charges inside the range when period is #{test_case[:period][:label]}" do
record.period = test_case[:period][:value] record.period = test_case[:period][:value]

Loading…
Cancel
Save