DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_TAC_LVL_OF_QF_PKG

Source


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