DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_TAC_LV_OF_COM_PKG

Source


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