1 -- @tag: delete_close_follow_ups_when_order_is_deleted_closed
2 -- @description: Wiedervorlagen löschen/schließen, wenn dazugehörige Belege gelöscht/geschlossen werden
3 -- @depends: release_3_0_0
5 ALTER TABLE follow_up_links DROP CONSTRAINT follow_up_links_follow_up_id_fkey;
6 ALTER TABLE follow_up_links ADD FOREIGN KEY (follow_up_id) REFERENCES follow_ups (id) ON DELETE CASCADE;
8 CREATE OR REPLACE FUNCTION follow_up_delete_notes_trigger()
12 WHERE (trans_id = OLD.id)
13 AND (trans_module = 'fu');
18 CREATE OR REPLACE FUNCTION follow_up_delete_when_oe_is_deleted_trigger()
21 DELETE FROM follow_ups
25 WHERE (trans_id = OLD.id)
26 AND (trans_type IN ('sales_quotation', 'sales_order', 'sales_delivery_order', 'sales_invoice',
27 'request_quotation', 'purchase_order', 'purchase_delivery_order', 'purchase_invoice'))
34 CREATE OR REPLACE FUNCTION follow_up_delete_when_customer_vendor_is_deleted_trigger()
37 DELETE FROM follow_ups
41 WHERE (trans_id = OLD.id)
42 AND (trans_type IN ('customer', 'vendor'))
46 WHERE (trans_id = OLD.id)
47 AND (trans_module = 'ct');
53 -- ============================================================
55 DROP TRIGGER IF EXISTS follow_up_delete_notes ON follow_ups;
57 CREATE TRIGGER follow_up_delete_notes
58 AFTER DELETE ON follow_ups
59 FOR EACH ROW EXECUTE PROCEDURE follow_up_delete_notes_trigger();
61 DROP TRIGGER IF EXISTS oe_before_delete_clear_follow_ups ON oe;
63 CREATE TRIGGER oe_before_delete_clear_follow_ups
65 FOR EACH ROW EXECUTE PROCEDURE follow_up_delete_when_oe_is_deleted_trigger();
67 DROP TRIGGER IF EXISTS customer_before_delete_clear_follow_ups ON customer;
68 DROP TRIGGER IF EXISTS vendor_before_delete_clear_follow_ups ON vendor;
70 CREATE TRIGGER customer_before_delete_clear_follow_ups
71 AFTER DELETE ON customer
72 FOR EACH ROW EXECUTE PROCEDURE follow_up_delete_when_customer_vendor_is_deleted_trigger();
74 CREATE TRIGGER vendor_before_delete_clear_follow_ups
75 AFTER DELETE ON vendor
76 FOR EACH ROW EXECUTE PROCEDURE follow_up_delete_when_customer_vendor_is_deleted_trigger();
78 -- ============================================================
80 CREATE OR REPLACE FUNCTION follow_up_close_when_oe_closed_trigger()
83 IF COALESCE(NEW.closed, FALSE) AND NOT COALESCE(OLD.closed, FALSE) THEN
89 WHERE (trans_id = NEW.id)
90 AND (trans_type IN ('sales_quotation', 'sales_order', 'sales_delivery_order',
91 'request_quotation', 'purchase_order', 'purchase_delivery_order'))
99 DROP TRIGGER IF EXISTS oe_on_update_close_follow_up ON oe;
101 CREATE TRIGGER oe_on_update_close_follow_up
103 FOR EACH ROW EXECUTE PROCEDURE follow_up_close_when_oe_closed_trigger();
105 DROP TRIGGER IF EXISTS delivery_orders_on_update_close_follow_up ON delivery_orders;
107 CREATE TRIGGER delivery_orders_on_update_close_follow_up
108 AFTER UPDATE ON delivery_orders
109 FOR EACH ROW EXECUTE PROCEDURE follow_up_close_when_oe_closed_trigger();