DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AS_ENTRY_CONF_PKG

Source


1 PACKAGE BODY igs_as_entry_conf_pkg AS
2 /* $Header: IGSDI46B.pls 115.11 2003/12/05 11:02:13 kdande ship $ */
3   l_rowid        VARCHAR2 (25);
4   old_references igs_as_entry_conf%ROWTYPE;
5   new_references igs_as_entry_conf%ROWTYPE;
6 
7   PROCEDURE set_column_values (
8     p_action                       IN     VARCHAR2,
9     x_rowid                        IN     VARCHAR2,
10     x_s_control_num                IN     NUMBER,
11     x_key_allow_invalid_ind        IN     VARCHAR2,
12     x_key_collect_mark_ind         IN     VARCHAR2,
13     x_key_grade_derive_ind         IN     VARCHAR2,
14     x_key_mark_mndtry_ind          IN     VARCHAR2,
15     x_upld_person_no_exist         IN     VARCHAR2,
16     x_upld_crs_not_enrolled        IN     VARCHAR2,
17     x_upld_unit_not_enrolled       IN     VARCHAR2,
18     x_upld_unit_discont            IN     VARCHAR2,
19     x_upld_grade_invalid           IN     VARCHAR2,
20     x_upld_mark_grade_invalid      IN     VARCHAR2,
21     x_key_mark_entry_dec_points    IN     NUMBER,
22     x_creation_date                IN     DATE,
23     x_created_by                   IN     NUMBER,
24     x_last_update_date             IN     DATE,
25     x_last_updated_by              IN     NUMBER,
26     x_last_update_login            IN     NUMBER,
27     x_key_prtl_sbmn_allowed_ind    IN     VARCHAR2,
28     x_upld_ug_sbmtd_grade_exist    IN     VARCHAR2,
29     x_upld_ug_saved_grade_exist    IN     VARCHAR2,
30     x_upld_asmnt_item_not_exist    IN     VARCHAR2,
31     x_upld_asmnt_item_grd_exist    IN     VARCHAR2,
32     x_key_derive_unit_grade_flag   IN     VARCHAR2,
33     x_key_allow_inst_finalize_flag IN     VARCHAR2,
34     x_key_ai_collect_mark_flag     IN     VARCHAR2,
35     x_key_ai_mark_mndtry_flag      IN     VARCHAR2,
36     x_key_ai_grade_derive_flag     IN     VARCHAR2,
37     x_key_ai_allow_invalid_flag    IN     VARCHAR2,
38     x_key_ai_mark_entry_dec_points IN     NUMBER
39   ) AS
40     CURSOR cur_old_ref_values IS
41       SELECT *
42       FROM   igs_as_entry_conf
43       WHERE  ROWID = x_rowid;
44   BEGIN
45     l_rowid := x_rowid;
46     -- Code for setting the Old and New Reference Values.
47     -- Populate Old Values.
48     OPEN cur_old_ref_values;
49     FETCH cur_old_ref_values INTO old_references;
50     IF  (cur_old_ref_values%NOTFOUND)
51         AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
52       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
53       igs_ge_msg_stack.ADD;
54       CLOSE cur_old_ref_values;
55       app_exception.raise_exception;
56       RETURN;
57     END IF;
58     CLOSE cur_old_ref_values;
59     -- Populate New Values.
60     new_references.s_control_num := x_s_control_num;
61     new_references.key_allow_invalid_ind := x_key_allow_invalid_ind;
62     new_references.key_collect_mark_ind := x_key_collect_mark_ind;
63     new_references.key_grade_derive_ind := x_key_grade_derive_ind;
64     new_references.key_mark_mndtry_ind := x_key_mark_mndtry_ind;
65     new_references.upld_person_no_exist := x_upld_person_no_exist;
66     new_references.upld_crs_not_enrolled := x_upld_crs_not_enrolled;
67     new_references.upld_unit_not_enrolled := x_upld_unit_not_enrolled;
68     new_references.upld_unit_discont := x_upld_unit_discont;
69     new_references.upld_grade_invalid := x_upld_grade_invalid;
70     new_references.upld_mark_grade_invalid := x_upld_mark_grade_invalid;
71     new_references.key_mark_entry_dec_points := x_key_mark_entry_dec_points;
72     new_references.key_prtl_sbmn_allowed_ind := x_key_prtl_sbmn_allowed_ind;
73     new_references.upld_ug_sbmtd_grade_exist := x_upld_ug_sbmtd_grade_exist;
74     new_references.upld_ug_saved_grade_exist := x_upld_ug_saved_grade_exist;
75     new_references.upld_asmnt_item_not_exist := x_upld_asmnt_item_not_exist;
76     new_references.upld_asmnt_item_grd_exist := x_upld_asmnt_item_grd_exist;
77     new_references.key_derive_unit_grade_flag := x_key_derive_unit_grade_flag;
78     new_references.key_allow_inst_finalize_flag := x_key_allow_inst_finalize_flag;
79     new_references.key_ai_collect_mark_flag := x_key_ai_collect_mark_flag;
80     new_references.key_ai_mark_mndtry_flag := x_key_ai_mark_mndtry_flag;
81     new_references.key_ai_grade_derive_flag := x_key_ai_grade_derive_flag;
82     new_references.key_ai_allow_invalid_flag := x_key_ai_allow_invalid_flag;
83     new_references.key_ai_mark_entry_dec_points := x_key_ai_mark_entry_dec_points;
84     IF (p_action = 'UPDATE') THEN
85       new_references.creation_date := old_references.creation_date;
86       new_references.created_by := old_references.created_by;
87     ELSE
88       new_references.creation_date := x_creation_date;
89       new_references.created_by := x_created_by;
90     END IF;
91     new_references.last_update_date := x_last_update_date;
92     new_references.last_updated_by := x_last_updated_by;
93     new_references.last_update_login := x_last_update_login;
94   END set_column_values;
95 
96   FUNCTION get_pk_for_validation (x_s_control_num IN NUMBER)
97     RETURN BOOLEAN AS
98     CURSOR cur_rowid IS
99       SELECT     ROWID
100       FROM       igs_as_entry_conf
101       WHERE      s_control_num = x_s_control_num
102       FOR UPDATE NOWAIT;
103     lv_rowid cur_rowid%ROWTYPE;
104   BEGIN
105     OPEN cur_rowid;
106     FETCH cur_rowid INTO lv_rowid;
107     IF (cur_rowid%FOUND) THEN
108       CLOSE cur_rowid;
109       RETURN (TRUE);
110     ELSE
111       CLOSE cur_rowid;
112       RETURN (FALSE);
113     END IF;
114   END get_pk_for_validation;
115 
116   PROCEDURE check_constraints (column_name IN VARCHAR2, column_value IN VARCHAR2) AS
117   BEGIN
118     IF column_name IS NULL THEN
119       NULL;
120     ELSIF UPPER (column_name) = 'KEY_ALLOW_INVALID_IND' THEN
121       new_references.key_allow_invalid_ind := column_value;
122     ELSIF UPPER (column_name) = 'KEY_COLLECT_MARK_IND' THEN
123       new_references.key_collect_mark_ind := column_value;
124     ELSIF UPPER (column_name) = 'KEY_GRADE_DERIVE_IND' THEN
125       new_references.key_grade_derive_ind := column_value;
126     ELSIF UPPER (column_name) = 'KEY_MARK_MNDTRY_IND' THEN
127       new_references.key_mark_mndtry_ind := column_value;
128     ELSIF UPPER (column_name) = 'UPLD_CRS_NOT_ENROLLED' THEN
129       new_references.upld_crs_not_enrolled := column_value;
130     ELSIF UPPER (column_name) = 'UPLD_GRADE_INVALID' THEN
131       new_references.upld_grade_invalid := column_value;
132     ELSIF UPPER (column_name) = 'UPLD_MARK_GRADE_INVALID' THEN
133       new_references.upld_mark_grade_invalid := column_value;
134     ELSIF UPPER (column_name) = 'UPLD_PERSON_NO_EXIST' THEN
135       new_references.upld_person_no_exist := column_value;
136     ELSIF UPPER (column_name) = 'UPLD_UNIT_DISCONT' THEN
137       new_references.upld_unit_discont := column_value;
138     ELSIF UPPER (column_name) = 'UPLD_UNIT_NOT_ENROLLED' THEN
139       new_references.upld_unit_not_enrolled := column_value;
140     ELSIF UPPER (column_name) = 'S_CONTROL_NUM' THEN
141       new_references.s_control_num := igs_ge_number.to_num (column_value);
142     ELSIF UPPER (column_name) = 'KEY_PRTL_SBMN_ALLOWED_IND' THEN
143       new_references.key_prtl_sbmn_allowed_ind := column_value;
144     ELSIF UPPER (column_name) = 'UPLD_UG_SBMTD_GRADE_EXIST' THEN
145       new_references.upld_ug_sbmtd_grade_exist := column_value;
146     ELSIF UPPER (column_name) = 'UPLD_UG_SAVED_GRADE_EXIST' THEN
147       new_references.upld_ug_saved_grade_exist := column_value;
148     ELSIF UPPER (column_name) = 'UPLD_ASMNT_ITEM_NOT_EXIST' THEN
149       new_references.upld_asmnt_item_not_exist := column_value;
150     ELSIF UPPER (column_name) = 'UPLD_ASMNT_ITEM_GRD_EXIST' THEN
151       new_references.upld_asmnt_item_grd_exist := column_value;
152     ELSIF UPPER (column_name) = 'KEY_DERIVE_UNIT_GRADE_FLAG' THEN
153       new_references.key_derive_unit_grade_flag := column_value;
154     ELSIF UPPER (column_name) = 'KEY_ALLOW_INST_FINALIZE_FLAG' THEN
155       new_references.key_allow_inst_finalize_flag := column_value;
156     ELSIF UPPER (column_name) = 'KEY_AI_COLLECT_MARK_FLAG' THEN
157       new_references.key_ai_collect_mark_flag := column_value;
158     ELSIF UPPER (column_name) = 'KEY_AI_MARK_MNDTRY_FLAG' THEN
159       new_references.key_ai_mark_mndtry_flag := column_value;
160     ELSIF UPPER (column_name) = 'KEY_AI_GRADE_DERIVE_FLAG' THEN
161       new_references.key_ai_grade_derive_flag := column_value;
162     ELSIF UPPER (column_name) = 'KEY_AI_ALLOW_INVALID_FLAG' THEN
163       new_references.key_ai_allow_invalid_flag := column_value;
164     END IF;
165     IF UPPER (column_name) = 'KEY_ALLOW_INVALID_IND'
166        OR column_name IS NULL THEN
167       IF new_references.key_allow_invalid_ind <> UPPER (new_references.key_allow_invalid_ind)
168          OR new_references.key_allow_invalid_ind NOT IN ('Y', 'N') THEN
169         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
170         igs_ge_msg_stack.ADD;
171         app_exception.raise_exception;
172       END IF;
173     END IF;
174     IF UPPER (column_name) = 'KEY_COLLECT_MARK_IND'
175        OR column_name IS NULL THEN
176       IF new_references.key_collect_mark_ind <> UPPER (new_references.key_collect_mark_ind)
177          OR new_references.key_collect_mark_ind NOT IN ('Y', 'N') THEN
178         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
179         igs_ge_msg_stack.ADD;
180         app_exception.raise_exception;
181       END IF;
182     END IF;
183     IF UPPER (column_name) = 'KEY_GRADE_DERIVE_IND'
184        OR column_name IS NULL THEN
185       IF new_references.key_grade_derive_ind <> UPPER (new_references.key_grade_derive_ind)
186          OR new_references.key_grade_derive_ind NOT IN ('Y', 'N') THEN
187         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
188         igs_ge_msg_stack.ADD;
189         app_exception.raise_exception;
190       END IF;
191     END IF;
192     IF UPPER (column_name) = 'KEY_MARK_MNDTRY_IND'
193        OR column_name IS NULL THEN
194       IF new_references.key_mark_mndtry_ind <> UPPER (new_references.key_mark_mndtry_ind)
195          OR new_references.key_mark_mndtry_ind NOT IN ('Y', 'N') THEN
196         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
197         igs_ge_msg_stack.ADD;
198         app_exception.raise_exception;
199       END IF;
200     END IF;
201     IF UPPER (column_name) = 'UPLD_CRS_NOT_ENROLLED'
202        OR column_name IS NULL THEN
203       IF new_references.upld_crs_not_enrolled <> UPPER (new_references.upld_crs_not_enrolled)
204          OR new_references.upld_crs_not_enrolled NOT IN ('A', 'D', 'H') THEN
205         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
206         igs_ge_msg_stack.ADD;
207         app_exception.raise_exception;
208       END IF;
209     END IF;
210     IF UPPER (column_name) = 'UPLD_GRADE_INVALID'
211        OR column_name IS NULL THEN
212       IF new_references.upld_grade_invalid <> UPPER (new_references.upld_grade_invalid)
213          OR new_references.upld_grade_invalid NOT IN ('D', 'A') THEN
214         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
215         igs_ge_msg_stack.ADD;
216         app_exception.raise_exception;
217       END IF;
218     END IF;
219     IF UPPER (column_name) = 'UPLD_MARK_GRADE_INVALID'
220        OR column_name IS NULL THEN
221       IF new_references.upld_mark_grade_invalid <> UPPER (new_references.upld_mark_grade_invalid)
222          OR new_references.upld_mark_grade_invalid NOT IN ('A', 'D', 'H', 'W') THEN
223         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
224         igs_ge_msg_stack.ADD;
225         app_exception.raise_exception;
226       END IF;
227     END IF;
228     IF UPPER (column_name) = 'UPLD_PERSON_NO_EXIST'
229        OR column_name IS NULL THEN
230       IF new_references.upld_person_no_exist <> UPPER (new_references.upld_person_no_exist)
231          OR new_references.upld_person_no_exist NOT IN ('A', 'D') THEN
232         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
233         igs_ge_msg_stack.ADD;
234         app_exception.raise_exception;
235       END IF;
236     END IF;
237     IF UPPER (column_name) = 'UPLD_UNIT_DISCONT'
238        OR column_name IS NULL THEN
239       IF new_references.upld_unit_discont <> UPPER (new_references.upld_unit_discont)
240          OR new_references.upld_unit_discont NOT IN ('D', 'A', 'H') THEN
241         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
242         igs_ge_msg_stack.ADD;
243         app_exception.raise_exception;
244       END IF;
245     END IF;
246     IF UPPER (column_name) = 'UPLD_UNIT_NOT_ENROLLED'
247        OR column_name IS NULL THEN
248       IF new_references.upld_unit_not_enrolled <> UPPER (new_references.upld_unit_not_enrolled)
249          OR new_references.upld_unit_not_enrolled NOT IN ('A', 'D', 'H') THEN
250         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
251         igs_ge_msg_stack.ADD;
252         app_exception.raise_exception;
253       END IF;
254     END IF;
255     IF UPPER (column_name) = 'S_CONTROL_NUM'
256        OR column_name IS NULL THEN
257       IF  new_references.s_control_num < 1
258           AND new_references.s_control_num > 1 THEN
259         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
260         igs_ge_msg_stack.ADD;
261         app_exception.raise_exception;
262       END IF;
263     END IF;
264     IF UPPER (column_name) = 'KEY_ALLOW_INVALID_IND'
268         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
265        OR column_name IS NULL THEN
266       IF new_references.key_allow_invalid_ind <> UPPER (new_references.key_allow_invalid_ind)
267          OR new_references.key_allow_invalid_ind NOT IN ('Y', 'N') THEN
269         igs_ge_msg_stack.ADD;
270         app_exception.raise_exception;
271       END IF;
272     END IF;
273     IF UPPER (column_name) = 'KEY_PRTL_SBMN_ALLOWED_IND'
274        OR column_name IS NULL THEN
275       IF new_references.key_prtl_sbmn_allowed_ind <> UPPER (new_references.key_prtl_sbmn_allowed_ind)
276          OR new_references.key_prtl_sbmn_allowed_ind NOT IN ('Y', 'N') THEN
277         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
278         igs_ge_msg_stack.ADD;
279         app_exception.raise_exception;
280       END IF;
281     END IF;
282     IF UPPER (column_name) = 'UPLD_UG_SBMTD_GRADE_EXIST'
283        OR column_name IS NULL THEN
284       IF new_references.upld_ug_sbmtd_grade_exist <> UPPER (new_references.upld_ug_sbmtd_grade_exist)
285          OR new_references.upld_ug_sbmtd_grade_exist NOT IN ('D', 'A') THEN
286         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
287         igs_ge_msg_stack.ADD;
288         app_exception.raise_exception;
289       END IF;
290     END IF;
291     IF UPPER (column_name) = 'UPLD_UG_SAVED_GRADE_EXIST'
292        OR column_name IS NULL THEN
293       IF new_references.upld_ug_saved_grade_exist <> UPPER (new_references.upld_ug_saved_grade_exist)
294          OR new_references.upld_ug_saved_grade_exist NOT IN ('D', 'A', 'W') THEN
295         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
296         igs_ge_msg_stack.ADD;
297         app_exception.raise_exception;
298       END IF;
299     END IF;
300     IF UPPER (column_name) = 'UPLD_ASMNT_ITEM_NOT_EXIST'
301        OR column_name IS NULL THEN
302       IF new_references.upld_asmnt_item_not_exist <> UPPER (new_references.upld_asmnt_item_not_exist)
303          OR new_references.upld_asmnt_item_not_exist NOT IN ('D', 'A') THEN
304         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
305         igs_ge_msg_stack.ADD;
306         app_exception.raise_exception;
307       END IF;
308     END IF;
309     IF UPPER (column_name) = 'UPLD_ASMNT_ITEM_GRD_EXIST'
310        OR column_name IS NULL THEN
311       IF new_references.upld_asmnt_item_grd_exist <> UPPER (new_references.upld_asmnt_item_grd_exist)
312          OR new_references.upld_asmnt_item_grd_exist NOT IN ('D', 'A', 'W') THEN
313         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
314         igs_ge_msg_stack.ADD;
315         app_exception.raise_exception;
316       END IF;
317     END IF;
318     IF UPPER (column_name) = 'KEY_DERIVE_UNIT_GRADE_FLAG'
319        OR column_name IS NULL THEN
320       IF new_references.key_derive_unit_grade_flag <> UPPER (new_references.key_derive_unit_grade_flag)
321          OR new_references.key_derive_unit_grade_flag NOT IN ('Y', 'N') THEN
322         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
323         igs_ge_msg_stack.ADD;
324         app_exception.raise_exception;
325       END IF;
326     END IF;
327     IF UPPER (column_name) = 'KEY_ALLOW_INST_FINALIZE_FLAG'
328        OR column_name IS NULL THEN
329       IF new_references.key_allow_inst_finalize_flag <> UPPER (new_references.key_allow_inst_finalize_flag)
330          OR new_references.key_allow_inst_finalize_flag NOT IN ('Y', 'N') THEN
331         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
332         igs_ge_msg_stack.ADD;
333         app_exception.raise_exception;
334       END IF;
335     END IF;
336     IF UPPER (column_name) = 'KEY_AI_COLLECT_MARK_FLAG'
337        OR column_name IS NULL THEN
338       IF new_references.key_ai_collect_mark_flag <> UPPER (new_references.key_ai_collect_mark_flag)
339          OR new_references.key_ai_collect_mark_flag NOT IN ('Y', 'N') THEN
340         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
341         igs_ge_msg_stack.ADD;
342         app_exception.raise_exception;
343       END IF;
344     END IF;
345     IF UPPER (column_name) = 'KEY_AI_MARK_MNDTRY_FLAG'
346        OR column_name IS NULL THEN
347       IF new_references.key_ai_mark_mndtry_flag <> UPPER (new_references.key_ai_mark_mndtry_flag)
348          OR new_references.key_ai_mark_mndtry_flag NOT IN ('Y', 'N') THEN
349         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
350         igs_ge_msg_stack.ADD;
351         app_exception.raise_exception;
352       END IF;
353     END IF;
354     IF UPPER (column_name) = 'KEY_AI_GRADE_DERIVE_FLAG'
355        OR column_name IS NULL THEN
356       IF new_references.key_ai_grade_derive_flag <> UPPER (new_references.key_ai_grade_derive_flag)
357          OR new_references.key_ai_grade_derive_flag NOT IN ('Y', 'N') THEN
358         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
359         igs_ge_msg_stack.ADD;
360         app_exception.raise_exception;
361       END IF;
362     END IF;
363     IF UPPER (column_name) = 'KEY_AI_ALLOW_INVALID_FLAG'
364        OR column_name IS NULL THEN
365       IF new_references.key_ai_allow_invalid_flag <> UPPER (new_references.key_ai_allow_invalid_flag)
366          OR new_references.key_ai_allow_invalid_flag NOT IN ('Y', 'N') THEN
367         fnd_message.set_name ('IGS', 'IGS_GE_INVALID_VALUE');
368         igs_ge_msg_stack.ADD;
369         app_exception.raise_exception;
370       END IF;
371     END IF;
375     p_action                       IN     VARCHAR2,
372   END check_constraints;
373 
374   PROCEDURE before_dml (
376     x_rowid                        IN     VARCHAR2,
377     x_s_control_num                IN     NUMBER,
378     x_key_allow_invalid_ind        IN     VARCHAR2,
379     x_key_collect_mark_ind         IN     VARCHAR2,
380     x_key_grade_derive_ind         IN     VARCHAR2,
381     x_key_mark_mndtry_ind          IN     VARCHAR2,
382     x_upld_person_no_exist         IN     VARCHAR2,
383     x_upld_crs_not_enrolled        IN     VARCHAR2,
384     x_upld_unit_not_enrolled       IN     VARCHAR2,
385     x_upld_unit_discont            IN     VARCHAR2,
386     x_upld_grade_invalid           IN     VARCHAR2,
387     x_upld_mark_grade_invalid      IN     VARCHAR2,
388     x_key_mark_entry_dec_points    IN     NUMBER,
389     x_creation_date                IN     DATE,
390     x_created_by                   IN     NUMBER,
391     x_last_update_date             IN     DATE,
392     x_last_updated_by              IN     NUMBER,
393     x_last_update_login            IN     NUMBER,
394     x_key_prtl_sbmn_allowed_ind    IN     VARCHAR2,
395     x_upld_ug_sbmtd_grade_exist    IN     VARCHAR2,
396     x_upld_ug_saved_grade_exist    IN     VARCHAR2,
397     x_upld_asmnt_item_not_exist    IN     VARCHAR2,
398     x_upld_asmnt_item_grd_exist    IN     VARCHAR2,
399     x_key_derive_unit_grade_flag   IN     VARCHAR2,
400     x_key_allow_inst_finalize_flag IN     VARCHAR2,
401     x_key_ai_collect_mark_flag     IN     VARCHAR2,
402     x_key_ai_mark_mndtry_flag      IN     VARCHAR2,
403     x_key_ai_grade_derive_flag     IN     VARCHAR2,
404     x_key_ai_allow_invalid_flag    IN     VARCHAR2,
405     x_key_ai_mark_entry_dec_points IN     NUMBER
406   ) AS
407   BEGIN
408     set_column_values (
409       p_action,
410       x_rowid,
411       x_s_control_num,
412       x_key_allow_invalid_ind,
413       x_key_collect_mark_ind,
414       x_key_grade_derive_ind,
415       x_key_mark_mndtry_ind,
416       x_upld_person_no_exist,
417       x_upld_crs_not_enrolled,
418       x_upld_unit_not_enrolled,
419       x_upld_unit_discont,
420       x_upld_grade_invalid,
421       x_upld_mark_grade_invalid,
422       x_key_mark_entry_dec_points,
423       x_creation_date,
424       x_created_by,
425       x_last_update_date,
426       x_last_updated_by,
427       x_last_update_login,
428       x_key_prtl_sbmn_allowed_ind,
429       x_upld_ug_sbmtd_grade_exist,
430       x_upld_ug_saved_grade_exist,
431       x_upld_asmnt_item_not_exist,
432       x_upld_asmnt_item_grd_exist,
433       x_key_derive_unit_grade_flag,
434       x_key_allow_inst_finalize_flag,
435       x_key_ai_collect_mark_flag,
436       x_key_ai_mark_mndtry_flag,
437       x_key_ai_grade_derive_flag,
438       x_key_ai_allow_invalid_flag,
439       x_key_ai_mark_entry_dec_points
440     );
441     IF (p_action = 'INSERT') THEN
442       -- Call all the procedures related to Before Insert.
443       IF get_pk_for_validation (new_references.s_control_num) THEN
444         fnd_message.set_name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
445         igs_ge_msg_stack.ADD;
446         app_exception.raise_exception;
447       END IF;
448       check_constraints;
449     ELSIF (p_action = 'UPDATE') THEN
450       -- Call all the procedures related to Before Update.
451       check_constraints;
452     ELSIF (p_action = 'DELETE') THEN
453       -- Call all the procedures related to Before Delete.
454       NULL;
455     ELSIF (p_action = 'VALIDATE_INSERT') THEN
456       IF get_pk_for_validation (new_references.s_control_num) THEN
457         fnd_message.set_name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
458         igs_ge_msg_stack.ADD;
459         app_exception.raise_exception;
460       END IF;
461       check_constraints;
462     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
463       check_constraints;
464     ELSIF (p_action = 'VALIDATE_DELETE') THEN
465       NULL;
466     END IF;
467   END before_dml;
468 
469   PROCEDURE insert_row (
470     x_rowid                        IN OUT NOCOPY VARCHAR2,
471     x_s_control_num                IN     NUMBER,
472     x_key_allow_invalid_ind        IN     VARCHAR2,
473     x_key_collect_mark_ind         IN     VARCHAR2,
474     x_key_grade_derive_ind         IN     VARCHAR2,
475     x_key_mark_mndtry_ind          IN     VARCHAR2,
476     x_upld_person_no_exist         IN     VARCHAR2,
477     x_upld_crs_not_enrolled        IN     VARCHAR2,
478     x_upld_unit_not_enrolled       IN     VARCHAR2,
479     x_upld_unit_discont            IN     VARCHAR2,
480     x_upld_grade_invalid           IN     VARCHAR2,
481     x_upld_mark_grade_invalid      IN     VARCHAR2,
482     x_key_mark_entry_dec_points    IN     NUMBER,
483     x_mode                         IN     VARCHAR2,
484     x_key_prtl_sbmn_allowed_ind    IN     VARCHAR2,
485     x_upld_ug_sbmtd_grade_exist    IN     VARCHAR2,
486     x_upld_ug_saved_grade_exist    IN     VARCHAR2,
487     x_upld_asmnt_item_not_exist    IN     VARCHAR2,
488     x_upld_asmnt_item_grd_exist    IN     VARCHAR2,
489     x_key_derive_unit_grade_flag   IN     VARCHAR2,
490     x_key_allow_inst_finalize_flag IN     VARCHAR2,
491     x_key_ai_collect_mark_flag     IN     VARCHAR2,
492     x_key_ai_mark_mndtry_flag      IN     VARCHAR2,
493     x_key_ai_grade_derive_flag     IN     VARCHAR2,
497     CURSOR c IS
494     x_key_ai_allow_invalid_flag    IN     VARCHAR2,
495     x_key_ai_mark_entry_dec_points IN     NUMBER
496   ) AS
498       SELECT ROWID
499       FROM   igs_as_entry_conf
500       WHERE  s_control_num = x_s_control_num;
501     x_last_update_date  DATE;
502     x_last_updated_by   NUMBER;
503     x_last_update_login NUMBER;
504   BEGIN
505     x_last_update_date := SYSDATE;
506     IF (x_mode = 'I') THEN
507       x_last_updated_by := 1;
508       x_last_update_login := 0;
509     ELSIF (x_mode = 'R') THEN
510       x_last_updated_by := fnd_global.user_id;
511       IF x_last_updated_by IS NULL THEN
512         x_last_updated_by := -1;
513       END IF;
514       x_last_update_login := fnd_global.login_id;
515       IF x_last_update_login IS NULL THEN
516         x_last_update_login := -1;
517       END IF;
518     ELSE
519       fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
520       igs_ge_msg_stack.ADD;
521       app_exception.raise_exception;
522     END IF;
523     before_dml (
524       p_action                       => 'INSERT',
525       x_rowid                        => x_rowid,
526       x_key_allow_invalid_ind        => NVL (x_key_allow_invalid_ind, 'Y'),
527       x_key_collect_mark_ind         => NVL (x_key_collect_mark_ind, 'Y'),
528       x_key_grade_derive_ind         => NVL (x_key_grade_derive_ind, 'Y'),
529       x_key_mark_mndtry_ind          => NVL (x_key_mark_mndtry_ind, 'N'),
530       x_s_control_num                => x_s_control_num,
531       x_upld_crs_not_enrolled        => NVL (x_upld_crs_not_enrolled, 'D'),
532       x_upld_grade_invalid           => NVL (x_upld_grade_invalid, 'D'),
533       x_upld_mark_grade_invalid      => NVL (x_upld_mark_grade_invalid, 'D'),
534       x_upld_person_no_exist         => NVL (x_upld_person_no_exist, 'D'),
535       x_upld_unit_discont            => NVL (x_upld_unit_discont, 'D'),
536       x_upld_unit_not_enrolled       => NVL (x_upld_unit_not_enrolled, 'D'),
537       x_key_mark_entry_dec_points    => x_key_mark_entry_dec_points,
538       x_creation_date                => x_last_update_date,
539       x_created_by                   => x_last_updated_by,
540       x_last_update_date             => x_last_update_date,
541       x_last_updated_by              => x_last_updated_by,
542       x_last_update_login            => x_last_update_login,
543       x_key_prtl_sbmn_allowed_ind    => x_key_prtl_sbmn_allowed_ind,
544       x_upld_ug_sbmtd_grade_exist    => x_upld_ug_sbmtd_grade_exist,
545       x_upld_ug_saved_grade_exist    => x_upld_ug_saved_grade_exist,
546       x_upld_asmnt_item_not_exist    => x_upld_asmnt_item_not_exist,
547       x_upld_asmnt_item_grd_exist    => x_upld_asmnt_item_grd_exist,
548       x_key_derive_unit_grade_flag   => x_key_derive_unit_grade_flag,
549       x_key_allow_inst_finalize_flag => x_key_allow_inst_finalize_flag,
550       x_key_ai_collect_mark_flag     => x_key_ai_collect_mark_flag,
551       x_key_ai_mark_mndtry_flag      => x_key_ai_mark_mndtry_flag,
552       x_key_ai_grade_derive_flag     => x_key_ai_grade_derive_flag,
553       x_key_ai_allow_invalid_flag    => x_key_ai_allow_invalid_flag,
554       x_key_ai_mark_entry_dec_points => x_key_ai_mark_entry_dec_points
555     );
556     INSERT INTO igs_as_entry_conf
557                 (s_control_num,
558                  key_allow_invalid_ind,
559                  key_collect_mark_ind,
560                  key_grade_derive_ind,
561                  key_mark_mndtry_ind,
562                  upld_person_no_exist,
563                  upld_crs_not_enrolled,
564                  upld_unit_not_enrolled,
565                  upld_unit_discont,
566                  upld_grade_invalid,
567                  upld_mark_grade_invalid,
568                  key_mark_entry_dec_points, creation_date,
569                  created_by, last_update_date, last_updated_by,
570                  last_update_login, key_prtl_sbmn_allowed_ind,
571                  upld_ug_sbmtd_grade_exist,
572                  upld_ug_saved_grade_exist,
573                  upld_asmnt_item_not_exist,
574                  upld_asmnt_item_grd_exist,
575                  key_derive_unit_grade_flag,
576                  key_allow_inst_finalize_flag,
577                  key_ai_collect_mark_flag,
578                  key_ai_mark_mndtry_flag,
579                  key_ai_grade_derive_flag,
580                  key_ai_allow_invalid_flag,
581                  key_ai_mark_entry_dec_points
582                  )
583          VALUES (new_references.s_control_num,
584                  new_references.key_allow_invalid_ind,
585                  new_references.key_collect_mark_ind,
586                  new_references.key_grade_derive_ind,
587                  new_references.key_mark_mndtry_ind,
588                  new_references.upld_person_no_exist,
589                  new_references.upld_crs_not_enrolled,
590                  new_references.upld_unit_not_enrolled,
591                  new_references.upld_unit_discont,
592                  new_references.upld_grade_invalid,
593                  new_references.upld_mark_grade_invalid,
594                  new_references.key_mark_entry_dec_points, x_last_update_date,
595                  x_last_updated_by, x_last_update_date, x_last_updated_by,
596                  x_last_update_login, new_references.key_prtl_sbmn_allowed_ind,
597                  new_references.upld_ug_sbmtd_grade_exist,
598                  new_references.upld_ug_saved_grade_exist,
599                  new_references.upld_asmnt_item_not_exist,
603                  new_references.key_ai_collect_mark_flag,
600                  new_references.upld_asmnt_item_grd_exist,
601                  new_references.key_derive_unit_grade_flag,
602                  new_references.key_allow_inst_finalize_flag,
604                  new_references.key_ai_mark_mndtry_flag,
605                  new_references.key_ai_grade_derive_flag,
606                  new_references.key_ai_allow_invalid_flag,
607                  new_references.key_ai_mark_entry_dec_points);
608     OPEN c;
609     FETCH c INTO x_rowid;
610     IF (c%NOTFOUND) THEN
611       CLOSE c;
612       RAISE NO_DATA_FOUND;
613     END IF;
614     CLOSE c;
615   END insert_row;
616 
617   PROCEDURE lock_row (
618     x_rowid                        IN     VARCHAR2,
619     x_s_control_num                IN     NUMBER,
620     x_key_allow_invalid_ind        IN     VARCHAR2,
621     x_key_collect_mark_ind         IN     VARCHAR2,
622     x_key_grade_derive_ind         IN     VARCHAR2,
623     x_key_mark_mndtry_ind          IN     VARCHAR2,
624     x_upld_person_no_exist         IN     VARCHAR2,
625     x_upld_crs_not_enrolled        IN     VARCHAR2,
626     x_upld_unit_not_enrolled       IN     VARCHAR2,
627     x_upld_unit_discont            IN     VARCHAR2,
628     x_upld_grade_invalid           IN     VARCHAR2,
629     x_upld_mark_grade_invalid      IN     VARCHAR2,
630     x_key_mark_entry_dec_points    IN     NUMBER,
631     x_key_prtl_sbmn_allowed_ind    IN     VARCHAR2,
632     x_upld_ug_sbmtd_grade_exist    IN     VARCHAR2,
633     x_upld_ug_saved_grade_exist    IN     VARCHAR2,
634     x_upld_asmnt_item_not_exist    IN     VARCHAR2,
635     x_upld_asmnt_item_grd_exist    IN     VARCHAR2,
636     x_key_derive_unit_grade_flag   IN     VARCHAR2,
637     x_key_allow_inst_finalize_flag IN     VARCHAR2,
638     x_key_ai_collect_mark_flag     IN     VARCHAR2,
639     x_key_ai_mark_mndtry_flag      IN     VARCHAR2,
640     x_key_ai_grade_derive_flag     IN     VARCHAR2,
641     x_key_ai_allow_invalid_flag    IN     VARCHAR2,
642     x_key_ai_mark_entry_dec_points IN     NUMBER
643   ) AS
644     CURSOR c1 IS
645       SELECT     key_allow_invalid_ind,
646                  key_collect_mark_ind,
647                  key_grade_derive_ind,
648                  key_mark_mndtry_ind,
649                  upld_person_no_exist,
650                  upld_crs_not_enrolled,
651                  upld_unit_not_enrolled,
652                  upld_unit_discont,
653                  upld_grade_invalid,
654                  upld_mark_grade_invalid,
655                  key_mark_entry_dec_points,
656                  key_prtl_sbmn_allowed_ind,
657                  upld_ug_sbmtd_grade_exist,
658                  upld_ug_saved_grade_exist,
659                  upld_asmnt_item_not_exist,
660                  upld_asmnt_item_grd_exist,
661                  key_derive_unit_grade_flag,
662                  key_allow_inst_finalize_flag,
663                  key_ai_collect_mark_flag,
664                  key_ai_mark_mndtry_flag,
665                  key_ai_grade_derive_flag,
666                  key_ai_allow_invalid_flag,
667                  key_ai_mark_entry_dec_points
668       FROM       igs_as_entry_conf
669       WHERE      ROWID = x_rowid
670       FOR UPDATE NOWAIT;
671     tlinfo c1%ROWTYPE;
672   BEGIN
673     OPEN c1;
674     FETCH c1 INTO tlinfo;
675     IF (c1%NOTFOUND) THEN
676       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
677       igs_ge_msg_stack.ADD;
678       CLOSE c1;
679       app_exception.raise_exception;
680       RETURN;
681     END IF;
682     CLOSE c1;
683     IF ((tlinfo.key_allow_invalid_ind = x_key_allow_invalid_ind)
684         AND (tlinfo.key_collect_mark_ind = x_key_collect_mark_ind)
685         AND (tlinfo.key_grade_derive_ind = x_key_grade_derive_ind)
686         AND (tlinfo.key_mark_mndtry_ind = x_key_mark_mndtry_ind)
687         AND (tlinfo.upld_person_no_exist = x_upld_person_no_exist)
688         AND (tlinfo.upld_crs_not_enrolled = x_upld_crs_not_enrolled)
689         AND (tlinfo.upld_unit_not_enrolled = x_upld_unit_not_enrolled)
690         AND (tlinfo.upld_unit_discont = x_upld_unit_discont)
691         AND (tlinfo.upld_grade_invalid = x_upld_grade_invalid)
692         AND (tlinfo.upld_mark_grade_invalid = x_upld_mark_grade_invalid)
693         AND (tlinfo.key_mark_entry_dec_points = x_key_mark_entry_dec_points
694              OR (tlinfo.key_mark_entry_dec_points IS NULL
695                  AND x_key_mark_entry_dec_points IS NULL
696                 )
697             )
698         AND (tlinfo.key_prtl_sbmn_allowed_ind = x_key_prtl_sbmn_allowed_ind
699              OR (tlinfo.key_prtl_sbmn_allowed_ind IS NULL
700                  AND x_key_prtl_sbmn_allowed_ind IS NULL
701                 )
702             )
703         AND (tlinfo.upld_ug_sbmtd_grade_exist = x_upld_ug_sbmtd_grade_exist
704              OR (tlinfo.upld_ug_sbmtd_grade_exist IS NULL
705                  AND x_upld_ug_sbmtd_grade_exist IS NULL
706                 )
707             )
708         AND (tlinfo.upld_ug_saved_grade_exist = x_upld_ug_saved_grade_exist
709              OR (tlinfo.upld_ug_saved_grade_exist IS NULL
710                  AND x_upld_ug_saved_grade_exist IS NULL
711                 )
712             )
713         AND (tlinfo.upld_asmnt_item_not_exist = x_upld_asmnt_item_not_exist
714              OR (tlinfo.upld_asmnt_item_not_exist IS NULL
715                  AND x_upld_asmnt_item_not_exist IS NULL
716                 )
717             )
718         AND (tlinfo.upld_asmnt_item_grd_exist = x_upld_asmnt_item_grd_exist
722             )
719              OR (tlinfo.upld_asmnt_item_grd_exist IS NULL
720                  AND x_upld_asmnt_item_grd_exist IS NULL
721                 )
723         AND (tlinfo.key_derive_unit_grade_flag = x_key_derive_unit_grade_flag
724              OR (tlinfo.key_derive_unit_grade_flag IS NULL
725                  AND x_key_derive_unit_grade_flag IS NULL
726                 )
727             )
728         AND (tlinfo.key_allow_inst_finalize_flag = x_key_allow_inst_finalize_flag
729              OR (tlinfo.key_allow_inst_finalize_flag IS NULL
730                  AND x_key_allow_inst_finalize_flag IS NULL
731                 )
732             )
733         AND (tlinfo.key_ai_collect_mark_flag = x_key_ai_collect_mark_flag
734              OR (tlinfo.key_ai_collect_mark_flag IS NULL
735                  AND x_key_ai_collect_mark_flag IS NULL
736                 )
737             )
738         AND (tlinfo.key_ai_mark_mndtry_flag = x_key_ai_mark_mndtry_flag
739              OR (tlinfo.key_ai_mark_mndtry_flag IS NULL
740                  AND x_key_ai_mark_mndtry_flag IS NULL
741                 )
742             )
743         AND (tlinfo.key_ai_grade_derive_flag = x_key_ai_grade_derive_flag
744              OR (tlinfo.key_ai_grade_derive_flag IS NULL
745                  AND x_key_ai_grade_derive_flag IS NULL
746                 )
747             )
748         AND (tlinfo.key_ai_allow_invalid_flag = x_key_ai_allow_invalid_flag
749              OR (tlinfo.key_ai_allow_invalid_flag IS NULL
750                  AND x_key_ai_allow_invalid_flag IS NULL
751                 )
752             )
753         AND (tlinfo.key_ai_mark_entry_dec_points = x_key_ai_mark_entry_dec_points
754              OR (tlinfo.key_ai_mark_entry_dec_points IS NULL
755                  AND x_key_ai_mark_entry_dec_points IS NULL
756                 )
757             )
758        ) THEN
759       NULL;
760     ELSE
761       fnd_message.set_name ('FND', 'FORM_RECORD_CHANGED');
762       igs_ge_msg_stack.ADD;
763       app_exception.raise_exception;
764     END IF;
765     RETURN;
766   END lock_row;
767 
768   PROCEDURE update_row (
769     x_rowid                        IN     VARCHAR2,
770     x_s_control_num                IN     NUMBER,
771     x_key_allow_invalid_ind        IN     VARCHAR2,
772     x_key_collect_mark_ind         IN     VARCHAR2,
773     x_key_grade_derive_ind         IN     VARCHAR2,
774     x_key_mark_mndtry_ind          IN     VARCHAR2,
775     x_upld_person_no_exist         IN     VARCHAR2,
776     x_upld_crs_not_enrolled        IN     VARCHAR2,
777     x_upld_unit_not_enrolled       IN     VARCHAR2,
778     x_upld_unit_discont            IN     VARCHAR2,
779     x_upld_grade_invalid           IN     VARCHAR2,
780     x_upld_mark_grade_invalid      IN     VARCHAR2,
781     x_key_mark_entry_dec_points    IN     NUMBER,
782     x_mode                         IN     VARCHAR2,
783     x_key_prtl_sbmn_allowed_ind    IN     VARCHAR2,
784     x_upld_ug_sbmtd_grade_exist    IN     VARCHAR2,
785     x_upld_ug_saved_grade_exist    IN     VARCHAR2,
786     x_upld_asmnt_item_not_exist    IN     VARCHAR2,
787     x_upld_asmnt_item_grd_exist    IN     VARCHAR2,
788     x_key_derive_unit_grade_flag   IN     VARCHAR2,
789     x_key_allow_inst_finalize_flag IN     VARCHAR2,
790     x_key_ai_collect_mark_flag     IN     VARCHAR2,
791     x_key_ai_mark_mndtry_flag      IN     VARCHAR2,
792     x_key_ai_grade_derive_flag     IN     VARCHAR2,
793     x_key_ai_allow_invalid_flag    IN     VARCHAR2,
794     x_key_ai_mark_entry_dec_points IN     NUMBER
795   ) AS
796     x_last_update_date  DATE;
797     x_last_updated_by   NUMBER;
798     x_last_update_login NUMBER;
799   BEGIN
800     x_last_update_date := SYSDATE;
801     IF (x_mode = 'I') THEN
802       x_last_updated_by := 1;
803       x_last_update_login := 0;
804     ELSIF (x_mode = 'R') THEN
805       x_last_updated_by := fnd_global.user_id;
806       IF x_last_updated_by IS NULL THEN
807         x_last_updated_by := -1;
808       END IF;
809       x_last_update_login := fnd_global.login_id;
810       IF x_last_update_login IS NULL THEN
811         x_last_update_login := -1;
812       END IF;
813     ELSE
814       fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
815       igs_ge_msg_stack.ADD;
816       app_exception.raise_exception;
817     END IF;
818     before_dml (
819       p_action                       => 'UPDATE',
820       x_rowid                        => x_rowid,
821       x_key_allow_invalid_ind        => x_key_allow_invalid_ind,
822       x_key_collect_mark_ind         => x_key_collect_mark_ind,
823       x_key_grade_derive_ind         => x_key_grade_derive_ind,
824       x_key_mark_mndtry_ind          => x_key_mark_mndtry_ind,
825       x_s_control_num                => x_s_control_num,
826       x_upld_crs_not_enrolled        => x_upld_crs_not_enrolled,
827       x_upld_grade_invalid           => x_upld_grade_invalid,
828       x_upld_mark_grade_invalid      => x_upld_mark_grade_invalid,
829       x_upld_person_no_exist         => x_upld_person_no_exist,
830       x_upld_unit_discont            => x_upld_unit_discont,
831       x_upld_unit_not_enrolled       => x_upld_unit_not_enrolled,
832       x_key_mark_entry_dec_points    => x_key_mark_entry_dec_points,
833       x_creation_date                => x_last_update_date,
834       x_created_by                   => x_last_updated_by,
835       x_last_update_date             => x_last_update_date,
836       x_last_updated_by              => x_last_updated_by,
837       x_last_update_login            => x_last_update_login,
838       x_key_prtl_sbmn_allowed_ind    => x_key_prtl_sbmn_allowed_ind,
839       x_upld_ug_sbmtd_grade_exist    => x_upld_ug_sbmtd_grade_exist,
840       x_upld_ug_saved_grade_exist    => x_upld_ug_saved_grade_exist,
841       x_upld_asmnt_item_not_exist    => x_upld_asmnt_item_not_exist,
845       x_key_ai_collect_mark_flag     => x_key_ai_collect_mark_flag,
842       x_upld_asmnt_item_grd_exist    => x_upld_asmnt_item_grd_exist,
843       x_key_derive_unit_grade_flag   => x_key_derive_unit_grade_flag,
844       x_key_allow_inst_finalize_flag => x_key_allow_inst_finalize_flag,
846       x_key_ai_mark_mndtry_flag      => x_key_ai_mark_mndtry_flag,
847       x_key_ai_grade_derive_flag     => x_key_ai_grade_derive_flag,
848       x_key_ai_allow_invalid_flag    => x_key_ai_allow_invalid_flag,
849       x_key_ai_mark_entry_dec_points => x_key_ai_mark_entry_dec_points
850     );
851     UPDATE igs_as_entry_conf
852        SET key_allow_invalid_ind = new_references.key_allow_invalid_ind,
853            key_collect_mark_ind = new_references.key_collect_mark_ind,
854            key_grade_derive_ind = new_references.key_grade_derive_ind,
855            key_mark_mndtry_ind = new_references.key_mark_mndtry_ind,
856            upld_person_no_exist = new_references.upld_person_no_exist,
857            upld_crs_not_enrolled = new_references.upld_crs_not_enrolled,
858            upld_unit_not_enrolled = new_references.upld_unit_not_enrolled,
859            upld_unit_discont = new_references.upld_unit_discont,
860            upld_grade_invalid = new_references.upld_grade_invalid,
861            upld_mark_grade_invalid = new_references.upld_mark_grade_invalid,
862            key_mark_entry_dec_points = new_references.key_mark_entry_dec_points,
863            last_update_date = x_last_update_date,
864            last_updated_by = x_last_updated_by,
865            last_update_login = x_last_update_login,
866            key_prtl_sbmn_allowed_ind = x_key_prtl_sbmn_allowed_ind,
867            upld_ug_sbmtd_grade_exist = x_upld_ug_sbmtd_grade_exist,
868            upld_ug_saved_grade_exist = x_upld_ug_saved_grade_exist,
869            upld_asmnt_item_not_exist = x_upld_asmnt_item_not_exist,
870            upld_asmnt_item_grd_exist = x_upld_asmnt_item_grd_exist,
871            key_derive_unit_grade_flag = x_key_derive_unit_grade_flag,
872            key_allow_inst_finalize_flag = x_key_allow_inst_finalize_flag,
873            key_ai_collect_mark_flag = x_key_ai_collect_mark_flag,
874            key_ai_mark_mndtry_flag = x_key_ai_mark_mndtry_flag,
875            key_ai_grade_derive_flag = x_key_ai_grade_derive_flag,
876            key_ai_allow_invalid_flag = x_key_ai_allow_invalid_flag,
877            key_ai_mark_entry_dec_points = x_key_ai_mark_entry_dec_points
878      WHERE ROWID = x_rowid;
879     IF (SQL%NOTFOUND) THEN
880       RAISE NO_DATA_FOUND;
881     END IF;
882   END update_row;
883 
884   PROCEDURE add_row (
885     x_rowid                        IN OUT NOCOPY VARCHAR2,
886     x_s_control_num                IN     NUMBER,
887     x_key_allow_invalid_ind        IN     VARCHAR2,
888     x_key_collect_mark_ind         IN     VARCHAR2,
889     x_key_grade_derive_ind         IN     VARCHAR2,
890     x_key_mark_mndtry_ind          IN     VARCHAR2,
891     x_upld_person_no_exist         IN     VARCHAR2,
892     x_upld_crs_not_enrolled        IN     VARCHAR2,
893     x_upld_unit_not_enrolled       IN     VARCHAR2,
894     x_upld_unit_discont            IN     VARCHAR2,
895     x_upld_grade_invalid           IN     VARCHAR2,
896     x_upld_mark_grade_invalid      IN     VARCHAR2,
897     x_key_mark_entry_dec_points    IN     NUMBER,
898     x_mode                         IN     VARCHAR2,
899     x_key_prtl_sbmn_allowed_ind    IN     VARCHAR2,
900     x_upld_ug_sbmtd_grade_exist    IN     VARCHAR2,
901     x_upld_ug_saved_grade_exist    IN     VARCHAR2,
902     x_upld_asmnt_item_not_exist    IN     VARCHAR2,
903     x_upld_asmnt_item_grd_exist    IN     VARCHAR2,
904     x_key_derive_unit_grade_flag   IN     VARCHAR2,
905     x_key_allow_inst_finalize_flag IN     VARCHAR2,
906     x_key_ai_collect_mark_flag     IN     VARCHAR2,
907     x_key_ai_mark_mndtry_flag      IN     VARCHAR2,
908     x_key_ai_grade_derive_flag     IN     VARCHAR2,
909     x_key_ai_allow_invalid_flag    IN     VARCHAR2,
910     x_key_ai_mark_entry_dec_points IN     NUMBER
911   ) AS
912     CURSOR c1 IS
913       SELECT ROWID
914       FROM   igs_as_entry_conf
915       WHERE  s_control_num = x_s_control_num;
916   BEGIN
917     OPEN c1;
918     FETCH c1 INTO x_rowid;
919     IF (c1%NOTFOUND) THEN
920       CLOSE c1;
921       insert_row (
922         x_rowid,
923         x_s_control_num,
924         x_key_allow_invalid_ind,
925         x_key_collect_mark_ind,
926         x_key_grade_derive_ind,
927         x_key_mark_mndtry_ind,
928         x_upld_person_no_exist,
929         x_upld_crs_not_enrolled,
930         x_upld_unit_not_enrolled,
931         x_upld_unit_discont,
932         x_upld_grade_invalid,
933         x_upld_mark_grade_invalid,
934         x_key_mark_entry_dec_points,
935         x_mode,
936         x_key_prtl_sbmn_allowed_ind,
937         x_upld_ug_sbmtd_grade_exist,
938         x_upld_ug_saved_grade_exist,
939         x_upld_asmnt_item_not_exist,
940         x_upld_asmnt_item_grd_exist,
941         x_key_derive_unit_grade_flag,
942         x_key_allow_inst_finalize_flag,
943         x_key_ai_collect_mark_flag,
944         x_key_ai_mark_mndtry_flag,
945         x_key_ai_grade_derive_flag,
946         x_key_ai_allow_invalid_flag,
947         x_key_ai_mark_entry_dec_points
948       );
949       RETURN;
950     END IF;
951     CLOSE c1;
952     update_row (
953       x_rowid,
954       x_s_control_num,
955       x_key_allow_invalid_ind,
956       x_key_collect_mark_ind,
957       x_key_grade_derive_ind,
958       x_key_mark_mndtry_ind,
959       x_upld_person_no_exist,
960       x_upld_crs_not_enrolled,
961       x_upld_unit_not_enrolled,
962       x_upld_unit_discont,
963       x_upld_grade_invalid,
964       x_upld_mark_grade_invalid,
965       x_key_mark_entry_dec_points,
966       x_mode,
970       x_upld_asmnt_item_not_exist,
967       x_key_prtl_sbmn_allowed_ind,
968       x_upld_ug_sbmtd_grade_exist,
969       x_upld_ug_saved_grade_exist,
971       x_upld_asmnt_item_grd_exist,
972       x_key_derive_unit_grade_flag,
973       x_key_allow_inst_finalize_flag,
974       x_key_ai_collect_mark_flag,
975       x_key_ai_mark_mndtry_flag,
976       x_key_ai_grade_derive_flag,
977       x_key_ai_allow_invalid_flag,
978       x_key_ai_mark_entry_dec_points
979     );
980   END add_row;
981 
982   PROCEDURE delete_row (x_rowid IN VARCHAR2) AS
983   BEGIN
984     before_dml (
985       p_action                       => 'DELETE',
986       x_rowid                        => x_rowid
987     );
988     DELETE FROM igs_as_entry_conf
989           WHERE ROWID = x_rowid;
990 
991     IF (SQL%NOTFOUND) THEN
992       RAISE NO_DATA_FOUND;
993     END IF;
994   END delete_row;
995 END igs_as_entry_conf_pkg;