[Home] [Help]
PACKAGE BODY: APPS.IGS_AD_CAT_PS_TYPE_PKG
Source
1 package body IGS_AD_CAT_PS_TYPE_PKG as
2 /* $Header: IGSAI13B.pls 115.7 2003/10/30 13:19:01 rghosh ship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references IGS_AD_CAT_PS_TYPE%RowType;
6 new_references IGS_AD_CAT_PS_TYPE%RowType;
7
8 PROCEDURE Set_Column_Values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_admission_cat IN VARCHAR2 DEFAULT NULL,
12 x_course_type IN VARCHAR2 DEFAULT NULL,
13 x_creation_date IN DATE DEFAULT NULL,
14 x_created_by IN NUMBER DEFAULT NULL,
15 x_last_update_date IN DATE DEFAULT NULL,
16 x_last_updated_by IN NUMBER DEFAULT NULL,
17 x_last_update_login IN NUMBER DEFAULT NULL
18 ) AS
19
20 CURSOR cur_old_ref_values IS
21 SELECT *
22 FROM IGS_AD_CAT_PS_TYPE
23 WHERE rowid = x_rowid;
24
25 BEGIN
26
27 l_rowid := x_rowid;
28
29 -- Code for setting the Old and New Reference Values.
30 -- Populate Old Values.
31 Open cur_old_ref_values;
32 Fetch cur_old_ref_values INTO old_references;
33 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
34 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
35 IGS_GE_MSG_STACK.ADD;
36 App_Exception.Raise_Exception;
37 Close cur_old_ref_values;
38 Return;
39 END IF;
40 Close cur_old_ref_values;
41
42 -- Populate New Values.
43 new_references.admission_cat := x_admission_cat;
44 new_references.course_type := x_course_type;
45 IF (p_action = 'UPDATE') THEN
46 new_references.creation_date := old_references.creation_date;
47 new_references.created_by := old_references.created_by;
48 ELSE
49 new_references.creation_date := x_creation_date;
50 new_references.created_by := x_created_by;
51 END IF;
52 new_references.last_update_date := x_last_update_date;
53 new_references.last_updated_by := x_last_updated_by;
54 new_references.last_update_login := x_last_update_login;
55
56 END Set_Column_Values;
57
58 PROCEDURE BeforeRowInsert1(
59 p_inserting IN BOOLEAN DEFAULT FALSE,
60 p_updating IN BOOLEAN DEFAULT FALSE,
61 p_deleting IN BOOLEAN DEFAULT FALSE
62 ) AS
63 v_message_name VARCHAR2(30);
64 BEGIN
65 -- Validate the admission category closed indicator.
66 IF IGS_AD_VAL_ACCT.admp_val_ac_closed (
67 new_references.admission_cat,
68 v_message_name) = FALSE THEN
69 Fnd_Message.Set_Name('IGS',v_message_name);
70 IGS_GE_MSG_STACK.ADD;
71 App_Exception.Raise_Exception;
72 END IF;
73 -- Validate the course type closed indicator.
74 IF IGS_AS_VAL_ACOT.crsp_val_cty_closed (
75 new_references.course_type,
76 v_message_name) = FALSE THEN
77 Fnd_Message.Set_Name('IGS',v_message_name);
78 IGS_GE_MSG_STACK.ADD;
79 App_Exception.Raise_Exception;
80 END IF;
81 END BeforeRowInsert1;
82
83 PROCEDURE Check_Constraints (
84 Column_Name IN VARCHAR2 DEFAULT NULL,
85 Column_Value IN VARCHAR2 DEFAULT NULL
86 ) AS
87 BEGIN
88 IF column_name is null then
89 NULL;
90 ELSIF upper(Column_name) = 'ADMISSION_CAT' Then
91 new_references.admission_cat := column_value;
92 ELSIF upper(Column_name) = 'COURSE_TYPE' Then
93 new_references.course_type := column_value;
94 END IF;
95 IF upper(column_name) = 'ADMISSION_CAT' OR column_name is null Then
96 IF new_references.admission_cat <> UPPER(new_references.admission_cat) Then
97 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
98 IGS_GE_MSG_STACK.ADD;
99 App_Exception.Raise_Exception;
100 END IF;
101 END IF;
102 IF upper(column_name) = 'COURSE_TYPE' OR column_name is null Then
103 IF new_references.course_type <> UPPER(new_references.course_type ) Then
104 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
105 IGS_GE_MSG_STACK.ADD;
106 App_Exception.Raise_Exception;
107 END IF;
108 END IF;
109 END Check_Constraints;
110
111
112 PROCEDURE Check_Parent_Existance AS
113 BEGIN
114
115 IF (((old_references.admission_cat = new_references.admission_cat)) OR
116 ((new_references.admission_cat IS NULL))) THEN
117 NULL;
118 ELSE
119 IF NOT IGS_AD_CAT_PKG.Get_PK_For_Validation (
120 new_references.admission_cat , 'N' ) THEN
121 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
122 IGS_GE_MSG_STACK.ADD;
123 App_Exception.Raise_Exception;
124 END IF;
125 END IF;
126
127 IF (((old_references.course_type = new_references.course_type)) OR
128 ((new_references.course_type IS NULL))) THEN
129 NULL;
130 ELSE
131 IF NOT IGS_PS_TYPE_PKG.Get_PK_For_Validation (
132 new_references.course_type ) THEN
133 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
134 IGS_GE_MSG_STACK.ADD;
135 App_Exception.Raise_Exception;
136 END IF;
137 END IF;
138
139 END Check_Parent_Existance;
140
141 Function Get_PK_For_Validation (
142 x_admission_cat IN VARCHAR2,
143 x_course_type IN VARCHAR2 )
144 RETURN BOOLEAN AS
145 CURSOR cur_rowid IS
146 SELECT rowid
147 FROM IGS_AD_CAT_PS_TYPE
148 WHERE admission_cat = x_admission_cat
149 AND course_type = x_course_type
150 FOR UPDATE NOWAIT;
151 lv_rowid cur_rowid%RowType;
152 BEGIN -- Get_PK_For_Validation
153 Open cur_rowid;
154 Fetch cur_rowid INTO lv_rowid;
155 IF (cur_rowid%FOUND) THEN
156 Close cur_rowid;
157 Return (TRUE);
158 ELSE
159 Close cur_rowid;
160 Return (FALSE);
161 END IF;
162 END Get_PK_For_Validation;
163
164 PROCEDURE GET_FK_IGS_AD_CAT (
165 x_admission_cat IN VARCHAR2
166 ) AS
167
168 CURSOR cur_rowid IS
169 SELECT rowid
170 FROM IGS_AD_CAT_PS_TYPE
171 WHERE admission_cat = x_admission_cat ;
172
173 lv_rowid cur_rowid%RowType;
174
175 BEGIN
176
177 Open cur_rowid;
178 Fetch cur_rowid INTO lv_rowid;
179 IF (cur_rowid%FOUND) THEN
180 Close cur_rowid;
181 Fnd_Message.Set_Name ('IGS', 'IGS_AD_ACCT_AC_FK');
182 IGS_GE_MSG_STACK.ADD;
183 App_Exception.Raise_Exception;
184 Return;
185 END IF;
186 Close cur_rowid;
187
188 END GET_FK_IGS_AD_CAT;
189
190 PROCEDURE Before_DML (
191 p_action IN VARCHAR2,
192 x_rowid IN VARCHAR2 DEFAULT NULL,
193 x_admission_cat IN VARCHAR2 DEFAULT NULL,
194 x_course_type IN VARCHAR2 DEFAULT NULL,
195 x_creation_date IN DATE DEFAULT NULL,
196 x_created_by IN NUMBER DEFAULT NULL,
197 x_last_update_date IN DATE DEFAULT NULL,
198 x_last_updated_by IN NUMBER DEFAULT NULL,
199 x_last_update_login IN NUMBER DEFAULT NULL
200 ) AS
201 BEGIN
202 Set_Column_Values (
203 p_action,
204 x_rowid,
205 x_admission_cat,
206 x_course_type,
207 x_creation_date,
208 x_created_by,
209 x_last_update_date,
210 x_last_updated_by,
211 x_last_update_login
212 );
213
214 IF (p_action = 'INSERT') THEN
215 -- Call all the procedures related to Before Insert.
216 BeforeRowInsert1 ( p_inserting => TRUE );
217 IF Get_PK_For_Validation (
218 new_references.admission_cat,
219 new_references.course_type ) THEN
220 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
221 IGS_GE_MSG_STACK.ADD;
222 App_Exception.Raise_Exception;
223 END IF;
224 Check_Constraints;
225 Check_Parent_Existance;
226 ELSIF (p_action = 'UPDATE') THEN
227 -- Call all the procedures related to Before Update.
228 Check_Constraints;
229 Check_Parent_Existance;
230 ELSIF (p_action = 'VALIDATE_INSERT') THEN
231 IF Get_PK_For_Validation (
232 new_references.admission_cat,
233 new_references.course_type ) THEN
234 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
235 IGS_GE_MSG_STACK.ADD;
236 App_Exception.Raise_Exception;
237 END IF;
238 Check_Constraints;
239 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
240 Check_Constraints;
241 END IF;
242 END Before_DML;
243
244 PROCEDURE After_DML (
245 p_action IN VARCHAR2,
246 x_rowid IN VARCHAR2
247 ) AS
248 BEGIN
249
250 l_rowid := x_rowid;
251
252 END After_DML;
253
254 procedure INSERT_ROW (
255 X_ROWID in out NOCOPY VARCHAR2,
256 X_ADMISSION_CAT in VARCHAR2,
257 X_COURSE_TYPE in VARCHAR2,
258 X_MODE in VARCHAR2 default 'R'
259 ) AS
260 cursor C is select ROWID from IGS_AD_CAT_PS_TYPE
261 where ADMISSION_CAT = X_ADMISSION_CAT
262 and COURSE_TYPE = X_COURSE_TYPE;
263 X_LAST_UPDATE_DATE DATE;
264 X_LAST_UPDATED_BY NUMBER;
265 X_LAST_UPDATE_LOGIN NUMBER;
266 begin
267 X_LAST_UPDATE_DATE := SYSDATE;
268 if(X_MODE = 'I') then
269 X_LAST_UPDATED_BY := 1;
270 X_LAST_UPDATE_LOGIN := 0;
271 elsif (X_MODE = 'R') then
272 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
273 if X_LAST_UPDATED_BY is NULL then
274 X_LAST_UPDATED_BY := -1;
275 end if;
276 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
277 if X_LAST_UPDATE_LOGIN is NULL then
278 X_LAST_UPDATE_LOGIN := -1;
279 end if;
280 else
281 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
282 IGS_GE_MSG_STACK.ADD;
283 app_exception.raise_exception;
284 end if;
285
286 Before_DML(
287 p_action=>'INSERT',
288 x_rowid=>X_ROWID,
289 x_admission_cat=>X_ADMISSION_CAT,
290 x_course_type=>X_COURSE_TYPE,
291 x_creation_date=>X_LAST_UPDATE_DATE,
292 x_created_by=>X_LAST_UPDATED_BY,
293 x_last_update_date=>X_LAST_UPDATE_DATE,
294 x_last_updated_by=>X_LAST_UPDATED_BY,
295 x_last_update_login=>X_LAST_UPDATE_LOGIN
296 );
297
298 insert into IGS_AD_CAT_PS_TYPE (
299 ADMISSION_CAT,
300 COURSE_TYPE,
301 CREATION_DATE,
302 CREATED_BY,
303 LAST_UPDATE_DATE,
304 LAST_UPDATED_BY,
305 LAST_UPDATE_LOGIN
306 ) values (
307 NEW_REFERENCES.ADMISSION_CAT,
308 NEW_REFERENCES.COURSE_TYPE,
309 X_LAST_UPDATE_DATE,
310 X_LAST_UPDATED_BY,
311 X_LAST_UPDATE_DATE,
312 X_LAST_UPDATED_BY,
313 X_LAST_UPDATE_LOGIN
314 );
315
316 open c;
317 fetch c into X_ROWID;
318 if (c%notfound) then
319 close c;
320 raise no_data_found;
321 end if;
322 close c;
323
324 After_DML (
325 p_action => 'INSERT',
326 x_rowid => X_ROWID);
327
328 end INSERT_ROW;
329
330 procedure LOCK_ROW (
331 X_ROWID in VARCHAR2,
332 X_ADMISSION_CAT in VARCHAR2,
333 X_COURSE_TYPE in VARCHAR2
334 ) AS
335 cursor c1 is select ROWID
336 from IGS_AD_CAT_PS_TYPE
337 where ROWID = X_ROWID for update nowait;
338 tlinfo c1%rowtype;
339
340 begin
341 open c1;
342 fetch c1 into tlinfo;
343 if (c1%notfound) then
344 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
345 IGS_GE_MSG_STACK.ADD;
346 app_exception.raise_exception;
347 close c1;
348 return;
349 end if;
350 close c1;
351
352 return;
353 end LOCK_ROW;
354
355 procedure DELETE_ROW (
356 X_ROWID in VARCHAR2
357 ) AS
358 begin
359
360 Before_DML (
361 p_action => 'DELETE',
362 x_rowid => X_ROWID);
363
364 delete from IGS_AD_CAT_PS_TYPE
365 where ROWID = X_ROWID;
366 if (sql%notfound) then
367 raise no_data_found;
368 end if;
369
370 After_DML (
371 p_action => 'DELETE',
372 x_rowid => X_ROWID);
373
374 end DELETE_ROW;
375
376 end IGS_AD_CAT_PS_TYPE_PKG;