1 PACKAGE BODY IGS_PS_VAL_FSr AS
2 /* $Header: IGSPS43B.pls 115.3 2002/11/29 03:04:00 nsidana ship $ */
3
4 --
5 -- Validate the funding source restriction restricted indicator.
6 FUNCTION CRSP_VAL_FSR_RSTRCT(
7 p_course_cd IN VARCHAR2 ,
8 p_version_number IN NUMBER ,
9 p_message_name OUT NOCOPY VARCHAR2 )
10 RETURN BOOLEAN AS
11 CURSOR c_count_all_fs IS
12 SELECT COUNT(*)
13 FROM IGS_FI_FND_SRC_RSTN
14 WHERE course_cd = p_course_cd AND
15 version_number = p_version_number;
16 CURSOR c_count_restrct_fs IS
17 SELECT COUNT(*)
18 FROM IGS_FI_FND_SRC_RSTN
19 WHERE course_cd = p_course_cd AND
20 version_number = p_version_number AND
21 restricted_ind = 'Y';
22 BEGIN
23 --- Set default message number
24 p_message_name := NULL;
25 --- Get count for total and restricted funding source records
26 DECLARE
27 v_total_fs_count NUMBER;
28 v_rstrct_fs_count NUMBER;
29 BEGIN
30 OPEN c_count_all_fs;
31 FETCH c_count_all_fs INTO v_total_fs_count;
32 CLOSE c_count_all_fs;
33 OPEN c_count_restrct_fs;
34 FETCH c_count_restrct_fs INTO v_rstrct_fs_count;
35 CLOSE c_count_restrct_fs;
36 IF v_total_fs_count > 1 THEN
37 IF v_total_fs_count = v_rstrct_fs_count THEN
38 RETURN TRUE;
39 ELSE
40 p_message_name := 'IGS_PS_RESTIND_SET_FUNDSRC';
41 RETURN FALSE;
42 END IF;
43 ELSE
44 RETURN TRUE;
45 END IF;
46 END;
47 EXCEPTION
48 WHEN OTHERS THEN
49 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXCEPTION');
50 Fnd_Message.Set_Token('NAME','IGS_PS_VAL_FSr.crsp_val_fsr_rstrct');
51 IGS_GE_MSG_STACK.ADD;
52 APP_EXCEPTION.RAISE_EXCEPTION;
53 END crsp_val_fsr_rstrct;
54 --
55 -- Validate the funding source restriction indicators.
56 FUNCTION crsp_val_fsr_inds(
57 p_dflt_ind IN VARCHAR2 DEFAULT 'N',
58 p_restricted_ind IN VARCHAR2 DEFAULT 'N',
59 p_message_name OUT NOCOPY VARCHAR2 )
60 RETURN BOOLEAN AS
61 BEGIN
62 BEGIN
63 -- when both the default indicator and the
64 -- restricted indicator are set to 'N'
65 IF (p_dflt_ind = 'N' AND p_restricted_ind = 'N') THEN
66 --CLOSE c_fsr_indicators;
67 p_message_name := 'IGS_PS_FUNDSRC_REST_INDSET';
68 RETURN FALSE;
69 ELSE
70 -- when the default indicator and the
71 -- restricted indocator are both set to
72 -- something other than 'N'
73 p_message_name := NULL;
74 RETURN TRUE;
75 END IF;
76 EXCEPTION
77 WHEN OTHERS THEN
78 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXCEPTION');
79 Fnd_Message.Set_Token('NAME','IGS_PS_VAL_FSr.crsp_val_fsr_inds');
80 IGS_GE_MSG_STACK.ADD;
81 APP_EXCEPTION.RAISE_EXCEPTION;
82 END;
83 END crsp_val_fsr_inds;
84 --
85 -- Validate the funding source restriction funding source.
86 FUNCTION crsp_val_fsr_fnd_src(
87 p_funding_source IN VARCHAR2 ,
88 p_message_name OUT NOCOPY VARCHAR2 )
89 RETURN BOOLEAN AS
90 v_closed_ind IGS_FI_FUND_SRC.closed_ind%TYPE;
91 CURSOR c_funding_source IS
92 SELECT closed_ind
93 FROM IGS_FI_FUND_SRC
94 WHERE funding_source = p_funding_source;
95 BEGIN
96 OPEN c_funding_source;
97 FETCH c_funding_source INTO v_closed_ind;
98 IF c_funding_source%NOTFOUND THEN
99 p_message_name := NULL;
100 CLOSE c_funding_source;
101 RETURN TRUE;
102 ELSIF (v_closed_ind = 'N') THEN
103 p_message_name := NULL;
104 CLOSE c_funding_source;
105 RETURN TRUE;
106 ELSE
107 p_message_name := 'IGS_PS_FUND_SOURCE_CLOSED';
108 CLOSE c_funding_source;
109 RETURN FALSE;
110 END IF;
111 EXCEPTION
112 WHEN OTHERS THEN
113 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXCEPTION');
114 Fnd_Message.Set_Token('NAME','IGS_PS_VAL_FSr.crsp_val_fsr_fnd_src');
115 IGS_GE_MSG_STACK.ADD;
116 APP_EXCEPTION.RAISE_EXCEPTION;
117 END crsp_val_fsr_fnd_src;
118 --
119 -- Validate the funding source restriction default indicator.
120 FUNCTION crsp_val_fsr_default(
121 p_course_cd IN VARCHAR2 ,
122 p_version_number IN NUMBER ,
123 p_message_name OUT NOCOPY VARCHAR2 )
124 RETURN BOOLEAN AS
125 v_funding_source_rest_rec IGS_FI_FND_SRC_RSTN%ROWTYPE;
126 CURSOR c_funding_source_rest IS
127 SELECT *
128 FROM IGS_FI_FND_SRC_RSTN
129 WHERE course_cd = p_course_cd AND
130 version_number = p_version_number AND
131 dflt_ind = 'Y';
132 BEGIN
133 OPEN c_funding_source_rest;
134 LOOP
135 FETCH c_funding_source_rest INTO v_funding_source_rest_rec;
136 EXIT WHEN c_funding_source_rest%NOTFOUND;
137 END LOOP;
138 IF (c_funding_source_rest%ROWCOUNT <= 1) THEN
139 -- none or one record is selected
140 CLOSE c_funding_source_rest;
141 p_message_name := NULL;
142 RETURN TRUE;
143 ELSE
144 -- more than one record is selected
145 CLOSE c_funding_source_rest;
146 p_message_name := 'IGS_PS_ONE_FUNDSRC_RESCT_MARK';
147 RETURN FALSE;
148 END IF;
149 EXCEPTION
150 WHEN OTHERS THEN
151 FND_MESSAGE.SET_NAME('IGS','IGS_GE_UNHANDLED_EXCEPTION');
152 Fnd_Message.Set_Token('NAME','IGS_PS_VAL_FSr.crsp_val_fsr_default');
153 IGS_GE_MSG_STACK.ADD;
154 APP_EXCEPTION.RAISE_EXCEPTION;
155 END crsp_val_fsr_default;
156 END IGS_PS_VAL_FSr;