DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_ENT_PT_REF_CD_PKG

Source


1 package body IGS_PS_ENT_PT_REF_CD_PKG AS
2   /* $Header: IGSPI10B.pls 120.1 2006/05/29 07:29:39 sarakshi noship $ */
3 
4 --sarakshi  20-Apr-2002   As a part of the bug #2146753 removed the call to the function
5 --                        igs_ps_val_ceprc.crsp_val_ceprc_uref from beforerowinsertupdatedelete1
6 --                        Also addd few columns in lock_row,update_row which were missing.
7 --sarakshi  27-Apr-2006   Bug#5165619, modified check_parent_existance and created procedure GET_FK_IGS_PS_OFR_UNIT_SET
8 
9   l_rowid VARCHAR2(25);
10   old_references IGS_PS_ENT_PT_REF_CD%RowType;
11   new_references IGS_PS_ENT_PT_REF_CD%RowType;
12 
13   PROCEDURE Set_Column_Values (
14     p_action IN VARCHAR2,
15     x_rowid IN VARCHAR2 DEFAULT NULL,
16     x_course_cd IN VARCHAR2 DEFAULT NULL,
17     x_version_number IN NUMBER DEFAULT NULL,
18     x_cal_type IN VARCHAR2 DEFAULT NULL,
19     x_location_cd IN VARCHAR2 DEFAULT NULL,
20     x_attendance_mode IN VARCHAR2 DEFAULT NULL,
21     x_attendance_type IN VARCHAR2 DEFAULT NULL,
22     x_reference_cd_type IN VARCHAR2 DEFAULT NULL,
23     x_sequence_number IN NUMBER DEFAULT NULL,
24     x_coo_id IN NUMBER DEFAULT NULL,
25     x_unit_set_cd IN VARCHAR2 DEFAULT NULL,
26     x_us_version_number IN NUMBER DEFAULT NULL,
27     x_reference_cd IN VARCHAR2 DEFAULT NULL,
28     x_description IN VARCHAR2 DEFAULT NULL,
29     x_creation_date IN DATE DEFAULT NULL,
30     x_created_by IN NUMBER DEFAULT NULL,
31     x_last_update_date IN DATE DEFAULT NULL,
32     x_last_updated_by IN NUMBER DEFAULT NULL,
33     x_last_update_login IN NUMBER DEFAULT NULL
34   ) AS
35 
36     CURSOR cur_old_ref_values IS
37       SELECT   *
38       FROM     IGS_PS_ENT_PT_REF_CD
39       WHERE    rowid = x_rowid;
40 
41   BEGIN
42 
43     l_rowid := x_rowid;
44 
45     -- Code for setting the Old and New Reference Values.
46     -- Populate Old Values.
47     Open cur_old_ref_values;
48     Fetch cur_old_ref_values INTO old_references;
49     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
50       Close cur_old_ref_values;
51       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
52       IGS_GE_MSG_STACK.ADD;
53       App_Exception.Raise_Exception;
54 
55       Return;
56     END IF;
57     Close cur_old_ref_values;
58 
59     -- Populate New Values.
60     new_references.course_cd := x_course_cd;
61     new_references.version_number := x_version_number;
62     new_references.cal_type := x_cal_type;
63     new_references.location_cd := x_location_cd;
64     new_references.attendance_mode := x_attendance_mode;
65     new_references.attendance_type := x_attendance_type;
66     new_references.reference_cd_type := x_reference_cd_type;
67     new_references.sequence_number := x_sequence_number;
68     new_references.coo_id := x_coo_id;
69     new_references.unit_set_cd := x_unit_set_cd;
70     new_references.us_version_number := x_us_version_number;
71     new_references.reference_cd := x_reference_cd;
72     new_references.description := x_description;
73     IF (p_action = 'UPDATE') THEN
74       new_references.creation_date := old_references.creation_date;
75       new_references.created_by := old_references.created_by;
76     ELSE
77       new_references.creation_date := x_creation_date;
78       new_references.created_by := x_created_by;
79     END IF;
80     new_references.last_update_date := x_last_update_date;
81     new_references.last_updated_by := x_last_updated_by;
82     new_references.last_update_login := x_last_update_login;
83 
84   END Set_Column_Values;
85 
86   -- Trigger description :-
87   -- "OSS_TST".trg_ceprc_br_iud
88   -- BEFORE INSERT OR DELETE OR UPDATE
89   -- ON IGS_PS_ENT_PT_REF_CD
90   -- FOR EACH ROW
91 
92   PROCEDURE BeforeRowInsertUpdateDelete1(
93     p_inserting IN BOOLEAN DEFAULT FALSE,
94     p_updating IN BOOLEAN DEFAULT FALSE,
95     p_deleting IN BOOLEAN DEFAULT FALSE
96     ) AS
97 
98 	v_message_name		varchar2(30);
99 	v_course_cd		IGS_PS_VER.course_cd%TYPE;
100 	v_version_number	IGS_PS_VER.version_number%TYPE;
101 
102   BEGIN
103 
104 	-- Set IGS_PS_OFR_OPT key.
105 	IF p_inserting THEN
106 		IGS_PS_GEN_003.CRSP_GET_COO_KEY (
107 			new_references.coo_id,
108 			new_references.course_cd,
109 			new_references.version_number,
110 			new_references.cal_type,
111 			new_references.location_cd,
112 			new_references.attendance_mode,
113 			new_references.attendance_type);
114 	END IF;
115 	-- Set variables
116 	IF p_inserting OR p_updating THEN
117 		v_course_cd := new_references.course_cd;
118 		v_version_number := new_references.version_number;
119 	ELSE	-- p_deleting
120 		v_course_cd := old_references.course_cd;
121 		v_version_number := old_references.version_number;
122 	END IF;
123 	-- Validate that inserts/updates/deletes are allowed
124 	IF IGS_PS_VAL_CRS.CRSP_VAL_IUD_CRV_DTL(v_course_cd,
125 				v_version_number,
126 				v_message_name) = FALSE THEN
127 		Fnd_Message.Set_Name('IGS',v_message_name);
128 		IGS_GE_MSG_STACK.ADD;
129 		App_Exception.Raise_Exception;
130 	END IF;
131 	IF p_inserting THEN
132 		-- Validate IGS_PS_COURSE offering option
133 		-- IGS_GE_NOTE:crsp_val_iud_crv_dtl called from this function
134 		IF IGS_PS_VAL_COp.crsp_val_coo_inactiv (
135 			new_references.course_cd,
136 			new_references.version_number,
137 			new_references.cal_type,
138 			new_references.location_cd,
139 			new_references.attendance_mode,
140 			new_references.attendance_type,
141 			v_message_name) = FALSE THEN
142 			Fnd_Message.Set_Name('IGS',v_message_name);
143 			IGS_GE_MSG_STACK.ADD;
144 			App_Exception.Raise_Exception;
145 		END IF;
146 		-- Validate reference code type
147 		IF IGS_PS_VAL_CRFC.crsp_val_ref_cd_type(
148 			new_references.reference_cd_type,
149 			v_message_name) = FALSE THEN
150 			Fnd_Message.Set_Name('IGS',v_message_name);
151 			IGS_GE_MSG_STACK.ADD;
152 			App_Exception.Raise_Exception;
153 		END IF;
154 	END IF;
155 	IF p_inserting OR p_updating THEN
156 		-- Validate IGS_PS_UNIT sets are valid for the IGS_PS_COURSE offering option
157 		 IF (new_references.unit_set_cd IS NOT NULL OR
158 		    new_references.us_version_number IS NOT NULL) THEN
159 			IF IGS_PS_VAL_CEPRC.crsp_val_ceprc_coous (
160 				new_references.coo_id,
161 				new_references.unit_set_cd,
162 				new_references.us_version_number,
163 				v_message_name) = 'FALSE' THEN
164 				Fnd_Message.Set_Name('IGS',v_message_name);
165 				IGS_GE_MSG_STACK.ADD;
166 				App_Exception.Raise_Exception;
167 			END IF;
168 		END IF;
169 	END IF;
170 	IF p_inserting THEN
171 		IF IGS_PS_VAL_CEPRC.crsp_val_ceprc_uniq (
172 			new_references.coo_id,
173 			new_references.reference_cd_type,
174 			new_references.sequence_number,
175 			new_references.unit_set_cd,
176 			new_references.us_version_number,
177 			v_message_name) = FALSE THEN
178 			Fnd_Message.Set_Name('IGS',v_message_name);
179 			IGS_GE_MSG_STACK.ADD;
180 			App_Exception.Raise_Exception;
181 		END IF;
182                 --As a part of the bug #2146753 removed the call to the function
183                 --igs_ps_val_ceprc.crsp_val_ceprc_uref
184 	END IF;
185         IF p_deleting THEN
186            IF IGS_PS_VAL_ATL.chk_mandatory_ref_cd(
187                         new_references.reference_cd_type) = TRUE THEN
188                         Fnd_Message.Set_Name('IGS','IGS_PS_REF_CD_MANDATORY');
189                         IGS_GE_MSG_STACK.ADD;
190                         App_Exception.Raise_Exception;
191             END IF;
192         END IF;
193   END BeforeRowInsertUpdateDelete1;
194 
195  PROCEDURE Check_Constraints (
196  Column_Name	IN VARCHAR2	DEFAULT NULL,
197  Column_Value 	IN VARCHAR2	DEFAULT NULL
198  )
199  AS
200  BEGIN
201 
202 	IF column_name is null then
203 	    NULL;
204 	ELSIF upper(Column_name) = 'ATTENDANCE_MODE' then
205 	    new_references.attendance_mode := column_value;
206 	ELSIF upper(Column_name) = 'ATTENDANCE_TYPE' then
207 	    new_references.attendance_type := column_value;
208 	ELSIF upper(Column_name) = 'CAL_TYPE' then
209 	    new_references.cal_type := column_value;
210 	ELSIF upper(Column_name) = 'COURSE_CD' then
211 	    new_references.course_cd := column_value;
212 	ELSIF upper(Column_name) = 'LOCATION_CD' then
213 	    new_references.location_cd := column_value;
214 	ELSIF upper(Column_name) = 'REFERENCE_CD' then
215 	    new_references.reference_cd := column_value;
216 	ELSIF upper(Column_name) = 'REFERENCE_CD_TYPE' then
217 	    new_references.reference_cd_type := column_value;
218 	ELSIF upper(Column_name) = 'UNIT_SET_CD' then
219 	    new_references.unit_set_cd := column_value;
220 	ELSIF upper(Column_name) = 'SEQUENCE_NUMBER' then
221 	    new_references.sequence_number := igs_ge_number.to_num(column_value);
222      END IF;
223 
224     IF upper(column_name) = 'ATTENDANCE_MODE' OR
225     column_name is null Then
226 	   IF ( new_references.attendance_mode <> UPPER(new_references.attendance_mode) ) Then
227       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
228       	 IGS_GE_MSG_STACK.ADD;
229              App_Exception.Raise_Exception;
230           END IF;
231       END IF;
232 
233     IF upper(column_name) = 'ATTENDANCE_TYPE' OR
234     column_name is null Then
235 	   IF ( new_references.attendance_type <> UPPER(new_references.attendance_type) ) Then
236       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
237       	 IGS_GE_MSG_STACK.ADD;
238              App_Exception.Raise_Exception;
239           END IF;
240       END IF;
241 
242     IF upper(column_name) = 'CAL_TYPE' OR
243     column_name is null Then
244 	   IF ( new_references.cal_type <> UPPER(new_references.cal_type) ) Then
245       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
246       	 IGS_GE_MSG_STACK.ADD;
247              App_Exception.Raise_Exception;
248           END IF;
249       END IF;
250 
251     IF upper(column_name) = 'COURSE_CD' OR
252     column_name is null Then
253 	   IF ( new_references.course_cd <> UPPER(new_references.course_cd) ) Then
254       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
255       	 IGS_GE_MSG_STACK.ADD;
256              App_Exception.Raise_Exception;
257           END IF;
258       END IF;
259 
260     IF upper(column_name) = 'LOCATION_CD' OR
261     column_name is null Then
262 	   IF ( new_references.location_cd <> UPPER(new_references.location_cd) ) Then
263       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
264       	 IGS_GE_MSG_STACK.ADD;
265              App_Exception.Raise_Exception;
266           END IF;
267       END IF;
268 
269     IF upper(column_name) = 'REFERENCE_CD' OR
270     column_name is null Then
271 	   IF ( new_references.reference_cd <> UPPER(new_references.reference_cd) ) Then
272       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
273       	 IGS_GE_MSG_STACK.ADD;
274              App_Exception.Raise_Exception;
275           END IF;
276       END IF;
277 
278     IF upper(column_name) = 'REFERENCE_CD_TYPE' OR
279     column_name is null Then
280 	   IF ( new_references.reference_cd_type <> UPPER(new_references.reference_cd_type) ) Then
281       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
282       	 IGS_GE_MSG_STACK.ADD;
283              App_Exception.Raise_Exception;
284           END IF;
285       END IF;
286 
287     IF upper(column_name) = 'UNIT_SET_CD' OR
288     column_name is null Then
289 	   IF ( new_references.unit_set_cd <> UPPER(new_references.unit_set_cd) ) Then
290       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
291       	 IGS_GE_MSG_STACK.ADD;
292              App_Exception.Raise_Exception;
293           END IF;
294       END IF;
295 
296     IF upper(column_name) = 'SEQUENCE_NUMBER' OR
297     column_name is null Then
298 	   IF ( new_references.sequence_number < 1 OR new_references.sequence_number > 999999 ) Then
299       	 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
300       	 IGS_GE_MSG_STACK.ADD;
301              App_Exception.Raise_Exception;
302           END IF;
303       END IF;
304 
305   END Check_Constraints;
306 
307   PROCEDURE Check_Parent_Existance AS
308 
309     CURSOR cur_reference_cd_chk(cp_reference_cd_type igs_ge_ref_cd_type_all.reference_cd_type%TYPE) IS
310     SELECT 'X'
311     FROM   igs_ge_ref_cd_type_all
312     WHERE  restricted_flag='Y'
313     AND    reference_cd_type=cp_reference_cd_type;
314     l_var  VARCHAR2(1);
315 
316     CURSOR cur_check(cp_course_cd igs_ps_ofr_opt_unit_set_v.course_cd%TYPE,
317                      cp_crv_version_number igs_ps_ofr_opt_unit_set_v.crv_version_number%TYPE,
318 		     cp_cal_type igs_ps_ofr_opt_unit_set_v.cal_type%TYPE,
319 		     cp_location_cd igs_ps_ofr_opt_unit_set_v.location_cd%TYPE,
320 		     cp_attendance_mode igs_ps_ofr_opt_unit_set_v.attendance_mode%TYPE,
321 		     cp_attendance_type igs_ps_ofr_opt_unit_set_v.attendance_type%TYPE,
322 		     cp_unit_set_cd igs_ps_ofr_opt_unit_set_v.unit_set_cd%TYPE,
323 		     cp_us_version_number igs_ps_ofr_opt_unit_set_v.us_version_number%TYPE) IS
324     SELECT 'X'
325     FROM   igs_ps_ofr_opt_unit_set_v
326     WHERE  course_cd=cp_course_cd
327     AND    crv_version_number=cp_crv_version_number
328     AND    cal_type = cp_cal_type
329     AND    location_cd = cp_location_cd
330     AND    attendance_mode = cp_attendance_mode
331     AND    attendance_type = cp_attendance_type
332     AND    unit_set_cd = cp_unit_set_cd
333     AND    us_version_number = cp_us_version_number;
334     l_c_var VARCHAR2(1);
335 
336 
337   BEGIN
338 
339     IF (((old_references.course_cd = new_references.course_cd) AND
340          (old_references.version_number = new_references.version_number) AND
341          (old_references.cal_type = new_references.cal_type) AND
342          (old_references.location_cd = new_references.location_cd) AND
343          (old_references.attendance_mode = new_references.attendance_mode) AND
344          (old_references.attendance_type = new_references.attendance_type)) OR
345         ((new_references.course_cd IS NULL) OR
346          (new_references.version_number IS NULL) OR
347          (new_references.cal_type IS NULL) OR
348          (new_references.location_cd IS NULL) OR
349          (new_references.attendance_mode IS NULL) OR
350          (new_references.attendance_type IS NULL))) THEN
351       NULL;
352     ELSE
353       IF NOT IGS_PS_OFR_OPT_PKG.Get_PK_For_Validation (
354         new_references.course_cd,
355         new_references.version_number,
356         new_references.cal_type,
357         new_references.location_cd,
358         new_references.attendance_mode,
359         new_references.attendance_type
360         ) THEN
361 	        Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
362 	        IGS_GE_MSG_STACK.ADD;
363 	        App_Exception.Raise_Exception;
364 	END IF;
365     END IF;
366 
367     IF (((old_references.coo_id = new_references.coo_id)) OR
368         ((new_references.coo_id IS NULL))) THEN
369       NULL;
370     ELSE
371       IF NOT IGS_PS_OFR_OPT_PKG.Get_UK_For_Validation (
372         new_references.coo_id
373         ) THEN
374 	        Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
375 	        IGS_GE_MSG_STACK.ADD;
376 	        App_Exception.Raise_Exception;
377 	END IF;
378     END IF;
379 
380     IF (((old_references.reference_cd_type = new_references.reference_cd_type)) OR
381         ((new_references.reference_cd_type IS NULL))) THEN
382       NULL;
383     ELSE
384       IF NOT IGS_GE_REF_CD_TYPE_PKG.Get_PK_For_Validation (
385         new_references.reference_cd_type
386         ) THEN
387 	        Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
388 	        IGS_GE_MSG_STACK.ADD;
389 	        App_Exception.Raise_Exception;
390 	END IF;
391     END IF;
392 
393     IF (((old_references.unit_set_cd = new_references.unit_set_cd) AND
394          (old_references.us_version_number = new_references.us_version_number)) OR
395         ((new_references.unit_set_cd IS NULL) OR
396          (new_references.us_version_number IS NULL))) THEN
397       NULL;
398     ELSE
399       IF NOT IGS_EN_UNIT_SET_PKG.Get_PK_For_Validation (
400         new_references.unit_set_cd,
401         new_references.us_version_number
402         ) THEN
403 	        Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
404 	        IGS_GE_MSG_STACK.ADD;
405 	        App_Exception.Raise_Exception;
406       END IF;
407 
408       --Added the check parent existance for the IGS_PS_OFR_UNIT_SET and IGS_PS_OF_OPT_UNT_ST
409       OPEN cur_check( new_references.course_cd,
410                       new_references.version_number,
411                       new_references.cal_type,
412                       new_references.location_cd,
413                       new_references.attendance_mode,
414                       new_references.attendance_type,
415 	              new_references.unit_set_cd,
416 		      new_references.us_version_number);
417       FETCH cur_check INTO l_c_var;
418       IF cur_check%NOTFOUND THEN
419 	CLOSE cur_check;
420         Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
421 	IGS_GE_MSG_STACK.ADD;
422 	App_Exception.Raise_Exception;
423       END IF;
424       CLOSE cur_check;
425     END IF;
426 
427     OPEN cur_reference_cd_chk(new_references.reference_cd_type);
428     FETCH cur_reference_cd_chk INTO l_var;
429     IF cur_reference_cd_chk%FOUND THEN
430       IF (((old_references.reference_cd_type = new_references.reference_cd_type) AND
431            (old_references.reference_cd = new_references.reference_cd)) OR
432           ((new_references.reference_cd_type IS NULL) OR
433            (new_references.reference_cd IS NULL))) THEN
434          NULL;
435       ELSIF NOT igs_ge_ref_cd_pkg.get_uk_for_validation (
436                           new_references.reference_cd_type,
437                           new_references.reference_cd
438           )  THEN
439           Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
440           IGS_GE_MSG_STACK.ADD;
441           App_Exception.Raise_Exception;
442       END IF;
443     END IF;
444     CLOSE cur_reference_cd_chk;
445 
446 
447   END Check_Parent_Existance;
448 
449   FUNCTION Get_PK_For_Validation (
450     x_course_cd IN VARCHAR2,
451     x_version_number IN NUMBER,
452     x_cal_type IN VARCHAR2,
453     x_location_cd IN VARCHAR2,
454     x_attendance_mode IN VARCHAR2,
455     x_attendance_type IN VARCHAR2,
456     x_reference_cd_type IN VARCHAR2,
457     x_sequence_number IN NUMBER
458     )
459   RETURN BOOLEAN AS
460 
461     CURSOR cur_rowid IS
462       SELECT   rowid
463       FROM     IGS_PS_ENT_PT_REF_CD
464       WHERE    course_cd = x_course_cd
465       AND      version_number = x_version_number
466       AND      cal_type = x_cal_type
467       AND      location_cd = x_location_cd
468       AND      attendance_mode = x_attendance_mode
469       AND      attendance_type = x_attendance_type
470       AND      reference_cd_type = x_reference_cd_type
471       AND      sequence_number = x_sequence_number
472       FOR UPDATE NOWAIT;
473 
474     lv_rowid cur_rowid%RowType;
475 
476   BEGIN
477 
478     Open cur_rowid;
479     Fetch cur_rowid INTO lv_rowid;
480     IF (cur_rowid%FOUND) THEN
481       Close cur_rowid;
482       Return (TRUE);
483     ELSE
484 	Close cur_rowid;
485       Return (FALSE);
486     END IF;
487 
488   END Get_PK_For_Validation;
489 
490   PROCEDURE GET_FK_IGS_PS_OFR_OPT (
491     x_course_cd IN VARCHAR2,
492     x_version_number IN NUMBER,
493     x_cal_type IN VARCHAR2,
494     x_location_cd IN VARCHAR2,
495     x_attendance_mode IN VARCHAR2,
496     x_attendance_type IN VARCHAR2
497     ) AS
498 
499     CURSOR cur_rowid IS
500       SELECT   rowid
501       FROM     IGS_PS_ENT_PT_REF_CD
502       WHERE    course_cd = x_course_cd
503       AND      version_number = x_version_number
504       AND      cal_type = x_cal_type
505       AND      location_cd = x_location_cd
506       AND      attendance_mode = x_attendance_mode
507       AND      attendance_type = x_attendance_type ;
508 
509     lv_rowid cur_rowid%RowType;
510 
511   BEGIN
512 
513     Open cur_rowid;
514     Fetch cur_rowid INTO lv_rowid;
515     IF (cur_rowid%FOUND) THEN
516       Close cur_rowid;
517       Fnd_Message.Set_Name ('IGS', 'IGS_PS_CEPRC_COO_FK');
518       IGS_GE_MSG_STACK.ADD;
519       App_Exception.Raise_Exception;
520        Return;
521     END IF;
522     Close cur_rowid;
523 
524   END GET_FK_IGS_PS_OFR_OPT;
525 
526   PROCEDURE GET_UFK_IGS_PS_OFR_OPT (
527     x_coo_id IN NUMBER
528     ) AS
529 
530     CURSOR cur_rowid IS
531       SELECT   rowid
532       FROM     IGS_PS_ENT_PT_REF_CD
533       WHERE    coo_id = x_coo_id ;
534 
535     lv_rowid cur_rowid%RowType;
536 
537   BEGIN
538 
539     Open cur_rowid;
540     Fetch cur_rowid INTO lv_rowid;
541     IF (cur_rowid%FOUND) THEN
542       Close cur_rowid;
543       Fnd_Message.Set_Name ('IGS', 'IGS_PS_CEPRC_COO_FK');
544       IGS_GE_MSG_STACK.ADD;
545       App_Exception.Raise_Exception;
546        Return;
547     END IF;
548     Close cur_rowid;
549 
550   END GET_UFK_IGS_PS_OFR_OPT;
551 
552   PROCEDURE GET_FK_IGS_GE_REF_CD_TYPE (
553     x_reference_cd_type IN VARCHAR2
554     ) AS
555 
556     CURSOR cur_rowid IS
557       SELECT   rowid
558       FROM     IGS_PS_ENT_PT_REF_CD
559       WHERE    reference_cd_type = x_reference_cd_type ;
560 
561     lv_rowid cur_rowid%RowType;
562 
563   BEGIN
564 
565     Open cur_rowid;
566     Fetch cur_rowid INTO lv_rowid;
567     IF (cur_rowid%FOUND) THEN
568       Close cur_rowid;
569       Fnd_Message.Set_Name ('IGS', 'IGS_PS_CEPRC_RCT_FK');
570       IGS_GE_MSG_STACK.ADD;
571       App_Exception.Raise_Exception;
572       Return;
573     END IF;
574     Close cur_rowid;
575 
576   END GET_FK_IGS_GE_REF_CD_TYPE;
577 
578   PROCEDURE GET_FK_IGS_EN_UNIT_SET (
579     x_unit_set_cd IN VARCHAR2,
580     x_version_number IN NUMBER
581     ) AS
582 
583     CURSOR cur_rowid IS
584       SELECT   rowid
585       FROM     IGS_PS_ENT_PT_REF_CD
586       WHERE    unit_set_cd = x_unit_set_cd
587       AND      us_version_number = x_version_number ;
588 
589     lv_rowid cur_rowid%RowType;
590 
591   BEGIN
592 
593     Open cur_rowid;
594     Fetch cur_rowid INTO lv_rowid;
595     IF (cur_rowid%FOUND) THEN
596       Close cur_rowid;
597       Fnd_Message.Set_Name ('IGS', 'IGS_PS_CEPRC_US_FK');
598       IGS_GE_MSG_STACK.ADD;
599       App_Exception.Raise_Exception;
600       Return;
601     END IF;
602     Close cur_rowid;
603 
604   END GET_FK_IGS_EN_UNIT_SET;
605 
606   PROCEDURE GET_FK_IGS_PS_OFR_UNIT_SET (
607     x_course_cd IN VARCHAR2,
608     x_version_number IN NUMBER,
609     x_cal_type IN VARCHAR2,
610     x_unit_set_cd IN VARCHAR2,
611     x_us_version_number IN NUMBER
612     ) AS
613   /*************************************************************
614   Created By :sarakshi
615   Date Created By :27-APR-2006
616   Purpose :
617   Know limitations, enhancements or remarks
618   Change History
619   Who             When            What
620 
621   (reverse chronological order - newest change first)
622   ***************************************************************/
623     CURSOR cur_rowid IS
624       SELECT   rowid
625       FROM     IGS_PS_ENT_PT_REF_CD
626       WHERE    course_cd = x_course_cd
627       AND      version_number = x_version_number
628       AND      cal_type = x_cal_type
629       AND      unit_set_cd = x_unit_set_cd
630       AND      us_version_number = x_us_version_number ;
631 
632     lv_rowid cur_rowid%RowType;
633 
634   BEGIN
635 
636     Open cur_rowid;
637     Fetch cur_rowid INTO lv_rowid;
638     IF (cur_rowid%FOUND) THEN
639       Close cur_rowid;
640       Fnd_Message.Set_Name ('IGS', 'IGS_PS_CEPRC_US_FK');
641       IGS_GE_MSG_STACK.ADD;
642       App_Exception.Raise_Exception;
643       Return;
644     END IF;
645     Close cur_rowid;
646 
647   END GET_FK_IGS_PS_OFR_UNIT_SET;
648 
649 
650 
651    PROCEDURE get_ufk_igs_ge_ref_cd (
652     x_reference_cd_type IN VARCHAR2,
653     x_reference_cd IN VARCHAR2
654     ) AS
655 
656   /*************************************************************
657   Created By :sarakshi
658   Date Created By :7-May-2003
659   Purpose :
660   Know limitations, enhancements or remarks
661   Change History
662   Who             When            What
663 
664   (reverse chronological order - newest change first)
665   ***************************************************************/
666 
667     CURSOR cur_rowid IS
668       SELECT   ROWID
669       FROM     igs_ps_ref_cd
670       WHERE    reference_cd_type = x_reference_cd_type
671       AND      reference_cd = x_reference_cd ;
672 
673     lv_rowid cur_rowid%ROWTYPE;
674 
675  BEGIN
676 
677     OPEN cur_rowid;
678     FETCH cur_rowid INTO lv_rowid;
679     IF (cur_rowid%FOUND) THEN
680       CLOSE cur_rowid;
681       fnd_message.set_name ('IGS', 'IGS_PS_CRCC_RC_FK');
682       igs_ge_msg_stack.add;
683       app_exception.raise_exception;
684       RETURN;
685     END IF;
686     CLOSE cur_rowid;
687 
688   END get_ufk_igs_ge_ref_cd;
689 
690   PROCEDURE Before_DML (
691     p_action IN VARCHAR2,
692     x_rowid IN VARCHAR2 DEFAULT NULL,
693     x_course_cd IN VARCHAR2 DEFAULT NULL,
694     x_version_number IN NUMBER DEFAULT NULL,
695     x_cal_type IN VARCHAR2 DEFAULT NULL,
696     x_location_cd IN VARCHAR2 DEFAULT NULL,
697     x_attendance_mode IN VARCHAR2 DEFAULT NULL,
698     x_attendance_type IN VARCHAR2 DEFAULT NULL,
699     x_reference_cd_type IN VARCHAR2 DEFAULT NULL,
700     x_sequence_number IN NUMBER DEFAULT NULL,
701     x_coo_id IN NUMBER DEFAULT NULL,
702     x_unit_set_cd IN VARCHAR2 DEFAULT NULL,
703     x_us_version_number IN NUMBER DEFAULT NULL,
704     x_reference_cd IN VARCHAR2 DEFAULT NULL,
705     x_description IN VARCHAR2 DEFAULT NULL,
706     x_creation_date IN DATE DEFAULT NULL,
707     x_created_by IN NUMBER DEFAULT NULL,
708     x_last_update_date IN DATE DEFAULT NULL,
709     x_last_updated_by IN NUMBER DEFAULT NULL,
710     x_last_update_login IN NUMBER DEFAULT NULL
711   ) AS
712   BEGIN
713 
714     Set_Column_Values (
715       p_action,
716       x_rowid,
717       x_course_cd,
718       x_version_number,
719       x_cal_type,
720       x_location_cd,
721       x_attendance_mode,
722       x_attendance_type,
723       x_reference_cd_type,
724       x_sequence_number,
725       x_coo_id,
726       x_unit_set_cd,
727       x_us_version_number,
728       x_reference_cd,
729       x_description,
730       x_creation_date,
731       x_created_by,
732       x_last_update_date,
733       x_last_updated_by,
734       x_last_update_login
735     );
736 
737     IF (p_action = 'INSERT') THEN
738       -- Call all the procedures related to Before Insert.
739       BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE );
740 	IF Get_PK_For_Validation (
741 	new_references.course_cd ,
742       new_references.version_number,
743       new_references.cal_type,
744       new_references.location_cd,
745       new_references.attendance_mode,
746       new_references.attendance_type,
747       new_references.reference_cd_type,
748       new_references.sequence_number) THEN
749 	   Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
750 	   IGS_GE_MSG_STACK.ADD;
751          App_Exception.Raise_Exception;
752 	END IF;
753       Check_Constraints;
754       Check_Parent_Existance;
755     ELSIF (p_action = 'UPDATE') THEN
756       -- Call all the procedures related to Before Update.
757       BeforeRowInsertUpdateDelete1 ( p_updating => TRUE );
758       Check_Constraints;
759       Check_Parent_Existance;
760     ELSIF (p_action = 'DELETE') THEN
761       -- Call all the procedures related to Before Delete.
762       BeforeRowInsertUpdateDelete1 ( p_deleting => TRUE );
763     ELSIF (p_action = 'VALIDATE_INSERT') THEN
764 	IF  Get_PK_For_Validation (
765 	new_references.course_cd ,
766       new_references.version_number,
767       new_references.cal_type,
768       new_references.location_cd,
769       new_references.attendance_mode,
770       new_references.attendance_type,
771       new_references.reference_cd_type,
772       new_references.sequence_number) THEN
773 	    Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
774 	    IGS_GE_MSG_STACK.ADD;
775 	    App_Exception.Raise_Exception;
776 	END IF;
777 	Check_Constraints;
778     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
779 	Check_Constraints;
780     END IF;
781 
782   END Before_DML;
783 
784   PROCEDURE After_DML (
785     p_action IN VARCHAR2,
786     x_rowid IN VARCHAR2
787   ) AS
788   BEGIN
789 
790     l_rowid := x_rowid;
791 
792 
793   END After_DML;
794 
795 procedure INSERT_ROW (
796   X_ROWID in out NOCOPY VARCHAR2,
797   X_COURSE_CD in VARCHAR2,
798   X_SEQUENCE_NUMBER in NUMBER,
799   X_REFERENCE_CD_TYPE in VARCHAR2,
800   X_ATTENDANCE_TYPE in VARCHAR2,
801   X_CAL_TYPE in VARCHAR2,
802   X_LOCATION_CD in VARCHAR2,
803   X_VERSION_NUMBER in NUMBER,
804   X_ATTENDANCE_MODE in VARCHAR2,
805   X_COO_ID in NUMBER,
806   X_UNIT_SET_CD in VARCHAR2,
807   X_US_VERSION_NUMBER in NUMBER,
808   X_REFERENCE_CD in VARCHAR2,
809   X_DESCRIPTION in VARCHAR2,
810   X_MODE in VARCHAR2 default 'R'
811   ) AS
812     cursor C is select ROWID from IGS_PS_ENT_PT_REF_CD
813       where COURSE_CD = X_COURSE_CD
814       and SEQUENCE_NUMBER = X_SEQUENCE_NUMBER
815       and REFERENCE_CD_TYPE = X_REFERENCE_CD_TYPE
816       and ATTENDANCE_TYPE = X_ATTENDANCE_TYPE
817       and CAL_TYPE = X_CAL_TYPE
818       and LOCATION_CD = X_LOCATION_CD
819       and VERSION_NUMBER = X_VERSION_NUMBER
820       and ATTENDANCE_MODE = X_ATTENDANCE_MODE;
821     X_LAST_UPDATE_DATE DATE;
822     X_LAST_UPDATED_BY NUMBER;
823     X_LAST_UPDATE_LOGIN NUMBER;
824 begin
825   X_LAST_UPDATE_DATE := SYSDATE;
826   if(X_MODE = 'I') then
827     X_LAST_UPDATED_BY := 1;
828     X_LAST_UPDATE_LOGIN := 0;
829   elsif (X_MODE = 'R') then
830     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
831     if X_LAST_UPDATED_BY is NULL then
832       X_LAST_UPDATED_BY := -1;
833     end if;
834     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
835     if X_LAST_UPDATE_LOGIN is NULL then
836       X_LAST_UPDATE_LOGIN := -1;
837     end if;
838   else
839     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
840     IGS_GE_MSG_STACK.ADD;
841     app_exception.raise_exception;
842   end if;
843 
844 Before_DML (
845     p_action => 'INSERT',
846     x_rowid => X_ROWID,
847     x_course_cd => X_COURSE_CD,
848     x_version_number => X_VERSION_NUMBER,
849     x_cal_type => X_CAL_TYPE,
850     x_location_cd => X_LOCATION_CD,
851     x_attendance_mode => X_ATTENDANCE_MODE,
852     x_attendance_type => X_ATTENDANCE_TYPE,
853     x_reference_cd_type => X_REFERENCE_CD_TYPE,
854     x_sequence_number => X_SEQUENCE_NUMBER,
855     x_coo_id => X_COO_ID ,
856     x_unit_set_cd => X_UNIT_SET_CD ,
857     x_us_version_number => X_US_VERSION_NUMBER ,
858     x_reference_cd => X_REFERENCE_CD ,
859     x_description => X_DESCRIPTION ,
860     x_creation_date => X_LAST_UPDATE_DATE  ,
861     x_created_by => X_LAST_UPDATED_BY ,
862     x_last_update_date => X_LAST_UPDATE_DATE  ,
863     x_last_updated_by => X_LAST_UPDATED_BY ,
864     x_last_update_login => X_LAST_UPDATE_LOGIN
865  );
866 
867   insert into IGS_PS_ENT_PT_REF_CD (
868     COURSE_CD,
869     VERSION_NUMBER,
870     CAL_TYPE,
871     LOCATION_CD,
872     ATTENDANCE_MODE,
873     ATTENDANCE_TYPE,
874     COO_ID,
875     REFERENCE_CD_TYPE,
876     SEQUENCE_NUMBER,
877     UNIT_SET_CD,
878     US_VERSION_NUMBER,
879     REFERENCE_CD,
880     DESCRIPTION,
881     CREATION_DATE,
882     CREATED_BY,
883     LAST_UPDATE_DATE,
884     LAST_UPDATED_BY,
885     LAST_UPDATE_LOGIN
886   ) values (
887     NEW_REFERENCES.COURSE_CD,
888     NEW_REFERENCES.VERSION_NUMBER,
889     NEW_REFERENCES.CAL_TYPE,
890     NEW_REFERENCES.LOCATION_CD,
891     NEW_REFERENCES.ATTENDANCE_MODE,
892     NEW_REFERENCES.ATTENDANCE_TYPE,
893     NEW_REFERENCES.COO_ID,
894     NEW_REFERENCES.REFERENCE_CD_TYPE,
895     NEW_REFERENCES.SEQUENCE_NUMBER,
896     NEW_REFERENCES.UNIT_SET_CD,
897     NEW_REFERENCES.US_VERSION_NUMBER,
898     NEW_REFERENCES.REFERENCE_CD,
899     NEW_REFERENCES.DESCRIPTION,
900     X_LAST_UPDATE_DATE,
901     X_LAST_UPDATED_BY,
902     X_LAST_UPDATE_DATE,
903     X_LAST_UPDATED_BY,
904     X_LAST_UPDATE_LOGIN
905   );
906 
907   open c;
908   fetch c into X_ROWID;
909   if (c%notfound) then
910     close c;
911     raise no_data_found;
912   end if;
913   close c;
914 After_DML (
915 	p_action => 'INSERT',
916 	x_rowid => X_ROWID
917 );
918 
919 end INSERT_ROW;
920 
921 procedure LOCK_ROW (
922   X_ROWID IN VARCHAR2,
923   X_COURSE_CD in VARCHAR2,
924   X_SEQUENCE_NUMBER in NUMBER,
925   X_REFERENCE_CD_TYPE in VARCHAR2,
926   X_ATTENDANCE_TYPE in VARCHAR2,
927   X_CAL_TYPE in VARCHAR2,
928   X_LOCATION_CD in VARCHAR2,
929   X_VERSION_NUMBER in NUMBER,
930   X_ATTENDANCE_MODE in VARCHAR2,
931   X_COO_ID in NUMBER,
932   X_UNIT_SET_CD in VARCHAR2,
933   X_US_VERSION_NUMBER in NUMBER,
934   X_REFERENCE_CD in VARCHAR2,
935   X_DESCRIPTION in VARCHAR2
936 ) AS
937   cursor c1 is select
938       COO_ID,
939 --added by sarakshi, bug#2146753
940       course_cd,
941       version_number,
942       cal_type,
943       location_cd,
944       attendance_mode,
945       attendance_type,
946       reference_cd_type,
947       sequence_number,
948 --
949       UNIT_SET_CD,
950       US_VERSION_NUMBER,
951       REFERENCE_CD,
952       DESCRIPTION
953     from IGS_PS_ENT_PT_REF_CD
954     where ROWID = X_ROWID
955     for update nowait;
956   tlinfo c1%rowtype;
957 
958 begin
959   open c1;
960   fetch c1 into tlinfo;
961   if (c1%notfound) then
962         close c1;
963     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
964     IGS_GE_MSG_STACK.ADD;
965     app_exception.raise_exception;
966     return;
967   end if;
968   close c1;
969 
970   if ((tlinfo.COO_ID = X_COO_ID)
971 --added by sarakshi, bug#2146753
972       AND (tlinfo.course_cd = x_course_cd)
973       AND (tlinfo.version_number = x_version_number)
974       AND (tlinfo.cal_type = x_cal_type)
975       AND (tlinfo.location_cd = x_location_cd)
976       AND (tlinfo.attendance_mode = x_attendance_mode)
977       AND (tlinfo.attendance_type = x_attendance_type)
978       AND (tlinfo.reference_cd_type = x_reference_cd_type)
979       AND (tlinfo.sequence_number = x_sequence_number)
980 --
981       AND ((tlinfo.UNIT_SET_CD = X_UNIT_SET_CD)
982            OR ((tlinfo.UNIT_SET_CD is null)
983                AND (X_UNIT_SET_CD is null)))
984       AND ((tlinfo.US_VERSION_NUMBER = X_US_VERSION_NUMBER)
985            OR ((tlinfo.US_VERSION_NUMBER is null)
986                AND (X_US_VERSION_NUMBER is null)))
987       AND (tlinfo.REFERENCE_CD = X_REFERENCE_CD)
988       AND ((tlinfo.DESCRIPTION= X_DESCRIPTION)
989            OR ((tlinfo.DESCRIPTION is null)
990                AND (X_DESCRIPTION is null)))
991   ) then
992     null;
993   else
994     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
995     IGS_GE_MSG_STACK.ADD;
996     app_exception.raise_exception;
997   end if;
998   return;
999 end LOCK_ROW;
1000 
1001 procedure UPDATE_ROW (
1002   X_ROWID IN VARCHAR2,
1003   X_COURSE_CD in VARCHAR2,
1004   X_SEQUENCE_NUMBER in NUMBER,
1005   X_REFERENCE_CD_TYPE in VARCHAR2,
1006   X_ATTENDANCE_TYPE in VARCHAR2,
1007   X_CAL_TYPE in VARCHAR2,
1008   X_LOCATION_CD in VARCHAR2,
1009   X_VERSION_NUMBER in NUMBER,
1010   X_ATTENDANCE_MODE in VARCHAR2,
1011   X_COO_ID in NUMBER,
1012   X_UNIT_SET_CD in VARCHAR2,
1013   X_US_VERSION_NUMBER in NUMBER,
1014   X_REFERENCE_CD in VARCHAR2,
1015   X_DESCRIPTION in VARCHAR2,
1016   X_MODE in VARCHAR2 default 'R'
1017   ) AS
1018     X_LAST_UPDATE_DATE DATE;
1019     X_LAST_UPDATED_BY NUMBER;
1020     X_LAST_UPDATE_LOGIN NUMBER;
1021 begin
1022   X_LAST_UPDATE_DATE := SYSDATE;
1023   if(X_MODE = 'I') then
1024     X_LAST_UPDATED_BY := 1;
1025     X_LAST_UPDATE_LOGIN := 0;
1026   elsif (X_MODE = 'R') then
1027     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
1028     if X_LAST_UPDATED_BY is NULL then
1029       X_LAST_UPDATED_BY := -1;
1030     end if;
1031     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
1032     if X_LAST_UPDATE_LOGIN is NULL then
1033       X_LAST_UPDATE_LOGIN := -1;
1034     end if;
1035   else
1036     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
1037     IGS_GE_MSG_STACK.ADD;
1038     app_exception.raise_exception;
1039   end if;
1040 
1041 Before_DML (
1042     p_action => 'UPDATE',
1043     x_rowid => X_ROWID,
1044     x_course_cd => X_COURSE_CD,
1045     x_version_number => X_VERSION_NUMBER,
1046     x_cal_type => X_CAL_TYPE,
1047     x_location_cd => X_LOCATION_CD,
1048     x_attendance_mode => X_ATTENDANCE_MODE,
1049     x_attendance_type => X_ATTENDANCE_TYPE,
1050     x_reference_cd_type => X_REFERENCE_CD_TYPE,
1051     x_sequence_number => X_SEQUENCE_NUMBER,
1052     x_coo_id => X_COO_ID ,
1053     x_unit_set_cd => X_UNIT_SET_CD ,
1054     x_us_version_number => X_US_VERSION_NUMBER ,
1055     x_reference_cd => X_REFERENCE_CD ,
1056     x_description => X_DESCRIPTION ,
1057     x_creation_date => X_LAST_UPDATE_DATE  ,
1058     x_created_by => X_LAST_UPDATED_BY ,
1059     x_last_update_date => X_LAST_UPDATE_DATE  ,
1060     x_last_updated_by => X_LAST_UPDATED_BY ,
1061     x_last_update_login => X_LAST_UPDATE_LOGIN
1062  );
1063 
1064   update IGS_PS_ENT_PT_REF_CD set
1065 --added by sarakshi, bug#2146753
1066     course_cd=new_references.course_cd,
1067     version_number=new_references.version_number,
1068     cal_type=new_references.cal_type,
1069     location_cd=new_references.location_cd,
1070     attendance_mode=new_references.attendance_mode,
1071     attendance_type=new_references.attendance_type,
1072     reference_cd_type=new_references.reference_cd_type,
1073     sequence_number=new_references.sequence_number,
1074 --
1075     COO_ID = NEW_REFERENCES.COO_ID,
1076     UNIT_SET_CD = NEW_REFERENCES.UNIT_SET_CD,
1077     US_VERSION_NUMBER = NEW_REFERENCES.US_VERSION_NUMBER,
1078     REFERENCE_CD = NEW_REFERENCES.REFERENCE_CD,
1079     DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
1080     LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
1081     LAST_UPDATED_BY = X_LAST_UPDATED_BY,
1082     LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
1083   where ROWID = X_ROWID
1084   ;
1085   if (sql%notfound) then
1086     raise no_data_found;
1087   end if;
1088 
1089 After_DML (
1090 	p_action => 'UPDATE',
1091 	x_rowid => X_ROWID
1092 );
1093 
1094 end UPDATE_ROW;
1095 
1096 procedure ADD_ROW (
1097   X_ROWID in out NOCOPY VARCHAR2,
1098   X_COURSE_CD in VARCHAR2,
1099   X_SEQUENCE_NUMBER in NUMBER,
1100   X_REFERENCE_CD_TYPE in VARCHAR2,
1101   X_ATTENDANCE_TYPE in VARCHAR2,
1102   X_CAL_TYPE in VARCHAR2,
1103   X_LOCATION_CD in VARCHAR2,
1104   X_VERSION_NUMBER in NUMBER,
1105   X_ATTENDANCE_MODE in VARCHAR2,
1106   X_COO_ID in NUMBER,
1107   X_UNIT_SET_CD in VARCHAR2,
1108   X_US_VERSION_NUMBER in NUMBER,
1109   X_REFERENCE_CD in VARCHAR2,
1110   X_DESCRIPTION in VARCHAR2,
1111   X_MODE in VARCHAR2 default 'R'
1112   ) AS
1113   cursor c1 is select rowid from IGS_PS_ENT_PT_REF_CD
1114      where COURSE_CD = X_COURSE_CD
1115      and SEQUENCE_NUMBER = X_SEQUENCE_NUMBER
1116      and REFERENCE_CD_TYPE = X_REFERENCE_CD_TYPE
1117      and ATTENDANCE_TYPE = X_ATTENDANCE_TYPE
1118      and CAL_TYPE = X_CAL_TYPE
1119      and LOCATION_CD = X_LOCATION_CD
1120      and VERSION_NUMBER = X_VERSION_NUMBER
1121      and ATTENDANCE_MODE = X_ATTENDANCE_MODE
1122   ;
1123 begin
1124   open c1;
1125   fetch c1 into X_ROWID;
1126   if (c1%notfound) then
1127     close c1;
1128     INSERT_ROW (
1129      X_ROWID,
1130      X_COURSE_CD,
1131      X_SEQUENCE_NUMBER,
1132      X_REFERENCE_CD_TYPE,
1133      X_ATTENDANCE_TYPE,
1134      X_CAL_TYPE,
1135      X_LOCATION_CD,
1136      X_VERSION_NUMBER,
1137      X_ATTENDANCE_MODE,
1138      X_COO_ID,
1139      X_UNIT_SET_CD,
1140      X_US_VERSION_NUMBER,
1141      X_REFERENCE_CD,
1142      X_DESCRIPTION,
1143      X_MODE);
1144     return;
1145   end if;
1146   close c1;
1147   UPDATE_ROW (
1148    X_ROWID,
1149    X_COURSE_CD,
1150    X_SEQUENCE_NUMBER,
1151    X_REFERENCE_CD_TYPE,
1152    X_ATTENDANCE_TYPE,
1153    X_CAL_TYPE,
1154    X_LOCATION_CD,
1155    X_VERSION_NUMBER,
1156    X_ATTENDANCE_MODE,
1157    X_COO_ID,
1158    X_UNIT_SET_CD,
1159    X_US_VERSION_NUMBER,
1160    X_REFERENCE_CD,
1161    X_DESCRIPTION,
1162    X_MODE);
1163 end ADD_ROW;
1164 
1165 procedure DELETE_ROW (
1166   X_ROWID in VARCHAR2
1167 ) AS
1168 begin
1169 Before_DML (
1170 	p_action => 'DELETE',
1171 	x_rowid => X_ROWID
1172 );
1173   delete from IGS_PS_ENT_PT_REF_CD
1174   where ROWID = X_ROWID;
1175   if (sql%notfound) then
1176     raise no_data_found;
1177   end if;
1178 After_DML (
1179 	p_action => 'DELETE',
1180 	x_rowid => X_ROWID
1181 );
1182 end DELETE_ROW;
1183 
1184 end IGS_PS_ENT_PT_REF_CD_PKG;