DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AS_GRD_SCH_GRADE_PKG

Source


1 package body IGS_AS_GRD_SCH_GRADE_PKG AS
2  /* $Header: IGSDI21B.pls 120.0 2005/07/05 11:28:46 appldev noship $ */
3  l_rowid VARCHAR2(25);
4   old_references IGS_AS_GRD_SCH_GRADE%RowType;
5   new_references IGS_AS_GRD_SCH_GRADE%RowType;
6 PROCEDURE Set_Column_Values (
7     p_action IN VARCHAR2,
8     x_rowid IN VARCHAR2 DEFAULT NULL,
9     x_dflt_outstanding_ind IN VARCHAR2 DEFAULT NULL,
10     x_external_grade IN VARCHAR2 DEFAULT NULL,
11     x_lower_mark_range IN NUMBER DEFAULT NULL,
12     x_upper_mark_range IN NUMBER DEFAULT NULL,
13     x_min_percentage IN NUMBER DEFAULT NULL,
14     x_max_percentage IN NUMBER DEFAULT NULL,
15     x_gpa_val IN NUMBER DEFAULT NULL,
16     x_rank IN NUMBER DEFAULT NULL,
17     x_s_special_grade_type IN VARCHAR2 DEFAULT NULL,
18     x_grading_schema_cd IN VARCHAR2 DEFAULT NULL,
19     x_version_number IN NUMBER DEFAULT NULL,
20     x_grade IN VARCHAR2 DEFAULT NULL,
21     x_full_grade_name IN VARCHAR2 DEFAULT NULL,
22     x_s_result_type IN VARCHAR2 DEFAULT NULL,
23     x_show_on_noticeboard_ind IN VARCHAR2 DEFAULT NULL,
24     x_show_on_official_ntfctn_ind IN VARCHAR2 DEFAULT NULL,
25     x_show_in_newspaper_ind IN VARCHAR2 DEFAULT NULL,
26     x_show_internally_ind IN VARCHAR2 DEFAULT NULL,
27     x_system_only_ind IN VARCHAR2 DEFAULT NULL,
28     x_show_in_earned_crdt_ind IN VARCHAR2 DEFAULT NULL,
29     x_incl_in_repeat_process_ind IN VARCHAR2 DEFAULT NULL,
30     x_admin_only_ind IN VARCHAR2 DEFAULT NULL,
31     x_grading_period_cd IN VARCHAR2 DEFAULT NULL,
32     x_repeat_grade IN VARCHAR2 DEFAULT NULL,
33     x_attribute_category IN VARCHAR2 DEFAULT NULL,
34     x_attribute1 IN VARCHAR2 DEFAULT NULL,
35     x_attribute2 IN VARCHAR2 DEFAULT NULL,
36     x_attribute3 IN VARCHAR2 DEFAULT NULL,
37     x_attribute4 IN VARCHAR2 DEFAULT NULL,
38     x_attribute5 IN VARCHAR2 DEFAULT NULL,
39     x_attribute6 IN VARCHAR2 DEFAULT NULL,
40     x_attribute7 IN VARCHAR2 DEFAULT NULL,
41     x_attribute8 IN VARCHAR2 DEFAULT NULL,
42     x_attribute9 IN VARCHAR2 DEFAULT NULL,
43     x_attribute10 IN VARCHAR2 DEFAULT NULL,
44     x_attribute11 IN VARCHAR2 DEFAULT NULL,
45     x_attribute12 IN VARCHAR2 DEFAULT NULL,
46     x_attribute13 IN VARCHAR2 DEFAULT NULL,
47     x_attribute14 IN VARCHAR2 DEFAULT NULL,
48     x_attribute15 IN VARCHAR2 DEFAULT NULL,
49     x_attribute16 IN VARCHAR2 DEFAULT NULL,
50     x_attribute17 IN VARCHAR2 DEFAULT NULL,
51     x_attribute18 IN VARCHAR2 DEFAULT NULL,
52     x_attribute19 IN VARCHAR2 DEFAULT NULL,
53     x_attribute20 IN VARCHAR2 DEFAULT NULL,
54     x_creation_date IN DATE DEFAULT NULL,
55     x_created_by IN NUMBER DEFAULT NULL,
56     x_last_update_date IN DATE DEFAULT NULL,
57     x_last_updated_by IN NUMBER DEFAULT NULL,
58     x_last_update_login IN NUMBER DEFAULT NULL,
59     x_closed_ind        IN VARCHAR2 DEFAULT 'N'
60   ) AS
61 
62     CURSOR cur_old_ref_values IS
63       SELECT   *
64       FROM     IGS_AS_GRD_SCH_GRADE
65       WHERE    rowid = x_rowid;
66 
67   BEGIN
68     l_rowid := x_rowid;
69 
70     -- Code for setting the Old and New Reference Values.
71     -- Populate Old Values.
72 
73     Open cur_old_ref_values;
74 
75     Fetch cur_old_ref_values INTO old_references;
76 
77     IF (cur_old_ref_values%NOTFOUND) AND (p_action  NOT IN ('INSERT','VALIDATE_INSERT')) THEN
78 
79       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
80       IGS_GE_MSG_STACK.ADD;
81 	        Close cur_old_ref_values;
82       APP_EXCEPTION.RAISE_EXCEPTION;
83 
84       Return;
85     END IF;
86     Close cur_old_ref_values;
87     -- Populate New Values.
88     new_references.dflt_outstanding_ind := x_dflt_outstanding_ind;
89     new_references.external_grade := x_external_grade;
90     new_references.lower_mark_range := x_lower_mark_range;
91     new_references.upper_mark_range := x_upper_mark_range;
92     new_references.min_percentage := x_min_percentage;
93     new_references.max_percentage := x_max_percentage;
94     new_references.gpa_val := x_gpa_val;
95     new_references.rank := x_rank;
96     new_references.s_special_grade_type := x_s_special_grade_type;
97     new_references.grading_schema_cd := x_grading_schema_cd;
98     new_references.version_number := x_version_number;
99     new_references.grade := x_grade;
100     new_references.full_grade_name := x_full_grade_name;
101     new_references.s_result_type := x_s_result_type;
102     new_references.show_on_noticeboard_ind := x_show_on_noticeboard_ind;
103     new_references.show_on_official_ntfctn_ind := x_show_on_official_ntfctn_ind;
104     new_references.show_in_newspaper_ind := x_show_in_newspaper_ind;
105     new_references.show_internally_ind := x_show_internally_ind;
106     new_references.system_only_ind := x_system_only_ind;
107     new_references.show_in_earned_crdt_ind := x_show_in_earned_crdt_ind ;
108     new_references.incl_in_repeat_process_ind := x_incl_in_repeat_process_ind ;
109     new_references.admin_only_ind := x_admin_only_ind ;
110     new_references.grading_period_cd := x_grading_period_cd ;
111     new_references.repeat_grade := x_repeat_grade ;
112     new_references.attribute_category := x_attribute_category;
113     new_references.attribute1 := x_attribute1;
114     new_references.attribute2 := x_attribute2;
115     new_references.attribute3 := x_attribute3;
116     new_references.attribute4 := x_attribute4;
117     new_references.attribute5 := x_attribute5;
118     new_references.attribute6 := x_attribute6;
119     new_references.attribute7 := x_attribute7;
120     new_references.attribute8 := x_attribute8;
121     new_references.attribute9 := x_attribute9;
122     new_references.attribute10 := x_attribute10;
123     new_references.attribute11 := x_attribute11;
124     new_references.attribute12 := x_attribute12;
125     new_references.attribute13 := x_attribute13;
126     new_references.attribute14 := x_attribute14;
127     new_references.attribute15 := x_attribute15;
128     new_references.attribute16 := x_attribute16;
129     new_references.attribute17 := x_attribute17;
130     new_references.attribute18 := x_attribute18;
131     new_references.attribute19 := x_attribute19;
132     new_references.attribute20 := x_attribute20;
133     new_references.closed_ind  := x_closed_ind;
134 
135     IF (p_action = 'UPDATE') THEN
136       new_references.creation_date := old_references.creation_date;
137       new_references.created_by := old_references.created_by;
138     ELSE
139       new_references.creation_date := x_creation_date;
140       new_references.created_by := x_created_by;
141     END IF;
142     new_references.last_update_date := x_last_update_date;
143     new_references.last_updated_by := x_last_updated_by;
144     new_references.last_update_login := x_last_update_login;
145   END Set_Column_Values;
146 
147 PROCEDURE BeforeRowInsertUpdate1(
148     p_inserting IN BOOLEAN DEFAULT FALSE,
149     p_updating IN BOOLEAN DEFAULT FALSE,
150     p_deleting IN BOOLEAN DEFAULT FALSE
151     ) AS
152         v_message_name          VARCHAR2(30);
153 
154 /*========================================================================================================+
155  |
156  | DESCRIPTION
157  |
158  |
159  | NOTES
160  |
161  |
162  | HISTORY
163  | Who                  When                    Why
164  | Aiyer                09-Jan-2003             Modified for the fix of the bug #2693772
165  |                                              Modified the validation to check whether grade translations already existed
166  |						only if old s_result_type and new s_result_type did not match.
167  *===========================================================================================================*/
168   BEGIN
169         -- Validate that inserts/updates are allowed
170         IF  p_inserting OR p_updating THEN
171                 -- Validate if grade's grading schema is current or future
172                 IF p_inserting OR p_updating THEN
173                         IF  IGS_AS_VAL_GSG.assp_val_gs_cur_fut (
174                                                         new_references.grading_schema_cd,
175                                                         new_references.version_number,
176                                                         v_message_name) = FALSE THEN
177                                 FND_MESSAGE.SET_NAME('IGS',v_message_name);
178                                 IGS_GE_MSG_STACK.ADD;
179                         APP_EXCEPTION.RAISE_EXCEPTION;
180                         END IF;
181                 END IF;
182                 -- Validate upper mark range >= lower mark range and both set if one is set
183                 IF p_inserting OR p_updating THEN
184                         IF  IGS_AS_VAL_GSG.assp_val_gsg_mrk_rng (
185                                                         new_references.lower_mark_range,
186                                                         new_references.upper_mark_range,
187                                                         v_message_name) = FALSE THEN
188                                 FND_MESSAGE.SET_NAME('IGS',v_message_name);
189                                 IGS_GE_MSG_STACK.ADD;
190                         APP_EXCEPTION.RAISE_EXCEPTION;
191                         END IF;
192                 END IF;
193                 -- Validate max percentage >= min percentage
194                 IF p_inserting OR p_updating THEN
195                         IF  IGS_AS_VAL_GSG.assp_val_gsg_min_max (
196                                                         new_references.min_percentage,
197                                                         new_references.max_percentage,
198                                                         v_message_name) = FALSE THEN
199                                 FND_MESSAGE.SET_NAME('IGS',v_message_name);
200                                 IGS_GE_MSG_STACK.ADD;
201                         APP_EXCEPTION.RAISE_EXCEPTION;
202                         END IF;
203                 END IF;
204 
205                 -- Validate result type can not be changed when translations exist for the
206                 -- grade
207                 /*
208                    Code modified for the bug #2693772
209                    Modified the validation to check whether grade translations already existed
210                    only if old s_result_type and new s_result_type did not match.
211                 */
212 
213                 IF (p_inserting OR p_updating)   AND
214                    new_references.s_result_type  <> old_references.s_result_type
215                 THEN
216 
217                         IF  IGS_AS_VAL_GSG.assp_val_gsg_gsgt (
218                                                         new_references.grading_schema_cd,
219                                                         new_references.version_number,
220                                                         new_references.grade,
221                                                         v_message_name) = FALSE THEN
222                                 FND_MESSAGE.SET_NAME('IGS',v_message_name);
223                                 IGS_GE_MSG_STACK.ADD;
224                         APP_EXCEPTION.RAISE_EXCEPTION;
225                         END IF;
226                 END IF;
227 
228                 -- Validate if s_special_grade_type is 'CONCEDED-PASS' then
229                 -- s_result_type must be 'PASS'
230                 IF IGS_AS_VAL_GSG.assp_val_gsg_ssgt (
231                                         new_references.s_special_grade_type,
232                                         new_references.s_result_type,
233                                         v_message_name) = FALSE THEN
234                         FND_MESSAGE.SET_NAME('IGS',v_message_name);
235                         IGS_GE_MSG_STACK.ADD;
236                         APP_EXCEPTION.RAISE_EXCEPTION;
237                 END IF;
238         END IF;
239   END BeforeRowInsertUpdate1;
240 PROCEDURE AfterRowInsertUpdate2(
241     p_inserting IN BOOLEAN DEFAULT FALSE,
242     p_updating IN BOOLEAN DEFAULT FALSE,
243     p_deleting IN BOOLEAN DEFAULT FALSE
244     ) AS
245       v_message_name    VARCHAR2(30);
246   BEGIN
247         IF  p_inserting OR p_updating THEN
248             IF IGS_AS_VAL_GSG.assp_val_gsg_m_ovrlp (
249                                         new_references.grading_schema_cd,
250                                         new_references.version_number,
251                                         new_references.grade,
252                                         new_references.lower_mark_range,
253                                         new_references.upper_mark_range,
254                                         v_message_name) = FALSE THEN
255                         FND_MESSAGE.SET_NAME('IGS',v_message_name);
256                         IGS_GE_MSG_STACK.ADD;
257                         APP_EXCEPTION.RAISE_EXCEPTION;
258   		END IF;
259   		-- Validate dflt outstanding indicator only set for 1 grade
260   		IF  new_references.dflt_outstanding_ind = 'Y' THEN
261   		    IF  IGS_AS_VAL_GSG.assp_val_gsg_dflt (
262   					new_references.grading_schema_cd,
263   					new_references.version_number,
264   					new_references.grade,
265   					v_message_name) = FALSE THEN
266   			FND_MESSAGE.SET_NAME('IGS',v_message_name);
267   			IGS_GE_MSG_STACK.ADD;
268 			APP_EXCEPTION.RAISE_EXCEPTION;
269   		    END IF;
270   		END IF;
271       END IF;
272   END AfterRowInsertUpdate2;
273 
274  PROCEDURE Check_Constraints (
275  	Column_Name	IN	VARCHAR2	DEFAULT NULL,
276  	Column_Value 	IN	VARCHAR2	DEFAULT NULL
277  ) as
278 
279   BEGIN
280 
281     -- The following code checks for check constraints on the Columns.
282 
283     IF column_name is NULL THEN
284         NULL;
285     ELSIF  UPPER(column_name) = 'GPA_VAL ' THEN
286         new_references.gpa_val  := igs_ge_number.to_num(column_value);
287     ELSIF  UPPER(column_name) = 'MAX_PERCENTAGE ' THEN
288         new_references.max_percentage  := igs_ge_number.to_num(column_value);
289     ELSIF  UPPER(column_name) = 'MIN_PERCENTAGE' THEN
290         new_references.min_percentage := igs_ge_number.to_num(column_value);
291     ELSIF  UPPER(column_name) = 'S_RESULT_TYPE' THEN
292         new_references.s_result_type := column_value;
293     ELSIF  UPPER(column_name) = 'GRADING_SCHEMA_CD' THEN
294         new_references.grading_schema_cd := column_value;
295     ELSIF  UPPER(column_name) = 'GRADE' THEN
296         new_references.grade := column_value;
297     ELSIF  UPPER(column_name) = 'FULL_GRADE_NAME' THEN
298         new_references.full_grade_name := column_value;
299     ELSIF  UPPER(column_name) = 'EXTERNAL_GRADE' THEN
300         new_references.external_grade := column_value;
301     ELSIF  UPPER(column_name) = 'VERSION_NUMBER ' THEN
302         new_references.version_number  := igs_ge_number.to_num(column_value);
303     ELSIF  UPPER(column_name) = 'SHOW_ON_NOTICEBOARD_IND ' THEN
304         new_references.show_on_noticeboard_ind  := column_value;
305     ELSIF  UPPER(column_name) = 'SHOW_ON_OFFICIAL_NTFCTN_IND ' THEN
306         new_references.show_on_official_ntfctn_ind  := column_value;
307     ELSIF  UPPER(column_name) = 'SHOW_IN_NEWSPAPER_IND ' THEN
308         new_references.show_in_newspaper_ind  := column_value;
309     ELSIF  UPPER(column_name) = 'SHOW_INTERNALLY_IND ' THEN
310         new_references.show_internally_ind  := column_value;
311     ELSIF  UPPER(column_name) = 'SYSTEM_ONLY_IND' THEN
312         new_references.system_only_ind := column_value;
313     ELSIF  UPPER(column_name) = 'DFLT_OUTSTANDING_IND' THEN
314         new_references.dflt_outstanding_ind := column_value;
315     ELSIF  UPPER(column_name) = 'LOWER_MARK_RANGE ' THEN
316         new_references.lower_mark_range  := igs_ge_number.to_num(column_value);
317     ELSIF  UPPER(column_name) = 'UPPER_MARK_RANGE ' THEN
318         new_references.upper_mark_range  := igs_ge_number.to_num(column_value);
319     ELSIF  UPPER(column_name) = 'S_SPECIAL_GRADE_TYPE ' THEN
320         new_references.s_special_grade_type  := column_value;
321 
322     ELSIF  UPPER(column_name) = 'SHOW_IN_EARNED_CRDT_IND' THEN
323         new_references.show_in_earned_crdt_ind  := column_value;
324     ELSIF  UPPER(column_name) = 'INCL_IN_REPEAT_PROCESS_IND' THEN
325         new_references.incl_in_repeat_process_ind  := column_value;
326     ELSIF  UPPER(column_name) = 'ADMIN_ONLY_IND ' THEN
327         new_references.admin_only_ind  := column_value;
328     ELSIF  UPPER(column_name) = 'GRADING_PERIOD_CD' THEN
329         new_references.grading_period_cd  := column_value;
330     ELSIF  UPPER(column_name) = 'REPEAT_GRADE' THEN
331         new_references.repeat_grade  := column_value;
332 
333     END IF;
334 
335     IF ((UPPER (column_name) = 'S_SPECIAL_GRADE_TYPE ') OR (column_name IS NULL)) THEN
336       IF new_references.s_special_grade_type NOT IN ( 'SUPP-EXAM' , 'SPECIAL-EXAM' , 'REPLACEABLE' , 'CONCEDED-PASS' ) THEN
337         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
338         IGS_GE_MSG_STACK.ADD;
339         APP_EXCEPTION.RAISE_EXCEPTION;
340       END IF;
341     END IF;
342 
343     IF ((UPPER (column_name) = 'DFLT_OUTSTANDING_IND') OR (column_name IS NULL)) THEN
344       IF new_references.dflt_outstanding_ind NOT IN  ( 'Y' , 'N' ) THEN
345         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
346         IGS_GE_MSG_STACK.ADD;
347         APP_EXCEPTION.RAISE_EXCEPTION;
348       END IF;
349     END IF;
350 
351     IF ((UPPER (column_name) = 'SYSTEM_ONLY_IND') OR (column_name IS NULL)) THEN
352       IF new_references.system_only_ind NOT IN ( 'Y' , 'N' ) THEN
353         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
354         IGS_GE_MSG_STACK.ADD;
355         APP_EXCEPTION.RAISE_EXCEPTION;
356       END IF;
357     END IF;
358 
359     IF ((UPPER (column_name) = 'SHOW_INTERNALLY_IND ') OR (column_name IS NULL)) THEN
360       IF new_references.show_internally_ind NOT IN ( 'Y' , 'N' ) THEN
361         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
362         IGS_GE_MSG_STACK.ADD;
363         APP_EXCEPTION.RAISE_EXCEPTION;
364       END IF;
365     END IF;
366 
367     IF ((UPPER (column_name) = 'SHOW_IN_NEWSPAPER_IND ') OR (column_name IS NULL)) THEN
368       IF new_references.show_in_newspaper_ind  NOT IN ( 'Y' , 'N' ) THEN
369         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
370         IGS_GE_MSG_STACK.ADD;
371         APP_EXCEPTION.RAISE_EXCEPTION;
372       END IF;
373     END IF;
374 
375     IF ((UPPER (column_name) = 'SHOW_ON_OFFICIAL_NTFCTN_IND ') OR (column_name IS NULL)) THEN
376       IF new_references.show_on_official_ntfctn_ind  NOT IN ( 'Y' , 'N' ) THEN
377         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
378         IGS_GE_MSG_STACK.ADD;
379         APP_EXCEPTION.RAISE_EXCEPTION;
380       END IF;
381     END IF;
382 
383     IF ((UPPER (column_name) = 'SHOW_ON_NOTICEBOARD_IND ') OR (column_name IS NULL)) THEN
384       IF new_references.show_on_noticeboard_ind  NOT IN ( 'Y' , 'N' ) THEN
385         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
386         IGS_GE_MSG_STACK.ADD;
387         APP_EXCEPTION.RAISE_EXCEPTION;
388       END IF;
389     END IF;
390 
391     IF ((UPPER (column_name) = 'VERSION_NUMBER ') OR (column_name IS NULL)) THEN
392       IF new_references.version_number  < 0  OR
393          new_references.version_number  > 999 THEN
394         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
395         IGS_GE_MSG_STACK.ADD;
396         APP_EXCEPTION.RAISE_EXCEPTION;
397       END IF;
398     END IF;
399 
400     IF ((UPPER (column_name) = 'EXTERNAL_GRADE') OR (column_name IS NULL)) THEN
401       IF (new_references.external_grade <> UPPER (new_references.external_grade)) THEN
402         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
403         IGS_GE_MSG_STACK.ADD;
404         APP_EXCEPTION.RAISE_EXCEPTION;
405       END IF;
406     END IF;
407 
408     IF ((UPPER (column_name) = 'GRADE') OR (column_name IS NULL)) THEN
409       IF (new_references.grade <> UPPER (new_references.grade)) THEN
410         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
411         IGS_GE_MSG_STACK.ADD;
412         APP_EXCEPTION.RAISE_EXCEPTION;
413       END IF;
414     END IF;
415 
416     IF ((UPPER (column_name) = 'GRADING_SCHEMA_CD') OR (column_name IS NULL)) THEN
417       IF (new_references.grading_schema_cd <> UPPER (new_references.grading_schema_cd)) THEN
418         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
419         IGS_GE_MSG_STACK.ADD;
420         APP_EXCEPTION.RAISE_EXCEPTION;
421       END IF;
422     END IF;
423 
424 
425     IF ((UPPER (column_name) = 'S_RESULT_TYPE') OR (column_name IS NULL)) THEN
426       IF (new_references.s_result_type <> UPPER (new_references.s_result_type)) THEN
427         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
428         IGS_GE_MSG_STACK.ADD;
429         APP_EXCEPTION.RAISE_EXCEPTION;
430       END IF;
431     END IF;
432 
433 
434     IF ((UPPER (column_name) = 'MIN_PERCENTAGE') OR (column_name IS NULL)) THEN
435       IF new_references.min_percentage < 0 OR
436 	    new_references.min_percentage > 100 THEN
437         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
438         IGS_GE_MSG_STACK.ADD;
439         APP_EXCEPTION.RAISE_EXCEPTION;
440       END IF;
441     END IF;
442 
443     IF ((UPPER (column_name) = 'MAX_PERCENTAGE ') OR (column_name IS NULL)) THEN
444       IF new_references.max_percentage   < 0 OR
445       	new_references.max_percentage   > 100	 THEN
446         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
447         IGS_GE_MSG_STACK.ADD;
448         APP_EXCEPTION.RAISE_EXCEPTION;
449       END IF;
450     END IF;
451 
452     IF ((UPPER (column_name) = 'GPA_VAL ') OR (column_name IS NULL)) THEN
453       IF new_references.gpa_val  < 0 OR
454          new_references.gpa_val  > 999.99  THEN
455         Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
456         IGS_GE_MSG_STACK.ADD;
457         APP_EXCEPTION.RAISE_EXCEPTION;
458       END IF;
459     END IF;
460 
461 
462   END Check_Constraints;
463 
464 
465   PROCEDURE Check_Parent_Existance AS
466   BEGIN
467     IF (((old_references.grading_schema_cd = new_references.grading_schema_cd) AND
468          (old_references.version_number = new_references.version_number)) OR
469         ((new_references.grading_schema_cd IS NULL) OR
470          (new_references.version_number IS NULL))) THEN
471       NULL;
472     ELSE
473       IF NOT IGS_AS_GRD_SCHEMA_PKG.Get_PK_For_Validation (
474         new_references.grading_schema_cd,
475         new_references.version_number
476         ) THEN
477 
478 	     Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
479 	     IGS_GE_MSG_STACK.ADD;
480 	     APP_EXCEPTION.RAISE_EXCEPTION;
481 
482        END IF;
483     END IF;
484    -- Has to be changed.
485     IF (((old_references.s_result_type = new_references.s_result_type)) OR
486         ((new_references.s_result_type IS NULL))) THEN
487       NULL;
488 ELSIF NOT  IGS_LOOKUPS_VIEW_PKG.Get_PK_For_Validation (
489         'RESULT_TYPE',
490         new_references.s_result_type
491         ) THEN
492 
493 	    Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
494 	    IGS_GE_MSG_STACK.ADD;
495 	     APP_EXCEPTION.RAISE_EXCEPTION;
496     END IF;
497 
498   END Check_Parent_Existance;
499   PROCEDURE Check_Child_Existance AS
500   --who                  when                   what
501   --smadathi          29-MAY-2001          The foreign key references to IGS_PS_UNT_REPT_FMLY , IGS_PS_UNT_PRV_GRADE removed as per DLD
502   --smadathi          25-MAY-2001          The foreign key references to IGS_PS_USEC_PRV_GRAD removed as per DLD
503   --pkpatel           04-SEP-2001          Bug no. 1960126  Dld Academic Record Maintenance
504   --                                       Added igs_av_stnd_unit_pkg.get_fk_igs_as_grd_sch_grade
505   BEGIN
506     IGS_AD_ADM_UT_STA_GD_PKG.GET_FK_IGS_AS_GRD_SCH_GRADE (
507       old_references.grading_schema_cd,
508       old_references.version_number,
509       old_references.grade
510       );
511     IGS_AS_INS_GRD_ENTRY_PKG.GET_FK_IGS_AS_GRD_SCH_GRADE (
512       old_references.grading_schema_cd,
513       old_references.version_number,
514       old_references.grade
515       );
516     IGS_AS_GRD_SCH_TRN_PKG.GET_FK_IGS_AS_GRD_SCH_GRADE (
517       old_references.grading_schema_cd,
518       old_references.version_number,
519       old_references.grade
520       );
521     IGS_AS_GRD_SCH_TRN_PKG.GET_FK_IGS_AS_GRD_SCH_GRADE (
522       old_references.grading_schema_cd,
523       old_references.version_number,
524       old_references.grade
525       );
526     IGS_AS_NON_ENR_STDOT_PKG.GET_FK_IGS_AS_GRD_SCH_GRADE (
527       old_references.grading_schema_cd,
528       old_references.version_number,
529       old_references.grade
530       );
531     IGS_AS_SU_STMPTOUT_PKG.GET_FK_IGS_AS_GRD_SCH_GRADE (
532       old_references.grading_schema_cd,
533       old_references.version_number,
534       old_references.grade
535       );
536     IGS_AS_SU_STMPTOUT_PKG.GET_FK_IGS_AS_GRD_SCH_GRADE (
537       old_references.grading_schema_cd,
538       old_references.version_number,
539       old_references.grade
540       );
541 
542     IGS_AS_INC_GRD_CPROF_PKG.GET_FK_IGS_AS_GRD_SCH_GRADE (
543       old_references.grading_schema_cd,
544       old_references.version_number,
545       old_references.grade
546       );
547 
548     IGS_AV_STND_UNIT_PKG.GET_FK_IGS_AS_GRD_SCH_GRADE (
549       old_references.grading_schema_cd,
550       old_references.version_number,
551       old_references.grade
552       );
553 -- Added by DDEY as a part of Bug# 2162831
554 IGS_AS_SU_ATMPT_ITM_PKG.GET_FK_IGS_AS_GRD_SCH_GRADE (
555      old_references.grading_schema_cd ,
556      old_references.version_number ,
557      old_references.grade
558     );
559   END Check_Child_Existance;
560 
561   FUNCTION Get_PK_For_Validation (
562     x_grading_schema_cd IN VARCHAR2,
563     x_version_number IN NUMBER,
564     x_grade IN VARCHAR2
565     ) RETURN BOOLEAN AS
566     CURSOR cur_rowid IS
567       SELECT   rowid
568       FROM     IGS_AS_GRD_SCH_GRADE
569       WHERE    grading_schema_cd = x_grading_schema_cd
570       AND      version_number = x_version_number
571       AND      grade = x_grade;
572     lv_rowid cur_rowid%RowType;
573   BEGIN
574     Open cur_rowid;
575     Fetch cur_rowid INTO lv_rowid;
576 
577     IF (cur_rowid%FOUND) THEN
578        Close cur_rowid;
579        Return(TRUE);
580     ELSE
581        Close cur_rowid;
582        Return(FALSE);
583     END IF;
584 
585     Close cur_rowid;
586   END Get_PK_For_Validation;
587   PROCEDURE GET_FK_IGS_AS_GRD_SCHEMA (
588     x_grading_schema_cd IN VARCHAR2,
589     x_version_number IN NUMBER
590     ) AS
591     CURSOR cur_rowid IS
592       SELECT   rowid
593       FROM     IGS_AS_GRD_SCH_GRADE
594       WHERE    grading_schema_cd = x_grading_schema_cd
595       AND      version_number = x_version_number ;
596     lv_rowid cur_rowid%RowType;
597   BEGIN
598     Open cur_rowid;
599     Fetch cur_rowid INTO lv_rowid;
600     IF (cur_rowid%FOUND) THEN
601       Fnd_Message.Set_Name ('IGS', 'IGS_AS_GSG_GS_FK');
602       IGS_GE_MSG_STACK.ADD;
603 	        Close cur_rowid;
604       APP_EXCEPTION.RAISE_EXCEPTION;
605 
606       Return;
607     END IF;
608     Close cur_rowid;
609   END GET_FK_IGS_AS_GRD_SCHEMA;
610   PROCEDURE GET_FK_IGS_LOOKUPS_VIEW (
611     x_s_result_type IN VARCHAR2
612     ) AS
613     CURSOR cur_rowid IS
614       SELECT   rowid
615       FROM     IGS_AS_GRD_SCH_GRADE
616       WHERE    s_result_type = x_s_result_type ;
617     lv_rowid cur_rowid%RowType;
618   BEGIN
619     Open cur_rowid;
620     Fetch cur_rowid INTO lv_rowid;
621     IF (cur_rowid%FOUND) THEN
622       Fnd_Message.Set_Name ('IGS', 'IGS_AS_GSG_SLV_FK');
623       IGS_GE_MSG_STACK.ADD;
624 	        Close cur_rowid;
625       APP_EXCEPTION.RAISE_EXCEPTION;
626 
627       Return;
628     END IF;
629     Close cur_rowid;
630   END GET_FK_IGS_LOOKUPS_VIEW;
631   PROCEDURE Before_DML (
632     p_action IN VARCHAR2,
633     x_rowid IN  VARCHAR2 DEFAULT NULL,
634     x_dflt_outstanding_ind IN VARCHAR2 DEFAULT NULL,
635     x_external_grade IN VARCHAR2 DEFAULT NULL,
636     x_lower_mark_range IN NUMBER DEFAULT NULL,
637     x_upper_mark_range IN NUMBER DEFAULT NULL,
638     x_min_percentage IN NUMBER DEFAULT NULL,
639     x_max_percentage IN NUMBER DEFAULT NULL,
640     x_gpa_val IN NUMBER DEFAULT NULL,
641     x_rank IN NUMBER DEFAULT NULL,
642     x_s_special_grade_type IN VARCHAR2 DEFAULT NULL,
643     x_grading_schema_cd IN VARCHAR2 DEFAULT NULL,
644     x_version_number IN NUMBER DEFAULT NULL,
645     x_grade IN VARCHAR2 DEFAULT NULL,
646     x_full_grade_name IN VARCHAR2 DEFAULT NULL,
647     x_s_result_type IN VARCHAR2 DEFAULT NULL,
648     x_show_on_noticeboard_ind IN VARCHAR2 DEFAULT NULL,
649     x_show_on_official_ntfctn_ind IN VARCHAR2 DEFAULT NULL,
650     x_show_in_newspaper_ind IN VARCHAR2 DEFAULT NULL,
651     x_show_internally_ind IN VARCHAR2 DEFAULT NULL,
652     x_system_only_ind IN VARCHAR2 DEFAULT NULL,
653     x_show_in_earned_crdt_ind IN VARCHAR2 DEFAULT NULL,
654     x_incl_in_repeat_process_ind IN VARCHAR2 DEFAULT NULL,
655     x_admin_only_ind IN VARCHAR2 DEFAULT NULL,
656     x_grading_period_cd IN VARCHAR2 DEFAULT NULL,
657     x_repeat_grade IN VARCHAR2 DEFAULT NULL,
658     x_attribute_category IN VARCHAR2 DEFAULT NULL,
659     x_attribute1 IN VARCHAR2 DEFAULT NULL,
660     x_attribute2 IN VARCHAR2 DEFAULT NULL,
661     x_attribute3 IN VARCHAR2 DEFAULT NULL,
662     x_attribute4 IN VARCHAR2 DEFAULT NULL,
663     x_attribute5 IN VARCHAR2 DEFAULT NULL,
664     x_attribute6 IN VARCHAR2 DEFAULT NULL,
665     x_attribute7 IN VARCHAR2 DEFAULT NULL,
666     x_attribute8 IN VARCHAR2 DEFAULT NULL,
667     x_attribute9 IN VARCHAR2 DEFAULT NULL,
668     x_attribute10 IN VARCHAR2 DEFAULT NULL,
669     x_attribute11 IN VARCHAR2 DEFAULT NULL,
670     x_attribute12 IN VARCHAR2 DEFAULT NULL,
671     x_attribute13 IN VARCHAR2 DEFAULT NULL,
672     x_attribute14 IN VARCHAR2 DEFAULT NULL,
673     x_attribute15 IN VARCHAR2 DEFAULT NULL,
674     x_attribute16 IN VARCHAR2 DEFAULT NULL,
675     x_attribute17 IN VARCHAR2 DEFAULT NULL,
676     x_attribute18 IN VARCHAR2 DEFAULT NULL,
677     x_attribute19 IN VARCHAR2 DEFAULT NULL,
678     x_attribute20 IN VARCHAR2 DEFAULT NULL,
679     x_creation_date IN DATE DEFAULT NULL,
680     x_created_by IN NUMBER DEFAULT NULL,
681     x_last_update_date IN DATE DEFAULT NULL,
682     x_last_updated_by IN NUMBER DEFAULT NULL,
683     x_last_update_login IN NUMBER DEFAULT NULL,
684     x_closed_ind IN VARCHAR2 DEFAULT NULL
685   ) AS
686   BEGIN
687     Set_Column_Values (
688       p_action,
689       x_rowid,
690       x_dflt_outstanding_ind,
691       x_external_grade,
692       x_lower_mark_range,
693       x_upper_mark_range,
694       x_min_percentage,
695       x_max_percentage,
696       x_gpa_val,
697       x_rank,
698       x_s_special_grade_type,
699       x_grading_schema_cd,
700       x_version_number,
701       x_grade,
702       x_full_grade_name,
703       x_s_result_type,
704       x_show_on_noticeboard_ind,
705       x_show_on_official_ntfctn_ind,
706       x_show_in_newspaper_ind,
707       x_show_internally_ind,
708       x_system_only_ind,
709       x_show_in_earned_crdt_ind,
710       x_incl_in_repeat_process_ind,
711       x_admin_only_ind,
712       x_grading_period_cd,
713       x_repeat_grade,
714       x_attribute_category,
715       x_attribute1,
716       x_attribute2,
717       x_attribute3,
718       x_attribute4,
719       x_attribute5,
720       x_attribute6,
721       x_attribute7,
722       x_attribute8,
723       x_attribute9,
724       x_attribute10,
725       x_attribute11,
726       x_attribute12,
727       x_attribute13,
728       x_attribute14,
729       x_attribute15,
730       x_attribute16,
731       x_attribute17,
732       x_attribute18,
733       x_attribute19,
734       x_attribute20,
735       x_creation_date,
736       x_created_by,
737       x_last_update_date,
738       x_last_updated_by,
739       x_last_update_login,
740       x_closed_ind
741     );
742     IF (p_action = 'INSERT') THEN
743       -- Call all the procedures related to Before Insert.
744       BeforeRowInsertUpdate1 ( p_inserting => TRUE );
745 	IF Get_PK_For_Validation(
746 		 new_references.grading_schema_cd,
747  		 new_references.version_number,
748              new_references.grade
749 	                            ) THEN
750 
751  		Fnd_message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
752 		IGS_GE_MSG_STACK.ADD;
753  		APP_EXCEPTION.RAISE_EXCEPTION;
754 
755 	END IF;
756 
757 	Check_Constraints;
758       Check_Parent_Existance;
759     ELSIF (p_action = 'UPDATE') THEN
760       -- Call all the procedures related to Before Update.
761       BeforeRowInsertUpdate1 ( p_updating => TRUE );
762 	Check_Constraints;
763       Check_Parent_Existance;
764     ELSIF (p_action = 'DELETE') THEN
765       -- Call all the procedures related to Before Delete.
766 
767       Check_Child_Existance;
768    ELSIF (p_action = 'VALIDATE_INSERT') THEN
769       		IF  Get_PK_For_Validation (
770 				 new_references.grading_schema_cd,
771    			 	 new_references.version_number,
772             	 	 new_references.grade
773 				 ) THEN
774 		          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
775 		          IGS_GE_MSG_STACK.ADD;
776 		          APP_EXCEPTION.RAISE_EXCEPTION;
777      	        END IF;
778       	Check_Constraints;
779  	ELSIF (p_action = 'VALIDATE_UPDATE') THEN
780       	  Check_Constraints;
781 	ELSIF (p_action = 'VALIDATE_DELETE') THEN
782               Check_Child_Existance;
783     END IF;
784   END Before_DML;
785 
786   PROCEDURE After_DML (
787     p_action IN VARCHAR2,
788     x_rowid IN VARCHAR2
789   ) AS
790   BEGIN
791     l_rowid := x_rowid;
792     IF (p_action = 'INSERT') THEN
793       -- Call all the procedures related to After Insert.
794       AfterRowInsertUpdate2 ( p_inserting => TRUE );
795     ELSIF (p_action = 'UPDATE') THEN
796       -- Call all the procedures related to After Update.
797       AfterRowInsertUpdate2 ( p_updating => TRUE );
798 
799     END IF;
800   END After_DML;
801 procedure INSERT_ROW (
802   X_ROWID in out NOCOPY VARCHAR2,
803   X_GRADING_SCHEMA_CD in VARCHAR2,
804   X_VERSION_NUMBER in NUMBER,
805   X_GRADE in VARCHAR2,
806   X_FULL_GRADE_NAME in VARCHAR2,
807   X_S_RESULT_TYPE in VARCHAR2,
808   X_SHOW_ON_NOTICEBOARD_IND in VARCHAR2,
809   X_SHOW_ON_OFFICIAL_NTFCTN_IND in VARCHAR2,
810   X_S_SPECIAL_GRADE_TYPE in VARCHAR2,
811   X_SHOW_IN_NEWSPAPER_IND in VARCHAR2,
812   X_SHOW_INTERNALLY_IND in VARCHAR2,
813   X_SYSTEM_ONLY_IND in VARCHAR2,
814   X_DFLT_OUTSTANDING_IND in VARCHAR2,
815   X_EXTERNAL_GRADE in VARCHAR2,
816   X_LOWER_MARK_RANGE in NUMBER,
817   X_UPPER_MARK_RANGE in NUMBER,
818   X_MIN_PERCENTAGE in NUMBER,
819   X_MAX_PERCENTAGE in NUMBER,
820   X_GPA_VAL in NUMBER,
821   X_RANK in NUMBER,
822   X_SHOW_IN_EARNED_CRDT_IND in VARCHAR2,
823   X_INCL_IN_REPEAT_PROCESS_IND in VARCHAR2,
824   X_ADMIN_ONLY_IND in VARCHAR2,
825   X_GRADING_PERIOD_CD in VARCHAR2,
826   X_REPEAT_GRADE in VARCHAR2,
827   x_attribute_category IN VARCHAR2,
828   x_attribute1 IN VARCHAR2,
829   x_attribute2 IN VARCHAR2,
830   x_attribute3 IN VARCHAR2,
831   x_attribute4 IN VARCHAR2,
832   x_attribute5 IN VARCHAR2,
833   x_attribute6 IN VARCHAR2,
834   x_attribute7 IN VARCHAR2,
835   x_attribute8 IN VARCHAR2,
836   x_attribute9 IN VARCHAR2,
837   x_attribute10 IN VARCHAR2,
838   x_attribute11 IN VARCHAR2,
839   x_attribute12 IN VARCHAR2,
840   x_attribute13 IN VARCHAR2,
841   x_attribute14 IN VARCHAR2,
842   x_attribute15 IN VARCHAR2,
843   x_attribute16 IN VARCHAR2,
844   x_attribute17 IN VARCHAR2,
845   x_attribute18 IN VARCHAR2,
846   x_attribute19 IN VARCHAR2,
847   x_attribute20 IN VARCHAR2,
848   X_MODE in VARCHAR2 default 'R',
849   x_closed_ind IN VARCHAR2 default 'N'
850   ) AS
851     cursor C is select ROWID from IGS_AS_GRD_SCH_GRADE
852       where GRADING_SCHEMA_CD = X_GRADING_SCHEMA_CD
853       and VERSION_NUMBER = X_VERSION_NUMBER
854       and GRADE = X_GRADE;
855     X_LAST_UPDATE_DATE DATE;
856     X_LAST_UPDATED_BY NUMBER;
857     X_LAST_UPDATE_LOGIN NUMBER;
858 begin
859   X_LAST_UPDATE_DATE := SYSDATE;
860   if(X_MODE = 'I') then
861     X_LAST_UPDATED_BY := 1;
862     X_LAST_UPDATE_LOGIN := 0;
863   elsif (X_MODE = 'R') then
864     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
865     if X_LAST_UPDATED_BY is NULL then
866       X_LAST_UPDATED_BY := -1;
867     end if;
868     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
869     if X_LAST_UPDATE_LOGIN is NULL then
870       X_LAST_UPDATE_LOGIN := -1;
871     end if;
872   else
873     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
874     IGS_GE_MSG_STACK.ADD;
875     APP_EXCEPTION.RAISE_EXCEPTION;
876   end if;
877   Before_DML(
878  p_action=>'INSERT',
879  x_rowid=>X_ROWID,
880  x_dflt_outstanding_ind=> NVL(X_DFLT_OUTSTANDING_IND,'N'),
881  x_external_grade=>X_EXTERNAL_GRADE,
882  x_full_grade_name=>X_FULL_GRADE_NAME,
883  x_gpa_val=>X_GPA_VAL,
884  x_grade=>X_GRADE,
885  x_grading_schema_cd=>X_GRADING_SCHEMA_CD,
886  x_lower_mark_range=>X_LOWER_MARK_RANGE,
887  x_max_percentage=>X_MAX_PERCENTAGE,
888  x_min_percentage=>X_MIN_PERCENTAGE,
889  x_rank=>X_RANK,
890  x_s_result_type=>X_S_RESULT_TYPE,
891  x_s_special_grade_type=>X_S_SPECIAL_GRADE_TYPE,
892  x_show_in_newspaper_ind=> NVL(X_SHOW_IN_NEWSPAPER_IND,'Y'),
893  x_show_internally_ind=> NVL(X_SHOW_INTERNALLY_IND,'Y'),
894  x_show_on_noticeboard_ind=> NVL(X_SHOW_ON_NOTICEBOARD_IND,'Y'),
895  x_show_on_official_ntfctn_ind=> NVL(X_SHOW_ON_OFFICIAL_NTFCTN_IND,'Y'),
896  x_system_only_ind=> NVL(X_SYSTEM_ONLY_IND,'N'),
897  x_upper_mark_range=>X_UPPER_MARK_RANGE,
898  x_version_number=>X_VERSION_NUMBER,
899   x_show_in_earned_crdt_ind => X_SHOW_IN_EARNED_CRDT_IND ,
900   x_incl_in_repeat_process_ind => X_SHOW_IN_EARNED_CRDT_IND ,
901   x_admin_only_ind => X_ADMIN_ONLY_IND ,
902   x_grading_period_cd => X_GRADING_PERIOD_CD ,
903   x_repeat_grade => X_REPEAT_GRADE ,
904       x_attribute_category=>x_attribute_category,
905       x_attribute1=>x_attribute1,
906       x_attribute2=>x_attribute2,
907       x_attribute3=>x_attribute3,
908       x_attribute4=>x_attribute4,
909       x_attribute5=>x_attribute5,
910       x_attribute6=>x_attribute6,
911       x_attribute7=>x_attribute7,
912       x_attribute8=>x_attribute8,
913       x_attribute9=>x_attribute9,
914       x_attribute10=>x_attribute10,
915       x_attribute11=>x_attribute11,
916       x_attribute12=>x_attribute12,
917       x_attribute13=>x_attribute13,
918       x_attribute14=>x_attribute14,
919       x_attribute15=>x_attribute15,
920       x_attribute16=>x_attribute16,
921       x_attribute17=>x_attribute17,
922       x_attribute18=>x_attribute18,
923       x_attribute19=>x_attribute19,
924       x_attribute20=>x_attribute20,
925  x_creation_date=>X_LAST_UPDATE_DATE,
926  x_created_by=>X_LAST_UPDATED_BY,
927  x_last_update_date=>X_LAST_UPDATE_DATE,
928  x_last_updated_by=>X_LAST_UPDATED_BY,
929  x_last_update_login=>X_LAST_UPDATE_LOGIN,
930  x_closed_ind => x_closed_ind
931 );
932   insert into IGS_AS_GRD_SCH_GRADE (
933     GRADING_SCHEMA_CD,
934     VERSION_NUMBER,
935     GRADE,
936     FULL_GRADE_NAME,
937     S_RESULT_TYPE,
938     SHOW_ON_NOTICEBOARD_IND,
939     SHOW_ON_OFFICIAL_NTFCTN_IND,
940     S_SPECIAL_GRADE_TYPE,
941     SHOW_IN_NEWSPAPER_IND,
942     SHOW_INTERNALLY_IND,
943     SYSTEM_ONLY_IND,
944     DFLT_OUTSTANDING_IND,
945     EXTERNAL_GRADE,
946     LOWER_MARK_RANGE,
947     UPPER_MARK_RANGE,
948     MIN_PERCENTAGE,
949     MAX_PERCENTAGE,
950     GPA_VAL,
951     RANK,
952     SHOW_IN_EARNED_CRDT_IND,
953     INCL_IN_REPEAT_PROCESS_IND,
954     ADMIN_ONLY_IND,
955     GRADING_PERIOD_CD,
956     REPEAT_GRADE,
957     attribute_category,
958     attribute1,
959     attribute2,
960     attribute3,
961     attribute4,
962     attribute5,
963     attribute6,
964     attribute7,
965     attribute8,
966     attribute9,
967     attribute10,
968     attribute11,
969     attribute12,
970     attribute13,
971     attribute14,
972     attribute15,
973     attribute16,
974     attribute17,
975     attribute18,
976     attribute19,
977     attribute20,
978     CREATION_DATE,
979     CREATED_BY,
980     LAST_UPDATE_DATE,
981     LAST_UPDATED_BY,
982     LAST_UPDATE_LOGIN,
983     CLOSED_IND
984   ) values (
985     NEW_REFERENCES.GRADING_SCHEMA_CD,
986     NEW_REFERENCES.VERSION_NUMBER,
987     NEW_REFERENCES.GRADE,
988     NEW_REFERENCES.FULL_GRADE_NAME,
989     NEW_REFERENCES.S_RESULT_TYPE,
990     NEW_REFERENCES.SHOW_ON_NOTICEBOARD_IND,
991     NEW_REFERENCES.SHOW_ON_OFFICIAL_NTFCTN_IND,
992     NEW_REFERENCES.S_SPECIAL_GRADE_TYPE,
993     NEW_REFERENCES.SHOW_IN_NEWSPAPER_IND,
994     NEW_REFERENCES.SHOW_INTERNALLY_IND,
995     NEW_REFERENCES.SYSTEM_ONLY_IND,
996     NEW_REFERENCES.DFLT_OUTSTANDING_IND,
997     NEW_REFERENCES.EXTERNAL_GRADE,
998     NEW_REFERENCES.LOWER_MARK_RANGE,
999     NEW_REFERENCES.UPPER_MARK_RANGE,
1000     NEW_REFERENCES.MIN_PERCENTAGE,
1001     NEW_REFERENCES.MAX_PERCENTAGE,
1002     NEW_REFERENCES.GPA_VAL,
1003     NEW_REFERENCES.RANK,
1004     NEW_REFERENCES.SHOW_IN_EARNED_CRDT_IND,
1005     NEW_REFERENCES.INCL_IN_REPEAT_PROCESS_IND,
1006     NEW_REFERENCES.ADMIN_ONLY_IND,
1007     NEW_REFERENCES.GRADING_PERIOD_CD,
1008     NEW_REFERENCES.REPEAT_GRADE,
1009     new_references.attribute_category,
1010     new_references.attribute1,
1011     new_references.attribute2,
1012     new_references.attribute3,
1013     new_references.attribute4,
1014     new_references.attribute5,
1015     new_references.attribute6,
1016     new_references.attribute7,
1017     new_references.attribute8,
1018     new_references.attribute9,
1019     new_references.attribute10,
1020     new_references.attribute11,
1021     new_references.attribute12,
1022     new_references.attribute13,
1023     new_references.attribute14,
1024     new_references.attribute15,
1025     new_references.attribute16,
1026     new_references.attribute17,
1027     new_references.attribute18,
1028     new_references.attribute19,
1029     new_references.attribute20,
1030     X_LAST_UPDATE_DATE,
1031     X_LAST_UPDATED_BY,
1032     X_LAST_UPDATE_DATE,
1033     X_LAST_UPDATED_BY,
1034     X_LAST_UPDATE_LOGIN,
1035     new_references.closed_ind
1036   );
1037   open c;
1038   fetch c into X_ROWID;
1039   if (c%notfound) then
1040     close c;
1041     raise no_data_found;
1042   end if;
1043   close c;
1044 After_DML(
1045   p_action => 'INSERT',
1046   x_rowid => X_ROWID
1047   );
1048 end INSERT_ROW;
1049 procedure LOCK_ROW (
1050   X_ROWID in  VARCHAR2,
1051   X_GRADING_SCHEMA_CD in VARCHAR2,
1052   X_VERSION_NUMBER in NUMBER,
1053   X_GRADE in VARCHAR2,
1054   X_FULL_GRADE_NAME in VARCHAR2,
1055   X_S_RESULT_TYPE in VARCHAR2,
1056   X_SHOW_ON_NOTICEBOARD_IND in VARCHAR2,
1057   X_SHOW_ON_OFFICIAL_NTFCTN_IND in VARCHAR2,
1058   X_S_SPECIAL_GRADE_TYPE in VARCHAR2,
1059   X_SHOW_IN_NEWSPAPER_IND in VARCHAR2,
1060   X_SHOW_INTERNALLY_IND in VARCHAR2,
1061   X_SYSTEM_ONLY_IND in VARCHAR2,
1062   X_DFLT_OUTSTANDING_IND in VARCHAR2,
1063   X_EXTERNAL_GRADE in VARCHAR2,
1064   X_LOWER_MARK_RANGE in NUMBER,
1065   X_UPPER_MARK_RANGE in NUMBER,
1066   X_MIN_PERCENTAGE in NUMBER,
1067   X_MAX_PERCENTAGE in NUMBER,
1068   X_GPA_VAL in NUMBER,
1069   X_RANK in NUMBER,
1070   X_SHOW_IN_EARNED_CRDT_IND in VARCHAR2,
1071   X_INCL_IN_REPEAT_PROCESS_IND in VARCHAR2,
1072   X_ADMIN_ONLY_IND in VARCHAR2,
1073   X_GRADING_PERIOD_CD in VARCHAR2,
1074   X_REPEAT_GRADE in VARCHAR2,
1075   x_attribute_category IN VARCHAR2,
1076   x_attribute1 IN VARCHAR2,
1077   x_attribute2 IN VARCHAR2,
1078   x_attribute3 IN VARCHAR2,
1079   x_attribute4 IN VARCHAR2,
1080   x_attribute5 IN VARCHAR2,
1081   x_attribute6 IN VARCHAR2,
1082   x_attribute7 IN VARCHAR2,
1083   x_attribute8 IN VARCHAR2,
1084   x_attribute9 IN VARCHAR2,
1085   x_attribute10 IN VARCHAR2,
1086   x_attribute11 IN VARCHAR2,
1087   x_attribute12 IN VARCHAR2,
1088   x_attribute13 IN VARCHAR2,
1089   x_attribute14 IN VARCHAR2,
1090   x_attribute15 IN VARCHAR2,
1091   x_attribute16 IN VARCHAR2,
1092   x_attribute17 IN VARCHAR2,
1093   x_attribute18 IN VARCHAR2,
1094   x_attribute19 IN VARCHAR2,
1095   x_attribute20 IN VARCHAR2,
1096   x_closed_ind IN VARCHAR2 default 'N'
1097   ) AS
1098   cursor c1 is select
1099       FULL_GRADE_NAME,
1100       S_RESULT_TYPE,
1101       SHOW_ON_NOTICEBOARD_IND,
1102       SHOW_ON_OFFICIAL_NTFCTN_IND,
1103       S_SPECIAL_GRADE_TYPE,
1104       SHOW_IN_NEWSPAPER_IND,
1105       SHOW_INTERNALLY_IND,
1106       SYSTEM_ONLY_IND,
1107       DFLT_OUTSTANDING_IND,
1108       EXTERNAL_GRADE,
1109       LOWER_MARK_RANGE,
1110       UPPER_MARK_RANGE,
1111       MIN_PERCENTAGE,
1112       MAX_PERCENTAGE,
1113       GPA_VAL,
1114       RANK,
1115       SHOW_IN_EARNED_CRDT_IND,
1116       INCL_IN_REPEAT_PROCESS_IND,
1117       ADMIN_ONLY_IND,
1118       GRADING_PERIOD_CD,
1119       REPEAT_GRADE,
1120       attribute_category,
1121       attribute1,
1122       attribute2,
1123       attribute3,
1124       attribute4,
1125       attribute5,
1126       attribute6,
1127       attribute7,
1128       attribute8,
1129       attribute9,
1130       attribute10,
1131       attribute11,
1132       attribute12,
1133       attribute13,
1134       attribute14,
1135       attribute15,
1136       attribute16,
1137       attribute17,
1138       attribute18,
1139       attribute19,
1140       attribute20,
1141       closed_ind
1142     from IGS_AS_GRD_SCH_GRADE
1143     where ROWID = X_ROWID  for update  nowait;
1144   tlinfo c1%rowtype;
1145 begin
1146   open c1;
1147   fetch c1 into tlinfo;
1148   if (c1%notfound) then
1149     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
1150     IGS_GE_MSG_STACK.ADD;
1151     APP_EXCEPTION.RAISE_EXCEPTION;
1152     close c1;
1153     return;
1154   end if;
1155   close c1;
1156   if ( (tlinfo.FULL_GRADE_NAME = X_FULL_GRADE_NAME)
1157       AND (tlinfo.S_RESULT_TYPE = X_S_RESULT_TYPE)
1158       AND (tlinfo.SHOW_ON_NOTICEBOARD_IND = X_SHOW_ON_NOTICEBOARD_IND)
1159       AND (tlinfo.SHOW_ON_OFFICIAL_NTFCTN_IND = X_SHOW_ON_OFFICIAL_NTFCTN_IND)
1160       AND ((tlinfo.S_SPECIAL_GRADE_TYPE = X_S_SPECIAL_GRADE_TYPE) OR ((tlinfo.S_SPECIAL_GRADE_TYPE is null) AND (X_S_SPECIAL_GRADE_TYPE is null)))
1161       AND ((tlinfo.SHOW_IN_NEWSPAPER_IND = X_SHOW_IN_NEWSPAPER_IND)  or (( tlinfo.SHOW_IN_NEWSPAPER_IND is null ) AND ( X_SHOW_IN_NEWSPAPER_IND is null )))
1162       AND ((tlinfo.SHOW_INTERNALLY_IND = X_SHOW_INTERNALLY_IND)  or (( tlinfo.SHOW_INTERNALLY_IND is null ) AND ( X_SHOW_INTERNALLY_IND is null )))
1163       AND ((tlinfo.SYSTEM_ONLY_IND = X_SYSTEM_ONLY_IND)  or (( tlinfo.SYSTEM_ONLY_IND is null ) AND ( X_SYSTEM_ONLY_IND is null )))
1164       AND ((tlinfo.DFLT_OUTSTANDING_IND = X_DFLT_OUTSTANDING_IND) or (( tlinfo.DFLT_OUTSTANDING_IND is null ) AND ( X_DFLT_OUTSTANDING_IND is null )))
1165       AND ((tlinfo.EXTERNAL_GRADE = X_EXTERNAL_GRADE) OR ((tlinfo.EXTERNAL_GRADE is null) AND (X_EXTERNAL_GRADE is null)))
1166       AND ((tlinfo.LOWER_MARK_RANGE = X_LOWER_MARK_RANGE) OR ((tlinfo.LOWER_MARK_RANGE is null) AND (X_LOWER_MARK_RANGE is null)))
1167       AND ((tlinfo.UPPER_MARK_RANGE = X_UPPER_MARK_RANGE) OR ((tlinfo.UPPER_MARK_RANGE is null) AND (X_UPPER_MARK_RANGE is null)))
1168       AND ((tlinfo.MIN_PERCENTAGE = X_MIN_PERCENTAGE) OR ((tlinfo.MIN_PERCENTAGE is null) AND (X_MIN_PERCENTAGE is null)))
1169       AND ((tlinfo.MAX_PERCENTAGE = X_MAX_PERCENTAGE) OR ((tlinfo.MAX_PERCENTAGE is null) AND (X_MAX_PERCENTAGE is null)))
1170       AND ((tlinfo.GPA_VAL = X_GPA_VAL)  OR ((tlinfo.GPA_VAL is null)               AND (X_GPA_VAL is null)))
1171       AND ((tlinfo.RANK = X_RANK) OR (( tlinfo.RANK is null ) AND (X_RANK is null )))
1172       AND ((tlinfo.INCL_IN_REPEAT_PROCESS_IND = X_INCL_IN_REPEAT_PROCESS_IND) OR ((tlinfo.INCL_IN_REPEAT_PROCESS_IND is null)     AND (X_INCL_IN_REPEAT_PROCESS_IND is null)))
1173       AND ((tlinfo.ADMIN_ONLY_IND = X_ADMIN_ONLY_IND) OR ((tlinfo.ADMIN_ONLY_IND is null)     AND (X_ADMIN_ONLY_IND is null)))
1174       AND ((tlinfo.GRADING_PERIOD_CD = X_GRADING_PERIOD_CD) OR ((tlinfo.GRADING_PERIOD_CD is null)     AND (X_GRADING_PERIOD_CD is null)))
1175       AND ((tlinfo.REPEAT_GRADE = X_REPEAT_GRADE) OR ((tlinfo.REPEAT_GRADE is null)     AND (X_REPEAT_GRADE is null)))
1176       AND ((tlinfo.attribute_category = x_attribute_category) OR ((tlinfo.attribute_category IS NULL) AND (x_attribute_category IS NULL)))
1177       AND ((tlinfo.attribute1 = x_attribute1) OR ((tlinfo.attribute1 IS NULL) AND (x_attribute1 IS NULL)))
1178       AND ((tlinfo.attribute2 = x_attribute2) OR ((tlinfo.attribute2 IS NULL) AND (x_attribute2 IS NULL)))
1179       AND ((tlinfo.attribute3 = x_attribute3) OR ((tlinfo.attribute3 IS NULL) AND (x_attribute3 IS NULL)))
1180       AND ((tlinfo.attribute4 = x_attribute4) OR ((tlinfo.attribute4 IS NULL) AND (x_attribute4 IS NULL)))
1181       AND ((tlinfo.attribute5 = x_attribute5) OR ((tlinfo.attribute5 IS NULL) AND (x_attribute5 IS NULL)))
1182       AND ((tlinfo.attribute6 = x_attribute6) OR ((tlinfo.attribute6 IS NULL) AND (x_attribute6 IS NULL)))
1183       AND ((tlinfo.attribute7 = x_attribute7) OR ((tlinfo.attribute7 IS NULL) AND (x_attribute7 IS NULL)))
1184       AND ((tlinfo.attribute8 = x_attribute8) OR ((tlinfo.attribute8 IS NULL) AND (x_attribute8 IS NULL)))
1185       AND ((tlinfo.attribute9 = x_attribute9) OR ((tlinfo.attribute9 IS NULL) AND (x_attribute9 IS NULL)))
1186       AND ((tlinfo.attribute10 = x_attribute10) OR ((tlinfo.attribute10 IS NULL) AND (x_attribute10 IS NULL)))
1187       AND ((tlinfo.attribute11 = x_attribute11) OR ((tlinfo.attribute11 IS NULL) AND (x_attribute11 IS NULL)))
1188       AND ((tlinfo.attribute12 = x_attribute12) OR ((tlinfo.attribute12 IS NULL) AND (x_attribute12 IS NULL)))
1189       AND ((tlinfo.attribute13 = x_attribute13) OR ((tlinfo.attribute13 IS NULL) AND (x_attribute13 IS NULL)))
1190      AND ((tlinfo.attribute14 = x_attribute14)  OR ((tlinfo.attribute14 IS NULL) AND (x_attribute14 IS NULL)))
1191      AND ((tlinfo.attribute15 = x_attribute15)  OR ((tlinfo.attribute15 IS NULL) AND (x_attribute15 IS NULL)))
1192      AND ((tlinfo.attribute16 = x_attribute16)  OR ((tlinfo.attribute16 IS NULL) AND (x_attribute16 IS NULL)))
1193      AND ((tlinfo.attribute17 = x_attribute17)  OR ((tlinfo.attribute17 IS NULL) AND (x_attribute17 IS NULL)))
1194      AND ((tlinfo.attribute18 = x_attribute18)  OR ((tlinfo.attribute18 IS NULL) AND (x_attribute18 IS NULL)))
1195      AND ((tlinfo.attribute19 = x_attribute19)  OR ((tlinfo.attribute19 IS NULL) AND (x_attribute19 IS NULL)))
1196      AND ((tlinfo.attribute20 = x_attribute20)  OR ((tlinfo.attribute20 IS NULL) AND (x_attribute20 IS NULL)))
1197      AND ((tlinfo.closed_ind = x_closed_ind)  OR ((tlinfo.closed_ind IS NULL) AND (x_closed_ind IS NULL)))
1198      ) then
1199     null;
1200   else
1201     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
1202     IGS_GE_MSG_STACK.ADD;
1203     APP_EXCEPTION.RAISE_EXCEPTION;
1204   end if;
1205   return;
1206 end LOCK_ROW;
1207 procedure UPDATE_ROW (
1208   X_ROWID in  VARCHAR2,
1209   X_GRADING_SCHEMA_CD in VARCHAR2,
1210   X_VERSION_NUMBER in NUMBER,
1211   X_GRADE in VARCHAR2,
1212   X_FULL_GRADE_NAME in VARCHAR2,
1213   X_S_RESULT_TYPE in VARCHAR2,
1214   X_SHOW_ON_NOTICEBOARD_IND in VARCHAR2,
1215   X_SHOW_ON_OFFICIAL_NTFCTN_IND in VARCHAR2,
1216   X_S_SPECIAL_GRADE_TYPE in VARCHAR2,
1217   X_SHOW_IN_NEWSPAPER_IND in VARCHAR2,
1218   X_SHOW_INTERNALLY_IND in VARCHAR2,
1219   X_SYSTEM_ONLY_IND in VARCHAR2,
1220   X_DFLT_OUTSTANDING_IND in VARCHAR2,
1221   X_EXTERNAL_GRADE in VARCHAR2,
1222   X_LOWER_MARK_RANGE in NUMBER,
1223   X_UPPER_MARK_RANGE in NUMBER,
1224   X_MIN_PERCENTAGE in NUMBER,
1225   X_MAX_PERCENTAGE in NUMBER,
1226   X_GPA_VAL in NUMBER,
1227   X_RANK in NUMBER,
1228   X_SHOW_IN_EARNED_CRDT_IND in VARCHAR2,
1229   X_INCL_IN_REPEAT_PROCESS_IND in VARCHAR2,
1230   X_ADMIN_ONLY_IND in VARCHAR2,
1231   X_GRADING_PERIOD_CD in VARCHAR2,
1232   X_REPEAT_GRADE in VARCHAR2,
1233   x_attribute_category IN VARCHAR2,
1234   x_attribute1 IN VARCHAR2,
1235   x_attribute2 IN VARCHAR2,
1236   x_attribute3 IN VARCHAR2,
1237   x_attribute4 IN VARCHAR2,
1238   x_attribute5 IN VARCHAR2,
1239   x_attribute6 IN VARCHAR2,
1240   x_attribute7 IN VARCHAR2,
1241   x_attribute8 IN VARCHAR2,
1242   x_attribute9 IN VARCHAR2,
1243   x_attribute10 IN VARCHAR2,
1244   x_attribute11 IN VARCHAR2,
1245   x_attribute12 IN VARCHAR2,
1246   x_attribute13 IN VARCHAR2,
1247   x_attribute14 IN VARCHAR2,
1248   x_attribute15 IN VARCHAR2,
1249   x_attribute16 IN VARCHAR2,
1250   x_attribute17 IN VARCHAR2,
1251   x_attribute18 IN VARCHAR2,
1252   x_attribute19 IN VARCHAR2,
1253   x_attribute20 IN VARCHAR2,
1254   X_MODE in VARCHAR2 default 'R',
1255   x_closed_ind In VARCHAR2 default 'N'
1256   ) AS
1257     X_LAST_UPDATE_DATE DATE;
1258     X_LAST_UPDATED_BY NUMBER;
1259     X_LAST_UPDATE_LOGIN NUMBER;
1260 begin
1261   X_LAST_UPDATE_DATE := SYSDATE;
1262   if(X_MODE = 'I') then
1263     X_LAST_UPDATED_BY := 1;
1264     X_LAST_UPDATE_LOGIN := 0;
1265   elsif (X_MODE = 'R') then
1266     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1267     if X_LAST_UPDATED_BY is NULL then
1268       X_LAST_UPDATED_BY := -1;
1269     end if;
1270     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
1271     if X_LAST_UPDATE_LOGIN is NULL then
1272       X_LAST_UPDATE_LOGIN := -1;
1273     end if;
1274   else
1275     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
1276     IGS_GE_MSG_STACK.ADD;
1277     APP_EXCEPTION.RAISE_EXCEPTION;
1278   end if;
1279 Before_DML(
1280  p_action=>'UPDATE',
1281  x_rowid=>X_ROWID,
1282  x_dflt_outstanding_ind=>X_DFLT_OUTSTANDING_IND,
1283  x_external_grade=>X_EXTERNAL_GRADE,
1284  x_full_grade_name=>X_FULL_GRADE_NAME,
1285  x_gpa_val=>X_GPA_VAL,
1286  x_grade=>X_GRADE,
1287  x_grading_schema_cd=>X_GRADING_SCHEMA_CD,
1288  x_lower_mark_range=>X_LOWER_MARK_RANGE,
1289  x_max_percentage=>X_MAX_PERCENTAGE,
1290  x_min_percentage=>X_MIN_PERCENTAGE,
1291  x_rank=>X_RANK,
1292  x_s_result_type=>X_S_RESULT_TYPE,
1293  x_s_special_grade_type=>X_S_SPECIAL_GRADE_TYPE,
1294  x_show_in_newspaper_ind=>X_SHOW_IN_NEWSPAPER_IND,
1295  x_show_internally_ind=>X_SHOW_INTERNALLY_IND,
1296  x_show_on_noticeboard_ind=>X_SHOW_ON_NOTICEBOARD_IND,
1297  x_show_on_official_ntfctn_ind=>X_SHOW_ON_OFFICIAL_NTFCTN_IND,
1298  x_system_only_ind=>X_SYSTEM_ONLY_IND,
1299  x_upper_mark_range=>X_UPPER_MARK_RANGE,
1300  x_version_number=>X_VERSION_NUMBER,
1301  x_show_in_earned_crdt_ind => X_SHOW_IN_EARNED_CRDT_IND,
1302  x_incl_in_repeat_process_ind => X_INCL_IN_REPEAT_PROCESS_IND,
1303  x_admin_only_ind => X_ADMIN_ONLY_IND,
1304  x_grading_period_cd => X_GRADING_PERIOD_CD,
1305  x_repeat_grade => X_REPEAT_GRADE ,
1306  x_attribute_category=>x_attribute_category,
1307  x_attribute1=>x_attribute1,
1308  x_attribute2=>x_attribute2,
1309  x_attribute3=>x_attribute3,
1310  x_attribute4=>x_attribute4,
1311  x_attribute5=>x_attribute5,
1312  x_attribute6=>x_attribute6,
1313  x_attribute7=>x_attribute7,
1314  x_attribute8=>x_attribute8,
1315  x_attribute9=>x_attribute9,
1316  x_attribute10=>x_attribute10,
1317  x_attribute11=>x_attribute11,
1318  x_attribute12=>x_attribute12,
1319  x_attribute13=>x_attribute13,
1320  x_attribute14=>x_attribute14,
1321  x_attribute15=>x_attribute15,
1322  x_attribute16=>x_attribute16,
1323  x_attribute17=>x_attribute17,
1324  x_attribute18=>x_attribute18,
1325  x_attribute19=>x_attribute19,
1326  x_attribute20=>x_attribute20,
1327  x_creation_date=>X_LAST_UPDATE_DATE,
1328  x_created_by=>X_LAST_UPDATED_BY,
1329  x_last_update_date=>X_LAST_UPDATE_DATE,
1330  x_last_updated_by=>X_LAST_UPDATED_BY,
1331  x_last_update_login=>X_LAST_UPDATE_LOGIN,
1332  x_closed_ind =>  x_closed_ind
1333  );
1334   update IGS_AS_GRD_SCH_GRADE set
1335     FULL_GRADE_NAME = NEW_REFERENCES.FULL_GRADE_NAME,
1336     S_RESULT_TYPE = NEW_REFERENCES.S_RESULT_TYPE,
1337     SHOW_ON_NOTICEBOARD_IND = NEW_REFERENCES.SHOW_ON_NOTICEBOARD_IND,
1338     SHOW_ON_OFFICIAL_NTFCTN_IND = NEW_REFERENCES.SHOW_ON_OFFICIAL_NTFCTN_IND,
1339     S_SPECIAL_GRADE_TYPE = NEW_REFERENCES.S_SPECIAL_GRADE_TYPE,
1340     SHOW_IN_NEWSPAPER_IND = NEW_REFERENCES.SHOW_IN_NEWSPAPER_IND,
1341     SHOW_INTERNALLY_IND = NEW_REFERENCES.SHOW_INTERNALLY_IND,
1342     SYSTEM_ONLY_IND = NEW_REFERENCES.SYSTEM_ONLY_IND,
1343     DFLT_OUTSTANDING_IND = NEW_REFERENCES.DFLT_OUTSTANDING_IND,
1344     EXTERNAL_GRADE = NEW_REFERENCES.EXTERNAL_GRADE,
1345     LOWER_MARK_RANGE = NEW_REFERENCES.LOWER_MARK_RANGE,
1346     UPPER_MARK_RANGE = NEW_REFERENCES.UPPER_MARK_RANGE,
1347     MIN_PERCENTAGE = NEW_REFERENCES.MIN_PERCENTAGE,
1348     MAX_PERCENTAGE = NEW_REFERENCES.MAX_PERCENTAGE,
1349     GPA_VAL = NEW_REFERENCES.GPA_VAL,
1350     RANK = NEW_REFERENCES.RANK,
1351     SHOW_IN_EARNED_CRDT_IND = NEW_REFERENCES.SHOW_IN_EARNED_CRDT_IND,
1352     INCL_IN_REPEAT_PROCESS_IND = NEW_REFERENCES.INCL_IN_REPEAT_PROCESS_IND,
1353     ADMIN_ONLY_IND = NEW_REFERENCES.ADMIN_ONLY_IND,
1354     GRADING_PERIOD_CD = NEW_REFERENCES.GRADING_PERIOD_CD,
1355     REPEAT_GRADE = NEW_REFERENCES.REPEAT_GRADE,
1356     attribute_category =  new_references.attribute_category,
1357     attribute1 =  new_references.attribute1,
1358     attribute2 =  new_references.attribute2,
1359     attribute3 =  new_references.attribute3,
1360     attribute4 =  new_references.attribute4,
1361     attribute5 =  new_references.attribute5,
1362     attribute6 =  new_references.attribute6,
1363     attribute7 =  new_references.attribute7,
1364     attribute8 =  new_references.attribute8,
1365     attribute9 =  new_references.attribute9,
1366     attribute10 =  new_references.attribute10,
1367     attribute11 =  new_references.attribute11,
1368     attribute12 =  new_references.attribute12,
1369     attribute13 =  new_references.attribute13,
1370     attribute14 =  new_references.attribute14,
1371     attribute15 =  new_references.attribute15,
1372     attribute16 =  new_references.attribute16,
1373     attribute17 =  new_references.attribute17,
1374     attribute18 =  new_references.attribute18,
1375     attribute19 =  new_references.attribute19,
1376     attribute20 =  new_references.attribute20,
1377     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
1378     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
1379     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
1380     closed_ind = x_closed_ind
1381   where ROWID = X_ROWID;
1382   if (sql%notfound) then
1383     raise no_data_found;
1384   end if;
1385 After_DML(
1386   p_action => 'UPDATE',
1387   x_rowid => X_ROWID
1388   );
1389 end UPDATE_ROW;
1390 procedure ADD_ROW (
1391   X_ROWID in out NOCOPY VARCHAR2,
1392   X_GRADING_SCHEMA_CD in VARCHAR2,
1393   X_VERSION_NUMBER in NUMBER,
1394   X_GRADE in VARCHAR2,
1395   X_FULL_GRADE_NAME in VARCHAR2,
1396   X_S_RESULT_TYPE in VARCHAR2,
1397   X_SHOW_ON_NOTICEBOARD_IND in VARCHAR2,
1398   X_SHOW_ON_OFFICIAL_NTFCTN_IND in VARCHAR2,
1399   X_S_SPECIAL_GRADE_TYPE in VARCHAR2,
1400   X_SHOW_IN_NEWSPAPER_IND in VARCHAR2,
1401   X_SHOW_INTERNALLY_IND in VARCHAR2,
1402   X_SYSTEM_ONLY_IND in VARCHAR2,
1403   X_DFLT_OUTSTANDING_IND in VARCHAR2,
1404   X_EXTERNAL_GRADE in VARCHAR2,
1405   X_LOWER_MARK_RANGE in NUMBER,
1406   X_UPPER_MARK_RANGE in NUMBER,
1407   X_MIN_PERCENTAGE in NUMBER,
1408   X_MAX_PERCENTAGE in NUMBER,
1409   X_GPA_VAL in NUMBER,
1410   X_RANK in NUMBER,
1411   X_SHOW_IN_EARNED_CRDT_IND in VARCHAR2,
1412   X_INCL_IN_REPEAT_PROCESS_IND in VARCHAR2,
1413   X_ADMIN_ONLY_IND in VARCHAR2,
1414   X_GRADING_PERIOD_CD in VARCHAR2,
1415   X_REPEAT_GRADE in VARCHAR2,
1416     x_attribute_category IN VARCHAR2,
1417   x_attribute1 IN VARCHAR2,
1418   x_attribute2 IN VARCHAR2,
1419   x_attribute3 IN VARCHAR2,
1420   x_attribute4 IN VARCHAR2,
1421   x_attribute5 IN VARCHAR2,
1422   x_attribute6 IN VARCHAR2,
1423   x_attribute7 IN VARCHAR2,
1424   x_attribute8 IN VARCHAR2,
1425   x_attribute9 IN VARCHAR2,
1426   x_attribute10 IN VARCHAR2,
1427   x_attribute11 IN VARCHAR2,
1428   x_attribute12 IN VARCHAR2,
1429   x_attribute13 IN VARCHAR2,
1430   x_attribute14 IN VARCHAR2,
1431   x_attribute15 IN VARCHAR2,
1432   x_attribute16 IN VARCHAR2,
1433   x_attribute17 IN VARCHAR2,
1434   x_attribute18 IN VARCHAR2,
1435   x_attribute19 IN VARCHAR2,
1436   x_attribute20 IN VARCHAR2,
1437   X_MODE in VARCHAR2 default 'R',
1438   x_closed_ind IN VARCHAR2 default 'N'
1439   ) AS
1440   cursor c1 is select rowid from IGS_AS_GRD_SCH_GRADE
1441      where GRADING_SCHEMA_CD = X_GRADING_SCHEMA_CD
1442      and VERSION_NUMBER = X_VERSION_NUMBER
1443      and GRADE = X_GRADE
1444   ;
1445 begin
1446   open c1;
1447   fetch c1 into X_ROWID;
1448   if (c1%notfound) then
1449     close c1;
1450     INSERT_ROW (
1451      X_ROWID,
1452      X_GRADING_SCHEMA_CD,
1453      X_VERSION_NUMBER,
1454      X_GRADE,
1455      X_FULL_GRADE_NAME,
1456      X_S_RESULT_TYPE,
1457      X_SHOW_ON_NOTICEBOARD_IND,
1458      X_SHOW_ON_OFFICIAL_NTFCTN_IND,
1459      X_S_SPECIAL_GRADE_TYPE,
1460      X_SHOW_IN_NEWSPAPER_IND,
1461      X_SHOW_INTERNALLY_IND,
1462      X_SYSTEM_ONLY_IND,
1463      X_DFLT_OUTSTANDING_IND,
1464      X_EXTERNAL_GRADE,
1465      X_LOWER_MARK_RANGE,
1466      X_UPPER_MARK_RANGE,
1467      X_MIN_PERCENTAGE,
1468      X_MAX_PERCENTAGE,
1469      X_GPA_VAL,
1470      X_RANK,
1471      X_SHOW_IN_EARNED_CRDT_IND,
1472      X_INCL_IN_REPEAT_PROCESS_IND,
1473      X_ADMIN_ONLY_IND,
1474      X_GRADING_PERIOD_CD,
1475      X_REPEAT_GRADE,
1476      x_attribute_category,
1477      x_attribute1,
1478      x_attribute2,
1479      x_attribute3,
1480      x_attribute4,
1481      x_attribute5,
1482      x_attribute6,
1483      x_attribute7,
1484      x_attribute8,
1485      x_attribute9,
1486      x_attribute10,
1487      x_attribute11,
1488      x_attribute12,
1489      x_attribute13,
1490      x_attribute14,
1491      x_attribute15,
1492      x_attribute16,
1493      x_attribute17,
1494      x_attribute18,
1495      x_attribute19,
1496      x_attribute20,
1497      X_MODE,
1498      x_closed_ind);
1499     return;
1500   end if;
1501   close c1;
1502   UPDATE_ROW (
1503    X_ROWID,
1504    X_GRADING_SCHEMA_CD,
1505    X_VERSION_NUMBER,
1506    X_GRADE,
1507    X_FULL_GRADE_NAME,
1508    X_S_RESULT_TYPE,
1509    X_SHOW_ON_NOTICEBOARD_IND,
1510    X_SHOW_ON_OFFICIAL_NTFCTN_IND,
1511    X_S_SPECIAL_GRADE_TYPE,
1512    X_SHOW_IN_NEWSPAPER_IND,
1513    X_SHOW_INTERNALLY_IND,
1514    X_SYSTEM_ONLY_IND,
1515    X_DFLT_OUTSTANDING_IND,
1516    X_EXTERNAL_GRADE,
1517    X_LOWER_MARK_RANGE,
1518    X_UPPER_MARK_RANGE,
1519    X_MIN_PERCENTAGE,
1520    X_MAX_PERCENTAGE,
1521    X_GPA_VAL,
1522    X_RANK,
1523    X_SHOW_IN_EARNED_CRDT_IND ,
1524    X_INCL_IN_REPEAT_PROCESS_IND ,
1525    X_ADMIN_ONLY_IND ,
1526    X_GRADING_PERIOD_CD,
1527    X_REPEAT_GRADE ,
1528    x_attribute_category,
1529    x_attribute1,
1530    x_attribute2,
1531    x_attribute3,
1532    x_attribute4,
1533    x_attribute5,
1534    x_attribute6,
1535    x_attribute7,
1536    x_attribute8,
1537    x_attribute9,
1538    x_attribute10,
1539    x_attribute11,
1540    x_attribute12,
1541    x_attribute13,
1542    x_attribute14,
1543    x_attribute15,
1544    x_attribute16,
1545    x_attribute17,
1546    x_attribute18,
1547    x_attribute19,
1548    x_attribute20,
1549    X_MODE,
1550    x_closed_ind);
1551 end ADD_ROW;
1552 
1553 end IGS_AS_GRD_SCH_GRADE_PKG;