Nach Löschen in ar/ap/gl via DB-Trigger in acc_trans aufräumen
[kivitendo-erp.git] / sql / Pg-upgrade2 / ar_ap_gl_delete_triggers_deletion_from_acc_trans.sql
diff --git a/sql/Pg-upgrade2/ar_ap_gl_delete_triggers_deletion_from_acc_trans.sql b/sql/Pg-upgrade2/ar_ap_gl_delete_triggers_deletion_from_acc_trans.sql
new file mode 100644 (file)
index 0000000..e38e58c
--- /dev/null
@@ -0,0 +1,22 @@
+-- @tag: ar_ap_gl_delete_triggers_deletion_from_acc_trans
+-- @description: Beim Löschen aus ar, ap, gl per Trigger auch dazugehörige Einträge aus acc_trans löschen
+-- @depends: release_3_0_0
+-- @charset: utf-8
+CREATE OR REPLACE FUNCTION clean_up_acc_trans_after_ar_ap_gl_delete() RETURNS trigger AS $$
+  BEGIN
+    DELETE FROM acc_trans WHERE trans_id = OLD.id;
+    RETURN OLD;
+  END;
+$$ LANGUAGE plpgsql;
+
+CREATE TRIGGER after_delete_ar_trigger
+AFTER DELETE ON ar FOR EACH ROW EXECUTE
+PROCEDURE clean_up_acc_trans_after_ar_ap_gl_delete();
+
+CREATE TRIGGER after_delete_ap_trigger
+AFTER DELETE ON ap FOR EACH ROW EXECUTE
+PROCEDURE clean_up_acc_trans_after_ar_ap_gl_delete();
+
+CREATE TRIGGER after_delete_gl_trigger
+AFTER DELETE ON gl FOR EACH ROW EXECUTE
+PROCEDURE clean_up_acc_trans_after_ar_ap_gl_delete();