1 -- NO create trigger statements here. the updater will create them.
3 SELECT dropIfExists('TRIGGER', 'pkgcmdbeforetrigger');
4 CREATE OR REPLACE FUNCTION _pkgcmdbeforetrigger() 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.
12 IF (TG_OP = 'UPDATE') THEN
14 RAISE NOTICE 'OLD.cmd_name %, NEW.cmd_name %',
15 OLD.cmd_name, NEW.cmd_name;
18 IF (NEW.cmd_name != OLD.cmd_name) THEN
19 SELECT cmd_id INTO _cmdid FROM cmd WHERE cmd_name=NEW.cmd_name;
21 RAISE EXCEPTION 'Cannot change command name % because another command with that name already exists.', NEW.cmd_name;
25 ELSIF (TG_OP = 'INSERT') THEN
27 RAISE NOTICE 'inserting NEW.cmd_name %', NEW.cmd_name;
29 SELECT cmd_id INTO _cmdid FROM cmd WHERE cmd_name=NEW.cmd_name;
31 RAISE EXCEPTION 'Cannot create new command % because another command with that name already exists.', NEW.cmd_name;
34 ELSIF (TG_OP = 'DELETE') THEN
35 DELETE FROM cmdarg WHERE cmdarg_cmd_id=OLD.cmd_id;
42 $$ LANGUAGE 'plpgsql';
44 CREATE OR REPLACE FUNCTION _pkgcmdalterTrigger() RETURNS TRIGGER AS $$
45 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
46 -- See www.xtuple.com/CPAL for the full text of the software license.
48 IF (pkgMayBeModified(TG_TABLE_SCHEMA)) THEN
49 IF (TG_OP = 'DELETE') THEN
56 IF (TG_OP = 'INSERT') THEN
57 RAISE EXCEPTION 'You may not create custom commands in packages except using the xTuple Updater utility';
59 ELSIF (TG_OP = 'UPDATE') THEN
60 RAISE EXCEPTION 'You may not alter custom commands in packages except using the xTuple Updater utility';
62 ELSIF (TG_OP = 'DELETE') THEN
63 RAISE EXCEPTION 'You may not delete custom commands from packages. Try deleting or disabling the package.';
70 $$ LANGUAGE 'plpgsql';
72 CREATE OR REPLACE FUNCTION _pkgcmdaftertrigger() RETURNS TRIGGER AS $$
73 -- Copyright (c) 1999-2014 by OpenMFG LLC, d/b/a xTuple.
74 -- See www.xtuple.com/CPAL for the full text of the software license.
76 IF (TG_OP = 'DELETE') THEN
82 $$ LANGUAGE 'plpgsql';