DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AS_EXM_SPRVSRTYP_PKG

Source


1 package body IGS_AS_EXM_SPRVSRTYP_PKG as
2 /* $Header: IGSDI41B.pls 115.7 2003/05/19 04:43:54 ijeddy ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_AS_EXM_SPRVSRTYP%RowType;
6   new_references IGS_AS_EXM_SPRVSRTYP%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_exam_supervisor_type IN VARCHAR2 DEFAULT NULL,
12     x_description IN VARCHAR2 DEFAULT NULL,
13     x_in_charge_ind 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_AS_EXM_SPRVSRTYP
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       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
37       Igs_Ge_Msg_Stack.Add;
38       Close cur_old_ref_values;
39       App_Exception.Raise_Exception;
40       Return;
41     END IF;
42     Close cur_old_ref_values;
43 
44     -- Populate New Values.
45     new_references.exam_supervisor_type := x_exam_supervisor_type;
46     new_references.description := x_description;
47     new_references.in_charge_ind := x_in_charge_ind;
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 
63  PROCEDURE Check_Child_Existance as
64   BEGIN
65 
66     IGS_AS_EXM_INS_SPVSR_PKG.GET_FK_IGS_AS_EXM_SPRVSRTYP (
67       old_references.exam_supervisor_type
68       );
69 
70     IGS_AS_EXM_SES_VN_SP_PKG.GET_FK_IGS_AS_EXM_SPRVSRTYP (
71       old_references.exam_supervisor_type
72       );
73 
74     IGS_AS_EXM_SUPRVISOR_PKG.GET_FK_IGS_AS_EXM_SPRVSRTYP (
75       old_references.exam_supervisor_type
76       );
77 
78   END Check_Child_Existance;
79 
80   FUNCTION   Get_PK_For_Validation (
81     x_exam_supervisor_type IN VARCHAR2
82     ) RETURN BOOLEAN AS
83     CURSOR cur_rowid IS
84       SELECT   rowid
85       FROM     IGS_AS_EXM_SPRVSRTYP
86       WHERE    exam_supervisor_type = x_exam_supervisor_type
87       FOR UPDATE NOWAIT;
88 
89     lv_rowid cur_rowid%RowType;
90 
91   BEGIN
92 
93     Open cur_rowid;
94     Fetch cur_rowid INTO lv_rowid;
95 IF (cur_rowid%FOUND) THEN
96  Close cur_rowid;
97  Return (TRUE);
98 ELSE
99     Close cur_rowid;
100     Return (FALSE);
101 END IF;
102     Close cur_rowid;
103 
104   END Get_PK_For_Validation;
105 
106 PROCEDURE Check_Constraints (
107 Column_Name	IN	VARCHAR2	DEFAULT NULL,
108 Column_Value 	IN	VARCHAR2	DEFAULT NULL
109 	) as
110 BEGIN
111       IF  column_name is null then
112          NULL;
113       ELSIF upper(Column_name) = 'CLOSED_IND' then
114          new_references.closed_ind:= column_value;
115       ELSIF upper(Column_name) = 'IN_CHARGE_IND' then
116          new_references.in_charge_ind:= column_value;
117       ELSIF upper(Column_name) = 'EXAM_SUPERVISOR_TYPE' then
118          new_references.exam_supervisor_type:= column_value;
119       END IF;
120      IF upper(column_name) = 'CLOSED_IND' OR
121         column_name is null Then
122         IF new_references.closed_ind <> UPPER(new_references.closed_ind) OR new_references.closed_ind NOT IN ( 'Y' , 'N' )Then
123           Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
124           Igs_Ge_Msg_Stack.Add;
125           App_Exception.Raise_Exception;
126         END IF;
127      END IF;
128 
129      IF upper(column_name) = 'IN_CHARGE_IND' OR
130         column_name is null Then
131         IF new_references.in_charge_ind <> UPPER(new_references.in_charge_ind) OR new_references.in_charge_ind NOT IN ( 'Y' , 'N' ) Then
132           Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
133           Igs_Ge_Msg_Stack.Add;
134           App_Exception.Raise_Exception;
135         END IF;
136      END IF;
137      IF upper(column_name) = 'EXAM_SUPERVISOR_TYPE' OR
138         column_name is null Then
139         IF new_references.exam_supervisor_type <> UPPER(new_references.exam_supervisor_type) Then
140           Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
141           Igs_Ge_Msg_Stack.Add;
142           App_Exception.Raise_Exception;
143         END IF;
144      END IF;
145 
146 END Check_Constraints;
147 
148 
149   PROCEDURE Before_DML (
150     p_action IN VARCHAR2,
151     x_rowid IN  VARCHAR2 DEFAULT NULL,
152     x_exam_supervisor_type IN VARCHAR2 DEFAULT NULL,
153     x_description IN VARCHAR2 DEFAULT NULL,
154     x_in_charge_ind IN VARCHAR2 DEFAULT NULL,
155     x_closed_ind IN VARCHAR2 DEFAULT NULL,
156     x_creation_date IN DATE DEFAULT NULL,
157     x_created_by IN NUMBER DEFAULT NULL,
158     x_last_update_date IN DATE DEFAULT NULL,
159     x_last_updated_by IN NUMBER DEFAULT NULL,
160     x_last_update_login IN NUMBER DEFAULT NULL
161   ) as
162   BEGIN
163 
164     Set_Column_Values (
165       p_action,
166       x_rowid,
167       x_exam_supervisor_type,
168       x_description,
169       x_in_charge_ind,
170       x_closed_ind,
171       x_creation_date,
172       x_created_by,
173       x_last_update_date,
174       x_last_updated_by,
175       x_last_update_login
176     );
177 
178     IF (p_action = 'INSERT') THEN
179       -- Call all the procedures related to Before Insert.
180       Null;
181 IF  Get_PK_For_Validation (
182              new_references.exam_supervisor_type
183 			             ) THEN
184 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
185 Igs_Ge_Msg_Stack.Add;
186 App_Exception.Raise_Exception;
187 END IF;
188 
189       Check_Constraints;
190     ELSIF (p_action = 'UPDATE') THEN
191       -- Call all the procedures related to Before Update.
192       Null;
193       Check_Constraints;
194     ELSIF (p_action = 'DELETE') THEN
195       -- Call all the procedures related to Before Delete.
196       Null;
197       Check_Child_Existance;
198     ELSIF (p_action = 'VALIDATE_INSERT') THEN
199 IF  Get_PK_For_Validation (
200              new_references.exam_supervisor_type
201 			             ) THEN
202 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
203 Igs_Ge_Msg_Stack.Add;
204 App_Exception.Raise_Exception;
205 END IF;
206 	        Check_Constraints;
207     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
208 	        Check_Constraints;
209     ELSIF (p_action = 'VALIDATE_DELETE') THEN
210               Check_Child_Existance;
211 
212     END IF;
213 
214 /*
215 The (L_ROWID := null) was added by ijeddy on the 12-apr-2003 as
216 part of the bug fix for bug no 2868726, (Uniqueness Check at Item Level)
217 */
218 L_ROWID := null;
219 
220  END Before_DML;
221 
222 
223 procedure INSERT_ROW (
224   X_ROWID in out NOCOPY VARCHAR2,
225   X_EXAM_SUPERVISOR_TYPE in VARCHAR2,
226   X_DESCRIPTION in VARCHAR2,
227   X_IN_CHARGE_IND in VARCHAR2,
228   X_CLOSED_IND in VARCHAR2,
229   X_MODE in VARCHAR2 default 'R'
230   ) as
231     cursor C is select ROWID from IGS_AS_EXM_SPRVSRTYP
232       where EXAM_SUPERVISOR_TYPE = X_EXAM_SUPERVISOR_TYPE;
233     X_LAST_UPDATE_DATE DATE;
234     X_LAST_UPDATED_BY NUMBER;
235     X_LAST_UPDATE_LOGIN NUMBER;
236 begin
237   X_LAST_UPDATE_DATE := SYSDATE;
238   if(X_MODE = 'I') then
239     X_LAST_UPDATED_BY := 1;
240     X_LAST_UPDATE_LOGIN := 0;
241   elsif (X_MODE = 'R') then
242     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
243     if X_LAST_UPDATED_BY is NULL then
244       X_LAST_UPDATED_BY := -1;
245     end if;
246     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
247     if X_LAST_UPDATE_LOGIN is NULL then
248       X_LAST_UPDATE_LOGIN := -1;
249     end if;
250   else
251     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
252     Igs_Ge_Msg_Stack.Add;
253     app_exception.raise_exception;
254   end if;
255   Before_DML(
256   p_action=>'INSERT',
257   x_rowid=>X_ROWID,
258   x_closed_ind=>NVL(X_CLOSED_IND,'N'),
259   x_description=>X_DESCRIPTION,
260   x_exam_supervisor_type=>X_EXAM_SUPERVISOR_TYPE,
261   x_in_charge_ind=> NVL(X_IN_CHARGE_IND,'N'),
262   x_creation_date=>X_LAST_UPDATE_DATE,
263   x_created_by=>X_LAST_UPDATED_BY,
264   x_last_update_date=>X_LAST_UPDATE_DATE,
265   x_last_updated_by=>X_LAST_UPDATED_BY,
266   x_last_update_login=>X_LAST_UPDATE_LOGIN
267   );
268   insert into IGS_AS_EXM_SPRVSRTYP (
269     EXAM_SUPERVISOR_TYPE,
270     DESCRIPTION,
271     IN_CHARGE_IND,
272     CLOSED_IND,
273     CREATION_DATE,
274     CREATED_BY,
275     LAST_UPDATE_DATE,
276     LAST_UPDATED_BY,
277     LAST_UPDATE_LOGIN
278   ) values (
279     NEW_REFERENCES.EXAM_SUPERVISOR_TYPE,
280     NEW_REFERENCES.DESCRIPTION,
281     NEW_REFERENCES.IN_CHARGE_IND,
282     NEW_REFERENCES.CLOSED_IND,
283     X_LAST_UPDATE_DATE,
284     X_LAST_UPDATED_BY,
285     X_LAST_UPDATE_DATE,
286     X_LAST_UPDATED_BY,
287     X_LAST_UPDATE_LOGIN
288   );
289 
290   open c;
291   fetch c into X_ROWID;
292   if (c%notfound) then
293     close c;
294     raise no_data_found;
295   end if;
296   close c;
297 end INSERT_ROW;
298 
299 procedure LOCK_ROW (
300   X_ROWID in  VARCHAR2,
301   X_EXAM_SUPERVISOR_TYPE in VARCHAR2,
302   X_DESCRIPTION in VARCHAR2,
303   X_IN_CHARGE_IND in VARCHAR2,
304   X_CLOSED_IND in VARCHAR2
305 ) as
306   cursor c1 is select
307       DESCRIPTION,
308       IN_CHARGE_IND,
309       CLOSED_IND
310     from IGS_AS_EXM_SPRVSRTYP
311     where ROWID = X_ROWID  for update  nowait;
312   tlinfo c1%rowtype;
313 
314 begin
315   open c1;
316   fetch c1 into tlinfo;
317   if (c1%notfound) then
318     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
319     Igs_Ge_Msg_Stack.Add;
320     close c1;
321     app_exception.raise_exception;
322     return;
323   end if;
324   close c1;
325 
326   if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
327       AND (tlinfo.IN_CHARGE_IND = X_IN_CHARGE_IND)
328       AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
329   ) then
330     null;
331   else
332     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
333     Igs_Ge_Msg_Stack.Add;
334     app_exception.raise_exception;
335   end if;
336   return;
337 end LOCK_ROW;
338 
339 procedure UPDATE_ROW (
340   X_ROWID in  VARCHAR2,
341   X_EXAM_SUPERVISOR_TYPE in VARCHAR2,
342   X_DESCRIPTION in VARCHAR2,
343   X_IN_CHARGE_IND in VARCHAR2,
344   X_CLOSED_IND in VARCHAR2,
345   X_MODE in VARCHAR2 default 'R'
346   ) as
347     X_LAST_UPDATE_DATE DATE;
348     X_LAST_UPDATED_BY NUMBER;
349     X_LAST_UPDATE_LOGIN NUMBER;
350 begin
351   X_LAST_UPDATE_DATE := SYSDATE;
352   if(X_MODE = 'I') then
353     X_LAST_UPDATED_BY := 1;
354     X_LAST_UPDATE_LOGIN := 0;
355   elsif (X_MODE = 'R') then
356     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
357     if X_LAST_UPDATED_BY is NULL then
358       X_LAST_UPDATED_BY := -1;
359     end if;
360     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
361     if X_LAST_UPDATE_LOGIN is NULL then
362       X_LAST_UPDATE_LOGIN := -1;
363     end if;
364   else
365     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
366     Igs_Ge_Msg_Stack.Add;
367     app_exception.raise_exception;
368   end if;
369    Before_DML(
370   p_action=>'UPDATE',
371   x_rowid=>X_ROWID,
372   x_closed_ind=>X_CLOSED_IND,
373   x_description=>X_DESCRIPTION,
374   x_exam_supervisor_type=>X_EXAM_SUPERVISOR_TYPE,
375   x_in_charge_ind=>X_IN_CHARGE_IND,
376   x_creation_date=>X_LAST_UPDATE_DATE,
377   x_created_by=>X_LAST_UPDATED_BY,
378   x_last_update_date=>X_LAST_UPDATE_DATE,
379   x_last_updated_by=>X_LAST_UPDATED_BY,
380   x_last_update_login=>X_LAST_UPDATE_LOGIN
381   );
382 
383   update IGS_AS_EXM_SPRVSRTYP set
384     DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
385     IN_CHARGE_IND = NEW_REFERENCES.IN_CHARGE_IND,
386     CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
387     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
388     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
389     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
390   where ROWID = X_ROWID;
391   if (sql%notfound) then
392     raise no_data_found;
393   end if;
394 end UPDATE_ROW;
395 
396 procedure ADD_ROW (
397   X_ROWID in out NOCOPY VARCHAR2,
398   X_EXAM_SUPERVISOR_TYPE in VARCHAR2,
399   X_DESCRIPTION in VARCHAR2,
400   X_IN_CHARGE_IND in VARCHAR2,
401   X_CLOSED_IND in VARCHAR2,
402   X_MODE in VARCHAR2 default 'R'
403   ) as
404   cursor c1 is select rowid from IGS_AS_EXM_SPRVSRTYP
405      where EXAM_SUPERVISOR_TYPE = X_EXAM_SUPERVISOR_TYPE
406   ;
407 begin
408   open c1;
409   fetch c1 into X_ROWID;
410   if (c1%notfound) then
411     close c1;
412     INSERT_ROW (
413      X_ROWID,
414      X_EXAM_SUPERVISOR_TYPE,
415      X_DESCRIPTION,
416      X_IN_CHARGE_IND,
417      X_CLOSED_IND,
418      X_MODE);
419     return;
420   end if;
421   close c1;
422   UPDATE_ROW (
423    X_ROWID,
424    X_EXAM_SUPERVISOR_TYPE,
425    X_DESCRIPTION,
426    X_IN_CHARGE_IND,
427    X_CLOSED_IND,
428    X_MODE);
429 end ADD_ROW;
430 
431 procedure DELETE_ROW (
432   X_ROWID in VARCHAR2) as
433 begin
434  Before_DML(
435   p_action => 'DELETE',
436   x_rowid => X_ROWID
437   );
438 
439   delete from IGS_AS_EXM_SPRVSRTYP
440  where ROWID = X_ROWID;
441   if (sql%notfound) then
442     raise no_data_found;
443   end if;
444 
445 end DELETE_ROW;
446 
447 end IGS_AS_EXM_SPRVSRTYP_PKG;