From bf64ce80f14ad90ef50994a5b5c6d93a2c1397b7 Mon Sep 17 00:00:00 2001 From: Stephen Paul Weber Date: Tue, 10 Aug 2021 15:40:26 -0500 Subject: [PATCH] Not going to run this, new plan --- bin/months_to_balance | 37 ------------------------------------- 1 file changed, 37 deletions(-) delete mode 100755 bin/months_to_balance diff --git a/bin/months_to_balance b/bin/months_to_balance deleted file mode 100755 index ae338b8..0000000 --- a/bin/months_to_balance +++ /dev/null @@ -1,37 +0,0 @@ -#!/usr/bin/ruby -# frozen_string_literal: true - -# This is meant to be a one-time script that takes any "extra" -# months an account is activated for and rolls them back into balance instead -# Mostly as a fix for all the time that web activation spent not setting balance - -require "pg" - -DB = PG.connect(dbname: "jmp") -DB.type_map_for_results = PG::BasicTypeMapForResults.new(DB) -DB.type_map_for_queries = PG::BasicTypeMapForQueries.new(DB) - -rows = DB.query(<<~SQL) - SELECT customer_id, expires_at, - ((((DATE_PART('year', expires_at) - DATE_PART('year', LOCALTIMESTAMP)) * 12 + - (DATE_PART('month', expires_at) - DATE_PART('month', LOCALTIMESTAMP))) - 1) * - case plan_name - when 'usd_beta_unlimited-v20210223' then 2.99 - when 'cad_beta_unlimited-v20210223' then 3.59 - end)::NUMERIC(12,4) AS amount - FROM customer_plans WHERE expires_at > (DATE_TRUNC('month', LOCALTIMESTAMP) + '2 months') ORDER BY expires_at; -SQL - -rows.each do |r| - cid = r["customer_id"] - DB.transaction do - DB.exec(<<~SQL, [cid, "#{cid}-prevent_low_balance"]) - INSERT INTO transactions (customer_id, transaction_id, amount, note) - VALUES ($1, $2, 5.0001, 'Prevent low balance') - SQL - DB.exec(<<~SQL, [cid, r["expires_at"]]) - UPDATE plan_log SET date_range = date_range - tsrange(UPPER(date_range) - '1 month', UPPER(date_range)) - WHERE customer_id=$1 AND UPPER(date_range)=$2 - SQL - end -end -- 2.34.5