DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_VAL_AW

Source


1 PACKAGE BODY IGS_PS_VAL_AW AS
2 /* $Header: IGSPS12B.pls 115.5 2003/06/09 04:41:10 smvk ship $ */
3 
4   -- Validate update to IGS_PS_AWD type.
5   FUNCTION crsp_val_aw_upd(
6   p_award_cd  IGS_PS_AWD.award_cd%TYPE ,
7   p_new_award_type  IGS_PS_AWD.s_award_type%TYPE ,
8   p_old_award_type  IGS_PS_AWD.s_award_type%TYPE ,
9   p_message_name OUT NOCOPY VARCHAR2)
10   RETURN BOOLEAN AS
11   BEGIN	-- crsp_val_aw_upd
12   	-- This routine validates changes to IGS_PS_AWD records. It checks;
13   	-- change of system IGS_PS_AWD type does not invalidate IGS_GR_GRADUAND,
14   	-- IGS_PS_COURSE IGS_PS_AWD or special IGS_PS_AWD details
15    /***************************************************************
16      Created By           :
17      Date Created By      :
18      Purpose              :
19      Known Limitations,Enhancements or Remarks:
20      Change History       :
21      Who       When         What
22      smvk     03-Jun-2003   Bug # 2858436. Modified the cursor c_caw to select open program awards only.
23    ***************************************************************/
24 
25   DECLARE
26   	CURSOR c_caw IS
27   		SELECT 	'x'
28   		FROM	IGS_PS_AWARD	caw
29   		WHERE	caw.award_cd	= p_award_cd
30                 AND     caw.closed_ind  = 'N';
31   	CURSOR c_gr IS
32   		SELECT	'x'
33   		FROM	IGS_GR_GRADUAND	gr
34   		WHERE	gr.award_cd	= p_award_cd;
35   	CURSOR c_spa IS
36   		SELECT	'x'
37   		FROM	IGS_GR_SPECIAL_AWARD	spa
38   		WHERE	spa.award_cd	= p_award_cd;
39   	v_c_exists	VARCHAR2(1);
40   	cst_course	CONSTANT VARCHAR2(10) := 'COURSE';
41   	cst_honorary	CONSTANT VARCHAR2(10) := 'HONORARY';
42   BEGIN
43   	-- Set the default message number
44   	p_message_name := NULL;
45   	-- Check Parameters.
46   	IF p_award_cd IS NULL OR
47   			p_new_award_type IS NULL OR
48   			p_old_award_type IS NULL THEN
49   		RETURN TRUE;
50   	END IF;
51   	IF p_new_award_type = p_old_award_type THEN
52   		RETURN TRUE;
53   	END IF;
54   	IF p_old_award_type = cst_course THEN
55   		OPEN c_caw;
56   		FETCH c_caw INTO v_c_exists;
57   		IF c_caw%FOUND THEN
58   			CLOSE c_caw;
59   			p_message_name := 'IGS_GR_COUR_REC_IN_USE_UPD_NA';
60   			RETURN FALSE;
61   		END IF;
62   		CLOSE c_caw;
63   	ELSIF p_old_award_type = cst_honorary THEN
64   		OPEN c_gr;
65   		FETCH c_gr INTO v_c_exists;
66   		IF c_gr%FOUND THEN
67   			CLOSE c_gr;
68   			p_message_name := 'IGS_GR_GRAD_REC_IN_USE_UPD_NA';
69   			RETURN FALSE;
70   		END IF;
71   		CLOSE c_gr;
72   	ELSE --special IGS_PS_AWDs
73   		OPEN c_spa;
74   		FETCH c_spa INTO v_c_exists;
75   		IF c_spa%FOUND THEN
76   			CLOSE c_spa;
77   			p_message_name := 'IGS_GR_SPEC_REC_IN_USE_UPD_NA';
78   			RETURN FALSE;
79   		END IF;
80   		CLOSE c_spa;
81   	END IF;
82   	-- Return the default value
83   	RETURN TRUE;
84   EXCEPTION
85   	WHEN OTHERS THEN
86   		IF c_caw %ISOPEN THEN
87   			CLOSE c_caw;
88   		END IF;
89   		IF c_gr %ISOPEN THEN
90   			CLOSE c_gr;
91   		END IF;
92   		IF c_spa %ISOPEN THEN
93   			CLOSE c_spa;
94   		END IF;
95   		App_Exception.Raise_Exception;
96   END;
97   EXCEPTION
98   	WHEN OTHERS THEN
99   		Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXCEPTION');
100   		Fnd_Message.Set_Token('NAME','IGS_PS_VAL_AW.crsp_val_aw_upd');
101 	 	IGS_GE_MSG_STACK.ADD;
102 		App_Exception.Raise_Exception;
103   END crsp_val_aw_upd;
104 
105   -- Validate a testamur type is not closed.
106   FUNCTION crsp_val_tt_closed(
107   p_testamur_type  IGS_GR_TESTAMUR_TYPE.testamur_type%TYPE ,
108   p_message_name OUT NOCOPY VARCHAR2)
109   RETURN BOOLEAN AS
110   BEGIN	-- crsp_val_tt_closed
111   	-- Validate if the testamur type is closed.
112   DECLARE
113   	CURSOR c_tt IS
114   		SELECT	'x'
115   		FROM	IGS_GR_TESTAMUR_TYPE	tt
116   		WHERE	testamur_type	= p_testamur_type AND
117   			closed_ind 	= 'Y';
118   	v_tt_exists	VARCHAR2(1);
119   BEGIN
120   	-- Set the default message number
121   	p_message_name := NULL;
122   	OPEN c_tt;
123   	FETCH c_tt INTO v_tt_exists;
124   	IF c_tt%FOUND THEN
125   		CLOSE c_tt;
126   		p_message_name := 'IGS_PS_TESTAMUR_TYPE_CLOSED';
127   		RETURN FALSE;
128   	END IF;
129   	CLOSE c_tt;
130   	-- Return the default value
131   	RETURN TRUE;
132   EXCEPTION
133   	WHEN OTHERS THEN
134   		IF c_tt%ISOPEN THEN
135   			CLOSE c_tt;
136   		END IF;
137   		App_Exception.Raise_Exception;
138   END;
139   EXCEPTION
140   	WHEN OTHERS THEN
141   		Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXCEPTION');
142   		Fnd_Message.Set_Token('NAME','IGS_PS_VAL_AW.crsp_val_tt_closed');
143 	 	IGS_GE_MSG_STACK.ADD;
144 		App_Exception.Raise_Exception;
145   END crsp_val_tt_closed;
146 
147 END IGS_PS_VAL_AW;