DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_FACLTY_DEGRS_PKG

Source


1 PACKAGE BODY igs_ps_faclty_degrs_pkg AS
2 /* $Header: IGSPI0OB.pls 120.1 2005/06/28 06:23:35 appldev ship $ */
3   l_rowid VARCHAR2(25);
4   old_references igs_ps_faclty_degrs%RowType;
5   new_references igs_ps_faclty_degrs%RowType;
6 
7   PROCEDURE Set_Column_Values (
8     p_action IN VARCHAR2,
9     x_rowid IN VARCHAR2 DEFAULT NULL,
10     x_faclty_degrd_id IN NUMBER DEFAULT NULL,
11     x_person_id IN NUMBER DEFAULT NULL,
12     x_degree_cd IN VARCHAR2 DEFAULT NULL,
13     x_program IN VARCHAR2 DEFAULT NULL,
14     x_institution_cd IN VARCHAR2 DEFAULT NULL,
15     x_degree_date IN DATE DEFAULT NULL,
16     x_creation_date IN DATE DEFAULT NULL,
17     x_created_by IN NUMBER DEFAULT NULL,
18     x_last_update_date IN DATE DEFAULT NULL,
19     x_last_updated_by IN NUMBER DEFAULT NULL,
20     x_last_update_login IN NUMBER DEFAULT NULL
21   ) AS
22 
23   /*************************************************************
24   Created By :ssuri
25   Date Created By :11-MAY-2000
26   Purpose :NEW TABLE
27   Know limitations, enhancements or remarks
28   Change History
29   Who             When            What
30 
31   (reverse chronological order - newest change first)
32   ***************************************************************/
33 
34     CURSOR cur_old_ref_values IS
35       SELECT   *
36       FROM     IGS_PS_FACLTY_DEGRS
37       WHERE    rowid = x_rowid;
38 
39   BEGIN
40 
41     l_rowid := x_rowid;
42 
43     -- Code for setting the Old and New Reference Values.
44     -- Populate Old Values.
45     Open cur_old_ref_values;
46     Fetch cur_old_ref_values INTO old_references;
47     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
48       Close cur_old_ref_values;
49       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
50       IGS_GE_MSG_STACK.ADD;
51       App_Exception.Raise_Exception;
52       Return;
53     END IF;
54     Close cur_old_ref_values;
55 
56     -- Populate New Values.
57     new_references.faclty_degrd_id := x_faclty_degrd_id;
58     new_references.person_id := x_person_id;
59     new_references.degree_cd := x_degree_cd;
60     new_references.program := x_program;
61     new_references.institution_cd := x_institution_cd;
62     new_references.degree_date := x_degree_date;
63     IF (p_action = 'UPDATE') THEN
64       new_references.creation_date := old_references.creation_date;
65       new_references.created_by := old_references.created_by;
66     ELSE
67       new_references.creation_date := x_creation_date;
68       new_references.created_by := x_created_by;
69     END IF;
70     new_references.last_update_date := x_last_update_date;
71     new_references.last_updated_by := x_last_updated_by;
72     new_references.last_update_login := x_last_update_login;
73 
74   END Set_Column_Values;
75 
76   PROCEDURE Check_Constraints (
77 		 Column_Name IN VARCHAR2  DEFAULT NULL,
78 		 Column_Value IN VARCHAR2  DEFAULT NULL ) AS
79   /*************************************************************
80   Created By :ssuri
81   Date Created By :11-MAY-2000
82   Purpose :NEW TABLE
83   Know limitations, enhancements or remarks
84   Change History
85   Who             When            What
86   (reverse chronological order - newest change first)
87   vvutukur      26-03-2002       restricted program column to upper case only.
88                                  for bug:2082568.
89   ***************************************************************/
90 
91   BEGIN
92 
93     IF column_name IS NULL THEN
94       NULL;
95     ELSIF UPPER(column_name) = 'PROGRAM' THEN
96       new_references.program := column_value;
97     END IF;
98 
99    --If entered value in program column is not in upper case ,error out.
100     IF UPPER(column_name) = 'PROGRAM' OR column_name IS NULL THEN
101       IF new_references.program <> UPPER(new_references.program) 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 
108   END Check_Constraints;
109 
110  PROCEDURE Check_Uniqueness AS
111   /*************************************************************
112   Created By :ssuri
113   Date Created By :11-MAY-2000
114   Purpose :NEW TABLE
115   Know limitations, enhancements or remarks
116   Change History
117   Who             When            What
118 
119   (reverse chronological order - newest change first)
120   ***************************************************************/
121 
122    begin
123      		IF Get_Uk_For_Validation (
124     		new_references.degree_cd
125     		,new_references.person_id
126                 ,new_references.program
127     		) THEN
128  		Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
129       IGS_GE_MSG_STACK.ADD;
130 			app_exception.raise_exception;
131     		END IF;
132  END Check_Uniqueness ;
133   PROCEDURE Check_Parent_Existance AS
134   /*************************************************************
135   Created By :ssuri
136   Date Created By :11-MAY-2000
137   Purpose :NEW TABLE
138   Know limitations, enhancements or remarks
139   Change History
140   Who             When            What
141 
142   (reverse chronological order - newest change first)
143   ***************************************************************/
144 
145   BEGIN
146 
147     IF (((old_references.degree_cd = new_references.degree_cd)) OR
148         ((new_references.degree_cd IS NULL))) THEN
149       NULL;
150     ELSIF NOT Igs_Ps_Degrees_Pkg.Get_PK_For_Validation (
151         		new_references.degree_cd
152         )  THEN
153 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
154       IGS_GE_MSG_STACK.ADD;
155  	 App_Exception.Raise_Exception;
156     END IF;
157 
158     IF (((old_references.institution_cd = new_references.institution_cd)) OR
159         ((new_references.institution_cd IS NULL))) THEN
160       NULL;
161     ELSIF NOT Igs_Or_Institution_Pkg.Get_PK_For_Validation (
162         		new_references.institution_cd
163         )  THEN
164 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
165       IGS_GE_MSG_STACK.ADD;
166  	 App_Exception.Raise_Exception;
167     END IF;
168 
169     IF (((old_references.person_id = new_references.person_id)) OR
170         ((new_references.person_id IS NULL))) THEN
171       NULL;
172     ELSIF NOT Igs_Pe_Person_Pkg.Get_PK_For_Validation (
173         		new_references.person_id
174         )  THEN
175 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
176       IGS_GE_MSG_STACK.ADD;
177  	 App_Exception.Raise_Exception;
178     END IF;
179 
180   END Check_Parent_Existance;
181 
182   FUNCTION Get_PK_For_Validation (
183     x_faclty_degrd_id IN NUMBER
184     ) RETURN BOOLEAN AS
185 
186   /*************************************************************
187   Created By :ssuri
188   Date Created By :11-MAY-2000
189   Purpose :NEW TABLE
190   Know limitations, enhancements or remarks
191   Change History
192   Who             When            What
193 
194   (reverse chronological order - newest change first)
195   ***************************************************************/
196 
197     CURSOR cur_rowid IS
198       SELECT   rowid
199       FROM     igs_ps_faclty_degrs
200       WHERE    faclty_degrd_id = x_faclty_degrd_id
201       FOR UPDATE NOWAIT;
202 
203     lv_rowid cur_rowid%RowType;
204 
205   BEGIN
206 
207     Open cur_rowid;
208     Fetch cur_rowid INTO lv_rowid;
209     IF (cur_rowid%FOUND) THEN
210       Close cur_rowid;
211       Return(TRUE);
212     ELSE
213       Close cur_rowid;
214       Return(FALSE);
215     END IF;
216   END Get_PK_For_Validation;
217 
218   FUNCTION get_uk_for_validation (
219     x_degree_cd IN VARCHAR2,
220     x_person_id IN NUMBER,
221     x_program   IN VARCHAR2  --for bug:2082568
222     ) RETURN BOOLEAN AS
223 
224   /*************************************************************
225   Created By :ssuri
226   Date Created By :11-MAY-2000
227   Purpose :NEW TABLE
228   Know limitations, enhancements or remarks
229   Change History
230   Who             When            What
231   vvutukur       14-MAR-2002     added program column also as a part
232                                  of unique key for bug:2082568.
233   (reverse chronological order - newest change first)
234   ***************************************************************/
235 
236     CURSOR cur_rowid IS
237       SELECT   rowid
238       FROM     igs_ps_faclty_degrs
239       WHERE    degree_cd = x_degree_cd
240       AND      person_id = x_person_id
241       AND      program   = x_program
242       AND      ((l_rowid IS NULL) OR (rowid <> l_rowid));
243 
244     lv_rowid cur_rowid%RowType;
245 
246   BEGIN
247 
248     OPEN cur_rowid;
249     FETCH cur_rowid INTO lv_rowid;
250     IF (cur_rowid%FOUND) THEN
251       CLOSE cur_rowid;
252       RETURN(TRUE);
253     ELSE
254       CLOSE cur_rowid;
255       RETURN(FALSE);
256     END IF;
257   END get_uk_for_validation;
258 
259   PROCEDURE Get_FK_Igs_Ps_Degrees (
260     x_degree_cd IN VARCHAR2
261     ) AS
262 
263   /*************************************************************
264   Created By :ssuri
265   Date Created By :11-MAY-2000
266   Purpose :NEW TABLE
267   Know limitations, enhancements or remarks
268   Change History
269   Who             When            What
270 
271   (reverse chronological order - newest change first)
272   ***************************************************************/
273 
274     CURSOR cur_rowid IS
275       SELECT   rowid
276       FROM     igs_ps_faclty_degrs
277       WHERE    degree_cd = x_degree_cd ;
278 
279     lv_rowid cur_rowid%RowType;
280 
281   BEGIN
282 
283     Open cur_rowid;
284     Fetch cur_rowid INTO lv_rowid;
285     IF (cur_rowid%FOUND) THEN
286       Close cur_rowid;
287       Fnd_Message.Set_Name ('IGS', 'IGS_PS_FD_DEG_FK');
288       IGS_GE_MSG_STACK.ADD;
289       App_Exception.Raise_Exception;
290       Return;
291     END IF;
292     Close cur_rowid;
293 
294   END Get_FK_Igs_Ps_Degrees;
295 
296   PROCEDURE Get_FK_Igs_Or_Institution (
297     x_institution_cd IN VARCHAR2
298     ) AS
299 
300   /*************************************************************
301   Created By :ssuri
302   Date Created By :11-MAY-2000
303   Purpose :NEW TABLE
304   Know limitations, enhancements or remarks
305   Change History
306   Who             When            What
307 
308   (reverse chronological order - newest change first)
309   ***************************************************************/
310 
311     CURSOR cur_rowid IS
312       SELECT   rowid
313       FROM     igs_ps_faclty_degrs
314       WHERE    institution_cd = x_institution_cd ;
315 
316     lv_rowid cur_rowid%RowType;
317 
318   BEGIN
319 
320     Open cur_rowid;
321     Fetch cur_rowid INTO lv_rowid;
322     IF (cur_rowid%FOUND) THEN
323       Close cur_rowid;
324       Fnd_Message.Set_Name ('IGS', 'IGS_PS_FD_INS_FK');
325       IGS_GE_MSG_STACK.ADD;
326       App_Exception.Raise_Exception;
327       Return;
328     END IF;
329     Close cur_rowid;
330 
331   END Get_FK_Igs_Or_Institution;
332 
333   PROCEDURE Get_FK_Igs_Pe_Person (
334     x_person_id IN NUMBER
335     ) AS
336 
337   /*************************************************************
338   Created By :ssuri
339   Date Created By :11-MAY-2000
340   Purpose :NEW TABLE
341   Know limitations, enhancements or remarks
342   Change History
343   Who             When            What
344 
345   (reverse chronological order - newest change first)
346   ***************************************************************/
347 
348     CURSOR cur_rowid IS
349       SELECT   rowid
350       FROM     igs_ps_faclty_degrs
351       WHERE    person_id = x_person_id ;
352 
353     lv_rowid cur_rowid%RowType;
354 
355   BEGIN
356 
357     Open cur_rowid;
358     Fetch cur_rowid INTO lv_rowid;
359     IF (cur_rowid%FOUND) THEN
360       Close cur_rowid;
361       Fnd_Message.Set_Name ('IGS', 'IGS_PS_FD_PE_FK');
362       IGS_GE_MSG_STACK.ADD;
363       App_Exception.Raise_Exception;
364       Return;
365     END IF;
366     Close cur_rowid;
367 
368   END Get_FK_Igs_Pe_Person;
369 
370   PROCEDURE Before_DML (
371     p_action IN VARCHAR2,
372     x_rowid IN VARCHAR2 DEFAULT NULL,
373     x_faclty_degrd_id IN NUMBER DEFAULT NULL,
374     x_person_id IN NUMBER DEFAULT NULL,
375     x_degree_cd IN VARCHAR2 DEFAULT NULL,
376     x_program IN VARCHAR2 DEFAULT NULL,
377     x_institution_cd IN VARCHAR2 DEFAULT NULL,
378     x_degree_date IN DATE DEFAULT NULL,
379     x_creation_date IN DATE DEFAULT NULL,
380     x_created_by IN NUMBER DEFAULT NULL,
381     x_last_update_date IN DATE DEFAULT NULL,
382     x_last_updated_by IN NUMBER DEFAULT NULL,
383     x_last_update_login IN NUMBER DEFAULT NULL
384   ) AS
385   /*************************************************************
386   Created By :ssuri
387   Date Created By :11-MAY-2000
388   Purpose :NEW TABLE
389   Know limitations, enhancements or remarks
390   Change History
391   Who             When            What
392 
393   (reverse chronological order - newest change first)
394   ***************************************************************/
395 
396   BEGIN
397 
398     Set_Column_Values (
399       p_action,
400       x_rowid,
401       x_faclty_degrd_id,
402       x_person_id,
403       x_degree_cd,
404       x_program,
405       x_institution_cd,
406       x_degree_date,
407       x_creation_date,
408       x_created_by,
409       x_last_update_date,
410       x_last_updated_by,
411       x_last_update_login
412     );
413 
414     IF (p_action = 'INSERT') THEN
415       -- Call all the procedures related to Before Insert.
416       Null;
417 	     IF Get_Pk_For_Validation(
418     		new_references.faclty_degrd_id)  THEN
419 	       Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
420       IGS_GE_MSG_STACK.ADD;
421 	       App_Exception.Raise_Exception;
422 	     END IF;
423       Check_Uniqueness;
424       Check_Constraints;
425       Check_Parent_Existance;
426     ELSIF (p_action = 'UPDATE') THEN
427       -- Call all the procedures related to Before Update.
428       Null;
429       Check_Uniqueness;
430       Check_Constraints;
431       Check_Parent_Existance;
432     ELSIF (p_action = 'DELETE') THEN
433       -- Call all the procedures related to Before Delete.
434       Null;
435     ELSIF (p_action = 'VALIDATE_INSERT') THEN
436 	 -- Call all the procedures related to Before Insert.
437       IF Get_PK_For_Validation (
438     		new_references.faclty_degrd_id)  THEN
439 	       Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
440       IGS_GE_MSG_STACK.ADD;
441 	       App_Exception.Raise_Exception;
442 	     END IF;
443       Check_Uniqueness;
444       Check_Constraints;
445     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
446       Check_Uniqueness;
447       Check_Constraints;
448     ELSIF (p_action = 'VALIDATE_DELETE') THEN
449       Null;
450     END IF;
451 
452   END Before_DML;
453 
454   PROCEDURE After_DML (
455     p_action IN VARCHAR2,
456     x_rowid IN VARCHAR2
457   ) IS
458   /*************************************************************
459   Created By :ssuri
460   Date Created By :11-MAY-2000
461   Purpose :NEW TABLE
462   Know limitations, enhancements or remarks
463   Change History
464   Who             When            What
465 
466   (reverse chronological order - newest change first)
467   ***************************************************************/
468 
469   BEGIN
470 
471     l_rowid := x_rowid;
472 
473     IF (p_action = 'INSERT') THEN
474       -- Call all the procedures related to After Insert.
475       Null;
476     ELSIF (p_action = 'UPDATE') THEN
477       -- Call all the procedures related to After Update.
478       Null;
479     ELSIF (p_action = 'DELETE') THEN
480       -- Call all the procedures related to After Delete.
481       Null;
482     END IF;
483 l_rowid:=NULL;
484   END After_DML;
485 
486  procedure INSERT_ROW (
487       X_ROWID in out NOCOPY VARCHAR2,
488        x_FACLTY_DEGRD_ID IN OUT NOCOPY NUMBER,
489        x_PERSON_ID IN NUMBER,
490        x_DEGREE_CD IN VARCHAR2,
491        x_PROGRAM IN VARCHAR2,
492        x_INSTITUTION_CD IN VARCHAR2,
493        x_DEGREE_DATE IN DATE,
494       X_MODE in VARCHAR2 default 'R'
495   ) AS
496 
497   /*************************************************************
498   Created By :ssuri
499   Date Created By :11-MAY-2000
500   Purpose :NEW TABLE
501   Know limitations, enhancements or remarks
502   Change History
503   Who             When            What
504 
505   (reverse chronological order - newest change first)
506   ***************************************************************/
507 
508     cursor C is select ROWID from IGS_PS_FACLTY_DEGRS
509              where                 FACLTY_DEGRD_ID= X_FACLTY_DEGRD_ID
510 ;
511      X_LAST_UPDATE_DATE DATE ;
512      X_LAST_UPDATED_BY NUMBER ;
513      X_LAST_UPDATE_LOGIN NUMBER ;
514  begin
515      X_LAST_UPDATE_DATE := SYSDATE;
516       if(X_MODE = 'I') then
517         X_LAST_UPDATED_BY := 1;
518         X_LAST_UPDATE_LOGIN := 0;
519          elsif (X_MODE IN ('R', 'S')) then
520                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
521             if X_LAST_UPDATED_BY is NULL then
522                 X_LAST_UPDATED_BY := -1;
523             end if;
524             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
525          if X_LAST_UPDATE_LOGIN is NULL then
526             X_LAST_UPDATE_LOGIN := -1;
527           end if;
528        else
529         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
530       IGS_GE_MSG_STACK.ADD;
531           app_exception.raise_exception;
532        end if;
533        SELECT IGS_PS_FACLTY_DEGRD_ID_S.nextval INTO x_FACLTY_DEGRD_ID FROM dual;
534    Before_DML(
535  		p_action=>'INSERT',
536  		x_rowid=>X_ROWID,
537  	       x_faclty_degrd_id=>X_FACLTY_DEGRD_ID,
538  	       x_person_id=>X_PERSON_ID,
539  	       x_degree_cd=>X_DEGREE_CD,
540  	       x_program=>X_PROGRAM,
541  	       x_institution_cd=>X_INSTITUTION_CD,
542  	       x_degree_date=>X_DEGREE_DATE,
543 	       x_creation_date=>X_LAST_UPDATE_DATE,
544 	       x_created_by=>X_LAST_UPDATED_BY,
545 	       x_last_update_date=>X_LAST_UPDATE_DATE,
546 	       x_last_updated_by=>X_LAST_UPDATED_BY,
547 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
548       IF (x_mode = 'S') THEN
549     igs_sc_gen_001.set_ctx('R');
550   END IF;
551  insert into IGS_PS_FACLTY_DEGRS (
552 		FACLTY_DEGRD_ID
553 		,PERSON_ID
554 		,DEGREE_CD
555 		,PROGRAM
556 		,INSTITUTION_CD
557 		,DEGREE_DATE
558 	        ,CREATION_DATE
559 		,CREATED_BY
560 		,LAST_UPDATE_DATE
561 		,LAST_UPDATED_BY
562 		,LAST_UPDATE_LOGIN
563         ) values  (
564 	        NEW_REFERENCES.FACLTY_DEGRD_ID
565 	        ,NEW_REFERENCES.PERSON_ID
566 	        ,NEW_REFERENCES.DEGREE_CD
567 	        ,NEW_REFERENCES.PROGRAM
568 	        ,NEW_REFERENCES.INSTITUTION_CD
569 	        ,NEW_REFERENCES.DEGREE_DATE
570 	        ,X_LAST_UPDATE_DATE
571 		,X_LAST_UPDATED_BY
572 		,X_LAST_UPDATE_DATE
573 		,X_LAST_UPDATED_BY
574 		,X_LAST_UPDATE_LOGIN
575 );
576  IF (x_mode = 'S') THEN
577     igs_sc_gen_001.unset_ctx('R');
578   END IF;
579 
580 		open c;
581 		 fetch c into X_ROWID;
582  		if (c%notfound) then
583 		close c;
584  	     raise no_data_found;
585 		end if;
586  		close c;
587     After_DML (
588 		p_action => 'INSERT' ,
589 		x_rowid => X_ROWID );
590 EXCEPTION
591   WHEN OTHERS THEN
592     IF (SQLCODE IN (-28115, -28113, -28111)) THEN
593       fnd_message.set_name ('IGS', 'IGS_SC_POLICY_EXCEPTION');
594       fnd_message.set_token ('ERR_CD', SQLCODE);
595       igs_ge_msg_stack.add;
596       igs_sc_gen_001.unset_ctx('R');
597       app_exception.raise_exception;
598     ELSE
599       igs_sc_gen_001.unset_ctx('R');
600       RAISE;
601     END IF;
602 
603 end INSERT_ROW;
604  procedure LOCK_ROW (
605       X_ROWID in  VARCHAR2,
606        x_FACLTY_DEGRD_ID IN NUMBER,
607        x_PERSON_ID IN NUMBER,
608        x_DEGREE_CD IN VARCHAR2,
609        x_PROGRAM IN VARCHAR2,
610        x_INSTITUTION_CD IN VARCHAR2,
611        x_DEGREE_DATE IN DATE  ) AS
612   /*************************************************************
613   Created By :ssuri
614   Date Created By :11-MAY-2000
615   Purpose :NEW TABLE
616   Know limitations, enhancements or remarks
617   Change History
618   Who             When            What
619 
620   (reverse chronological order - newest change first)
621   ***************************************************************/
622 
623    cursor c1 is select
624       PERSON_ID
625 ,      DEGREE_CD
626 ,      PROGRAM
627 ,      INSTITUTION_CD
628 ,      DEGREE_DATE
629     from IGS_PS_FACLTY_DEGRS
630     where ROWID = X_ROWID
631     for update nowait;
632      tlinfo c1%rowtype;
633 begin
634   open c1;
635   fetch c1 into tlinfo;
636   if (c1%notfound) then
637     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
638       IGS_GE_MSG_STACK.ADD;
639     close c1;
640     app_exception.raise_exception;
641     return;
642   end if;
643   close c1;
644 if ( (  tlinfo.PERSON_ID = X_PERSON_ID)
645   AND (tlinfo.DEGREE_CD = X_DEGREE_CD)
646   AND (tlinfo.PROGRAM = X_PROGRAM)
647   AND (tlinfo.INSTITUTION_CD = X_INSTITUTION_CD)
648   AND (tlinfo.DEGREE_DATE = X_DEGREE_DATE)
649   ) then
650     null;
651   else
652     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
653       IGS_GE_MSG_STACK.ADD;
654     app_exception.raise_exception;
655   end if;
656   return;
657 end LOCK_ROW;
658  Procedure UPDATE_ROW (
659       X_ROWID in  VARCHAR2,
660        x_FACLTY_DEGRD_ID IN NUMBER,
661        x_PERSON_ID IN NUMBER,
662        x_DEGREE_CD IN VARCHAR2,
663        x_PROGRAM IN VARCHAR2,
664        x_INSTITUTION_CD IN VARCHAR2,
665        x_DEGREE_DATE IN DATE,
666       X_MODE in VARCHAR2 default 'R'
667   ) AS
668   /*************************************************************
669   Created By :ssuri
670   Date Created By :11-MAY-2000
671   Purpose :NEW TABLE
672   Know limitations, enhancements or remarks
673   Change History
674   Who             When            What
675 
676   (reverse chronological order - newest change first)
677   ***************************************************************/
678 
679      X_LAST_UPDATE_DATE DATE ;
680      X_LAST_UPDATED_BY NUMBER ;
681      X_LAST_UPDATE_LOGIN NUMBER ;
682  begin
683      X_LAST_UPDATE_DATE := SYSDATE;
684       if(X_MODE = 'I') then
685         X_LAST_UPDATED_BY := 1;
686         X_LAST_UPDATE_LOGIN := 0;
687          elsif (X_MODE IN ('R', 'S')) then
688                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
689             if X_LAST_UPDATED_BY is NULL then
690                 X_LAST_UPDATED_BY := -1;
691             end if;
692             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
693          if X_LAST_UPDATE_LOGIN is NULL then
694             X_LAST_UPDATE_LOGIN := -1;
695           end if;
696        else
697         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
698       IGS_GE_MSG_STACK.ADD;
699           app_exception.raise_exception;
700        end if;
701    Before_DML(
702  		p_action=>'UPDATE',
703  		x_rowid=>X_ROWID,
704  	       x_faclty_degrd_id=>X_FACLTY_DEGRD_ID,
705  	       x_person_id=>X_PERSON_ID,
706  	       x_degree_cd=>X_DEGREE_CD,
707  	       x_program=>X_PROGRAM,
708  	       x_institution_cd=>X_INSTITUTION_CD,
709  	       x_degree_date=>X_DEGREE_DATE,
710 	       x_creation_date=>X_LAST_UPDATE_DATE,
711 	       x_created_by=>X_LAST_UPDATED_BY,
712 	       x_last_update_date=>X_LAST_UPDATE_DATE,
713 	       x_last_updated_by=>X_LAST_UPDATED_BY,
714 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
715     IF (x_mode = 'S') THEN
716     igs_sc_gen_001.set_ctx('R');
717   END IF;
718  update IGS_PS_FACLTY_DEGRS set
719       PERSON_ID =  NEW_REFERENCES.PERSON_ID,
720       DEGREE_CD =  NEW_REFERENCES.DEGREE_CD,
721       PROGRAM =  NEW_REFERENCES.PROGRAM,
722       INSTITUTION_CD =  NEW_REFERENCES.INSTITUTION_CD,
723       DEGREE_DATE =  NEW_REFERENCES.DEGREE_DATE,
724 	LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
725 	LAST_UPDATED_BY = X_LAST_UPDATED_BY,
726 	LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
727 	  where ROWID = X_ROWID;
728 	if (sql%notfound) then
729      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
730      igs_ge_msg_stack.add;
731      igs_sc_gen_001.unset_ctx('R');
732      app_exception.raise_exception;
733 	end if;
734  IF (x_mode = 'S') THEN
735     igs_sc_gen_001.unset_ctx('R');
736   END IF;
737 
738 
739  After_DML (
740 	p_action => 'UPDATE' ,
741 	x_rowid => X_ROWID
742 	);
743 EXCEPTION
744   WHEN OTHERS THEN
745     IF (SQLCODE = (-28115)) THEN
746       fnd_message.set_name ('IGS', 'IGS_SC_UPD_POLICY_EXCP');
747       fnd_message.set_token ('ERR_CD', SQLCODE);
748       igs_ge_msg_stack.add;
749       igs_sc_gen_001.unset_ctx('R');
750       app_exception.raise_exception;
751     ELSE
752       igs_sc_gen_001.unset_ctx('R');
753       RAISE;
754     END IF;
755 
756 end UPDATE_ROW;
757  procedure ADD_ROW (
758       X_ROWID in out NOCOPY VARCHAR2,
759        x_FACLTY_DEGRD_ID IN OUT NOCOPY NUMBER,
760        x_PERSON_ID IN NUMBER,
761        x_DEGREE_CD IN VARCHAR2,
762        x_PROGRAM IN VARCHAR2,
763        x_INSTITUTION_CD IN VARCHAR2,
764        x_DEGREE_DATE IN DATE,
765       X_MODE in VARCHAR2 default 'R'
766   ) AS
767   /*************************************************************
768   Created By :ssuri
769   Date Created By :11-MAY-2000
770   Purpose :NEW TABLE
771   Know limitations, enhancements or remarks
772   Change History
773   Who             When            What
774 
775   (reverse chronological order - newest change first)
776   ***************************************************************/
777 
778     cursor c1 is select ROWID from IGS_PS_FACLTY_DEGRS
779              where     FACLTY_DEGRD_ID= X_FACLTY_DEGRD_ID
780 ;
781 begin
782 	open c1;
783 		fetch c1 into X_ROWID;
784 	if (c1%notfound) then
785 	close c1;
786     INSERT_ROW (
787       X_ROWID,
788        X_FACLTY_DEGRD_ID,
789        X_PERSON_ID,
790        X_DEGREE_CD,
791        X_PROGRAM,
792        X_INSTITUTION_CD,
793        X_DEGREE_DATE,
794       X_MODE );
795      return;
796 	end if;
797 	   close c1;
798 UPDATE_ROW (
799       X_ROWID,
800        X_FACLTY_DEGRD_ID,
801        X_PERSON_ID,
802        X_DEGREE_CD,
803        X_PROGRAM,
804        X_INSTITUTION_CD,
805        X_DEGREE_DATE,
806       X_MODE );
807 end ADD_ROW;
808 procedure DELETE_ROW (
809   X_ROWID in VARCHAR2,
810   x_mode IN VARCHAR2
811 ) AS
812   /*************************************************************
813   Created By :ssuri
814   Date Created By :11-MAY-2000
815   Purpose :NEW TABLE
816   Know limitations, enhancements or remarks
817   Change History
818   Who             When            What
819 
820   (reverse chronological order - newest change first)
821   ***************************************************************/
822 
823 begin
824 Before_DML (
825 p_action => 'DELETE',
826 x_rowid => X_ROWID
827 );
828   IF (x_mode = 'S') THEN
829     igs_sc_gen_001.set_ctx('R');
830   END IF;
831  delete from IGS_PS_FACLTY_DEGRS
832  where ROWID = X_ROWID;
833   if (sql%notfound) then
834      fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
835      igs_ge_msg_stack.add;
836      igs_sc_gen_001.unset_ctx('R');
837      app_exception.raise_exception;
838  end if;
839  IF (x_mode = 'S') THEN
840     igs_sc_gen_001.unset_ctx('R');
841   END IF;
842 
843 After_DML (
844  p_action => 'DELETE',
845  x_rowid => X_ROWID
846 );
847 end DELETE_ROW;
848 END igs_ps_faclty_degrs_pkg;