LP#1793802 Age circ ages payments before billings
authorBill Erickson <berickxx@gmail.com>
Sat, 20 Oct 2018 12:11:46 +0000 (08:11 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Fri, 6 Sep 2019 21:39:09 +0000 (17:39 -0400)
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>
Open-ILS/src/sql/Pg/090.schema.action.sql
Open-ILS/src/sql/Pg/upgrade/XXXX.schema.aged-billing-payment.sql

index fe3c78a..83e48bf 100644 (file)
@@ -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;
index a88bdd2..ab8128f 100644 (file)
@@ -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;