Browse Source

Run the soft validation when mortgage isn't used or cash discount isn't given

pull/1217/head
Kat 3 years ago
parent
commit
1a662e8f64
  1. 8
      app/models/validations/sales/soft_validations.rb
  2. 29
      spec/models/validations/sales/soft_validations_spec.rb

8
app/models/validations/sales/soft_validations.rb

@ -44,9 +44,13 @@ module Validations::Sales::SoftValidations
end
def shared_ownership_deposit_invalid?
return unless mortgage && deposit && cashdis && value && equity
return unless mortgage || mortgageused == 2
return unless cashdis || !is_type_discount?
return unless deposit && value && equity
mortgage + deposit + cashdis != value * equity / 100
cash_discount = cashdis || 0
mortgage_value = mortgage || 0
mortgage_value + deposit + cash_discount != value * equity / 100
end
def hodate_3_years_or_more_saledate?

29
spec/models/validations/sales/soft_validations_spec.rb

@ -334,7 +334,7 @@ RSpec.describe Validations::Sales::SoftValidations do
.not_to be_shared_ownership_deposit_invalid
end
it "returns false if no mortgage is given" do
it "returns false if mortgage is used and no mortgage is given" do
record.mortgage = nil
record.deposit = 1000
record.cashdis = 1000
@ -345,6 +345,18 @@ RSpec.describe Validations::Sales::SoftValidations do
.not_to be_shared_ownership_deposit_invalid
end
it "returns true if mortgage is not used and no mortgage is given" do
record.mortgage = nil
record.mortgageused = 2
record.deposit = 1000
record.cashdis = 1000
record.value = 3000
record.equity = 100
expect(record)
.to be_shared_ownership_deposit_invalid
end
it "returns false if no deposit is given" do
record.mortgage = 1000
record.deposit = nil
@ -356,9 +368,10 @@ RSpec.describe Validations::Sales::SoftValidations do
.not_to be_shared_ownership_deposit_invalid
end
it "returns false if no cashdis is given" do
it "returns false if no cashdis is given and cashdis is routed to" do
record.mortgage = 1000
record.deposit = 1000
record.type = 18
record.cashdis = nil
record.value = 3000
record.equity = 100
@ -367,6 +380,18 @@ RSpec.describe Validations::Sales::SoftValidations do
.not_to be_shared_ownership_deposit_invalid
end
it "returns true if no cashdis is given and cashdis is not routed to" do
record.mortgage = 1000
record.deposit = 1000
record.type = 2
record.cashdis = nil
record.value = 3000
record.equity = 100
expect(record)
.to be_shared_ownership_deposit_invalid
end
it "returns false if no value is given" do
record.mortgage = 1000
record.deposit = 1000

Loading…
Cancel
Save