From 1a662e8f64f9f73afbb31d68393fa02302d9bad4 Mon Sep 17 00:00:00 2001 From: Kat Date: Thu, 26 Jan 2023 12:07:31 +0000 Subject: [PATCH] Run the soft validation when mortgage isn't used or cash discount isn't given --- .../validations/sales/soft_validations.rb | 8 +++-- .../sales/soft_validations_spec.rb | 29 +++++++++++++++++-- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/app/models/validations/sales/soft_validations.rb b/app/models/validations/sales/soft_validations.rb index 828a460a8..4ae681922 100644 --- a/app/models/validations/sales/soft_validations.rb +++ b/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? diff --git a/spec/models/validations/sales/soft_validations_spec.rb b/spec/models/validations/sales/soft_validations_spec.rb index ce371ae2c..b0b253c15 100644 --- a/spec/models/validations/sales/soft_validations_spec.rb +++ b/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