a5f1a923ea2579587c5a21ed21655d81efcffc21
[xtuple] / foundation-database / public / trigger_functions / pkguiform.sql
1 -- NO create trigger statements here. the updater will create them.
2
3 SELECT dropIfExists('TRIGGER', 'pkguiformbeforetrigger');
4 CREATE OR REPLACE FUNCTION _pkguiformbeforetrigger() RETURNS "trigger" AS $$
5 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple. 
6 -- See www.xtuple.com/CPAL for the full text of the software license.
7 DECLARE
8   _uiformid     INTEGER;
9   _debug        BOOL := false;
10
11 BEGIN
12   IF (TG_OP = 'UPDATE') THEN
13     RETURN NEW;
14
15   ELSIF (TG_OP = 'INSERT') THEN
16     RETURN NEW;
17
18   ELSIF (TG_OP = 'DELETE') THEN
19     RETURN OLD;
20   END IF;
21
22   RETURN NEW;
23 END;
24 $$ LANGUAGE 'plpgsql';
25
26 CREATE OR REPLACE FUNCTION _pkguiformalterTrigger() RETURNS TRIGGER AS $$
27 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple. 
28 -- See www.xtuple.com/CPAL for the full text of the software license.
29 BEGIN
30   IF (pkgMayBeModified(TG_TABLE_SCHEMA)) THEN
31     IF (TG_OP = 'DELETE') THEN
32       RETURN OLD;
33     ELSE
34       RETURN NEW;
35     END IF;
36   END IF;
37
38   IF (TG_OP = 'INSERT') THEN
39     RAISE EXCEPTION 'You may not create forms in packages except using the xTuple Updater utility';
40
41   ELSIF (TG_OP = 'UPDATE') THEN
42     RAISE EXCEPTION 'You may not alter forms in packages except using the xTuple Updater utility';
43
44   ELSIF (TG_OP = 'DELETE') THEN
45     RAISE EXCEPTION 'You may not delete forms from packages. Try deleting or disabling the package.';
46
47   END IF;
48
49   RETURN NEW;
50 END;
51
52 $$ LANGUAGE 'plpgsql';
53
54 CREATE OR REPLACE FUNCTION _pkguiformaftertrigger() RETURNS TRIGGER AS $$
55 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple. 
56 -- See www.xtuple.com/CPAL for the full text of the software license.
57 BEGIN
58   IF (TG_OP = 'DELETE') THEN
59     RETURN OLD;
60   END IF;
61
62   RETURN NEW;
63 END;
64 $$ LANGUAGE 'plpgsql';