Browse Source

Fix issue where deposit was not reset on change to sale type

pull/2354/head
Robert Sullivan 2 years ago
parent
commit
5ea8c671de
  1. 11
      app/models/derived_variables/sales_log_variables.rb
  2. 2
      app/models/form.rb
  3. 5
      app/models/form/lettings/questions/created_by_id.rb
  4. 5
      app/models/form/lettings/questions/managing_organisation.rb
  5. 5
      app/models/form/lettings/questions/stock_owner.rb
  6. 2
      app/models/form/question.rb
  7. 2
      app/models/form/sales/questions/buyer_previous.rb
  8. 5
      app/models/form/sales/questions/created_by_id.rb
  9. 5
      app/models/form/sales/questions/deposit_amount.rb
  10. 5
      app/models/form/sales/questions/managing_organisation.rb
  11. 5
      app/models/form/sales/questions/owning_organisation_id.rb
  12. 4
      app/models/form/subsection.rb

11
app/models/derived_variables/sales_log_variables.rb

@ -20,15 +20,8 @@ module DerivedVariables::SalesLogVariables
if outright_sale? && mortgage_not_used?
self.deposit = value
elsif outright_sale? && mortgage_use_unknown?
self.deposit = nil
elsif outright_sale? && mortgageused_changed? && !deposit_changed?
# Clear when switching to mortgage used
self.deposit = nil
elsif ownershipsch_changed?(from: 3) &&
((mortgage_not_used? && !mortgageused_changed?) || mortgageused_changed?(from: 2)) &&
!deposit_changed?
# Clear when switching to to different ownership type
elsif outright_sale? && mortgageused_changed?(from: 2, to: 1)
# Clear when switching mortgage used from no to yes
self.deposit = nil
end

2
app/models/form.rb

@ -270,7 +270,7 @@ class Form
else
questions.reject { |q| %w[radio checkbox].include?(q.type) || q.disable_clearing_if_not_routed_or_dynamic_answer_options }
end
routed, not_routed = questions_by_type.partition { |q| q.page.routed_to?(log, current_user) || q.derived? }
routed, not_routed = questions_by_type.partition { |q| q.page.routed_to?(log, current_user) || q.derived?(log) }
{ routed:, not_routed: }
end

5
app/models/form/lettings/questions/created_by_id.rb

@ -6,6 +6,7 @@ class Form::Lettings::Questions::CreatedById < ::Form::Question
@id = "created_by_id"
@check_answer_label = "Log owner"
@header = "Which user are you creating this log for?"
@derived = true
@type = "select"
end
@ -44,10 +45,6 @@ class Form::Lettings::Questions::CreatedById < ::Form::Question
present_user(User.find(value))
end
def derived?
true
end
private
def present_user(user)

5
app/models/form/lettings/questions/managing_organisation.rb

@ -4,6 +4,7 @@ class Form::Lettings::Questions::ManagingOrganisation < ::Form::Question
@id = "managing_organisation_id"
@check_answer_label = "Managing agent"
@header = "Which organisation manages this letting?"
@derived = true
@type = "select"
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present?
end
@ -62,10 +63,6 @@ class Form::Lettings::Questions::ManagingOrganisation < ::Form::Question
answer_options[value]
end
def derived?
true
end
def hidden_in_check_answers?(log, user = nil)
user.nil? || !@page.routed_to?(log, user)
end

5
app/models/form/lettings/questions/stock_owner.rb

@ -4,6 +4,7 @@ class Form::Lettings::Questions::StockOwner < ::Form::Question
@id = "owning_organisation_id"
@check_answer_label = "Stock owner"
@header = "Which organisation owns this property?"
@derived = true
@type = "select"
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max] if form.start_date.present?
end
@ -60,10 +61,6 @@ class Form::Lettings::Questions::StockOwner < ::Form::Question
answer_options(log, user)[value]
end
def derived?
true
end
def hidden_in_check_answers?(_log, user = nil)
return false if user.support?

2
app/models/form/question.rb

@ -99,7 +99,7 @@ class Form::Question
page.routed_to?(log, nil) && enabled?(log)
end
def derived?
def derived?(_log)
!!derived
end

2
app/models/form/sales/questions/buyer_previous.rb

@ -22,7 +22,7 @@ class Form::Sales::Questions::BuyerPrevious < ::Form::Question
}
end
def derived?
def derived?(_log)
form.start_year_after_2024?
end

5
app/models/form/sales/questions/created_by_id.rb

@ -6,6 +6,7 @@ class Form::Sales::Questions::CreatedById < ::Form::Question
@id = "created_by_id"
@check_answer_label = "Log owner"
@header = "Which user are you creating this log for?"
@derived = true
@type = "select"
end
@ -47,10 +48,6 @@ class Form::Sales::Questions::CreatedById < ::Form::Question
true
end
def derived?
true
end
private
def present_user(user)

5
app/models/form/sales/questions/deposit_amount.rb

@ -10,12 +10,15 @@ class Form::Sales::Questions::DepositAmount < ::Form::Question
@step = 1
@width = 5
@prefix = "£"
@derived = true
@ownershipsch = ownershipsch
@question_number = QUESTION_NUMBER_FROM_YEAR_AND_OWNERSHIP.fetch(form.start_date.year, QUESTION_NUMBER_FROM_YEAR_AND_OWNERSHIP.max_by { |k, _v| k }.last)[ownershipsch]
@optional = optional
end
def derived?(log)
log.outright_sale? && log.mortgage_not_used?
end
def selected_answer_option_is_derived?(_log)
true
end

5
app/models/form/sales/questions/managing_organisation.rb

@ -4,6 +4,7 @@ class Form::Sales::Questions::ManagingOrganisation < ::Form::Question
@id = "managing_organisation_id"
@check_answer_label = "Reported by"
@header = "Which organisation is reporting this sale?"
@derived = true
@type = "select"
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
end
@ -54,10 +55,6 @@ class Form::Sales::Questions::ManagingOrganisation < ::Form::Question
answer_options[value]
end
def derived?
true
end
def hidden_in_check_answers?(log, user = nil)
user.nil? || !@page.routed_to?(log, user)
end

5
app/models/form/sales/questions/owning_organisation_id.rb

@ -4,6 +4,7 @@ class Form::Sales::Questions::OwningOrganisationId < ::Form::Question
@id = "owning_organisation_id"
@check_answer_label = "Owning organisation"
@header = "Which organisation owns this log?"
@derived = true
@type = "select"
@question_number = QUESTION_NUMBER_FROM_YEAR[form.start_date.year] || QUESTION_NUMBER_FROM_YEAR[QUESTION_NUMBER_FROM_YEAR.keys.max]
end
@ -71,10 +72,6 @@ class Form::Sales::Questions::OwningOrganisationId < ::Form::Question
answer_options(log, user)[value]
end
def derived?
true
end
def hidden_in_check_answers?(_log, user = nil)
return false if user.support?

4
app/models/form/subsection.rb

@ -29,7 +29,7 @@ class Form::Subsection
qs = applicable_questions(log)
qs_optional_removed = qs.reject { |q| log.optional_fields.include?(q.id) }
return :not_started if qs.count.positive? && qs.all? { |question| question.unanswered?(log) || question.read_only? || question.derived? }
return :not_started if qs.count.positive? && qs.all? { |question| question.unanswered?(log) || question.read_only? || question.derived?(log) }
return :completed if qs_optional_removed.all? { |question| question.completed?(log) }
:in_progress
@ -49,7 +49,7 @@ class Form::Subsection
def applicable_questions(log)
questions.select do |q|
(q.displayed_to_user?(log) && !q.derived?) || q.is_derived_or_has_inferred_check_answers_value?(log)
(q.displayed_to_user?(log) && !q.derived?(log)) || q.is_derived_or_has_inferred_check_answers_value?(log)
end
end

Loading…
Cancel
Save