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