diff --git a/app/models/form/sales/pages/service_charge.rb b/app/models/form/sales/pages/service_charge.rb index a0102eda4..e938a3e56 100644 --- a/app/models/form/sales/pages/service_charge.rb +++ b/app/models/form/sales/pages/service_charge.rb @@ -6,8 +6,8 @@ class Form::Sales::Pages::ServiceCharge < ::Form::Page def questions @questions ||= [ - Form::Sales::Questions::HasServiceCharge.new(nil, nil, self), - Form::Sales::Questions::ServiceCharge.new(nil, nil, self), + Form::Sales::Questions::HasServiceCharge.new(nil, nil, self, staircasing: false), + Form::Sales::Questions::ServiceCharge.new(nil, nil, self, staircasing: false), ] end end diff --git a/app/models/form/sales/pages/service_charge_staircasing.rb b/app/models/form/sales/pages/service_charge_staircasing.rb new file mode 100644 index 000000000..4e4f65c9e --- /dev/null +++ b/app/models/form/sales/pages/service_charge_staircasing.rb @@ -0,0 +1,13 @@ +class Form::Sales::Pages::ServiceChargeStaircasing < ::Form::Page + def initialize(id, hsh, subsection) + super + @copy_key = "sales.sale_information.servicecharges" + end + + def questions + @questions ||= [ + Form::Sales::Questions::HasServiceCharge.new(nil, nil, self, staircasing: true), + Form::Sales::Questions::ServiceCharge.new(nil, nil, self, staircasing: true), + ] + end +end diff --git a/app/models/form/sales/questions/has_service_charge.rb b/app/models/form/sales/questions/has_service_charge.rb index 41bf5f809..a5cfde1fa 100644 --- a/app/models/form/sales/questions/has_service_charge.rb +++ b/app/models/form/sales/questions/has_service_charge.rb @@ -1,6 +1,6 @@ class Form::Sales::Questions::HasServiceCharge < ::Form::Question - def initialize(id, hsh, subsection) - super + def initialize(id, hsh, subsection, staircasing:) + super(id, hsh, subsection) @id = "has_mscharge" @type = "radio" @answer_options = ANSWER_OPTIONS @@ -15,7 +15,8 @@ class Form::Sales::Questions::HasServiceCharge < ::Form::Question ], } @copy_key = "sales.sale_information.servicecharges.has_servicecharge" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @staircasing = staircasing + @question_number = question_number_from_year[form.start_date.year] || question_number_from_year[question_number_from_year.keys.max] end ANSWER_OPTIONS = { @@ -23,5 +24,11 @@ class Form::Sales::Questions::HasServiceCharge < ::Form::Question "0" => { "value" => "No" }, }.freeze - QUESTION_NUMBER_FROM_YEAR = { 2025 => 88 }.freeze + def question_number_from_year + if @staircasing + { 2026 => 0 }.freeze + else + { 2025 => 88 }.freeze + end + end end diff --git a/app/models/form/sales/questions/service_charge.rb b/app/models/form/sales/questions/service_charge.rb index 6b9a76a94..cd49caee6 100644 --- a/app/models/form/sales/questions/service_charge.rb +++ b/app/models/form/sales/questions/service_charge.rb @@ -1,16 +1,24 @@ class Form::Sales::Questions::ServiceCharge < ::Form::Question - def initialize(id, hsh, subsection) - super + def initialize(id, hsh, subsection, staircasing:) + super(id, hsh, subsection) @id = "mscharge" @type = "numeric" @min = 1 + @max = 9999.99 @step = 0.01 @width = 5 @prefix = "£" @copy_key = "sales.sale_information.servicecharges.servicecharge" - @question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] + @staircasing = staircasing + @question_number = question_number_from_year[form.start_date.year] || question_number_from_year[question_number_from_year.keys.max] @strip_commas = true end - QUESTION_NUMBER_FROM_YEAR = { 2025 => 88 }.freeze + def question_number_from_year + if @staircasing + { 2026 => 0 }.freeze + else + { 2025 => 88 }.freeze + end + end end diff --git a/app/models/form/sales/subsections/shared_ownership_staircasing_transaction.rb b/app/models/form/sales/subsections/shared_ownership_staircasing_transaction.rb index cc10ed28c..7c1119f99 100644 --- a/app/models/form/sales/subsections/shared_ownership_staircasing_transaction.rb +++ b/app/models/form/sales/subsections/shared_ownership_staircasing_transaction.rb @@ -25,6 +25,7 @@ class Form::Sales::Subsections::SharedOwnershipStaircasingTransaction < ::Form:: Form::Sales::Pages::Mortgageused.new("staircase_mortgage_used_shared_ownership", nil, self, ownershipsch: 1), Form::Sales::Pages::MonthlyRentStaircasingOwned.new(nil, nil, self), Form::Sales::Pages::MonthlyRentStaircasing.new(nil, nil, self), + Form::Sales::Pages::ServiceChargeStaircasing.new("service_charge_staircasing", nil, self), Form::Sales::Pages::MonthlyChargesValueCheck.new("monthly_charges_shared_ownership_value_check", nil, self), ].compact end