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: delete_close_follow_ups_when_order_is_deleted_closed_fkey_deletion
5 ALTER TABLE follow_up_links ADD CONSTRAINT follow_up_links_follow_up_id_fkey FOREIGN KEY (follow_up_id) REFERENCES follow_ups (id) ON DELETE CASCADE;
7 CREATE OR REPLACE FUNCTION follow_up_delete_notes_trigger()
11 WHERE (trans_id = OLD.id)
12 AND (trans_module = 'fu');
17 CREATE OR REPLACE FUNCTION follow_up_delete_when_oe_is_deleted_trigger()
20 DELETE FROM follow_ups
24 WHERE (trans_id = OLD.id)
25 AND (trans_type IN ('sales_quotation', 'sales_order', 'sales_delivery_order', 'sales_invoice',
26 'request_quotation', 'purchase_order', 'purchase_delivery_order', 'purchase_invoice'))
33 CREATE OR REPLACE FUNCTION follow_up_delete_when_customer_vendor_is_deleted_trigger()
36 DELETE FROM follow_ups
40 WHERE (trans_id = OLD.id)
41 AND (trans_type IN ('customer', 'vendor'))
45 WHERE (trans_id = OLD.id)
46 AND (trans_module = 'ct');
52 -- ============================================================
54 DROP TRIGGER IF EXISTS follow_up_delete_notes ON follow_ups;
56 CREATE TRIGGER follow_up_delete_notes
57 AFTER DELETE ON follow_ups
58 FOR EACH ROW EXECUTE PROCEDURE follow_up_delete_notes_trigger();
60 DROP TRIGGER IF EXISTS oe_before_delete_clear_follow_ups ON oe;
62 CREATE TRIGGER oe_before_delete_clear_follow_ups
64 FOR EACH ROW EXECUTE PROCEDURE follow_up_delete_when_oe_is_deleted_trigger();
66 DROP TRIGGER IF EXISTS customer_before_delete_clear_follow_ups ON customer;
67 DROP TRIGGER IF EXISTS vendor_before_delete_clear_follow_ups ON vendor;
69 CREATE TRIGGER customer_before_delete_clear_follow_ups
70 AFTER DELETE ON customer
71 FOR EACH ROW EXECUTE PROCEDURE follow_up_delete_when_customer_vendor_is_deleted_trigger();
73 CREATE TRIGGER vendor_before_delete_clear_follow_ups
74 AFTER DELETE ON vendor
75 FOR EACH ROW EXECUTE PROCEDURE follow_up_delete_when_customer_vendor_is_deleted_trigger();
77 -- ============================================================
79 CREATE OR REPLACE FUNCTION follow_up_close_when_oe_closed_trigger()
82 IF COALESCE(NEW.closed, FALSE) AND NOT COALESCE(OLD.closed, FALSE) THEN
88 WHERE (trans_id = NEW.id)
89 AND (trans_type IN ('sales_quotation', 'sales_order', 'sales_delivery_order',
90 'request_quotation', 'purchase_order', 'purchase_delivery_order'))
98 DROP TRIGGER IF EXISTS oe_on_update_close_follow_up ON oe;
100 CREATE TRIGGER oe_on_update_close_follow_up
102 FOR EACH ROW EXECUTE PROCEDURE follow_up_close_when_oe_closed_trigger();
104 DROP TRIGGER IF EXISTS delivery_orders_on_update_close_follow_up ON delivery_orders;
106 CREATE TRIGGER delivery_orders_on_update_close_follow_up
107 AFTER UPDATE ON delivery_orders
108 FOR EACH ROW EXECUTE PROCEDURE follow_up_close_when_oe_closed_trigger();