Browse Source

feat: add page, question, and update db

pull/1134/head
natdeanlewissoftwire 3 years ago
parent
commit
d7a1097e55
  1. 15
      app/models/form/sales/pages/leasehold_charges.rb
  2. 18
      app/models/form/sales/questions/leasehold_charges.rb
  3. 30
      app/models/form/sales/questions/leasehold_charges_known.rb
  4. 1
      app/models/form/sales/subsections/discounted_ownership_scheme.rb
  5. 1
      app/models/form/sales/subsections/outright_sale.rb
  6. 3
      app/models/form/sales/subsections/shared_ownership_scheme.rb
  7. 8
      db/migrate/20230103112225_add_mscharge_known_to_sales.rb

15
app/models/form/sales/pages/leasehold_charges.rb

@ -0,0 +1,15 @@
class Form::Sales::Pages::LeaseholdCharges < ::Form::Page
def initialize(id, hsh, subsection)
super
@header = ""
@description = ""
@subsection = subsection
end
def questions
@questions ||= [
Form::Sales::Questions::LeaseholdChargesKnown.new(nil, nil, self),
Form::Sales::Questions::LeaseholdCharges.new(nil, nil, self),
]
end
end

18
app/models/form/sales/questions/leasehold_charges.rb

@ -0,0 +1,18 @@
class Form::Sales::Questions::LeaseholdCharges < ::Form::Question
def initialize(id, hsh, page)
super
@id = "mscharge"
@check_answer_label = "Monthly rent"
@header = "Enter the total monthly charge"
@type = "numeric"
@page = page
@width = 2
@prefix = "£"
@inferred_check_answers_value = {
"condition" => {
"mscharge_known" => 0,
},
"value" => 0,
}
end
end

30
app/models/form/sales/questions/leasehold_charges_known.rb

@ -0,0 +1,30 @@
class Form::Sales::Questions::LeaseholdChargesKnown < ::Form::Question
def initialize(id, hsh, page)
super
@id = "mscharge_known"
@check_answer_label = "Monthly rent"
@header = "Does the property have any monthly leasehold charges?"
@hint_text = "For example, service and management charges"
@type = "radio"
@answer_options = ANSWER_OPTIONS
@page = page
@conditional_for = {
"mscharge" => [1],
}
@hidden_in_check_answers = {
"depends_on" => [
{
"mscharge_known" => 0,
},
{
"mscharge_known" => 1,
},
],
}
end
ANSWER_OPTIONS = {
"1" => { "value" => "Yes" },
"0" => { "value" => "No" },
}.freeze
end

1
app/models/form/sales/subsections/discounted_ownership_scheme.rb

@ -13,6 +13,7 @@ class Form::Sales::Subsections::DiscountedOwnershipScheme < ::Form::Subsection
Form::Sales::Pages::AboutPriceRtb.new(nil, nil, self),
Form::Sales::Pages::AboutPriceNotRtb.new(nil, nil, self),
Form::Sales::Pages::AboutDeposit.new("about_deposit_discounted_ownership", nil, self),
Form::Sales::Pages::LeaseholdCharges.new("leasehold_charges_discounted_ownership", nil, self),
]
end

1
app/models/form/sales/subsections/outright_sale.rb

@ -10,6 +10,7 @@ class Form::Sales::Subsections::OutrightSale < ::Form::Subsection
def pages
@pages ||= [
Form::Sales::Pages::AboutDeposit.new("about_deposit_outright_sale", nil, self),
Form::Sales::Pages::LeaseholdCharges.new("leasehold_charges_outright_sale", nil, self),
]
end

3
app/models/form/sales/subsections/shared_ownership_scheme.rb

@ -13,6 +13,7 @@ class Form::Sales::Subsections::SharedOwnershipScheme < ::Form::Subsection
Form::Sales::Pages::Staircase.new(nil, nil, self),
Form::Sales::Pages::AboutStaircase.new(nil, nil, self),
Form::Sales::Pages::Resale.new(nil, nil, self),
Form::Sales::Pages::ExchangeDate.new(nil, nil, self),
Form::Sales::Pages::LaNominations.new(nil, nil, self),
Form::Sales::Pages::BuyerPrevious.new(nil, nil, self),
Form::Sales::Pages::PreviousBedrooms.new(nil, nil, self),
@ -20,7 +21,7 @@ class Form::Sales::Subsections::SharedOwnershipScheme < ::Form::Subsection
Form::Sales::Pages::AboutPriceSocialHousing.new(nil, nil, self),
Form::Sales::Pages::AboutDeposit.new("about_deposit_shared_ownership", nil, self),
Form::Sales::Pages::MonthlyRent.new(nil, nil, self),
Form::Sales::Pages::ExchangeDate.new(nil, nil, self),
Form::Sales::Pages::LeaseholdCharges.new("leasehold_charges_shared_ownership", nil, self),
]
end

8
db/migrate/20230103112225_add_mscharge_known_to_sales.rb

@ -0,0 +1,8 @@
class AddMschargeKnownToSales < ActiveRecord::Migration[7.0]
def change
change_table :sales_logs, bulk: true do |t|
t.column :mscharge_known, :integer
t.column :mscharge, :decimal, precision: 10, scale: 2
end
end
end
Loading…
Cancel
Save