diff --git a/app/models/validations/sales/financial_validations.rb b/app/models/validations/sales/financial_validations.rb index 624960c88..656b4f0cb 100644 --- a/app/models/validations/sales/financial_validations.rb +++ b/app/models/validations/sales/financial_validations.rb @@ -130,14 +130,14 @@ module Validations::Sales::FinancialValidations minimum_percentage_per_staircasing_transaction = 1 if percentage_left < previous_staircasing_transactions * minimum_percentage_per_staircasing_transaction - equity_sum = sprintf("%g", record.stairowned - percentage_left + previous_staircasing_transactions * minimum_percentage_per_staircasing_transaction) - formatted_equity = sprintf("%g", record.equity) - formatted_stairbought = sprintf("%g", record.stairbought) - formatted_stairowned = sprintf("%g", record.stairowned) - record.errors.add :equity, I18n.t("validations.sales.financial.equity.more_than_stairowned_minus_stairbought_minus_prev_staircasing", equity: formatted_equity, bought: formatted_stairbought, numprevstair: previous_staircasing_transactions, equity_sum:, stair_total: formatted_stairowned) - record.errors.add :stairowned, I18n.t("validations.sales.financial.stairowned.less_than_stairbought_plus_equity_plus_prev_staircasing", equity: formatted_equity, bought: formatted_stairbought, numprevstair: previous_staircasing_transactions, equity_sum:, stair_total: formatted_stairowned) - record.errors.add :stairbought, I18n.t("validations.sales.financial.stairbought.more_than_stairowned_minus_equity_minus_prev_staircasing", equity: formatted_equity, bought: formatted_stairbought, numprevstair: previous_staircasing_transactions, equity_sum:, stair_total: formatted_stairowned) - record.errors.add :numstair, I18n.t("validations.sales.financial.numstair.too_high_for_stairowned_minus_stairbought_minus_equity", equity: formatted_equity, bought: formatted_stairbought, numprevstair: previous_staircasing_transactions, equity_sum:, stair_total: formatted_stairowned) + equity_sum = sprintf("%g", record.stairowned - percentage_left + previous_staircasing_transactions * minimum_percentage_per_staircasing_transaction) + formatted_equity = sprintf("%g", record.equity) + formatted_stairbought = sprintf("%g", record.stairbought) + formatted_stairowned = sprintf("%g", record.stairowned) + record.errors.add :equity, I18n.t("validations.sales.financial.equity.more_than_stairowned_minus_stairbought_minus_prev_staircasing", equity: formatted_equity, bought: formatted_stairbought, numprevstair: previous_staircasing_transactions, equity_sum:, stair_total: formatted_stairowned) + record.errors.add :stairowned, I18n.t("validations.sales.financial.stairowned.less_than_stairbought_plus_equity_plus_prev_staircasing", equity: formatted_equity, bought: formatted_stairbought, numprevstair: previous_staircasing_transactions, equity_sum:, stair_total: formatted_stairowned) + record.errors.add :stairbought, I18n.t("validations.sales.financial.stairbought.more_than_stairowned_minus_equity_minus_prev_staircasing", equity: formatted_equity, bought: formatted_stairbought, numprevstair: previous_staircasing_transactions, equity_sum:, stair_total: formatted_stairowned) + record.errors.add :numstair, I18n.t("validations.sales.financial.numstair.too_high_for_stairowned_minus_stairbought_minus_equity", equity: formatted_equity, bought: formatted_stairbought, numprevstair: previous_staircasing_transactions, equity_sum:, stair_total: formatted_stairowned) end end diff --git a/app/models/validations/sales/sale_information_validations.rb b/app/models/validations/sales/sale_information_validations.rb index 338dbaf81..2b2d4df27 100644 --- a/app/models/validations/sales/sale_information_validations.rb +++ b/app/models/validations/sales/sale_information_validations.rb @@ -59,10 +59,9 @@ module Validations::Sales::SaleInformationValidations record.errors.add :lasttransaction, I18n.t("validations.sales.sale_information.lasttransaction.must_be_before_saledate") record.errors.add :saledate, I18n.t("validations.sales.sale_information.saledate.must_be_after_last_transaction_date") end - if record.initialpurchase.present? && record.lasttransaction < record.initialpurchase - 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 :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") end end diff --git a/spec/models/validations/sales/sale_information_validations_spec.rb b/spec/models/validations/sales/sale_information_validations_spec.rb index 7061ed1ed..a43e0e639 100644 --- a/spec/models/validations/sales/sale_information_validations_spec.rb +++ b/spec/models/validations/sales/sale_information_validations_spec.rb @@ -229,12 +229,8 @@ RSpec.describe Validations::Sales::SaleInformationValidations do it "adds error" do sale_information_validator.validate_staircasing_initial_purchase_date(record) - expect(record.errors[:initialpurchase]).to eq( - [I18n.t("validations.sales.sale_information.initialpurchase.must_be_before_saledate")], - ) - expect(record.errors[:saledate]).to eq( - [I18n.t("validations.sales.sale_information.saledate.must_be_after_initial_purchase_date")], - ) + expect(record.errors[:initialpurchase]).to eq([I18n.t("validations.sales.sale_information.initialpurchase.must_be_before_saledate")]) + expect(record.errors[:saledate]).to eq([I18n.t("validations.sales.sale_information.saledate.must_be_after_initial_purchase_date")]) end end @@ -296,12 +292,8 @@ RSpec.describe Validations::Sales::SaleInformationValidations do it "adds error" do sale_information_validator.validate_staircasing_last_transaction_date(record) - expect(record.errors[:lasttransaction]).to eq( - [I18n.t("validations.sales.sale_information.lasttransaction.must_be_before_saledate")], - ) - expect(record.errors[:saledate]).to eq( - [I18n.t("validations.sales.sale_information.saledate.must_be_after_last_transaction_date")], - ) + expect(record.errors[:lasttransaction]).to eq([I18n.t("validations.sales.sale_information.lasttransaction.must_be_before_saledate")]) + expect(record.errors[:saledate]).to eq([I18n.t("validations.sales.sale_information.saledate.must_be_after_last_transaction_date")]) end end @@ -331,12 +323,8 @@ RSpec.describe Validations::Sales::SaleInformationValidations do it "adds error" do sale_information_validator.validate_staircasing_last_transaction_date(record) - expect(record.errors[:lasttransaction]).to eq( - [I18n.t("validations.sales.sale_information.lasttransaction.must_be_after_initial_purchase")], - ) - expect(record.errors[:initialpurchase]).to eq( - [I18n.t("validations.sales.sale_information.initialpurchase.must_be_before_last_transaction")], - ) + expect(record.errors[:lasttransaction]).to eq([I18n.t("validations.sales.sale_information.lasttransaction.must_be_after_initial_purchase")]) + expect(record.errors[:initialpurchase]).to eq([I18n.t("validations.sales.sale_information.initialpurchase.must_be_before_last_transaction")]) end end