From: Bill Erickson <berickxx@gmail.com>
Date: Sat, 20 Oct 2018 12:11:46 +0000 (-0400)
Subject: LP#1793802 Age circ ages payments before billings
X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=41e90694a7e973fef2e1a3176cc95cd692a00f0d;p=evergreen%2Fequinox.git

LP#1793802 Age circ ages payments before billings

When aging a circulation, payments must be deleted before billings,
since account_adjustements (payment) reference billings.

Signed-off-by: Bill Erickson <berickxx@gmail.com>
Signed-off-by: Chris Sharp <csharp@georgialibraries.org>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>
---

diff --git a/Open-ILS/src/sql/Pg/090.schema.action.sql b/Open-ILS/src/sql/Pg/090.schema.action.sql
index fe3c78a6cc..83e48bf8cf 100644
--- a/Open-ILS/src/sql/Pg/090.schema.action.sql
+++ b/Open-ILS/src/sql/Pg/090.schema.action.sql
@@ -358,8 +358,8 @@ BEGIN
     INSERT INTO money.aged_payment 
         SELECT * FROM money.payment_view WHERE xact = OLD.id;
 
-    DELETE FROM money.billing WHERE xact = OLD.id;
     DELETE FROM money.payment WHERE xact = OLD.id;
+    DELETE FROM money.billing WHERE xact = OLD.id;
 
     RETURN OLD;
 END;
diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.aged-billing-payment.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.aged-billing-payment.sql
index a88bdd28f3..ab8128f008 100644
--- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.aged-billing-payment.sql
+++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.aged-billing-payment.sql
@@ -71,8 +71,8 @@ BEGIN
     INSERT INTO money.aged_payment 
         SELECT * FROM money.payment_view WHERE xact = OLD.id;
 
-    DELETE FROM money.billing WHERE xact = OLD.id;
     DELETE FROM money.payment WHERE xact = OLD.id;
+    DELETE FROM money.billing WHERE xact = OLD.id;
 
     RETURN OLD;
 END;
@@ -91,10 +91,7 @@ ALTER TABLE money.forgive_payment DISABLE TRIGGER mat_summary_del_tgr;
 ALTER TABLE money.credit_payment DISABLE TRIGGER mat_summary_del_tgr;
 ALTER TABLE money.goods_payment DISABLE TRIGGER mat_summary_del_tgr;
 
-DELETE FROM money.payment WHERE id IN (
-    SELECT mp.id FROM money.payment mp
-    JOIN money.aged_payment USING (id)
-);
+DELETE FROM money.payment WHERE id IN (SELECT id FROM money.aged_payment);
 
 ALTER TABLE money.payment ENABLE TRIGGER mat_summary_del_tgr;
 ALTER TABLE money.cash_payment ENABLE TRIGGER mat_summary_del_tgr;