DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_TER_ED_LVL_QF_PKG

Source


1 package body IGS_AD_TER_ED_LVL_QF_PKG as
2 /* $Header: IGSAI52B.pls 115.4 2003/10/30 13:13:28 akadam ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_AD_TER_ED_LVL_QF%RowType;
6   new_references IGS_AD_TER_ED_LVL_QF%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_tertiary_edu_lvl_qual IN VARCHAR2 DEFAULT NULL,
12     x_description IN VARCHAR2 DEFAULT NULL,
13     x_tac_level_of_qual 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_LVL_QF
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_qual := x_tertiary_edu_lvl_qual;
46     new_references.description := x_description;
47     new_references.tac_level_of_qual := x_tac_level_of_qual;
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 Qualfication.
70 	IF p_inserting OR ((old_references.tac_level_of_qual <> new_references.tac_level_of_qual) OR
71 			(old_references.closed_ind = 'Y' AND new_references.closed_ind = 'N')) THEN
72 		IF IGS_AD_VAL_TELOQ.admp_val_tloq_closed(
73 					new_references.tac_level_of_qual,
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 	IF Column_Name is null then
91 		NULL;
92 	ELSIF upper(Column_Name) = 'CLOSED_IND' then
93 		new_references.closed_ind := column_value;
94 	ELSIF upper(Column_Name) = 'TAC_LEVEL_OF_QUAL' then
95 		new_references.tac_level_of_qual := column_value;
96 	ELSIF upper(Column_Name) = 'TERTIARY_EDU_LVL_QUAL' then
97 		new_references.tertiary_edu_lvl_qual := column_value;
98 	END IF;
99 
100 	IF upper(Column_Name) = 'CLOSED_IND' OR Column_Name IS NULL THEN
101 		IF new_references.closed_ind NOT IN ('Y','N') THEN
102 			Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
103 			IGS_GE_MSG_STACK.ADD;
104 			App_Exception.Raise_Exception;
105 		END IF;
106 	END IF;
107 	IF upper(Column_Name) = 'TAC_LEVEL_OF_QUAL' OR Column_Name IS NULL THEN
108 		IF new_references.tac_level_of_qual <> UPPER(new_references.tac_level_of_qual) THEN
109 			Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
110 			IGS_GE_MSG_STACK.ADD;
111 			App_Exception.Raise_Exception;
112 		END IF;
113 	END IF;
114 	IF upper(Column_Name) = 'TERTIARY_EDU_LVL_QUAL' OR Column_Name IS NULL THEN
115 		IF new_references.tertiary_edu_lvl_qual <> UPPER(new_references.tertiary_edu_lvl_qual) THEN
116 			Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
117 			IGS_GE_MSG_STACK.ADD;
118 			App_Exception.Raise_Exception;
119 		END IF;
120 	END IF;
121 
122   END Check_Constraints;
123 
124   PROCEDURE Check_Parent_Existance as
125   BEGIN
126 
127     IF (((old_references.tac_level_of_qual = new_references.tac_level_of_qual)) OR
128         ((new_references.tac_level_of_qual IS NULL))) THEN
129       NULL;
130     ELSE
131       IF NOT IGS_AD_TAC_LVL_OF_QF_PKG.Get_PK_For_Validation (
132         new_references.tac_level_of_qual ,
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_LVL_QF (
146       old_references.tertiary_edu_lvl_qual
147       );
148 
149   END Check_Child_Existance;
150 
151 function Get_PK_For_Validation (
152     x_tertiary_edu_lvl_qual 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_LVL_QF
159       WHERE    tertiary_edu_lvl_qual = x_tertiary_edu_lvl_qual 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_QF (
180     x_tac_level_of_qual IN VARCHAR2
181     ) AS
182 
183     CURSOR cur_rowid IS
184       SELECT   rowid
185       FROM     IGS_AD_TER_ED_LVL_QF
186       WHERE    tac_level_of_qual = x_tac_level_of_qual ;
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_TELOQ_TLOQ_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_QF;
204 
205   PROCEDURE Before_DML (
206     p_action IN VARCHAR2,
207     x_rowid IN VARCHAR2 DEFAULT NULL,
208     x_tertiary_edu_lvl_qual IN VARCHAR2 DEFAULT NULL,
209     x_description IN VARCHAR2 DEFAULT NULL,
210     x_tac_level_of_qual 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_qual,
224       x_description,
225       x_tac_level_of_qual,
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_qual
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_qual
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_QUAL in VARCHAR2,
280   X_DESCRIPTION in VARCHAR2,
281   X_TAC_LEVEL_OF_QUAL 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_LVL_QF
286       where TERTIARY_EDU_LVL_QUAL = X_TERTIARY_EDU_LVL_QUAL;
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_qual => X_TERTIARY_EDU_LVL_QUAL,
313      x_description => X_DESCRIPTION,
314      x_tac_level_of_qual => X_TAC_LEVEL_OF_QUAL,
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_LVL_QF (
323     TERTIARY_EDU_LVL_QUAL,
324     DESCRIPTION,
325     TAC_LEVEL_OF_QUAL,
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_QUAL,
334     NEW_REFERENCES.DESCRIPTION,
335     NEW_REFERENCES.TAC_LEVEL_OF_QUAL,
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 end INSERT_ROW;
357 
358 procedure LOCK_ROW (
359   X_ROWID in VARCHAR2,
360   X_TERTIARY_EDU_LVL_QUAL in VARCHAR2,
361   X_DESCRIPTION in VARCHAR2,
362   X_TAC_LEVEL_OF_QUAL in VARCHAR2,
363   X_CLOSED_IND in VARCHAR2
364 ) as
365   cursor c1 is select
366       DESCRIPTION,
367       TAC_LEVEL_OF_QUAL,
368       CLOSED_IND
369     from IGS_AD_TER_ED_LVL_QF
370     where ROWID = X_ROWID for update nowait;
371   tlinfo c1%rowtype;
372 
373 begin
374   open c1;
375   fetch c1 into tlinfo;
376   if (c1%notfound) then
377     close c1;
378     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
379     IGS_GE_MSG_STACK.ADD;
380     app_exception.raise_exception;
381     return;
382   end if;
383   close c1;
384 
385   if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
386       AND ((tlinfo.TAC_LEVEL_OF_QUAL = X_TAC_LEVEL_OF_QUAL)
387            OR ((tlinfo.TAC_LEVEL_OF_QUAL is null)
388                AND (X_TAC_LEVEL_OF_QUAL is null)))
389       AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
390   ) then
391     null;
392   else
393     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
394     IGS_GE_MSG_STACK.ADD;
395     app_exception.raise_exception;
396   end if;
397   return;
398 end LOCK_ROW;
399 
400 procedure UPDATE_ROW (
401   X_ROWID in VARCHAR2,
402   X_TERTIARY_EDU_LVL_QUAL in VARCHAR2,
403   X_DESCRIPTION in VARCHAR2,
404   X_TAC_LEVEL_OF_QUAL in VARCHAR2,
405   X_CLOSED_IND in VARCHAR2,
406   X_MODE in VARCHAR2 default 'R'
407   ) as
408     X_LAST_UPDATE_DATE DATE;
409     X_LAST_UPDATED_BY NUMBER;
410     X_LAST_UPDATE_LOGIN NUMBER;
411 begin
412   X_LAST_UPDATE_DATE := SYSDATE;
413   if(X_MODE = 'I') then
414     X_LAST_UPDATED_BY := 1;
415     X_LAST_UPDATE_LOGIN := 0;
416   elsif (X_MODE = 'R') then
417     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
418     if X_LAST_UPDATED_BY is NULL then
419       X_LAST_UPDATED_BY := -1;
420     end if;
421     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
422     if X_LAST_UPDATE_LOGIN is NULL then
423       X_LAST_UPDATE_LOGIN := -1;
424     end if;
425   else
426     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
427     IGS_GE_MSG_STACK.ADD;
428     app_exception.raise_exception;
429   end if;
430   Before_DML (
431      p_action => 'UPDATE',
432      x_rowid => X_ROWID,
433      x_tertiary_edu_lvl_qual => X_TERTIARY_EDU_LVL_QUAL,
434      x_description => X_DESCRIPTION,
435      x_tac_level_of_qual => X_TAC_LEVEL_OF_QUAL,
436      x_closed_ind => X_CLOSED_IND,
437      x_creation_date => X_LAST_UPDATE_DATE,
438      x_created_by => X_LAST_UPDATED_BY,
439      x_last_update_date => X_LAST_UPDATE_DATE,
440      x_last_updated_by => X_LAST_UPDATED_BY,
441      x_last_update_login => X_LAST_UPDATE_LOGIN
442   );
443   update IGS_AD_TER_ED_LVL_QF set
444     DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
445     TAC_LEVEL_OF_QUAL = NEW_REFERENCES.TAC_LEVEL_OF_QUAL,
446     CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
447     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
448     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
449     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
450   where ROWID = X_ROWID
451   ;
452   if (sql%notfound) then
453     raise no_data_found;
454   end if;
455   After_DML (
456      p_action => 'UPDATE',
457      x_rowid => X_ROWID
458     );
459 end UPDATE_ROW;
460 
461 procedure ADD_ROW (
462   X_ROWID in out NOCOPY VARCHAR2,
463   X_TERTIARY_EDU_LVL_QUAL in VARCHAR2,
464   X_DESCRIPTION in VARCHAR2,
465   X_TAC_LEVEL_OF_QUAL in VARCHAR2,
466   X_CLOSED_IND in VARCHAR2,
467   X_MODE in VARCHAR2 default 'R'
468   ) as
469   cursor c1 is select rowid from IGS_AD_TER_ED_LVL_QF
470      where TERTIARY_EDU_LVL_QUAL = X_TERTIARY_EDU_LVL_QUAL
471   ;
472 begin
473   open c1;
474   fetch c1 into X_ROWID;
475   if (c1%notfound) then
476     close c1;
477     INSERT_ROW (
478      X_ROWID,
479      X_TERTIARY_EDU_LVL_QUAL,
480      X_DESCRIPTION,
481      X_TAC_LEVEL_OF_QUAL,
482      X_CLOSED_IND,
483      X_MODE);
484     return;
485   end if;
486   close c1;
487   UPDATE_ROW (
488    X_ROWID,
489    X_TERTIARY_EDU_LVL_QUAL,
490    X_DESCRIPTION,
491    X_TAC_LEVEL_OF_QUAL,
492    X_CLOSED_IND,
493    X_MODE);
494 end ADD_ROW;
495 
496 procedure DELETE_ROW (
497 X_ROWID in VARCHAR2
498 ) as
499 begin
500   Before_DML (
501      p_action => 'DELETE',
502      x_rowid => X_ROWID
503   );
504   delete from IGS_AD_TER_ED_LVL_QF
505   where ROWID = X_ROWID;
506   if (sql%notfound) then
507     raise no_data_found;
508   end if;
509   After_DML (
510      p_action => 'DELETE',
511      x_rowid => X_ROWID
512   );
513 end DELETE_ROW;
514 
515 end IGS_AD_TER_ED_LVL_QF_PKG;