Browse Source

CLDC-4313: Include other fields missing max

mrentprestaircasing
management_fee
pull/3295/head
samyou-softwire 2 weeks ago
parent
commit
44a7edfd2b
  1. 1
      app/models/form/sales/questions/management_fee.rb
  2. 1
      app/models/form/sales/questions/monthly_rent_before_staircasing.rb
  3. 12
      lib/tasks/correct_value_and_mortgage_for_2025_or_later_sales_logs.rake
  4. 16
      lib/tasks/correct_values_missing_max_for_2025_or_later_sales_logs.rake
  5. 4
      spec/models/form/sales/pages/monthly_rent_staircasing_owned_spec.rb
  6. 4
      spec/models/form/sales/pages/monthly_rent_staircasing_spec.rb
  7. 9
      spec/models/form/sales/questions/monthly_rent_before_staircasing_spec.rb

1
app/models/form/sales/questions/management_fee.rb

@ -5,6 +5,7 @@ class Form::Sales::Questions::ManagementFee < ::Form::Question
@copy_key = "sales.sale_information.management_fee.management_fee"
@type = "numeric"
@min = 1
@max = form.start_year_2025_or_later? ? 9_999 : nil
@step = 0.01
@width = 5
@prefix = "£"

1
app/models/form/sales/questions/monthly_rent_before_staircasing.rb

@ -5,6 +5,7 @@ class Form::Sales::Questions::MonthlyRentBeforeStaircasing < ::Form::Question
@copy_key = "sales.sale_information.mrent_staircasing.prestaircasing"
@type = "numeric"
@min = 0
@max = form.start_year_2025_or_later? ? 9_999 : nil
@step = 0.01
@width = 5
@prefix = "£"

12
lib/tasks/correct_value_and_mortgage_for_2025_or_later_sales_logs.rake

@ -1,12 +0,0 @@
desc "Clears mortgage and purchase price (the 'value' field) values for sales logs in the database if they are over 999,999"
task correct_value_and_mortgage_for_2025_or_later_sales_logs: :environment do
mortgage_incorrect_logs = SalesLog.filter_by_year_or_later(2025).where("mortgage > 999999")
value_incorrect_logs = SalesLog.filter_by_year_or_later(2025).where("value > 999999")
all_incorrect_logs = (mortgage_incorrect_logs + value_incorrect_logs).uniq
puts "Correcting #{all_incorrect_logs.count} sales logs, #{all_incorrect_logs.map(&:id)}"
mortgage_incorrect_logs.update!(mortgage: nil)
value_incorrect_logs.update!(value: nil)
puts "Done"
end

16
lib/tasks/correct_values_missing_max_for_2025_or_later_sales_logs.rake

@ -0,0 +1,16 @@
desc "Clears mortgage, purchase price (the 'value' field), monthly rent before staircasing and management fee values for sales logs in the database if they are over their new max"
task correct_values_missing_max_for_2025_or_later_sales_logs: :environment do
mortgage_incorrect_logs = SalesLog.filter_by_year_or_later(2025).where("mortgage > 999999")
value_incorrect_logs = SalesLog.filter_by_year_or_later(2025).where("value > 999999")
mrentprestaircasing_incorrect_logs = SalesLog.filter_by_year_or_later(2025).where("mrentprestaircasing > 9999")
management_fee_incorrect_logs = SalesLog.filter_by_year_or_later(2025).where("management_fee > 9999")
all_incorrect_logs = (mortgage_incorrect_logs + value_incorrect_logs + mrentprestaircasing_incorrect_logs + management_fee_incorrect_logs).uniq
puts "Correcting #{all_incorrect_logs.count} sales logs, #{all_incorrect_logs.map(&:id)}"
mortgage_incorrect_logs.update!(mortgage: nil)
value_incorrect_logs.update!(value: nil)
mrentprestaircasing_incorrect_logs.update!(mrentprestaircasing: nil)
management_fee_incorrect_logs.update!(management_fee: nil)
puts "Done"
end

4
spec/models/form/sales/pages/monthly_rent_staircasing_owned_spec.rb

@ -1,11 +1,13 @@
require "rails_helper"
RSpec.describe Form::Sales::Pages::MonthlyRentStaircasingOwned, type: :model do
include CollectionTimeHelper
subject(:page) { described_class.new(page_id, page_definition, subsection) }
let(:page_id) { nil }
let(:page_definition) { nil }
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2025, 4, 1))) }
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: current_collection_start_date, start_year_2025_or_later?: true)) }
it "has correct subsection" do
expect(page.subsection).to eq(subsection)

4
spec/models/form/sales/pages/monthly_rent_staircasing_spec.rb

@ -1,11 +1,13 @@
require "rails_helper"
RSpec.describe Form::Sales::Pages::MonthlyRentStaircasing, type: :model do
include CollectionTimeHelper
subject(:page) { described_class.new(page_id, page_definition, subsection) }
let(:page_id) { nil }
let(:page_definition) { nil }
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2025, 4, 1))) }
let(:subsection) { instance_double(Form::Subsection, form: instance_double(Form, start_date: current_collection_start_year, start_year_2025_or_later?: true)) }
it "has correct subsection" do
expect(page.subsection).to eq(subsection)

9
spec/models/form/sales/questions/monthly_rent_before_staircasing_spec.rb

@ -1,11 +1,14 @@
require "rails_helper"
RSpec.describe Form::Sales::Questions::MonthlyRentBeforeStaircasing, type: :model do
include CollectionTimeHelper
subject(:question) { described_class.new(question_id, question_definition, page) }
let(:question_id) { nil }
let(:question_definition) { nil }
let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: Time.zone.local(2023, 4, 1)))) }
let(:start_year_2025_or_later?) { true }
let(:page) { instance_double(Form::Page, subsection: instance_double(Form::Subsection, form: instance_double(Form, start_date: current_collection_start_date, start_year_2025_or_later?: start_year_2025_or_later?))) }
it "has correct page" do
expect(question.page).to eq(page)
@ -34,4 +37,8 @@ RSpec.describe Form::Sales::Questions::MonthlyRentBeforeStaircasing, type: :mode
it "has correct min" do
expect(question.min).to eq(0)
end
it "has correct max" do
expect(question.max).to eq(9_999)
end
end

Loading…
Cancel
Save