LP1174498 Payment by billing type breakdown
authorblake <blake@mobiusconsortium.org>
Fri, 5 Jun 2015 21:34:20 +0000 (16:34 -0500)
committerblake <blake@mobiusconsortium.org>
Wed, 27 Feb 2019 22:53:39 +0000 (16:53 -0600)
Added the upgrade script. This has been running in production
for 6 months.

Signed-off-by: blake <blake@mobiusconsortium.org>
Open-ILS/src/sql/Pg/upgrade/XXXX.money.materialized_payment_by_billing_type

index 9d81e08..63a0777 100644 (file)
@@ -517,3 +517,38 @@ CREATE TRIGGER calculate_payment_by_btype_tgr
 
 
 COMMIT;
+
+
+-- Now Populate the materialized table
+
+BEGIN;
+
+CREATE OR REPLACE FUNCTION tmp_populate_p_b_bt () RETURNS BOOL AS $$
+DECLARE
+    p   RECORD;
+BEGIN
+    FOR p IN
+        SELECT  DISTINCT xact
+          FROM  money.payment
+          WHERE NOT voided
+                AND amount > 0.0
+    LOOP
+
+        INSERT INTO money.materialized_payment_by_billing_type (
+            xact, payment, billing, payment_ts, billing_ts,
+            payment_type, billing_type, amount, billing_ou, payment_ou
+        ) SELECT    xact, payment, billing, payment_ts, billing_ts,
+                    payment_type, billing_type, amount, billing_ou, payment_ou
+          FROM money.payment_by_billing_type( p.xact );
+
+    END LOOP;
+
+    RETURN TRUE;
+END;
+$$ LANGUAGE PLPGSQL;
+
+SELECT tmp_populate_p_b_bt();
+
+DROP FUNCTION tmp_populate_p_b_bt ();
+
+COMMIT;