[Home] [Help]
PACKAGE BODY: APPS.IGS_AD_TER_ED_LV_COM_PKG
Source
1 package body IGS_AD_TER_ED_LV_COM_PKG as
2 /* $Header: IGSAI53B.pls 115.4 2003/10/30 13:13:32 akadam ship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references IGS_AD_TER_ED_LV_COM%RowType;
6 new_references IGS_AD_TER_ED_LV_COM%RowType;
7
8 PROCEDURE Set_Column_Values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_tertiary_edu_lvl_comp IN VARCHAR2 DEFAULT NULL,
12 x_description IN VARCHAR2 DEFAULT NULL,
13 x_tac_level_of_comp IN VARCHAR2 DEFAULT NULL,
14 x_closed_ind IN VARCHAR2 DEFAULT NULL,
15 x_creation_date IN DATE DEFAULT NULL,
16 x_created_by IN NUMBER DEFAULT NULL,
17 x_last_update_date IN DATE DEFAULT NULL,
18 x_last_updated_by IN NUMBER DEFAULT NULL,
19 x_last_update_login IN NUMBER DEFAULT NULL
20 ) as
21
22 CURSOR cur_old_ref_values IS
23 SELECT *
24 FROM IGS_AD_TER_ED_LV_COM
25 WHERE rowid = x_rowid;
26
27 BEGIN
28
29 l_rowid := x_rowid;
30
31 -- Code for setting the Old and New Reference Values.
32 -- Populate Old Values.
33 Open cur_old_ref_values;
34 Fetch cur_old_ref_values INTO old_references;
35 IF (cur_old_ref_values%NOTFOUND) AND p_action NOT IN ('INSERT','VALIDATE_INSERT') THEN
36 Close cur_old_ref_values;
37 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
38 IGS_GE_MSG_STACK.ADD;
39 App_Exception.Raise_Exception;
40 Return;
41 END IF;
42 Close cur_old_ref_values;
43
44 -- Populate New Values.
45 new_references.tertiary_edu_lvl_comp := x_tertiary_edu_lvl_comp;
46 new_references.description := x_description;
47 new_references.tac_level_of_comp := x_tac_level_of_comp;
48 new_references.closed_ind := x_closed_ind;
49 IF (p_action = 'UPDATE') THEN
50 new_references.creation_date := old_references.creation_date;
51 new_references.created_by := old_references.created_by;
52 ELSE
53 new_references.creation_date := x_creation_date;
54 new_references.created_by := x_created_by;
55 END IF;
56 new_references.last_update_date := x_last_update_date;
57 new_references.last_updated_by := x_last_updated_by;
58 new_references.last_update_login := x_last_update_login;
59
60 END Set_Column_Values;
61
62 PROCEDURE BeforeRowInsertUpdate1(
63 p_inserting IN BOOLEAN DEFAULT FALSE,
64 p_updating IN BOOLEAN DEFAULT FALSE,
65 p_deleting IN BOOLEAN DEFAULT FALSE
66 ) as
67 v_message_name VARCHAR2(30);
68 BEGIN
69 -- Validate TAC level of Completion.
70 IF p_inserting OR ((old_references.tac_level_of_comp <> new_references.tac_level_of_comp) OR
71 (old_references.closed_ind = 'Y' AND new_references.closed_ind = 'N')) THEN
72 IF IGS_AD_VAL_TELOC.admp_val_tloc_closed(
73 new_references.tac_level_of_comp,
74 v_message_name) = FALSE THEN
75 Fnd_Message.Set_Name('IGS', v_message_name);
76 IGS_GE_MSG_STACK.ADD;
77 App_Exception.Raise_Exception;
78 END IF;
79 END IF;
80
81
82 END BeforeRowInsertUpdate1;
83
84 procedure Check_Constraints (
85 Column_Name IN VARCHAR2 DEFAULT NULL,
86 Column_Value IN VARCHAR2 DEFAULT NULL
87 )
88 AS
89 BEGIN
90
91 IF Column_Name is null then
92 NULL;
93 ELSIF upper(Column_Name) = 'CLOSED_IND' then
94 new_references.closed_ind := column_value;
95 ELSIF upper(Column_Name) = 'TAC_LEVEL_OF_COMP' then
96 new_references.tac_level_of_comp := column_value;
97 ELSIF upper(Column_Name) = 'TERTIARY_EDU_LVL_COMP' then
98 new_references.tertiary_edu_lvl_comp := column_value;
99 END IF;
100
101 IF upper(Column_Name) = 'CLOSED_IND' OR Column_Name IS NULL THEN
102 IF new_references.closed_ind NOT IN ('Y','N') THEN
103 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
104 IGS_GE_MSG_STACK.ADD;
105 App_Exception.Raise_Exception;
106 END IF;
107 END IF;
108 IF upper(Column_Name) = 'TAC_LEVEL_OF_COMP' OR Column_Name IS NULL THEN
109 IF new_references.tac_level_of_comp <> UPPER(new_references.tac_level_of_comp) THEN
110 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
111 IGS_GE_MSG_STACK.ADD;
112 App_Exception.Raise_Exception;
113 END IF;
114 END IF;
115 IF upper(Column_Name) = 'TERTIARY_EDU_LVL_COMP' OR Column_Name IS NULL THEN
116 IF new_references.tertiary_edu_lvl_comp <> UPPER(new_references.tertiary_edu_lvl_comp) THEN
117 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
118 IGS_GE_MSG_STACK.ADD;
119 App_Exception.Raise_Exception;
120 END IF;
121 END IF;
122 END Check_Constraints;
123
124 PROCEDURE Check_Parent_Existance as
125 BEGIN
126
127 IF (((old_references.tac_level_of_comp = new_references.tac_level_of_comp)) OR
128 ((new_references.tac_level_of_comp IS NULL))) THEN
129 NULL;
130 ELSE
131 IF NOT IGS_AD_TAC_LV_OF_COM_PKG.Get_PK_For_Validation (
132 new_references.tac_level_of_comp ,
133 'N' ) THEN
134 Fnd_Message.Set_Name('FND','FORM_RECORD_DELETED');
135 IGS_GE_MSG_STACK.ADD;
136 App_Exception.Raise_Exception;
137 END IF;
138 END IF;
139
140 END Check_Parent_Existance;
141
142 PROCEDURE Check_Child_Existance AS
143 BEGIN
144
145 IGS_AD_TER_EDU_PKG.GET_FK_IGS_AD_TER_EDU_LV_COM (
146 old_references.tertiary_edu_lvl_comp
147 );
148
149 END Check_Child_Existance;
150
151 function Get_PK_For_Validation (
152 x_tertiary_edu_lvl_comp IN VARCHAR2,
153 x_closed_ind IN VARCHAR2
154 )return BOOLEAN AS
155
156 CURSOR cur_rowid IS
157 SELECT rowid
158 FROM IGS_AD_TER_ED_LV_COM
159 WHERE tertiary_edu_lvl_comp = x_tertiary_edu_lvl_comp AND
160 closed_ind = NVL(x_closed_ind,closed_ind)
161 FOR UPDATE NOWAIT;
162
163 lv_rowid cur_rowid%RowType;
164
165 BEGIN
166
167 Open cur_rowid;
168 Fetch cur_rowid INTO lv_rowid;
169 IF (cur_rowid%FOUND) THEN
170 Close cur_rowid;
171 Return(TRUE);
172 ELSE
173 Close cur_rowid;
174 Return(FALSE);
175 END IF;
176
177 END Get_PK_For_Validation;
178
179 PROCEDURE GET_FK_IGS_AD_TAC_LVL_OF_COM (
180 x_tac_level_of_comp IN VARCHAR2
181 ) AS
182
183 CURSOR cur_rowid IS
184 SELECT rowid
185 FROM IGS_AD_TER_ED_LV_COM
186 WHERE tac_level_of_comp = x_tac_level_of_comp ;
187
188 lv_rowid cur_rowid%RowType;
189
190 BEGIN
191
192 Open cur_rowid;
193 Fetch cur_rowid INTO lv_rowid;
194 IF (cur_rowid%FOUND) THEN
195 Close cur_rowid;
196 Fnd_Message.Set_Name ('IGS', 'IGS_AD_TELOC_TLOC_FK');
197 IGS_GE_MSG_STACK.ADD;
198 App_Exception.Raise_Exception;
199 Return;
200 END IF;
201 Close cur_rowid;
202
203 END GET_FK_IGS_AD_TAC_LVL_OF_COM;
204
205 PROCEDURE Before_DML (
206 p_action IN VARCHAR2,
207 x_rowid IN VARCHAR2 DEFAULT NULL,
208 x_tertiary_edu_lvl_comp IN VARCHAR2 DEFAULT NULL,
209 x_description IN VARCHAR2 DEFAULT NULL,
210 x_tac_level_of_comp IN VARCHAR2 DEFAULT NULL,
211 x_closed_ind IN VARCHAR2 DEFAULT NULL,
212 x_creation_date IN DATE DEFAULT NULL,
213 x_created_by IN NUMBER DEFAULT NULL,
214 x_last_update_date IN DATE DEFAULT NULL,
215 x_last_updated_by IN NUMBER DEFAULT NULL,
216 x_last_update_login IN NUMBER DEFAULT NULL
217 ) AS
218 BEGIN
219
220 Set_Column_Values (
221 p_action,
222 x_rowid,
223 x_tertiary_edu_lvl_comp,
224 x_description,
225 x_tac_level_of_comp,
226 x_closed_ind,
227 x_creation_date,
228 x_created_by,
229 x_last_update_date,
230 x_last_updated_by,
231 x_last_update_login
232 );
233
234 IF (p_action = 'INSERT') THEN
235 BeforeRowInsertUpdate1 ( p_inserting => TRUE );
236 IF Get_PK_For_Validation (
237 new_references.tertiary_edu_lvl_comp
238 ) THEN
239 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
240 IGS_GE_MSG_STACK.ADD;
241 App_Exception.Raise_Exception;
242 END IF;
243 Check_Constraints;
244 Check_Parent_Existance;
245 ELSIF (p_action = 'UPDATE') THEN
246 BeforeRowInsertUpdate1 ( p_updating => TRUE );
247 Check_Constraints;
248 Check_Parent_Existance;
249 ELSIF (p_action = 'DELETE') THEN
250 Null;
251 Check_Child_Existance;
252 ELSIF (p_action = 'VALIDATE_INSERT') THEN
253 IF Get_PK_For_Validation (
254 new_references.tertiary_edu_lvl_comp
255 ) THEN
256 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
257 IGS_GE_MSG_STACK.ADD;
258 App_Exception.Raise_Exception;
259 END IF;
260 Check_Constraints;
261 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
262 Check_Constraints;
263 ELSIF (p_action = 'VALIDATE_DELETE') THEN
264 Check_Child_Existance;
265 END IF;
266
267 END Before_DML;
268
269 PROCEDURE After_DML (
270 p_action IN VARCHAR2,
271 x_rowid IN VARCHAR2
272 ) as
273 BEGIN
274 l_rowid := x_rowid;
275 END After_DML;
276
277 procedure INSERT_ROW (
278 X_ROWID in out NOCOPY VARCHAR2,
279 X_TERTIARY_EDU_LVL_COMP in VARCHAR2,
280 X_DESCRIPTION in VARCHAR2,
281 X_TAC_LEVEL_OF_COMP in VARCHAR2,
282 X_CLOSED_IND in VARCHAR2,
283 X_MODE in VARCHAR2 default 'R'
284 ) as
285 cursor C is select ROWID from IGS_AD_TER_ED_LV_COM
286 where TERTIARY_EDU_LVL_COMP = X_TERTIARY_EDU_LVL_COMP;
287 X_LAST_UPDATE_DATE DATE;
288 X_LAST_UPDATED_BY NUMBER;
289 X_LAST_UPDATE_LOGIN NUMBER;
290 begin
291 X_LAST_UPDATE_DATE := SYSDATE;
292 if(X_MODE = 'I') then
293 X_LAST_UPDATED_BY := 1;
294 X_LAST_UPDATE_LOGIN := 0;
295 elsif (X_MODE = 'R') then
296 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
297 if X_LAST_UPDATED_BY is NULL then
298 X_LAST_UPDATED_BY := -1;
299 end if;
300 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
301 if X_LAST_UPDATE_LOGIN is NULL then
302 X_LAST_UPDATE_LOGIN := -1;
303 end if;
304 else
305 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
306 IGS_GE_MSG_STACK.ADD;
307 app_exception.raise_exception;
308 end if;
309 Before_DML (
310 p_action => 'INSERT',
311 x_rowid => X_ROWID,
312 x_tertiary_edu_lvl_comp => X_TERTIARY_EDU_LVL_COMP,
313 x_description => X_DESCRIPTION,
314 x_tac_level_of_comp => X_TAC_LEVEL_OF_COMP,
315 x_closed_ind => NVL(X_CLOSED_IND,'N'),
316 x_creation_date => X_LAST_UPDATE_DATE,
317 x_created_by => X_LAST_UPDATED_BY,
318 x_last_update_date => X_LAST_UPDATE_DATE,
319 x_last_updated_by => X_LAST_UPDATED_BY,
320 x_last_update_login => X_LAST_UPDATE_LOGIN
321 );
322 insert into IGS_AD_TER_ED_LV_COM (
323 TERTIARY_EDU_LVL_COMP,
324 DESCRIPTION,
325 TAC_LEVEL_OF_COMP,
326 CLOSED_IND,
327 CREATION_DATE,
328 CREATED_BY,
329 LAST_UPDATE_DATE,
330 LAST_UPDATED_BY,
331 LAST_UPDATE_LOGIN
332 ) values (
333 NEW_REFERENCES.TERTIARY_EDU_LVL_COMP,
334 NEW_REFERENCES.DESCRIPTION,
335 NEW_REFERENCES.TAC_LEVEL_OF_COMP,
336 NEW_REFERENCES.CLOSED_IND,
337 X_LAST_UPDATE_DATE,
338 X_LAST_UPDATED_BY,
339 X_LAST_UPDATE_DATE,
340 X_LAST_UPDATED_BY,
341 X_LAST_UPDATE_LOGIN
342 );
343
344 open c;
345 fetch c into X_ROWID;
346 if (c%notfound) then
347 close c;
348 raise no_data_found;
349 end if;
350 close c;
351
352 After_DML (
353 p_action => 'INSERT',
354 x_rowid => X_ROWID
355 );
356
357 end INSERT_ROW;
358
359 procedure LOCK_ROW (
360 X_ROWID in VARCHAR2,
361 X_TERTIARY_EDU_LVL_COMP in VARCHAR2,
362 X_DESCRIPTION in VARCHAR2,
363 X_TAC_LEVEL_OF_COMP in VARCHAR2,
364 X_CLOSED_IND in VARCHAR2
365 ) as
366 cursor c1 is select
367 DESCRIPTION,
368 TAC_LEVEL_OF_COMP,
369 CLOSED_IND
370 from IGS_AD_TER_ED_LV_COM
371 where ROWID = X_ROWID for update nowait;
372 tlinfo c1%rowtype;
373
374 begin
375 open c1;
376 fetch c1 into tlinfo;
377 if (c1%notfound) then
378 close c1;
379 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
380 IGS_GE_MSG_STACK.ADD;
381 app_exception.raise_exception;
382 return;
383 end if;
384 close c1;
385
386 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
387 AND ((tlinfo.TAC_LEVEL_OF_COMP = X_TAC_LEVEL_OF_COMP)
391 ) then
388 OR ((tlinfo.TAC_LEVEL_OF_COMP is null)
389 AND (X_TAC_LEVEL_OF_COMP is null)))
390 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
392 null;
393 else
394 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
395 IGS_GE_MSG_STACK.ADD;
396 app_exception.raise_exception;
397 end if;
398 return;
399 end LOCK_ROW;
400
401 procedure UPDATE_ROW (
402 X_ROWID in VARCHAR2,
403 X_TERTIARY_EDU_LVL_COMP in VARCHAR2,
404 X_DESCRIPTION in VARCHAR2,
405 X_TAC_LEVEL_OF_COMP in VARCHAR2,
406 X_CLOSED_IND in VARCHAR2,
407 X_MODE in VARCHAR2 default 'R'
408 ) as
409 X_LAST_UPDATE_DATE DATE;
410 X_LAST_UPDATED_BY NUMBER;
411 X_LAST_UPDATE_LOGIN NUMBER;
412 begin
413 X_LAST_UPDATE_DATE := SYSDATE;
414 if(X_MODE = 'I') then
415 X_LAST_UPDATED_BY := 1;
416 X_LAST_UPDATE_LOGIN := 0;
417 elsif (X_MODE = 'R') then
418 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
419 if X_LAST_UPDATED_BY is NULL then
420 X_LAST_UPDATED_BY := -1;
421 end if;
422 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
423 if X_LAST_UPDATE_LOGIN is NULL then
424 X_LAST_UPDATE_LOGIN := -1;
425 end if;
426 else
427 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
428 IGS_GE_MSG_STACK.ADD;
429 app_exception.raise_exception;
430 end if;
431 Before_DML (
432 p_action => 'UPDATE',
433 x_rowid => X_ROWID,
434 x_tertiary_edu_lvl_comp => X_TERTIARY_EDU_LVL_COMP,
435 x_description => X_DESCRIPTION,
436 x_tac_level_of_comp => X_TAC_LEVEL_OF_COMP,
437 x_closed_ind => X_CLOSED_IND,
438 x_creation_date => X_LAST_UPDATE_DATE,
439 x_created_by => X_LAST_UPDATED_BY,
440 x_last_update_date => X_LAST_UPDATE_DATE,
441 x_last_updated_by => X_LAST_UPDATED_BY,
442 x_last_update_login => X_LAST_UPDATE_LOGIN
443 );
444 update IGS_AD_TER_ED_LV_COM set
445 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
446 TAC_LEVEL_OF_COMP = NEW_REFERENCES.TAC_LEVEL_OF_COMP,
447 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
448 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
449 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
450 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
451 where ROWID = X_ROWID
452 ;
453 if (sql%notfound) then
454 raise no_data_found;
455 end if;
456 After_DML (
457 p_action => 'UPDATE',
458 x_rowid => X_ROWID
459 );
460 end UPDATE_ROW;
461
462 procedure ADD_ROW (
463 X_ROWID in out NOCOPY VARCHAR2,
464 X_TERTIARY_EDU_LVL_COMP in VARCHAR2,
465 X_DESCRIPTION in VARCHAR2,
466 X_TAC_LEVEL_OF_COMP in VARCHAR2,
467 X_CLOSED_IND in VARCHAR2,
468 X_MODE in VARCHAR2 default 'R'
469 ) as
470 cursor c1 is select rowid from IGS_AD_TER_ED_LV_COM
471 where TERTIARY_EDU_LVL_COMP = X_TERTIARY_EDU_LVL_COMP
472 ;
473 begin
474 open c1;
475 fetch c1 into X_ROWID;
476 if (c1%notfound) then
477 close c1;
478 INSERT_ROW (
479 X_ROWID,
480 X_TERTIARY_EDU_LVL_COMP,
481 X_DESCRIPTION,
482 X_TAC_LEVEL_OF_COMP,
483 X_CLOSED_IND,
484 X_MODE);
485 return;
486 end if;
487 close c1;
488 UPDATE_ROW (
489 X_ROWID,
490 X_TERTIARY_EDU_LVL_COMP,
491 X_DESCRIPTION,
492 X_TAC_LEVEL_OF_COMP,
493 X_CLOSED_IND,
494 X_MODE);
495 end ADD_ROW;
496
497 procedure DELETE_ROW (
498 X_ROWID in VARCHAR2
499 ) as
500 begin
501 Before_DML (
502 p_action => 'DELETE',
503 x_rowid => X_ROWID
504 );
505 delete from IGS_AD_TER_ED_LV_COM
506 where ROWID = X_ROWID;
507 if (sql%notfound) then
508 raise no_data_found;
509 end if;
510 After_DML (
511 p_action => 'DELETE',
512 x_rowid => X_ROWID
513 );
514 end DELETE_ROW;
515
516 end IGS_AD_TER_ED_LV_COM_PKG;