Browse Source

CLDC-4300: Apply these changes from 2026 only

pull/3307/head
samyou-softwire 3 weeks ago
parent
commit
71e80f93e9
  1. 6
      app/models/validations/sales/sale_information_validations.rb
  2. 48
      spec/models/validations/sales/sale_information_validations_spec.rb

6
app/models/validations/sales/sale_information_validations.rb

@ -42,7 +42,7 @@ module Validations::Sales::SaleInformationValidations
record.errors.add :initialpurchase, I18n.t("validations.sales.sale_information.initialpurchase.must_be_after_1980") record.errors.add :initialpurchase, I18n.t("validations.sales.sale_information.initialpurchase.must_be_after_1980")
end end
if record.saledate.present? && record.initialpurchase >= record.saledate if record.saledate.present? && ((record.initialpurchase > record.saledate) || (record.initialpurchase == record.saledate && record.form.start_year_2026_or_later?))
record.errors.add :initialpurchase, I18n.t("validations.sales.sale_information.initialpurchase.must_be_before_saledate") record.errors.add :initialpurchase, I18n.t("validations.sales.sale_information.initialpurchase.must_be_before_saledate")
record.errors.add :saledate, :skip_bu_error, message: I18n.t("validations.sales.sale_information.saledate.must_be_after_initial_purchase_date") record.errors.add :saledate, :skip_bu_error, message: I18n.t("validations.sales.sale_information.saledate.must_be_after_initial_purchase_date")
end end
@ -55,11 +55,11 @@ module Validations::Sales::SaleInformationValidations
record.errors.add :lasttransaction, I18n.t("validations.sales.sale_information.lasttransaction.must_be_after_1980") record.errors.add :lasttransaction, I18n.t("validations.sales.sale_information.lasttransaction.must_be_after_1980")
end end
if record.saledate.present? && record.lasttransaction >= record.saledate if record.saledate.present? && ((record.lasttransaction > record.saledate) || (record.lasttransaction == record.saledate && record.form.start_year_2026_or_later?))
record.errors.add :lasttransaction, I18n.t("validations.sales.sale_information.lasttransaction.must_be_before_saledate") record.errors.add :lasttransaction, I18n.t("validations.sales.sale_information.lasttransaction.must_be_before_saledate")
record.errors.add :saledate, :skip_bu_error, message: I18n.t("validations.sales.sale_information.saledate.must_be_after_last_transaction_date") record.errors.add :saledate, :skip_bu_error, message: I18n.t("validations.sales.sale_information.saledate.must_be_after_last_transaction_date")
end end
if record.initialpurchase.present? && record.lasttransaction <= record.initialpurchase if record.initialpurchase.present? && ((record.lasttransaction < record.initialpurchase) || (record.lasttransaction == record.initialpurchase && record.form.start_year_2026_or_later?))
record.errors.add :initialpurchase, I18n.t("validations.sales.sale_information.initialpurchase.must_be_before_last_transaction") record.errors.add :initialpurchase, I18n.t("validations.sales.sale_information.initialpurchase.must_be_before_last_transaction")
record.errors.add :lasttransaction, I18n.t("validations.sales.sale_information.lasttransaction.must_be_after_initial_purchase") record.errors.add :lasttransaction, I18n.t("validations.sales.sale_information.lasttransaction.must_be_after_initial_purchase")
end end

48
spec/models/validations/sales/sale_information_validations_spec.rb

@ -252,7 +252,20 @@ RSpec.describe Validations::Sales::SaleInformationValidations do
end end
context "when initial purchase date == saledate" do context "when initial purchase date == saledate" do
let(:record) { build(:sales_log, initialpurchase: current_collection_start_date, saledate: current_collection_start_date) } let(:record) { build(:sales_log, initialpurchase: collection_start_date_for_year(start_year), saledate: collection_start_date_for_year(start_year)) }
context "and 2025", metadata: { year: 25 } do
let(:start_year) { 2025 }
it "does not add an error" do
sale_information_validator.validate_staircasing_initial_purchase_date(record)
expect(record.errors[:lasttransaction]).not_to be_present
end
end
context "and 2026", metadata: { year: 26 } do
let(:start_year) { 2026 }
it "adds error" do it "adds error" do
sale_information_validator.validate_staircasing_initial_purchase_date(record) sale_information_validator.validate_staircasing_initial_purchase_date(record)
@ -262,6 +275,7 @@ RSpec.describe Validations::Sales::SaleInformationValidations do
end end
end end
end end
end
describe "#validate_staircasing_last_transaction_date" do describe "#validate_staircasing_last_transaction_date" do
context "when last transaction date blank" do context "when last transaction date blank" do
@ -316,7 +330,20 @@ RSpec.describe Validations::Sales::SaleInformationValidations do
end end
context "when last transaction date == saledate" do context "when last transaction date == saledate" do
let(:record) { build(:sales_log, lasttransaction: current_collection_start_date, saledate: current_collection_start_date) } let(:record) { build(:sales_log, lasttransaction: collection_start_date_for_year(start_year), saledate: collection_start_date_for_year(start_year)) }
context "and 2025", metadata: { year: 25 } do
let(:start_year) { 2025 }
it "does not add an error" do
sale_information_validator.validate_staircasing_last_transaction_date(record)
expect(record.errors[:lasttransaction]).not_to be_present
end
end
context "and 2026", metadata: { year: 26 } do
let(:start_year) { 2026 }
it "adds error" do it "adds error" do
sale_information_validator.validate_staircasing_last_transaction_date(record) sale_information_validator.validate_staircasing_last_transaction_date(record)
@ -325,6 +352,7 @@ RSpec.describe Validations::Sales::SaleInformationValidations do
expect(record.errors[:saledate]).to eq([I18n.t("validations.sales.sale_information.saledate.must_be_after_last_transaction_date")]) expect(record.errors[:saledate]).to eq([I18n.t("validations.sales.sale_information.saledate.must_be_after_last_transaction_date")])
end end
end end
end
context "when last transaction date after initial purchase date" do context "when last transaction date after initial purchase date" do
let(:record) { build(:sales_log, initialpurchase: 2.months.ago, lasttransaction: 1.month.ago) } let(:record) { build(:sales_log, initialpurchase: 2.months.ago, lasttransaction: 1.month.ago) }
@ -348,7 +376,20 @@ RSpec.describe Validations::Sales::SaleInformationValidations do
end end
context "when last transaction date == initial purchase date" do context "when last transaction date == initial purchase date" do
let(:record) { build(:sales_log, lasttransaction: current_collection_start_date, initialpurchase: current_collection_start_date) } let(:record) { build(:sales_log, lasttransaction: collection_start_date_for_year(start_year), initialpurchase: collection_start_date_for_year(start_year), saledate: collection_start_date_for_year(start_year) + 1.day) }
context "and 2025", metadata: { year: 25 } do
let(:start_year) { 2025 }
it "does not add an error" do
sale_information_validator.validate_staircasing_last_transaction_date(record)
expect(record.errors[:lasttransaction]).not_to be_present
end
end
context "and 2026", metadata: { year: 26 } do
let(:start_year) { 2026 }
it "adds error" do it "adds error" do
sale_information_validator.validate_staircasing_last_transaction_date(record) sale_information_validator.validate_staircasing_last_transaction_date(record)
@ -358,6 +399,7 @@ RSpec.describe Validations::Sales::SaleInformationValidations do
end end
end end
end end
end
describe "#validate_previous_property_unit_type" do describe "#validate_previous_property_unit_type" do
context "when number of bedrooms is <= 1" do context "when number of bedrooms is <= 1" do

Loading…
Cancel
Save