1 PACKAGE BODY IGS_AD_VAL_ECM AS
2 /* $Header: IGSAD55B.pls 115.4 2002/11/28 21:36:15 nsidana ship $ */
3 -- Validate that default enr cat is not closed.
4 FUNCTION admp_val_ecm_dflt_2(
5 p_enrolment_cat IN VARCHAR2 ,
6 p_dflt_cat_ind IN VARCHAR2 DEFAULT 'N',
7 p_message_name OUT NOCOPY VARCHAR2)
8 RETURN BOOLEAN IS
9 BEGIN -- admp_val_ecm_dflt_2
10 -- Validate if the enrolment category mapping default is not also
11 -- closed
12 DECLARE
13 v_message_name VARCHAR2(30);
14 BEGIN
15 p_message_name := null;
16 IF (p_dflt_cat_ind = 'N') THEN
17 RETURN TRUE;
18 END IF;
19 IF (IGS_AD_VAL_ECM.enrp_val_ec_closed(
20 p_enrolment_cat,
21 v_message_name) = FALSE) THEN
22 p_message_name := 'IGS_AD_DFLTMAP_CANNOT_CLS_ENR';
23 RETURN FALSE;
24 END IF;
25 RETURN TRUE;
26 END;
27 EXCEPTION
28 WHEN OTHERS THEN
29 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
30 FND_MESSAGE.SET_TOKEN('NAME','IGS_AD_VAL_ECM.admp_val_ecm_dflt_2');
31 IGS_GE_MSG_STACK.ADD;
32 END admp_val_ecm_dflt_2;
33 --
34 -- Validate that one enr cat is marked as the default for the adm cat.
35 FUNCTION admp_val_ecm_dflt_1(
36 p_admission_cat IN VARCHAR2 ,
37 p_message_name OUT NOCOPY VARCHAR2,
38 p_return_type OUT NOCOPY VARCHAR2 )
39 RETURN BOOLEAN IS
40 BEGIN -- ADMP_VAL_ECM_DFLT_1
41 -- Validate that one enrolment category is marked as the default for the
42 -- admission category
43 DECLARE
44 cst_no CONSTANT CHAR := 'N';
45 cst_yes CONSTANT CHAR := 'Y';
46 cst_error CONSTANT CHAR := 'E';
47 cst_warn CONSTANT CHAR := 'W';
48 v_record_found BOOLEAN DEFAULT FALSE;
49 v_yes_found BOOLEAN DEFAULT FALSE;
50 CURSOR c_ecm(
51 cp_admission_cat IGS_EN_CAT_MAPPING.admission_cat%TYPE)IS
52 SELECT ecm.dflt_cat_ind
53 FROM IGS_EN_CAT_MAPPING ecm
54 WHERE ecm.admission_cat = cp_admission_cat;
55 BEGIN
56 --- Set the default message number
57 p_message_name := null;
58 FOR v_dflt_cat_ind IN c_ecm(
59 p_admission_cat) LOOP
60 v_record_found := TRUE;
61 IF (v_dflt_cat_ind.dflt_cat_ind = cst_yes) THEN
62 v_yes_found := TRUE;
63 EXIT;
64 END IF;
65 END LOOP;
66 IF v_record_found = FALSE THEN
67 p_message_name := 'IGS_AD_NO_ENRCAT_MAPED_ADMCAT';
68 p_return_type := cst_warn;
69 RETURN FALSE;
70 END IF;
71 IF (v_yes_found = FALSE) THEN
72 p_message_name := 'IGS_AD_ONLY_ONE_ENRCAT_MARKED';
73 p_return_type := cst_error;
74 RETURN FALSE;
75 END IF;
76 p_return_type := NULL;
77 RETURN TRUE;
78 END;
79 EXCEPTION
80 WHEN OTHERS THEN
81 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
82 FND_MESSAGE.SET_TOKEN('NAME','IGS_AD_VAL_ECM.admp_val_ecm_dflt_1');
83 IGS_GE_MSG_STACK.ADD;
84 END admp_val_ecm_dflt_1;
85 --
86 -- Validate if the enr cat can be marked as the default for the adm cat.
87 FUNCTION admp_val_ecm_dflt(
88 p_admission_cat IN VARCHAR2 ,
89 p_enrolment_cat IN VARCHAR2 ,
90 p_message_name OUT NOCOPY VARCHAR2)
91 RETURN BOOLEAN IS
92 BEGIN -- ADMP_VAL_ECM_DFLT
93 -- Validate if the enrolment category can be marked as the default for the
94 -- admission category
95 -- (only one enrolment category can be marked as the default)
96 DECLARE
97 v_dflt_cat_ind IGS_EN_CAT_MAPPING.dflt_cat_ind%TYPE;
98 cst_yes CONSTANT CHAR := 'Y';
99 CURSOR c_ecm(cp_admission_cat IGS_EN_CAT_MAPPING.admission_cat%TYPE,
100 cp_enrolment_cat IGS_EN_CAT_MAPPING.enrolment_cat%TYPE)IS
101 SELECT ecm.dflt_cat_ind
102 FROM IGS_EN_CAT_MAPPING ecm
103 WHERE ecm.admission_cat = cp_admission_cat AND
104 ecm.enrolment_cat <> cp_enrolment_cat AND
105 ecm.dflt_cat_ind = cst_yes;
106 BEGIN
107 --- Set the default message number
108 p_message_name := null;
109 OPEN c_ecm(p_admission_cat,
110 p_enrolment_cat);
111 FETCH c_ecm INTO v_dflt_cat_ind;
112 IF (c_ecm%FOUND) THEN
113 p_message_name := 'IGS_AD_ONLY_ONE_ENRCAT_MARKED';
114 CLOSE c_ecm;
115 RETURN FALSE;
116 END IF;
117 CLOSE c_ecm;
118 RETURN TRUE;
119 END;
120 EXCEPTION
121 WHEN OTHERS THEN
122 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
123 FND_MESSAGE.SET_TOKEN('NAME','IGS_AD_VAL_ECM.admp_val_ecm_dflt');
124 IGS_GE_MSG_STACK.ADD;
125 END admp_val_ecm_dflt;
126 --
127 -- Validate the enrolment category closed indicator
128 FUNCTION enrp_val_ec_closed(
129 p_enrolment_cat IN VARCHAR2 ,
130 p_message_name OUT NOCOPY VARCHAR2)
131 RETURN BOOLEAN IS
132 BEGIN
133 DECLARE
134 v_closed_ind IGS_EN_ENROLMENT_CAT.closed_ind%TYPE;
135 CURSOR c_closed_ind IS
136 SELECT closed_ind
137 FROM IGS_EN_ENROLMENT_CAT
138 WHERE enrolment_cat = p_enrolment_cat;
139 BEGIN
140 -- This module validates whether the
141 -- enrolment_cat is closed
142 OPEN c_closed_ind;
143 FETCH c_closed_ind INTO v_closed_ind;
144 -- closed_ind is closed
145 IF (v_closed_ind = 'Y') THEN
146 CLOSE c_closed_ind;
147 p_message_name := 'IGS_EN_ENR_CAT_CLOSED';
148 RETURN FALSE;
149 ELSE
150 -- closed_ind is not closed
151 CLOSE c_closed_ind;
152 p_message_name := null;
153 RETURN TRUE;
154 END IF;
155 CLOSE c_closed_ind;
156 EXCEPTION
157 WHEN OTHERS THEN
158 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXP');
159 FND_MESSAGE.SET_TOKEN('NAME','IGS_AD_VAL_ECM.enrp_val_ec_closed');
160 IGS_GE_MSG_STACK.ADD;
161 END;
162 END enrp_val_ec_closed;
163 --
164 -- Validate if IGS_AD_CAT.admission_cat is closed.
165
166 END IGS_AD_VAL_ECM;