DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PR_VAL_PRGC

Source


1 PACKAGE BODY IGS_PR_VAL_PRGC AS
2 /* $Header: IGSPR06B.pls 115.3 2002/11/29 02:45:01 nsidana ship $ */
3   --
4   -- Validate the IGS_PR_RU_CAT.s_rule_call_cd field.
5   FUNCTION prgp_val_src_prg(
6   p_s_rule_call_cd IN VARCHAR2 ,
7   p_message_name OUT NOCOPY VARCHAR2 )
8   RETURN BOOLEAN AS
9   	gv_other_detail		VARCHAR2(255);
10   BEGIN	-- prgp_val_src_prg
11   	-- Validate the IGS_PR_RU_CAT.s_rule_call_cd field can
12   	-- only be linked to IGS_RU_CALL records with a s_rule_type_cd of 'PRG'.
13   DECLARE
14   	v_dummy		VARCHAR2(1);
15   	CURSOR c_src IS
16   		SELECT	'X'
17   		FROM	IGS_RU_CALL	src
18   		WHERE	src.s_rule_call_cd = p_s_rule_call_cd AND
19   			src.s_rule_type_cd = 'PRG';
20   BEGIN
21   	IF p_s_rule_call_cd IS NULL THEN
22   		p_message_name := null;
23   		RETURN TRUE;
24   	END IF;
25   	OPEN c_src;
26   	FETCH c_src INTO v_dummy;
27   	IF c_src%NOTFOUND THEN
28   		CLOSE c_src;
29   		p_message_name := 'IGS_PR_CHK_SYSTEM_RULE_CALL';
30   		RETURN FALSE;
31   	END IF;
32   	CLOSE c_src;
33   	p_message_name := null;
34   	RETURN TRUE;
35   EXCEPTION
36   	WHEN OTHERS THEN
37   		IF (c_src%ISOPEN) THEN
38   			CLOSE c_src;
39   		END IF;
40   		RAISE;
41   END;
42   EXCEPTION
43   	WHEN OTHERS THEN
44 		Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
45                 FND_MESSAGE.SET_TOKEN ('NAME', 'IGS_PR_VAL_PRGC.PRGP_VAL_SRC_PRG');
46                 --IGS_GE_MSG_STACK.ADD;
47 
48   END prgp_val_src_prg;
49   --
50   -- Validate the IGS_PR_RU_CAT.s_rule_call_cd.
51   FUNCTION prgp_val_prgc_upd(
52   p_progression_rule_cat IN VARCHAR2 ,
53   p_old_s_rule_call_cd IN VARCHAR2 ,
54   p_new_s_rule_call_cd IN VARCHAR2 ,
55   p_message_name OUT NOCOPY VARCHAR2 )
56   RETURN BOOLEAN AS
57   	gv_other_detail			VARCHAR2(255);
58   BEGIN 	-- prgp_val_prgc_upd
59   	-- Validate the IGS_PR_RU_CAT.s_rule_call_cd can only be updated if
60   	-- there are no IGS_PR_RULE or IGS_PR_RU_APPL records linked to
61   	-- this IGS_PR_RU_CAT.
62   DECLARE
63   	v_dummy				VARCHAR2(1);
64   	CURSOR c_prr IS
65   		SELECT	'X'
66   		FROM	IGS_PR_RULE		prr
67   		WHERE	prr.progression_rule_cat	= p_progression_rule_cat;
68   	CURSOR c_pra IS
69   		SELECT	'X'
70   		FROM	IGS_PR_RU_APPL		pra
71   		WHERE	pra.progression_rule_cat = p_progression_rule_cat AND
72   			pra.rul_sequence_number 	IS NOT NULL;
73   BEGIN
74   	-- Set the default message number
75   	p_message_name := null;
76   	IF p_progression_rule_cat IS NULL OR
77   			p_old_s_rule_call_cd IS NULL OR
78   			p_new_s_rule_call_cd IS NULL THEN
79   		RETURN TRUE;
80   	END IF;
81   	-- If the s_rule_call_cd has been changed
82   	IF p_old_s_rule_call_cd <>
83   			p_new_s_rule_call_cd THEN
84   		-- Check for any IGS_PR_RULE records using this IGS_PR_RU_CAT
85   		OPEN c_prr;
86   		FETCH c_prr INTO v_dummy;
87   		IF c_prr%FOUND THEN
88   			CLOSE c_prr;
89   			p_message_name := 'IGS_PR_RUL_RECORD_IN_USE';
90   			RETURN FALSE;
91   		END IF;
92   		CLOSE c_prr;
93   		-- Check for any IGS_PR_RU_APPL records using this
94   		-- progression_rule_cat
95   		OPEN c_pra;
96   		FETCH c_pra INTO v_dummy;
97   		IF c_pra%FOUND THEN
98   			CLOSE c_pra;
99   			p_message_name := 'IGS_PR_RUL_APPL_REC_IN_USE';
100   			RETURN FALSE;
101   		END IF;
102   		CLOSE c_pra;
103   	END IF;
104   	RETURN TRUE;
105   EXCEPTION
106   	WHEN OTHERS THEN
107   		IF c_prr%ISOPEN THEN
108   			CLOSE c_prr;
109   		END IF;
110   		IF c_pra%ISOPEN THEN
111   			CLOSE c_pra;
112   		END IF;
113   		RAISE;
114   END;
115   EXCEPTION
116   	WHEN OTHERS THEN
117 		Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
118                 FND_MESSAGE.SET_TOKEN ('NAME', 'IGS_PR_VAL_PRGC.PRGP_VAL_PRGC_UPD');
119                 --IGS_GE_MSG_STACK.ADD;
120 
121   END prgp_val_prgc_upd;
122 END IGS_PR_VAL_PRGC;