DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PR_VAL_SCPCA

Source


1 PACKAGE BODY IGS_PR_VAL_SCPCA AS
2 /* $Header: IGSPR11B.pls 115.4 2002/11/29 02:46:24 nsidana ship $ */
3   -------------------------------------------------------------------------------------------
4   --Change History:
5   --Who         When            What
6   --smadathi    29-AUG-2001     Bug No. 1956374 .The exception part for crgp_val_cfg_cat removed
7 
8   -------------------------------------------------------------------------------------------
9   -- Validate the calendar type.
10   FUNCTION prgp_val_cfg_cat(
11   p_cal_type IN VARCHAR2 ,
12   p_message_name OUT NOCOPY VARCHAR2 )
13   RETURN BOOLEAN AS
14   	gv_other_detail		VARCHAR2(255);
15   BEGIN 	-- prgp_val_cfg_cat
16   	-- Validate the calendar type used in the s_prg_cal, s_crv_prg_cal and
17   	-- s_ou_prg_cal record:
18   	-- * Must be a progression calendar
19   	-- * Must be open
20   DECLARE
21   	cst_progress	CONSTANT	VARCHAR2(10) := 'PROGRESS';
22   	v_s_cal_cat			IGS_CA_TYPE.s_cal_cat%TYPE;
23   	v_closed_ind			IGS_CA_TYPE.closed_ind%TYPE;
24   	CURSOR c_cat IS
25   		SELECT	cat.s_cal_cat,
26   			cat.closed_ind
27   		FROM	IGS_CA_TYPE 		cat
28   		WHERE	cat.cal_type	= p_cal_type;
29   BEGIN
30   	-- Set the default message name
31   	p_message_name := Null;
32   	OPEN c_cat;
33   	FETCH c_cat INTO
34   			v_s_cal_cat,
35   			v_closed_ind;
36   	IF c_cat%FOUND THEN
37   		CLOSE c_cat;
38   		IF v_s_cal_cat <> cst_progress THEN
39   			p_message_name := 'IGS_PR_PRG_CAL_TYPE_USED';
40   			RETURN FALSE;
41   		END IF;
42   		IF v_closed_ind = 'Y' THEN
43   			p_message_name := 'IGS_CA_CALTYPE_CLOSED';
44   			RETURN FALSE;
45   		END IF;
46   	ELSE
47   		CLOSE c_cat;
48   	END IF;
49   	RETURN TRUE;
50   EXCEPTION
51   	WHEN OTHERS THEN
52   		IF c_cat%ISOPEN THEN
53   			CLOSE c_cat;
54   		END IF;
55   		RAISE;
56   END;
57 
58   END prgp_val_cfg_cat;
59   --
60   -- Validate the show cause period length of the s_crv_prg_cal record.
61   FUNCTION prgp_val_scpca_cause(
62   p_course_cd IN VARCHAR2 ,
63   p_version_number IN NUMBER ,
64   p_show_cause_length IN NUMBER ,
65   p_message_name OUT NOCOPY VARCHAR2 )
66   RETURN BOOLEAN AS
67   	gv_other_detail			VARCHAR2(255);
68   BEGIN 	-- prgp_val_scpca_cause
69   	-- Validate the show cause period length of the s_crv_prg_cal record,
70   	-- checking for :
71   	-- * Cannot be set if s_crv_prg_conf.show_cause_ind is N
72   	-- * Warn if not set if s_crv_prg_conf.show_cause_ind is Y
73   DECLARE
74   	v_show_cause_ind		IGS_PR_S_CRV_PRG_CON.show_cause_ind%TYPE;
75   	CURSOR c_scpc IS
76   		SELECT	scpc.show_cause_ind
77   		FROM	IGS_PR_S_CRV_PRG_CON 		scpc
78   		WHERE	scpc.course_cd		= p_course_cd AND
79   			scpc.version_number 	= p_version_number;
80   BEGIN
81   	-- Set the default message name
82   	p_message_name := Null;
83   	OPEN c_scpc;
84   	FETCH c_scpc INTO v_show_cause_ind;
85   	IF c_scpc%FOUND THEN
86   		CLOSE c_scpc;
87   		IF v_show_cause_ind = 'Y' AND
88   				p_show_cause_length IS NULL THEN
89   			p_message_name := 'IGS_PR_SET_SHOW_CAUSE_LEN';
90   			-- warning only
91   			RETURN TRUE;
92   		END IF;
93   		IF v_show_cause_ind = 'N' AND
94   				p_show_cause_length IS NOT NULL THEN
95   			p_message_name := 'IGS_PR_CANT_SET_SHOW_CAUS_LEN';
96   			RETURN FALSE;
97   		END IF;
98   	ELSE
99   		CLOSE c_scpc;
100   	END IF;
101   	RETURN TRUE;
102   EXCEPTION
103   	WHEN OTHERS THEN
104   		IF c_scpc%ISOPEN THEN
105   			CLOSE c_scpc;
106   		END IF;
107   		RAISE;
108   END;
109   EXCEPTION
110   	WHEN OTHERS THEN
111    	    Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
112                 FND_MESSAGE.SET_TOKEN ('NAME', 'IGS_PR_VAL_SCPCA.PRGP_VAL_SCPCA_CAUSE');
113                 IGS_GE_MSG_STACK.ADD;
114 	    App_Exception.Raise_Exception;
115   END prgp_val_scpca_cause;
116   --
117   -- Validate the appeal period length of the s_ou_prg_cal record.
118   FUNCTION prgp_val_scpca_apl(
119   p_course_cd IN VARCHAR2 ,
120   p_version_number IN NUMBER ,
121   p_appeal_length IN NUMBER ,
122   p_message_name OUT NOCOPY VARCHAR2 )
123   RETURN BOOLEAN AS
124   	gv_other_detail			VARCHAR2(255);
125   BEGIN 	-- prgp_val_scpca_apl
126   	-- Validate the appeal length of the s_crv_prg_cal record, checking for :
127   	-- * Cannot be set if s_crv_prg_conf.appeal_ind is N
128   	-- * Warn if not set if s_crv_prg_conf.appeal_ind is Y
129   DECLARE
130   	v_appeal_ind			IGS_PR_S_CRV_PRG_CON.appeal_ind%TYPE;
131   	CURSOR c_scpc IS
132   		SELECT	scpc.appeal_ind
133   		FROM	IGS_PR_S_CRV_PRG_CON 		scpc
134   		WHERE	scpc.course_cd		= p_course_cd AND
135   			scpc.version_number 	= p_version_number;
136   BEGIN
137   	-- Set the default message name
138   	p_message_name := Null;
139   	OPEN c_scpc;
140   	FETCH c_scpc INTO v_appeal_ind;
141   	IF c_scpc%FOUND THEN
142   		CLOSE c_scpc;
143   		IF v_appeal_ind = 'Y' AND
144   				p_appeal_length IS NULL THEN
145   			p_message_name := 'IGS_PR_SET_APPEAL_LEN';
146   			-- warning only
147   			RETURN TRUE;
148   		END IF;
149   		IF v_appeal_ind = 'N' AND
150   				p_appeal_length IS NOT NULL THEN
151   			p_message_name := 'IGS_PR_CANT_SET_APPEAL_LEN';
152   			RETURN FALSE;
153   		END IF;
154   	ELSE
155   		CLOSE c_scpc;
156   	END IF;
157   	RETURN TRUE;
158   EXCEPTION
159   	WHEN OTHERS THEN
160   		IF c_scpc%ISOPEN THEN
161   			CLOSE c_scpc;
162   		END IF;
163   		RAISE;
164   END;
165   EXCEPTION
166   	WHEN OTHERS THEN
167    	    Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
168                 FND_MESSAGE.SET_TOKEN ('NAME', 'IGS_PR_VAL_SCPCA.PRGP_VAL_SCPCA_APL');
169                 IGS_GE_MSG_STACK.ADD;
170 	    App_Exception.Raise_Exception;
171   END prgp_val_scpca_apl;
172 END IGS_PR_VAL_SCPCA;