DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PR_VAL_PRA

Source


1 PACKAGE BODY IGS_PR_VAL_PRA AS
2 /* $Header: IGSPR04B.pls 115.5 2002/11/29 02:44:31 nsidana ship $ */
3 /*
4 ||  Bug ID 1956374 - Removal of Duplicate Program Units from OSS.
5 ||  Removed program unit (PRGP_VAL_OU_ACTIVE) - from the spec and body. -- kdande
6 */
7   -------------------------------------------------------------------------------------------
8   --Change History:
9   --Who         When            What
10   --avenkatr    29-AUG-2001    Bug Id : 1956374. Removed procedure "crsp_val_cty_closed"
11   -------------------------------------------------------------------------------------------
12   --
13   -- bug id : 1956374
14   -- sjadhav , 28-aug-2001
15   -- removed FUNCTION enrp_val_att_closed
16   --
17   --
18   -- Validate the IGS_PR_RU_APPL record.
19   FUNCTION prgp_val_pra_rqrd(
20   p_s_relation_type IN VARCHAR2 ,
21   p_progression_rule_cd IN VARCHAR2 ,
22   p_rul_sequence_number IN NUMBER ,
23   p_ou_org_unit_cd IN VARCHAR2 ,
24   p_ou_start_dt IN DATE ,
25   p_course_type IN VARCHAR2 ,
26   p_crv_course_cd IN VARCHAR2 ,
27   p_crv_version_number IN NUMBER ,
28   p_sca_person_id IN NUMBER ,
29   p_sca_course_cd IN VARCHAR2 ,
30   p_pro_progression_rule_cat IN VARCHAR2 ,
31   p_pro_pra_sequence_number IN NUMBER ,
32   p_pro_sequence_number IN NUMBER ,
33   p_spo_person_id IN NUMBER ,
34   p_spo_course_cd IN VARCHAR2 ,
35   p_spo_sequence_number IN NUMBER ,
36   p_message_name OUT NOCOPY VARCHAR2 )
37   RETURN BOOLEAN AS
38   	gv_other_detail		VARCHAR2(255);
39   BEGIN	-- prg_val_pra_rqrd
40   	-- Check that the IGS_PR_RU_APPL record does not have both
41   	-- progression_rule_cd and rul_sequence_number set and has the required
42   	-- information entered for the s_relation_type.
43   DECLARE
44   BEGIN
45   	IF p_s_relation_type IS NULL THEN
46   		p_message_name := null;
47   		RETURN TRUE;
48   	END IF;
49   	-- Check both progression_rule_cd and rul_sequence_number are not set
50   	IF p_progression_rule_cd IS NOT NULL AND
51   	   p_rul_sequence_number IS NOT NULL THEN
52   		p_message_name := 'IGS_PR_BTH_RUL_CD_SEQ_NO_NA';
53   		RETURN FALSE;
54   	END IF;
55   	-- Check one of either progression_rule_cd and rul_sequence_number are set
56   	IF p_progression_rule_cd IS NULL AND
57   	    p_rul_sequence_number IS NULL AND
58   	    p_s_relation_type <> 'PRGC' AND
59   	    p_s_relation_type <> 'PRR' THEN
60   		p_message_name := 'IGS_PR_ENTER_PRG_RULE_SEQ_NO.';
61   		RETURN FALSE;
62   	END IF;
63   	-- Check that the record has valid values for the s_relation_type specified.
64   	IF p_s_relation_type = 'PRGC' THEN
65   		IF p_progression_rule_cd IS NOT NULL OR
66   				p_rul_sequence_number IS NOT NULL THEN
67   			p_message_name := 'IGS_PR_CHK_WHEN_LNK_TO_PRG_RU';
68   			RETURN FALSE;
69   		END IF;
70   	ELSIF p_s_relation_type = 'PRR' THEN
71   		IF p_progression_rule_cd IS NULL OR
72   				p_rul_sequence_number IS NOT NULL THEN
73   			p_message_name := 'IGS_PR_RUL_MUST_BE_ENTERED';
74   			RETURN FALSE;
75   		END IF;
76   	ELSIF p_s_relation_type = 'CTY' THEN
77   		IF p_course_type IS NULL THEN
78   			p_message_name := 'IGS_GE_MANDATORY_FLD';
79   			RETURN FALSE;
80   		END IF;
81   	ELSIF p_s_relation_type = 'OU' THEN
82   		IF p_ou_org_unit_cd IS NULL OR
83   				p_ou_start_dt IS NULL THEN
84   			p_message_name := 'IGS_PR_ORG_UNIT_ST_DT_NOT_NUL';
85   			RETURN FALSE;
86   		END IF;
87   	ELSIF p_s_relation_type = 'CRV' THEN
88   		IF p_crv_course_cd IS NULL OR
89   				p_crv_version_number IS NULL THEN
90   			p_message_name := 'IGS_GE_MANDATORY_FLD';
91   			RETURN FALSE;
92   		END IF;
93   	ELSIF p_s_relation_type = 'SCA' THEN
94   		IF p_sca_person_id IS NULL OR
95   				p_sca_course_cd IS NULL THEN
96   			p_message_name := 'IGS_PR_PERSID_COUR_CD_NOT_NUL';
97   			RETURN FALSE;
98   		END IF;
99   	ELSIF p_s_relation_type = 'PRO' THEN
100   		IF p_pro_progression_rule_cat IS NULL OR
101   				p_pro_pra_sequence_number IS NULL OR
102   				p_pro_sequence_number IS NULL THEN
103   			p_message_name := 'IGS_PR_CHK_PRA_PRC_SEQ_NUMBER';
104   			RETURN FALSE;
105   		END IF;
106   	ELSIF p_s_relation_type = 'SPO' THEN
107   		IF p_spo_person_id IS NULL OR
108   				p_spo_course_cd IS NULL OR
109   				p_spo_sequence_number IS NULL THEN
110   			p_message_name := 'IGS_PR_PERID_CC_SEQNO_NOT_NUL';
111   			RETURN FALSE;
112   		END IF;
113   	END IF;
114   	p_message_name := null;
115   	RETURN TRUE;
116   END;
117   EXCEPTION
118   	WHEN OTHERS THEN
119 		Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
120                 FND_MESSAGE.SET_TOKEN ('NAME', 'IGS_PR_VAL_PRA.PRGP_VAL_PRA_RQRD');
121                 --IGS_GE_MSG_STACK.ADD;
122 
123   END prgp_val_pra_rqrd;
124   --
125   -- Validate that the IGS_PR_RU_CAT is not closed.
126   FUNCTION prgp_val_prgc_closed(
127   p_progression_rule_cat IN VARCHAR2 ,
128   p_message_name OUT NOCOPY VARCHAR2 )
129   RETURN BOOLEAN AS
130   	gv_other_detail		VARCHAR2(255);
131   BEGIN	-- prgp_val_prgc_closed
132   	-- Validate the IGS_PR_RU_CAT is not closed
133   DECLARE
134   	v_dummy		VARCHAR2(1);
135   	CURSOR c_prgc IS
136   		SELECT	'X'
137   		FROM	IGS_PR_RU_CAT	prgc
138   		WHERE	prgc.progression_rule_cat = p_progression_rule_cat AND
139   			prgc.closed_ind = 'N';
140   BEGIN
141   	IF p_progression_rule_cat IS NULL THEN
142   		p_message_name := null;
143   		RETURN TRUE;
144   	END IF;
145   	OPEN c_prgc;
146   	FETCH c_prgc INTO v_dummy;
147   	IF c_prgc%NOTFOUND THEN
148   		CLOSE c_prgc;
149   		p_message_name := 'IGS_PR_RULE_CAT_CLOSED';
150   		RETURN FALSE;
151   	END IF;
152   	CLOSE c_prgc;
153   	p_message_name := null;
154   	RETURN TRUE;
155   EXCEPTION
156   	WHEN OTHERS THEN
157   		IF (c_prgc%ISOPEN) THEN
158   			CLOSE c_prgc;
159   		END IF;
160   		RAISE;
161   END;
162   EXCEPTION
163   	WHEN OTHERS THEN
164 		Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
165                 FND_MESSAGE.SET_TOKEN ('NAME', 'IGS_PR_VAL_PRA.PRGP_VAL_PRGC_CLOSED');
166                 --IGS_GE_MSG_STACK.ADD;
167 
168   END prgp_val_prgc_closed;
169   --
170   -- Validate that the IGS_PR_RULE is not closed.
171   FUNCTION prgp_val_prr_closed(
172   p_progression_rule_cd IN VARCHAR2 ,
173   p_message_name OUT NOCOPY VARCHAR2 )
174   RETURN BOOLEAN AS
175   	gv_other_detail		VARCHAR2(255);
176   BEGIN	-- prgp_val_prr_closed
177   	-- Validate the IGS_PR_RULE is not closed
178   DECLARE
179   	v_dummy		VARCHAR2(1);
180   	CURSOR c_prr IS
181   		SELECT	'X'
182   		FROM	IGS_PR_RULE	prr
183   		WHERE	prr.progression_rule_cd = p_progression_rule_cd AND
184   			prr.closed_ind = 'N';
185   BEGIN
186   	IF p_progression_rule_cd IS NULL THEN
187   		p_message_name := null;
188   		RETURN TRUE;
189   	END IF;
190   	OPEN c_prr;
191   	FETCH c_prr INTO v_dummy;
192   	IF c_prr%NOTFOUND THEN
193   		CLOSE c_prr;
194   		p_message_name := 'IGS_PR_RULE_CLOSED';
195   		RETURN FALSE;
196   	END IF;
197   	CLOSE c_prr;
198   	p_message_name := null;
199   	RETURN TRUE;
200   EXCEPTION
201   	WHEN OTHERS THEN
202   		IF (c_prr%ISOPEN) THEN
203   			CLOSE c_prr;
204   		END IF;
205   		RAISE;
206   END;
207   EXCEPTION
208   	WHEN OTHERS THEN
209 		Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
210                 FND_MESSAGE.SET_TOKEN ('NAME', 'IGS_PR_VAL_PRA.PRGP_VAL_PRR_CLOSED');
211                 --IGS_GE_MSG_STACK.ADD;
212 
213   END prgp_val_prr_closed;
214   --
215   -- Validate the IGS_PS_COURSE version is active.
216   FUNCTION crsp_val_crv_active(
217   p_course_cd IN IGS_PS_VER_ALL.course_cd%TYPE ,
218   p_version_number IN IGS_PS_VER_ALL.version_number%TYPE ,
219   p_message_name OUT NOCOPY VARCHAR2)
220   RETURN BOOLEAN AS
221   	gv_other_detail		VARCHAR2(255);
222   BEGIN 	-- crsp_val_crv_active
223   	-- Validate the IGS_PS_VER is ACTIVE
224   DECLARE
225   	cst_active	CONSTANT	IGS_PS_STAT.s_course_status%TYPE := 'ACTIVE';
226   	v_dummy		VARCHAR2(1);
227   	CURSOR c_crv_crst IS
228   		SELECT 	'X'
229   		FROM	IGS_PS_VER	cst,
230   			IGS_PS_STAT	crst
231   		WHERE	cst.course_cd		= p_course_cd AND
232   			cst.version_number	= p_version_number AND
233   			cst.course_status	= crst.course_status AND
234   			crst.s_course_status	= cst_active;
235   BEGIN
236   	IF p_course_cd IS NOT NULL AND
237   			p_version_number IS NOT NULL THEN
238   		OPEN c_crv_crst;
239   		FETCH c_crv_crst INTO v_dummy;
240   		IF (c_crv_crst%NOTFOUND) THEN
241   			CLOSE c_crv_crst;
242   			p_message_name := 'IGS_PS_CHG_CANNOT_BEMADE_PRG';
243   			RETURN FALSE;
244   		END IF;
245   		CLOSE c_crv_crst;
246   	END IF;
247   	p_message_name := null;
248   	RETURN TRUE;
249   EXCEPTION
250   	WHEN OTHERS THEN
251   		IF (c_crv_crst%ISOPEN) THEN
252   			CLOSE c_crv_crst;
253   		END IF;
254   		RAISE;
255   END;
256   EXCEPTION
257   	WHEN OTHERS THEN
258 		Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
259                 FND_MESSAGE.SET_TOKEN ('NAME', 'IGS_PR_VAL_PRA.CRSP_VAL_CRV_ACTIVE');
260                 --IGS_GE_MSG_STACK.ADD;
261 
262   END crsp_val_crv_active;
263 END IGS_PR_VAL_PRA;