Revision eb2c69b0
Von Bernd Bleßmann vor mehr als 2 Jahren hinzugefügt
sql/Pg-upgrade2/follow_up_done_close_follow_ups_when_order_is_closed.sql | ||
---|---|---|
1 |
-- @tag: follow_up_done_close_follow_ups_when_order_is_closed |
|
2 |
-- @description: Wiedervorlagen schließen, wenn dazugehörige Belege geschlossen werden (nach follow_up_done) |
|
3 |
-- @depends: delete_close_follow_ups_when_order_is_deleted_closed |
|
4 |
|
|
5 |
CREATE OR REPLACE FUNCTION follow_up_close_when_oe_closed_trigger() |
|
6 |
RETURNS TRIGGER AS $$ |
|
7 |
BEGIN |
|
8 |
IF COALESCE(NEW.closed, FALSE) AND NOT COALESCE(OLD.closed, FALSE) THEN |
|
9 |
INSERT INTO follow_up_done (follow_up_id) |
|
10 |
SELECT follow_ups.id |
|
11 |
FROM follow_ups |
|
12 |
LEFT JOIN follow_up_done ON (follow_up_done.follow_up_id = follow_ups.id) |
|
13 |
WHERE follow_up_done.id IS NULL |
|
14 |
AND follow_ups.id IN ( |
|
15 |
SELECT follow_up_id |
|
16 |
FROM follow_up_links |
|
17 |
WHERE (trans_id = NEW.id) |
|
18 |
AND (trans_type IN ('sales_quotation', 'sales_order', 'sales_delivery_order', |
|
19 |
'request_quotation', 'purchase_order', 'purchase_delivery_order')) |
|
20 |
); |
|
21 |
END IF; |
|
22 |
|
|
23 |
RETURN NEW; |
|
24 |
END; |
|
25 |
$$ LANGUAGE plpgsql; |
Auch abrufbar als: Unified diff
Wiedervorlagen: Trigger zum Schließen beim Schließen der Belege angepasst.
Dabei wird der aktuelle Benutzer nicht in die follow_up_done-Tabelle
eingetragen, weil er bei dem DB-Trigger nicht bekannt ist.
Wenn das gewollt ist, dann muss das von Trigger auf Backend-Code umgeschrieben
werden.