From 5806eb8d72a43a8b1802d41bd3420b9142549fa1 Mon Sep 17 00:00:00 2001 From: Samuel Young Date: Mon, 13 Apr 2026 17:33:48 +0100 Subject: [PATCH] CLDC-4298: Ensure value must be a whole number (#3297) * CLDC-4298: Update purchase price step for 2026 * CLDC-4298: Add a rake task to round value values * fixup! CLDC-4298: Add a rake task to round value values remove redundant query update desc remove unneeded comment --- app/models/form/sales/questions/purchase_price.rb | 2 +- lib/tasks/round_value_for_2026_sales_logs.rake | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 lib/tasks/round_value_for_2026_sales_logs.rake diff --git a/app/models/form/sales/questions/purchase_price.rb b/app/models/form/sales/questions/purchase_price.rb index 24aecd7ec..8a919b55f 100644 --- a/app/models/form/sales/questions/purchase_price.rb +++ b/app/models/form/sales/questions/purchase_price.rb @@ -4,7 +4,7 @@ class Form::Sales::Questions::PurchasePrice < ::Form::Question @id = "value" @type = "numeric" @min = form.start_year_2026_or_later? ? 15_000 : 0 - @step = 0.01 + @step = form.start_year_2026_or_later? ? 1 : 0.01 # 0.01 was a mistake that was fixed in 2026 @width = 5 @prefix = "£" @ownership_sch = ownershipsch diff --git a/lib/tasks/round_value_for_2026_sales_logs.rake b/lib/tasks/round_value_for_2026_sales_logs.rake new file mode 100644 index 000000000..c0f584799 --- /dev/null +++ b/lib/tasks/round_value_for_2026_sales_logs.rake @@ -0,0 +1,11 @@ +desc "Rounds purchase price (the 'value' field) for sales logs in the database if not a whole number" +task round_value_for_2026_sales_logs: :environment do + logs = SalesLog.filter_by_year(2026).where("value % 1 != 0") + puts "Correcting #{logs.count} sales logs, #{logs.map(&:id)}" + + logs.find_each do |log| + log.update(value: log.value.round) + end + + puts "Done" +end