DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_TAC_AUSCED_AS_PKG

Source


1 package body IGS_AD_TAC_AUSCED_AS_PKG as
2 /* $Header: IGSAI57B.pls 115.4 2003/10/30 13:13:42 akadam ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_AD_TAC_AUSCED_AS%RowType;
6   new_references IGS_AD_TAC_AUSCED_AS%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_tac_aus_scndry_edu_ass_type 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_AUSCED_AS
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_aus_scndry_edu_ass_type := x_tac_aus_scndry_edu_ass_type;
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 
67 	IF Column_Name is null then
68 		NULL;
69 	ELSIF upper(Column_Name) = 'CLOSED_IND' then
70 		new_references.closed_ind := column_value;
71 	ELSIF upper(Column_Name) = 'TAC_AUS_SCNDRY_EDU_ASS_TYPE' then
72 		new_references.tac_aus_scndry_edu_ass_type := column_value;
73 	END IF;
74 
75 	IF upper(Column_Name) = 'CLOSED_IND' OR Column_Name IS NULL THEN
76 		IF new_references.closed_ind NOT IN ('Y','N') THEN
77 			Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
78 			IGS_GE_MSG_STACK.ADD;
79 			App_Exception.Raise_Exception;
80 		END IF;
81 	END IF;
82 	IF upper(Column_Name) = 'TAC_AUS_SCNDRY_EDU_ASS_TYPE' OR Column_Name IS NULL THEN
83 		IF new_references.tac_aus_scndry_edu_ass_type <> UPPER(new_references.tac_aus_scndry_edu_ass_type) THEN
84 			Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
85 			IGS_GE_MSG_STACK.ADD;
86 			App_Exception.Raise_Exception;
87 		END IF;
88 	END IF;
89   END Check_Constraints;
90 
91   PROCEDURE Check_Child_Existance AS
92   BEGIN
93 
94     IGS_AD_AUSE_ED_AS_TY_PKG.GET_FK_IGS_AD_TAC_AUSCED_AS (
95       old_references.tac_aus_scndry_edu_ass_type
96       );
97 
98   END Check_Child_Existance;
99 
100 function Get_PK_For_Validation (
101     x_tac_aus_scndry_edu_ass_type 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_AUSCED_AS
108       WHERE    tac_aus_scndry_edu_ass_type = x_tac_aus_scndry_edu_ass_type 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_aus_scndry_edu_ass_type 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_aus_scndry_edu_ass_type,
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_aus_scndry_edu_ass_type
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_aus_scndry_edu_ass_type
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_AUS_SCNDRY_EDU_ASS_TYPE 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_AUSCED_AS
202       where TAC_AUS_SCNDRY_EDU_ASS_TYPE = X_TAC_AUS_SCNDRY_EDU_ASS_TYPE;
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_aus_scndry_edu_ass_type => X_TAC_AUS_SCNDRY_EDU_ASS_TYPE,
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_AUSCED_AS (
239     TAC_AUS_SCNDRY_EDU_ASS_TYPE,
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_AUS_SCNDRY_EDU_ASS_TYPE,
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_AUS_SCNDRY_EDU_ASS_TYPE in VARCHAR2,
275   X_DESCRIPTION in VARCHAR2,
276   X_CLOSED_IND in VARCHAR2
277 ) AS
278   cursor c1 is
279     select *
280     from IGS_AD_TAC_AUSCED_AS
281     where ROWID = X_ROWID for update nowait;
282   tlinfo c1%rowtype;
283 
284 begin
285   open c1;
286   fetch c1 into tlinfo;
287   if (c1%notfound) then
288     close c1;
289     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
290     IGS_GE_MSG_STACK.ADD;
291     app_exception.raise_exception;
292     return;
293   end if;
294   close c1;
295 
296   if ((tlinfo.TAC_AUS_SCNDRY_EDU_ASS_TYPE = X_TAC_AUS_SCNDRY_EDU_ASS_TYPE)
297        AND (tlinfo.DESCRIPTION = X_DESCRIPTION)
298        AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
299   ) then
300     null;
301   else
302     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
303     IGS_GE_MSG_STACK.ADD;
304     app_exception.raise_exception;
305   end if;
306   return;
307 end LOCK_ROW;
308 
309 procedure UPDATE_ROW (
310   X_ROWID in VARCHAR2,
311   X_TAC_AUS_SCNDRY_EDU_ASS_TYPE in VARCHAR2,
312   X_DESCRIPTION in VARCHAR2,
313   X_CLOSED_IND in VARCHAR2,
314   X_MODE in VARCHAR2 default 'R'
315   ) AS
316     X_LAST_UPDATE_DATE DATE;
317     X_LAST_UPDATED_BY NUMBER;
318     X_LAST_UPDATE_LOGIN NUMBER;
319 begin
320   X_LAST_UPDATE_DATE := SYSDATE;
321   if(X_MODE = 'I') then
322     X_LAST_UPDATED_BY := 1;
323     X_LAST_UPDATE_LOGIN := 0;
324   elsif (X_MODE = 'R') then
325     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
326     if X_LAST_UPDATED_BY is NULL then
327       X_LAST_UPDATED_BY := -1;
328     end if;
329     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
330     if X_LAST_UPDATE_LOGIN is NULL then
331       X_LAST_UPDATE_LOGIN := -1;
332     end if;
333   else
334     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
335 IGS_GE_MSG_STACK.ADD;
336     app_exception.raise_exception;
337   end if;
338   Before_DML (
339      p_action => 'UPDATE',
340      x_rowid => X_ROWID,
341      x_tac_aus_scndry_edu_ass_type => X_TAC_AUS_SCNDRY_EDU_ASS_TYPE,
342      x_description => X_DESCRIPTION,
343      x_closed_ind => X_CLOSED_IND,
344      x_creation_date => X_LAST_UPDATE_DATE,
345      x_created_by => X_LAST_UPDATED_BY,
346      x_last_update_date => X_LAST_UPDATE_DATE,
347      x_last_updated_by => X_LAST_UPDATED_BY,
348      x_last_update_login => X_LAST_UPDATE_LOGIN
349   );
350 
351   update IGS_AD_TAC_AUSCED_AS 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_AUS_SCNDRY_EDU_ASS_TYPE 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_AUSCED_AS
376      where TAC_AUS_SCNDRY_EDU_ASS_TYPE = X_TAC_AUS_SCNDRY_EDU_ASS_TYPE
377   ;
378 
379 begin
380   open c1;
381   fetch c1 into X_ROWID;
382   if (c1%notfound) then
383     close c1;
384     INSERT_ROW (
385      X_ROWID,
386      X_TAC_AUS_SCNDRY_EDU_ASS_TYPE,
387      X_DESCRIPTION,
388      X_CLOSED_IND,
389      X_MODE);
390     return;
391   end if;
392   close c1;
393   UPDATE_ROW (
394    X_ROWID,
395    X_TAC_AUS_SCNDRY_EDU_ASS_TYPE,
396    X_DESCRIPTION,
397    X_CLOSED_IND,
398    X_MODE);
399 end ADD_ROW;
400 
401 procedure DELETE_ROW (
402   X_ROWID in VARCHAR2
403 ) AS
404 begin
405   Before_DML (
406      p_action => 'DELETE',
407      x_rowid => X_ROWID
408   );
409   delete from IGS_AD_TAC_AUSCED_AS
410   where ROWID = X_ROWID;
411   if (sql%notfound) then
412     raise no_data_found;
413   end if;
414   After_DML (
415      p_action => 'DELETE',
416      x_rowid => X_ROWID
417   );
418 end DELETE_ROW;
419 
420 end IGS_AD_TAC_AUSCED_AS_PKG;