Browse Source
* CLDC-4300: Stricten validation on initialpurchase * CLDC-4300: Add a correction script * CLDC-4300: Update tests * CLDC-4300: Ensure lasttransaction cannot equal saledate or initialtransaction * CLDC-4300: Update date correcting rake to also account for lasttransaction = initialpurchase * CLDC-4300: Revert updates to copy * CLDC-4300: Apply these changes from 2026 only * fixup! CLDC-4300: Apply these changes from 2026 only in rake too * CLDC-4300: Compare lasttransaction to saledate due to the it <= lt <= sd relationship, there's no need to comparse it to sd. if it == sd then it == lt and lt == sd * fixup! CLDC-4300: Compare lasttransaction to saledate update rake desc Co-authored-by: Oscar Richardson <116292912+oscar-richardson-softwire@users.noreply.github.com> --------- Co-authored-by: Oscar Richardson <116292912+oscar-richardson-softwire@users.noreply.github.com>pull/3339/head
3 changed files with 73 additions and 15 deletions
@ -0,0 +1,13 @@
|
||||
desc "We tightened the validation in 2026 between initial purchase date, last transaction date and sale date so that no two can be equal and initial purchase date < last transaction date < sale date. To avoid invalid logs we clear lasttransaction if it equals saledate and if initialpurchase = lasttransaction we clear both" |
||||
task fix_sales_logs_with_invalid_initialpurchase_lasttransaction: :environment do |
||||
lasttransaction_equal_saledate_logs = SalesLog.filter_by_year_or_later(2026).where("lasttransaction = saledate") |
||||
initial_purchase_equal_lasttransaction_logs = SalesLog.filter_by_year_or_later(2026).where("initialpurchase = lasttransaction") |
||||
|
||||
puts "Updating #{lasttransaction_equal_saledate_logs.count} logs where lasttransaction = saledate, #{lasttransaction_equal_saledate_logs.map(&:id)}" |
||||
lasttransaction_equal_saledate_logs.update!(lasttransaction: nil) |
||||
|
||||
puts "Updating #{initial_purchase_equal_lasttransaction_logs.count} logs where initialpurchase = lasttransaction, #{initial_purchase_equal_lasttransaction_logs.map(&:id)}" |
||||
initial_purchase_equal_lasttransaction_logs.update!(initialpurchase: nil, lasttransaction: nil) |
||||
|
||||
puts "Done" |
||||
end |
||||
Loading…
Reference in new issue