From 8d1fd603f6e2a3b07a4212bac9351087529ca4b2 Mon Sep 17 00:00:00 2001 From: Miguel Pinto Date: Wed, 19 Feb 2025 20:57:31 +0000 Subject: [PATCH] feat: add fix migration --- ...voices_with_incorrect_total_paid_amount.rb | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 db/migrate/20250219205535_fix_invoices_with_incorrect_total_paid_amount.rb diff --git a/db/migrate/20250219205535_fix_invoices_with_incorrect_total_paid_amount.rb b/db/migrate/20250219205535_fix_invoices_with_incorrect_total_paid_amount.rb new file mode 100644 index 00000000000..e4dfa3ea372 --- /dev/null +++ b/db/migrate/20250219205535_fix_invoices_with_incorrect_total_paid_amount.rb @@ -0,0 +1,27 @@ +# frozen_string_literal: true + +class FixInvoicesWithIncorrectTotalPaidAmount < ActiveRecord::Migration[7.1] + def up + safety_assured do + execute <<~SQL + UPDATE invoices + SET total_paid_amount_cents = 0 + WHERE id IN ( + SELECT invoices.id + FROM invoices + LEFT JOIN payments ON invoices.id = payments.invoice_id + LEFT JOIN invoices_payment_requests ON invoices.id = invoices_payment_requests.invoice_id + WHERE payments.id IS NULL + AND invoices_payment_requests.id IS NULL + AND total_amount_cents > 0 + AND invoice_type <> 4 + AND total_amount_cents = total_paid_amount_cents + AND payment_status = 1 + ); + SQL + end + end + + def down + end +end