CZ_DEVL_PROJECTS_T3
BEFORE UPDATE OF NAME, DESC_TEXT, DELETED_FLAG
ON "CZ"."CZ_DEVL_PROJECTS#"
REFERENCING OLD AS OLD NEW AS NEW
FOR EACH ROW
Type
BEFORE EACH ROW
Event
UPDATE
Column
When
Referencing
REFERENCING NEW AS NEW OLD AS OLD
Body
DECLARE
NAME_CHANGED INTEGER := 0;
DESCR_CHANGED INTEGER := 0;
DELFLAG_CHANGED INTEGER := 0;
BEGIN
IF :OLD.NAME <> :NEW.NAME THEN
NAME_CHANGED := 1;
END IF;
IF ( ( (:old.DESC_TEXT IS NULL)<>(:new.DESC_TEXT IS NULL) ) OR (:old.DESC_TEXT <>:new.DESC_TEXT) ) THEN
DESCR_CHANGED := 1;
END IF;
IF :OLD.DELETED_FLAG <> :NEW.DELETED_FLAG THEN
DELFLAG_CHANGED := 1;
END IF;
-- Check if there are any of 4 columns being updated
IF NAME_CHANGED+DESCR_CHANGED+DELFLAG_CHANGED > 0 THEN
UPDATE CZ_RP_ENTRIES SET
NAME = DECODE(NAME_CHANGED, 1, :NEW.NAME, CZ_RP_ENTRIES.NAME),
DESCRIPTION = DECODE(DESCR_CHANGED, 1, :NEW.DESC_TEXT, CZ_RP_ENTRIES.DESCRIPTION),
DELETED_FLAG = DECODE(DELFLAG_CHANGED, 1, :NEW.DELETED_FLAG, CZ_RP_ENTRIES.DELETED_FLAG)
WHERE OBJECT_TYPE='PRJ' AND OBJECT_ID=:OLD.DEVL_PROJECT_ID;
IF (DELFLAG_CHANGED=1 and :NEW.DELETED_FLAG=1)
then
update CZ_PERSISTENT_REC_IDS set
deleted_flag=1
where devl_project_id=:new.devl_project_id;
END IF;
--Re: bug #2131259.
UPDATE CZ_XFR_PROJECT_BILLS SET
DELETED_FLAG = DECODE(DELFLAG_CHANGED, 1, :NEW.DELETED_FLAG, CZ_XFR_PROJECT_BILLS.DELETED_FLAG)
WHERE MODEL_PS_NODE_ID = :OLD.DEVL_PROJECT_ID;
END IF;
IF NAME_CHANGED = 1 THEN
UPDATE cz_rule_folders SET name = :new.name || ' Rules'
WHERE devl_project_id = :OLD.DEVL_PROJECT_ID
AND object_type = 'RFL'
AND parent_rule_folder_id IS NULL;
END IF;
END;