DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AS_VAL_SUAAP

Source


1 PACKAGE BODY IGS_AS_VAL_SUAAP AS
2 /* $Header: IGSAS31B.pls 120.0 2005/07/05 11:21:07 appldev noship $ */
3   -------------------------------------------------------------------------------------------
4   --Change History:
5   --Who         When            What
6   --smadathi    24-AUG-2001     Bug No. 1956374 .Modified function GENP_VAL_SDTT_SESS
7   -------------------------------------------------------------------------------------------
8   -- Val IGS_PS_UNIT assess pattern applies to stud IGS_PS_UNIT IGS_AD_LOCATION, class and mode.
9   FUNCTION ASSP_VAL_UAP_LOC_UC(
10   p_location_cd IN VARCHAR2 ,
11   p_unit_class IN VARCHAR2 ,
12   p_unit_mode IN VARCHAR2 ,
13   p_uap_location_cd IN VARCHAR2 ,
14   p_uap_unit_class IN VARCHAR2 ,
15   p_uap_unit_mode IN VARCHAR2 ,
16   p_message_name OUT NOCOPY  VARCHAR2 )
17   RETURN BOOLEAN IS
18   	gv_other_detail		VARCHAR2(255);
19   BEGIN	-- assp_val_uap_loc_uc
20   	-- This routine will validate that the IGS_AS_UNTAS_PATTERN's
21   	-- IGS_AD_LOCATION, mode and class are applicable for the parameters passed in
22   DECLARE
23   	v_ret_val	BOOLEAN	DEFAULT TRUE;
24   BEGIN
25   	p_message_name := NULL;
26   	IF p_location_cd <> NVL(p_uap_location_cd, p_location_cd) THEN
27   			p_message_name := 'IGS_AS_UAP_LOC_NA_LOCATION';
28   		RETURN FALSE;
29   	ELSIF p_unit_class <> NVL(p_uap_unit_class, p_unit_class) THEN
30   			p_message_name := 'IGS_AS_UAP_UNITCLASS_NA';
31   		RETURN FALSE;
32   	ELSIF p_unit_mode <> NVL(p_uap_unit_mode, p_unit_mode) THEN
33   			p_message_name := 'IGS_AS_UAP_UNITMODE_NA';
34   		RETURN FALSE;
35   	ELSE
36   		p_message_name := NULL;
37   		RETURN TRUE;
38   	END IF;
39   	RETURN v_ret_val;
40   END;
41 
42   END assp_val_uap_loc_uc;
43   --
44   -- Validate able to create stdnt_unit_atmp_ass_pattern.
45   FUNCTION ASSP_VAL_SUAAP_INS(
46   p_person_id IN NUMBER ,
47   p_course_cd IN VARCHAR2 ,
48   p_unit_cd IN VARCHAR2 ,
49   p_cal_type IN VARCHAR2 ,
50   p_ci_sequence_number IN NUMBER ,
51   p_ass_pattern_id IN NUMBER ,
52   p_message_name OUT NOCOPY VARCHAR2 ,
53   -- anilk, 22-Apr-2003, Bug# 2829262
54   p_uoo_id IN NUMBER )
55   RETURN BOOLEAN IS
56   	gv_other_detail		VARCHAR2(255);
57   BEGIN	-- assp_val_suaap_ins
58   	-- Validate that the IGS_AS_SU_ATMPT_PAT can be created.
59   	-- It must be valid for the students IGS_AD_LOCATION/class/mode and the status of
60   	-- the student IGS_PS_UNIT attempt must be either UNCONFIRM/ENROLLED
61   DECLARE
62   	cst_enrolled		VARCHAR(8) := 'ENROLLED';
63   	cst_unconfirmed		VARCHAR(9) := 'UNCONFIRM';
64   	cst_completed		VARCHAR(9) := 'COMPLETED';
65   	v_uooap_v_dummy		VARCHAR2(1) := NULL;
66   	v_unit_attempt_status	IGS_EN_SU_ATTEMPT.unit_attempt_status%TYPE;
67   	v_uoo_id		IGS_EN_SU_ATTEMPT.uoo_id%TYPE;
68   	CURSOR c_sua IS
69   		SELECT	sua.unit_attempt_status,
70   			sua.uoo_id
71   		FROM	IGS_EN_SU_ATTEMPT sua
72   		WHERE	sua.person_id 		= p_person_id 	AND
73   			sua.course_cd 		= p_course_cd 	AND
74                 -- anilk, 22-Apr-2003, Bug# 2829262
75   			sua.uoo_id 	        = p_uoo_id;
76   	CURSOR c_uooap_v(
77   			cp_uoo_id	IGS_EN_SU_ATTEMPT.uoo_id%TYPE)IS
78   		SELECT 	'x'
79   		FROM	IGS_PS_UNIT_OFR_OPT_ASS_PAT_V uooap_v
80   		WHERE	uooap_v.unit_cd 		= p_unit_cd AND
81   			uooap_v.cal_type 		= p_cal_type AND
82   			uooap_v.ci_sequence_number 	= p_ci_sequence_number AND
83   			uooap_v.ass_pattern_id 		= p_ass_pattern_id AND
84   			uooap_v.uoo_id			= cp_uoo_id AND
85   			uooap_v.uap_logical_delete_dt IS NULL;
86   BEGIN
87   	-- Set the default message number
88   	p_message_name := NULL;
89   	-- Validate IGS_PS_UNIT version
90   	OPEN c_sua;
91   	FETCH c_sua INTO v_unit_attempt_status,
92   			 v_uoo_id;
93   	IF (c_sua%NOTFOUND) THEN
94   		CLOSE c_sua;
95   		RAISE NO_DATA_FOUND;
96   	ELSE
97   		CLOSE c_sua;
98   		IF v_unit_attempt_status NOT IN (cst_unconfirmed, cst_enrolled) THEN
99   			IF v_unit_attempt_status <> cst_completed THEN
100   				-- Set message number to indicate incorrect student IGS_PS_UNIT status.
101   				p_message_name := 'IGS_AS_SUA_STATUS_INVALID';
102   				RETURN FALSE;
103   			ELSE
104   				-- Set message number to indicate incorrect student IGS_PS_UNIT status of
105   				-- completed.
106   				p_message_name := 'IGS_AS_CANNOT_ADD_ASSPATTERN';
107   				RETURN FALSE;
108   			END IF;
109   		END IF;
110   	END IF;
111   	OPEN c_uooap_v (
112   			v_uoo_id);
113   	FETCH c_uooap_v INTO v_uooap_v_dummy;
114   	IF (c_uooap_v%NOTFOUND) THEN
115   		CLOSE c_uooap_v;
116   		p_message_name := 'IGS_AS_SUA_ASSPAT_INVALID';
117   		RETURN FALSE;
118   	END IF;
119   	CLOSE c_uooap_v;
120   	-- If processing reaches this point then return successfully.
121   	RETURN TRUE;
122   EXCEPTION
123   	WHEN OTHERS THEN
124   		IF (c_uooap_v%ISOPEN) THEN
125   			CLOSE c_uooap_v;
126   		END IF;
127   		IF (c_sua%ISOPEN) THEN
128   			CLOSE c_sua;
129   		END IF;
130   END;
131   EXCEPTION
132   	WHEN OTHERS THEN
133        Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
134        Fnd_Message.Set_Token('NAME','IGS_AS_VAL_SUAAP.ASSP_VAL_SUAAP_INS');
135        Igs_Ge_Msg_Stack.Add;
136        App_Exception.Raise_Exception;
137   END assp_val_suaap_ins;
138   --
139   -- Validate only one active instance of the assessment pattern for suaap.
140   FUNCTION ASSP_VAL_SUAAP_ACTV(
141   p_person_id IN NUMBER ,
142   p_course_cd IN VARCHAR2 ,
143   p_unit_cd IN VARCHAR2 ,
144   p_cal_type IN VARCHAR2 ,
145   p_ci_sequence_number IN NUMBER ,
146   p_ass_pattern_id IN NUMBER ,
147   p_creation_dt IN DATE ,
148   p_message_name OUT NOCOPY VARCHAR2 ,
149   -- anilk, 22-Apr-2003, Bug# 2829262
150   p_uoo_id IN NUMBER )
151   RETURN BOOLEAN IS
152   	gv_other_detail		VARCHAR2(255);
153   BEGIN	--assp_val_suaap_actv
154   DECLARE
155   	v_suaap_count		VARCHAR2(1);
156   	CURSOR c_suaap IS
157   		SELECT	'x'
158   		FROM	IGS_AS_SU_ATMPT_PAT	suaap
159   		WHERE	suaap.person_id			= p_person_id AND
160   			suaap.course_cd			= p_course_cd AND
161                 -- anilk, 22-Apr-2003, Bug# 2829262
162 		        suaap.uoo_id	                = p_uoo_id AND
163   			suaap.ass_pattern_id		= p_ass_pattern_id AND
164   			suaap.creation_dt		<> p_creation_dt AND
165   			suaap.logical_delete_dt		IS NULL;
166   BEGIN
167   	-- Set the default message number
168   	p_message_name := NULL;
169   	OPEN c_suaap ;
170   	FETCH c_suaap INTO v_suaap_count;
171   	IF c_suaap %FOUND THEN
172   		CLOSE c_suaap;
173   		p_message_name := 'IGS_AS_ASSPATTERN_EXISTS_STUD';
174   		RETURN FALSE;
175   	END IF;
176   	CLOSE c_suaap ;
177   	-- Return the default value
178   	RETURN TRUE;
179   EXCEPTION
180   	WHEN OTHERS THEN
181   		IF c_suaap %ISOPEN THEN
182   			CLOSE c_suaap;
183   		END IF;
184   		RAISE;
185   END;
186   EXCEPTION
187   	WHEN OTHERS THEN
188        Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
189        Fnd_Message.Set_Token('NAME','IGS_AS_VAL_SUAAP.ASSP_VAL_SUAAP_ACTV');
190        Igs_Ge_Msg_Stack.Add;
191        App_Exception.Raise_Exception;
192   END assp_val_suaap_actv;
193   --
194   -- Validate that an entry exist in s_disable_table_trigger.
195   FUNCTION GENP_VAL_SDTT_SESS(
196   p_table_name IN VARCHAR2 )
197   RETURN BOOLEAN IS
198   -------------------------------------------------------------------------------------------
199   --Change History:
200   --Who         When            What
201   --smadathi    24-AUG-2001     Bug No. 1956374 .Removed the exception Handler part
202   -------------------------------------------------------------------------------------------
203   	gv_other_detail		VARCHAR2(255);
204   BEGIN
205   DECLARE
206   	CURSOR c_chk_for_tbl IS
207   		SELECT	'x'
208   		FROM	IGS_GE_S_DSB_TAB_TRG
209   		WHERE	table_name = p_table_name AND
210   			session_id = (
211   				SELECT	userenv('SESSIONID')
212   				FROM	dual );
213   	v_return_result				CHAR;
214   BEGIN
215   	-- Validates that if a record exists in the s_disable_table_trigger
216   	-- database table matching the table name and session id, then return
217   	-- false indicating not to execute the table?s database triggers.
218   	OPEN c_chk_for_tbl;
219   	FETCH c_chk_for_tbl INTO v_return_result;
220   	IF c_chk_for_tbl%FOUND THEN
221   		CLOSE c_chk_for_tbl;
222   		RETURN FALSE;
223   	ELSE
224   		CLOSE c_chk_for_tbl;
225   		RETURN TRUE;
226   	END IF;
227   END;
228 
229   END GENP_VAL_SDTT_SESS;
230   --
231   -- Routine to clear rowids saved in a PL/SQL TABLE from a prior commit.
232 
233 END IGS_AS_VAL_SUAAP;