Browse Source

feat: add page, question, and update db

pull/1134/head
natdeanlewissoftwire 3 years ago
parent
commit
544f7b10ae
  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
  8. 5
      db/schema.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

@ -12,6 +12,7 @@ class Form::Sales::Subsections::DiscountedOwnershipScheme < ::Form::Subsection
Form::Sales::Pages::AboutDeposit.new("about_deposit_discounted_ownership", nil, self),
Form::Sales::Pages::AboutPriceRtb.new("about_deposit_discounted_ownership", nil, self),
Form::Sales::Pages::AboutPriceNotRtb.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

@ -12,6 +12,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),
@ -19,7 +20,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

5
db/schema.rb

@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema[7.0].define(version: 2022_12_22_133600) do
ActiveRecord::Schema[7.0].define(version: 2023_01_03_112225) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@ -434,6 +434,9 @@ ActiveRecord::Schema[7.0].define(version: 2022_12_22_133600) do
t.decimal "equity", precision: 10, scale: 2
t.decimal "discount", precision: 10, scale: 2
t.decimal "grant", precision: 10, scale: 2
t.integer "proplen"
t.integer "mscharge_known"
t.decimal "mscharge", precision: 10, scale: 2
t.index ["created_by_id"], name: "index_sales_logs_on_created_by_id"
t.index ["managing_organisation_id"], name: "index_sales_logs_on_managing_organisation_id"
t.index ["owning_organisation_id"], name: "index_sales_logs_on_owning_organisation_id"

Loading…
Cancel
Save