diff --git a/db/migrate/20250103124802_drop_zero_amount_fees.rb b/db/migrate/20250103124802_drop_zero_amount_fees.rb new file mode 100644 index 000000000000..0992b3c74b1a --- /dev/null +++ b/db/migrate/20250103124802_drop_zero_amount_fees.rb @@ -0,0 +1,32 @@ +# frozen_string_literal: true + +class DropZeroAmountFees < ActiveRecord::Migration[7.1] + disable_ddl_transaction! + + def change + sql = <<~SQL + DELETE FROM fees + USING invoices + WHERE + fees.invoice_id = invoices.id + AND invoices.status IN (1, 2, 6) -- finalized, voided and closed + AND fees.fee_type = 0 -- charge + AND fees.amount_cents = 0 + AND fees.units = 0 + AND fees.pay_in_advance = false + AND fees.true_up_parent_fee_id IS NULL + AND fees.id NOT IN ( + SELECT f.true_up_parent_fee_id + FROM fees f + WHERE f.true_up_parent_fee_id IS NOT NULL + ) + AND fees.id NOT IN ( + SELECT fee_id + FROM adjusted_fees + WHERE adjusted_fees.fee_id IS NOT NULL + ) + SQL + + ApplicationRecord.connection.execute(sql) + end +end diff --git a/db/schema.rb b/db/schema.rb index 610465f71c9a..608df6bdba1d 100644 --- a/db/schema.rb +++ b/db/schema.rb @@ -10,7 +10,7 @@ # # It's strongly recommended that you check this file into your version control system. -ActiveRecord::Schema[7.1].define(version: 2024_12_23_154437) do +ActiveRecord::Schema[7.1].define(version: 2025_01_03_124802) do # These are extensions that must be enabled in order to support this database enable_extension "pgcrypto" enable_extension "plpgsql"