DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_UP_HEADER_PKG

Source


1 PACKAGE BODY igs_ad_up_header_pkg AS
2 /* $Header: IGSAI92B.pls 115.12 2003/10/30 13:24:44 rghosh ship $ */
3   l_rowid VARCHAR2(25);
4   old_references igs_ad_up_header%RowType;
5   new_references igs_ad_up_header%RowType;
6 
7   PROCEDURE Set_Column_Values (
8     p_action IN VARCHAR2,
9     x_rowid IN VARCHAR2 DEFAULT NULL,
10     x_max_score IN NUMBER DEFAULT NULL,
11     x_up_header_id IN NUMBER DEFAULT NULL,
12     x_admission_test_type IN VARCHAR2 DEFAULT NULL,
13     x_test_segment_id IN NUMBER DEFAULT NULL,
14     x_definition_level IN VARCHAR2 DEFAULT NULL,
15     x_min_score IN NUMBER 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 : Kamalakar N.
25   Date Created By : 15/May/2000
26   Purpose :
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_AD_UP_HEADER
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.max_score := x_max_score;
58     new_references.up_header_id := x_up_header_id;
59     new_references.admission_test_type := x_admission_test_type;
60     new_references.test_segment_id := x_test_segment_id;
61     new_references.definition_level := x_definition_level;
62     new_references.min_score := x_min_score;
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 : Kamalakar N.
81   Date Created By : 15/May/2000
82   Purpose :
83   Know limitations, enhancements or remarks
84   Change History
85   Who             When            What
86 
87   (reverse chronological order - newest change first)
88   ***************************************************************/
89 
90   BEGIN
91 
92       IF column_name IS NULL THEN
93         NULL;
94       ELSIF  UPPER(column_name) = 'MIN_SCORE'  THEN
95         new_references.min_score := IGS_GE_NUMBER.TO_NUM(column_value);
96       ELSIF  UPPER(column_name) = 'MAX_SCORE'  THEN
97         new_references.max_score := IGS_GE_NUMBER.TO_NUM(column_value);
98       ELSIF  UPPER(column_name) = 'DEFINITION_LEVEL'  THEN
99         new_references.definition_level := column_value;
100         NULL;
101       END IF;
102 
103      -- The following code checks for check constraints on the Columns.
104       IF Upper(Column_Name) = 'MIN_SCORE' OR
105       	Column_Name IS NULL THEN
106         IF NOT (new_references.min_score >= 0)  THEN
107            Fnd_Message.Set_Name('IGS','IGS_AD_MIN_NOT_LT_0');
108       	     IGS_GE_MSG_STACK.ADD;
109            App_Exception.Raise_Exception;
110         END IF;
111       END IF;
112 
113 
114     -- The following code checks for check constraints on the Columns.
115       IF Upper(Column_Name) = 'MIN_SCORE' OR
116       	Column_Name IS NULL THEN
117         IF NOT (new_references.min_score <= new_references.max_score)  THEN
118            Fnd_Message.Set_Name('IGS','IGS_AD_MIN_NOT_GT_MAX');
119       	     IGS_GE_MSG_STACK.ADD;
120            App_Exception.Raise_Exception;
121         END IF;
122       END IF;
123 
124 
125     -- The following code checks for check constraints on the Columns.
126       IF Upper(Column_Name) = 'MAX_SCORE' OR
127       	Column_Name IS NULL THEN
128         IF NOT (new_references.max_score >= new_references.min_score)  THEN
129            Fnd_Message.Set_Name('IGS','IGS_AD_MAX_NOT_LT_MIN');
130       IGS_GE_MSG_STACK.ADD;
131            App_Exception.Raise_Exception;
132         END IF;
133       END IF;
134 
135     -- The following code checks for check constraints on the Columns.
136       IF Upper(Column_Name) = 'DEFINITION_LEVEL' OR
137       	Column_Name IS NULL THEN
138         IF NOT (new_references.definition_level IN ('T','S'))  THEN
139            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
140              IGS_GE_MSG_STACK.ADD;
141            App_Exception.Raise_Exception;
142         END IF;
143       END IF;
144 
145 
146   END Check_Constraints;
147 
148 
149   PROCEDURE Check_Uniqueness AS
150   /*************************************************************
151   Created By : vdixit
152   Date Created On : 11-Oct-2001
153   Purpose :
154   Know limitations, enhancements or remarks
155   Change History
156   Who             When            What
157 
158   (reverse chronological order - newest change first)
159   ***************************************************************/
160    Begin
161      	IF Get_Uk_For_Validation (
162     		new_references.admission_test_type,
163 		new_references.test_segment_id
164     		) THEN
165  	  Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
166 	  IGS_GE_MSG_STACK.ADD;
167 	  app_exception.raise_exception;
168     	END IF;
169    END Check_Uniqueness ;
170 
171 
172 
173   PROCEDURE Check_Parent_Existance AS
174   /*************************************************************
175   Created By : Kamalakar N.
176   Date Created By : 15/May/2000
177   Purpose :
178   Know limitations, enhancements or remarks
179   Change History
180   Who             When            What
181 
182   (reverse chronological order - newest change first)
183   ***************************************************************/
184 
185   BEGIN
186 
187     IF (((old_references.admission_test_type = new_references.admission_test_type)) OR
188         ((new_references.admission_test_type IS NULL))) THEN
189       NULL;
190     ELSIF NOT Igs_Ad_Test_Type_Pkg.Get_PK_For_Validation (
191         		new_references.admission_test_type,
192             'N'
193         )  THEN
194 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
195       IGS_GE_MSG_STACK.ADD;
196  	 App_Exception.Raise_Exception;
197     END IF;
198 
199     IF (((old_references.test_segment_id = new_references.test_segment_id)) OR
200         ((new_references.test_segment_id IS NULL))) THEN
201       NULL;
202     ELSIF NOT Igs_Ad_Test_Segments_Pkg.Get_PK_For_Validation (
203         		new_references.test_segment_id ,
204             'N'
205         )  THEN
206 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
207       IGS_GE_MSG_STACK.ADD;
208  	 App_Exception.Raise_Exception;
209     END IF;
210 
211   END Check_Parent_Existance;
212 
213   PROCEDURE Check_Child_Existance IS
214   /*************************************************************
215   Created By : Kamalakar N.
216   Date Created By : 15/May/2000
217   Purpose :
218   Know limitations, enhancements or remarks
219   Change History
220   Who             When            What
221 
222   (reverse chronological order - newest change first)
223   ***************************************************************/
224 
225   BEGIN
226 
227     Igs_Ad_Up_Detail_Pkg.Get_FK_Igs_Ad_Up_Header (
228       old_references.up_header_id
229       );
230 
231   END Check_Child_Existance;
232 
233   FUNCTION Get_PK_For_Validation (
234     x_up_header_id IN NUMBER
235     ) RETURN BOOLEAN AS
236 
237   /*************************************************************
238   Created By : Kamalakar N.
239   Date Created By : 15/May/2000
240   Purpose :
241   Know limitations, enhancements or remarks
242   Change History
243   Who             When            What
244 
245   (reverse chronological order - newest change first)
246   ***************************************************************/
247 
248     CURSOR cur_rowid IS
249       SELECT   rowid
250       FROM     igs_ad_up_header
251       WHERE    up_header_id = x_up_header_id
252       FOR UPDATE NOWAIT;
253 
254     lv_rowid cur_rowid%RowType;
255 
256   BEGIN
257 
258     Open cur_rowid;
259     Fetch cur_rowid INTO lv_rowid;
260     IF (cur_rowid%FOUND) THEN
261       Close cur_rowid;
262       Return(TRUE);
263     ELSE
264       Close cur_rowid;
265       Return(FALSE);
266     END IF;
267   END Get_PK_For_Validation;
268 
269     FUNCTION Get_UK_For_Validation (
270     x_admission_test_type IN VARCHAR2,
271     x_test_segment_id IN NUMBER
272     ) RETURN BOOLEAN AS
273 
274   /*************************************************************
275   Created By : vdixit
276   Date Created On : 11-Oct-2001
277   Purpose :
278   Know limitations, enhancements or remarks
279   Change History
280   Who             When            What
281   rrengara        22-mar-2002     1.  Added parameter x_test_segment_id to the procedure   Bug fix for 2269985
282                                   2.  Added check for uniquness on Admission test type and segment if the test_segment_id is not null Bug fix for 2269985
283   (reverse chronological order - newest change first)
284   ***************************************************************/
285 
286     CURSOR cur_rowid IS
287       SELECT   rowid
288       FROM     igs_ad_up_header
289       WHERE    admission_test_type = x_admission_test_type
290        and      ((l_rowid is null) or (rowid <> l_rowid));
291 
292     CURSOR test_type_seg_cur IS
293      SELECT rowid
294        FROM igs_ad_up_header
295        WHERE admission_test_type = x_admission_test_type AND
296              test_segment_id = x_test_segment_id AND
297 	     ((l_rowid is null) or (rowid <> l_rowid));
298 
299     lv_rowid cur_rowid%RowType;
300     test_type_seg_rec test_type_seg_cur%ROWTYPE;
301   BEGIN
302 
303 
304   IF  x_test_segment_id IS NULL THEN
305     Open cur_rowid;
306     Fetch cur_rowid INTO lv_rowid;
307     IF (cur_rowid%FOUND) THEN
308       Close cur_rowid;
309         return (true);
310         ELSE
311        close cur_rowid;
312       return(false);
313     END IF;
314   ELSE
315     open test_type_seg_cur;
316     Fetch test_type_seg_cur INTO test_type_seg_rec;
317     IF (test_type_seg_cur%FOUND) THEN
318       Close test_type_seg_cur;
319         return (true);
320         ELSE
321        close test_type_seg_cur;
322       return(false);
323     END IF;
324   END IF;
325   END Get_UK_For_Validation ;
326 
327 
328   PROCEDURE Get_FK_Igs_Ad_Test_Type (
329     x_admission_test_type IN VARCHAR2
330     ) AS
331 
332   /*************************************************************
333   Created By : Kamalakar N.
334   Date Created By : 15/May/2000
335   Purpose :
336   Know limitations, enhancements or remarks
337   Change History
338   Who             When            What
339 
340   (reverse chronological order - newest change first)
341   ***************************************************************/
342 
343     CURSOR cur_rowid IS
344       SELECT   rowid
345       FROM     igs_ad_up_header
346       WHERE    admission_test_type = x_admission_test_type ;
347 
348     lv_rowid cur_rowid%RowType;
349 
350   BEGIN
351 
352     Open cur_rowid;
353     Fetch cur_rowid INTO lv_rowid;
354     IF (cur_rowid%FOUND) THEN
355       Close cur_rowid;
356       Fnd_Message.Set_Name ('IGS', 'IGS_AD_AUH_ADMTT_FK');
357       IGS_GE_MSG_STACK.ADD;
358       App_Exception.Raise_Exception;
359       Return;
360     END IF;
361     Close cur_rowid;
362 
363   END Get_FK_Igs_Ad_Test_Type;
364 
365   PROCEDURE Get_FK_Igs_Ad_Test_Segments (
366     x_test_segment_id IN NUMBER
367     ) AS
368 
369  /*************************************************************
370   Created By : Kamalakar N.
371   Date Created By : 15/May/2000
372   Purpose :
373   Know limitations, enhancements or remarks
374   Change History
375   Who             When            What
376 
377   (reverse chronological order - newest change first)
378   ***************************************************************/
379 
380     CURSOR cur_rowid IS
381       SELECT   rowid
382       FROM     igs_ad_up_header
383       WHERE    test_segment_id = x_test_segment_id ;
384 
385     lv_rowid cur_rowid%RowType;
386 
387   BEGIN
388 
389     Open cur_rowid;
390     Fetch cur_rowid INTO lv_rowid;
391     IF (cur_rowid%FOUND) THEN
392       Close cur_rowid;
393       Fnd_Message.Set_Name ('IGS', 'IGS_AD_AUH_ATS_FK');
394       IGS_GE_MSG_STACK.ADD;
395       App_Exception.Raise_Exception;
396       Return;
397     END IF;
398     Close cur_rowid;
399 
400   END Get_FK_Igs_Ad_Test_Segments;
401 
402   PROCEDURE Before_DML (
403     p_action IN VARCHAR2,
404     x_rowid IN VARCHAR2 DEFAULT NULL,
405     x_max_score IN NUMBER DEFAULT NULL,
406     x_up_header_id IN NUMBER DEFAULT NULL,
407     x_admission_test_type IN VARCHAR2 DEFAULT NULL,
408     x_test_segment_id IN NUMBER DEFAULT NULL,
409     x_definition_level IN VARCHAR2 DEFAULT NULL,
410     x_min_score IN NUMBER DEFAULT NULL,
411     x_creation_date IN DATE DEFAULT NULL,
412     x_created_by IN NUMBER DEFAULT NULL,
413     x_last_update_date IN DATE DEFAULT NULL,
414     x_last_updated_by IN NUMBER DEFAULT NULL,
415     x_last_update_login IN NUMBER DEFAULT NULL
416   ) AS
417   /*************************************************************
418   Created By : Kamalakar N.
419   Date Created By : 15/May/2000
420   Purpose :
421   Know limitations, enhancements or remarks
422   Change History
423   Who             When            What
424 
425   (reverse chronological order - newest change first)
426   ***************************************************************/
427 
428   BEGIN
429 
430     Set_Column_Values (
431       p_action,
432       x_rowid,
433       x_max_score,
434       x_up_header_id,
435       x_admission_test_type,
436       x_test_segment_id,
437       x_definition_level,
438       x_min_score,
439       x_creation_date,
440       x_created_by,
441       x_last_update_date,
442       x_last_updated_by,
443       x_last_update_login
444     );
445 
446     IF (p_action = 'INSERT') THEN
447       -- Call all the procedures related to Before Insert.
448       Null;
449 	     IF Get_Pk_For_Validation(
450     		new_references.up_header_id)  THEN
451 	       Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
452       IGS_GE_MSG_STACK.ADD;
453 	       App_Exception.Raise_Exception;
454 	     END IF;
455       Check_Constraints;
456       Check_Uniqueness;
457       Check_Parent_Existance;
458     ELSIF (p_action = 'UPDATE') THEN
459       -- Call all the procedures related to Before Update.
460       Null;
461       Check_Constraints;
462       Check_Uniqueness;
463       Check_Parent_Existance;
464     ELSIF (p_action = 'DELETE') THEN
465       -- Call all the procedures related to Before Delete.
466 
467       Check_Child_Existance;
468     ELSIF (p_action = 'VALIDATE_INSERT') THEN
469 	 -- Call all the procedures related to Before Insert.
470       IF Get_PK_For_Validation (
471     		new_references.up_header_id)  THEN
472 	       Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
473       IGS_GE_MSG_STACK.ADD;
474 	       App_Exception.Raise_Exception;
475 	     END IF;
476       Check_Constraints;
477       Check_Uniqueness;
478     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
479       Check_Uniqueness;
480       Check_Constraints;
481     ELSIF (p_action = 'VALIDATE_DELETE') THEN
482       Check_Child_Existance;
483     END IF;
484   l_rowid := NULL;
485   END Before_DML;
486 
487   PROCEDURE After_DML (
488     p_action IN VARCHAR2,
489     x_rowid IN VARCHAR2
490   ) IS
491  /*************************************************************
492   Created By : Kamalakar N.
493   Date Created By : 15/May/2000
494   Purpose :
495   Know limitations, enhancements or remarks
496   Change History
497   Who             When            What
498 
499   (reverse chronological order - newest change first)
500   ***************************************************************/
501 
502   BEGIN
503 
504     l_rowid := x_rowid;
505 
506     IF (p_action = 'INSERT') THEN
507       -- Call all the procedures related to After Insert.
508       Null;
509     ELSIF (p_action = 'UPDATE') THEN
510       -- Call all the procedures related to After Update.
511       Null;
512     ELSIF (p_action = 'DELETE') THEN
513       -- Call all the procedures related to After Delete.
514       Null;
515     END IF;
516    l_rowid := NULL;
517   END After_DML;
518 
519  procedure INSERT_ROW (
520       X_ROWID in out NOCOPY VARCHAR2,
521        x_MAX_SCORE IN NUMBER,
522        x_UP_HEADER_ID IN OUT NOCOPY NUMBER,
523        x_ADMISSION_TEST_TYPE IN VARCHAR2,
524        x_TEST_SEGMENT_ID IN NUMBER,
525        x_DEFINITION_LEVEL IN VARCHAR2,
526        x_MIN_SCORE IN NUMBER,
527       X_MODE in VARCHAR2 default 'R'
528   ) AS
529  /*************************************************************
530   Created By : Kamalakar N.
531   Date Created By : 15/May/2000
532   Purpose :
533   Know limitations, enhancements or remarks
534   Change History
535   Who             When            What
536 
537   (reverse chronological order - newest change first)
538   ***************************************************************/
539 
540     cursor C is select ROWID from IGS_AD_UP_HEADER
541              where                 UP_HEADER_ID= X_UP_HEADER_ID
542 ;
543      X_LAST_UPDATE_DATE DATE ;
544      X_LAST_UPDATED_BY NUMBER ;
545      X_LAST_UPDATE_LOGIN NUMBER ;
546  begin
547      X_LAST_UPDATE_DATE := SYSDATE;
548       if(X_MODE = 'I') then
549         X_LAST_UPDATED_BY := 1;
550         X_LAST_UPDATE_LOGIN := 0;
551          elsif (X_MODE = 'R') then
552                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
553             if X_LAST_UPDATED_BY is NULL then
554                 X_LAST_UPDATED_BY := -1;
555             end if;
556             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
557          if X_LAST_UPDATE_LOGIN is NULL then
558             X_LAST_UPDATE_LOGIN := -1;
559           end if;
560        else
561         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
562       IGS_GE_MSG_STACK.ADD;
563           app_exception.raise_exception;
564        end if;
565 
566    X_UP_HEADER_ID := -1;
567    Before_DML(
568  		p_action=>'INSERT',
569  		x_rowid=>X_ROWID,
570  	       x_max_score=>X_MAX_SCORE,
571  	       x_up_header_id=>X_UP_HEADER_ID,
572  	       x_admission_test_type=>X_ADMISSION_TEST_TYPE,
573  	       x_test_segment_id=>X_TEST_SEGMENT_ID,
574  	       x_definition_level=>X_DEFINITION_LEVEL,
575  	       x_min_score=>X_MIN_SCORE,
576 	       x_creation_date=>X_LAST_UPDATE_DATE,
577 	       x_created_by=>X_LAST_UPDATED_BY,
578 	       x_last_update_date=>X_LAST_UPDATE_DATE,
579 	       x_last_updated_by=>X_LAST_UPDATED_BY,
580 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
581      insert into IGS_AD_UP_HEADER (
582 		MAX_SCORE
583 		,UP_HEADER_ID
584 		,ADMISSION_TEST_TYPE
585 		,TEST_SEGMENT_ID
586 		,DEFINITION_LEVEL
587 		,MIN_SCORE
588 	        ,CREATION_DATE
589 		,CREATED_BY
590 		,LAST_UPDATE_DATE
591 		,LAST_UPDATED_BY
592 		,LAST_UPDATE_LOGIN
593         ) values  (
594 	        NEW_REFERENCES.MAX_SCORE
595 	        ,IGS_AD_UP_HEADER_S.NEXTVAL
596 	        ,NEW_REFERENCES.ADMISSION_TEST_TYPE
597 	        ,NEW_REFERENCES.TEST_SEGMENT_ID
598 	        ,NEW_REFERENCES.DEFINITION_LEVEL
599 	        ,NEW_REFERENCES.MIN_SCORE
600 	        ,X_LAST_UPDATE_DATE
601 		,X_LAST_UPDATED_BY
602 		,X_LAST_UPDATE_DATE
603 		,X_LAST_UPDATED_BY
604 		,X_LAST_UPDATE_LOGIN
605 )RETURNING UP_HEADER_ID INTO X_UP_HEADER_ID ;
606 		open c;
607 		 fetch c into X_ROWID;
608  		if (c%notfound) then
609 		close c;
610  	     raise no_data_found;
611 		end if;
612  		close c;
613     After_DML (
614 		p_action => 'INSERT' ,
615 		x_rowid => X_ROWID );
616 end INSERT_ROW;
617  procedure LOCK_ROW (
618       X_ROWID in  VARCHAR2,
619        x_MAX_SCORE IN NUMBER,
620        x_UP_HEADER_ID IN NUMBER,
621        x_ADMISSION_TEST_TYPE IN VARCHAR2,
622        x_TEST_SEGMENT_ID IN NUMBER,
623        x_DEFINITION_LEVEL IN VARCHAR2,
624        x_MIN_SCORE IN NUMBER  ) AS
625   /*************************************************************
626   Created By : Kamalakar N.
627   Date Created By : 15/May/2000
628   Purpose :
629   Know limitations, enhancements or remarks
630   Change History
631   Who             When            What
632 
633   (reverse chronological order - newest change first)
634   ***************************************************************/
635 
636    cursor c1 is select
637       MAX_SCORE
638 ,      ADMISSION_TEST_TYPE
639 ,      TEST_SEGMENT_ID
640 ,      DEFINITION_LEVEL
641 ,      MIN_SCORE
642     from IGS_AD_UP_HEADER
643     where ROWID = X_ROWID
644     for update nowait;
645      tlinfo c1%rowtype;
646 begin
647   open c1;
648   fetch c1 into tlinfo;
649   if (c1%notfound) then
650     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
651       IGS_GE_MSG_STACK.ADD;
652     close c1;
653     app_exception.raise_exception;
654     return;
655   end if;
656   close c1;
657 if ( (  tlinfo.MAX_SCORE = X_MAX_SCORE)
658   AND (tlinfo.ADMISSION_TEST_TYPE = X_ADMISSION_TEST_TYPE)
659   AND (tlinfo.TEST_SEGMENT_ID = X_TEST_SEGMENT_ID OR tlinfo.TEST_SEGMENT_ID IS NULL)
660   AND (tlinfo.DEFINITION_LEVEL = X_DEFINITION_LEVEL)
661   AND (tlinfo.MIN_SCORE = X_MIN_SCORE)
662   ) then
663     null;
664   else
665     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
666       IGS_GE_MSG_STACK.ADD;
667     app_exception.raise_exception;
668   end if;
669   return;
670 end LOCK_ROW;
671  Procedure UPDATE_ROW (
672       X_ROWID in  VARCHAR2,
673        x_MAX_SCORE IN NUMBER,
674        x_UP_HEADER_ID IN NUMBER,
675        x_ADMISSION_TEST_TYPE IN VARCHAR2,
676        x_TEST_SEGMENT_ID IN NUMBER,
677        x_DEFINITION_LEVEL IN VARCHAR2,
678        x_MIN_SCORE IN NUMBER,
679       X_MODE in VARCHAR2 default 'R'
680   ) AS
681  /*************************************************************
682   Created By : Kamalakar N.
683   Date Created By : 15/May/2000
684   Purpose :
685   Know limitations, enhancements or remarks
686   Change History
687   Who             When            What
688 
689   (reverse chronological order - newest change first)
690   ***************************************************************/
691 
692      X_LAST_UPDATE_DATE DATE ;
693      X_LAST_UPDATED_BY NUMBER ;
694      X_LAST_UPDATE_LOGIN NUMBER ;
695  begin
696      X_LAST_UPDATE_DATE := SYSDATE;
697       if(X_MODE = 'I') then
698         X_LAST_UPDATED_BY := 1;
699         X_LAST_UPDATE_LOGIN := 0;
700          elsif (X_MODE = 'R') then
701                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
702             if X_LAST_UPDATED_BY is NULL then
703                 X_LAST_UPDATED_BY := -1;
704             end if;
705             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
706          if X_LAST_UPDATE_LOGIN is NULL then
707             X_LAST_UPDATE_LOGIN := -1;
708           end if;
709        else
710         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
711       IGS_GE_MSG_STACK.ADD;
712           app_exception.raise_exception;
713        end if;
714    Before_DML(
715  		p_action=>'UPDATE',
716  		x_rowid=>X_ROWID,
717  	       x_max_score=>X_MAX_SCORE,
718  	       x_up_header_id=>X_UP_HEADER_ID,
719  	       x_admission_test_type=>X_ADMISSION_TEST_TYPE,
720  	       x_test_segment_id=>X_TEST_SEGMENT_ID,
721  	       x_definition_level=>X_DEFINITION_LEVEL,
722  	       x_min_score=>X_MIN_SCORE,
723 	       x_creation_date=>X_LAST_UPDATE_DATE,
724 	       x_created_by=>X_LAST_UPDATED_BY,
725 	       x_last_update_date=>X_LAST_UPDATE_DATE,
726 	       x_last_updated_by=>X_LAST_UPDATED_BY,
727 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
728    update IGS_AD_UP_HEADER set
729       MAX_SCORE =  NEW_REFERENCES.MAX_SCORE,
730       ADMISSION_TEST_TYPE =  NEW_REFERENCES.ADMISSION_TEST_TYPE,
731       TEST_SEGMENT_ID =  NEW_REFERENCES.TEST_SEGMENT_ID,
732       DEFINITION_LEVEL =  NEW_REFERENCES.DEFINITION_LEVEL,
733       MIN_SCORE =  NEW_REFERENCES.MIN_SCORE,
734 	LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
735 	LAST_UPDATED_BY = X_LAST_UPDATED_BY,
736 	LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
737 	  where ROWID = X_ROWID;
738 	if (sql%notfound) then
739 		raise no_data_found;
740 	end if;
741 
742  After_DML (
743 	p_action => 'UPDATE' ,
744 	x_rowid => X_ROWID
745 	);
746 end UPDATE_ROW;
747  procedure ADD_ROW (
748       X_ROWID in out NOCOPY VARCHAR2,
749        x_MAX_SCORE IN NUMBER,
750        x_UP_HEADER_ID IN OUT NOCOPY NUMBER,
751        x_ADMISSION_TEST_TYPE IN VARCHAR2,
752        x_TEST_SEGMENT_ID IN NUMBER,
753        x_DEFINITION_LEVEL IN VARCHAR2,
754        x_MIN_SCORE IN NUMBER,
755       X_MODE in VARCHAR2 default 'R'
756   ) AS
757  /*************************************************************
758   Created By : Kamalakar N.
759   Date Created By : 15/May/2000
760   Purpose :
761   Know limitations, enhancements or remarks
762   Change History
763   Who             When            What
764 
765   (reverse chronological order - newest change first)
766   ***************************************************************/
767 
768     cursor c1 is select ROWID from IGS_AD_UP_HEADER
769              where     UP_HEADER_ID= X_UP_HEADER_ID
770 ;
771 begin
772 	open c1;
773 		fetch c1 into X_ROWID;
774 	if (c1%notfound) then
775 	close c1;
776     INSERT_ROW (
777       X_ROWID,
778        X_MAX_SCORE,
779        X_UP_HEADER_ID,
780        X_ADMISSION_TEST_TYPE,
781        X_TEST_SEGMENT_ID,
782        X_DEFINITION_LEVEL,
783        X_MIN_SCORE,
784       X_MODE );
785      return;
786 	end if;
787 	   close c1;
788 UPDATE_ROW (
789       X_ROWID,
790        X_MAX_SCORE,
791        X_UP_HEADER_ID,
792        X_ADMISSION_TEST_TYPE,
793        X_TEST_SEGMENT_ID,
794        X_DEFINITION_LEVEL,
795        X_MIN_SCORE,
796       X_MODE );
797 end ADD_ROW;
798 procedure DELETE_ROW (
799   X_ROWID in VARCHAR2
800 ) AS
801  /*************************************************************
802   Created By : Kamalakar N.
803   Date Created By : 15/May/2000
804   Purpose :
805   Know limitations, enhancements or remarks
806   Change History
807   Who             When            What
808 
809   (reverse chronological order - newest change first)
810   ***************************************************************/
811 
812 begin
813 Before_DML (
814 p_action => 'DELETE',
815 x_rowid => X_ROWID
816 );
817  delete from IGS_AD_UP_HEADER
818  where ROWID = X_ROWID;
819   if (sql%notfound) then
820     raise no_data_found;
821   end if;
822 After_DML (
823  p_action => 'DELETE',
824  x_rowid => X_ROWID
825 );
826 end DELETE_ROW;
827 END igs_ad_up_header_pkg;