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;