DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_GE_REF_CD_TYPE_PKG

Source


1 package body IGS_GE_REF_CD_TYPE_PKG as
2 /* $Header: IGSMI04B.pls 120.1 2006/01/25 09:19:54 skpandey noship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references IGS_GE_REF_CD_TYPE_ALL%RowType;
6   new_references IGS_GE_REF_CD_TYPE_ALL%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_self_service_flag IN VARCHAR2 DEFAULT NULL,
12     x_reference_cd_type IN VARCHAR2 DEFAULT NULL,
13     x_description IN VARCHAR2 DEFAULT NULL,
14     x_s_reference_cd_type IN VARCHAR2 DEFAULT NULL,
15     x_closed_ind IN VARCHAR2 DEFAULT NULL,
16     x_program_flag IN VARCHAR2 DEFAULT NULL,
17     x_program_offering_option_flag IN VARCHAR2 DEFAULT NULL,
18     x_unit_flag IN VARCHAR2 DEFAULT NULL,
19     x_unit_section_flag IN VARCHAR2 DEFAULT NULL,
20     x_unit_section_occurrence_flag IN VARCHAR2 DEFAULT NULL,
21 
22     x_creation_date IN DATE DEFAULT NULL,
23     x_created_by IN NUMBER DEFAULT NULL,
24     x_last_update_date IN DATE DEFAULT NULL,
25     x_last_updated_by IN NUMBER DEFAULT NULL,
26     x_last_update_login IN NUMBER DEFAULT NULL,
27     x_org_id IN NUMBER DEFAULT NULL,
28     x_mandatory_flag IN VARCHAR2 DEFAULT NULL,
29     x_restricted_flag IN VARCHAR2
30   ) as
31 
32 /*************************************************************
33   Created By :
34   Date Created By :
35   Purpose :
36   Know limitations, enhancements or remarks
37   Change History
38   Who             When            What
39   sbeerell        09-MAY-2000     Changed according to DLD version 2
40   (reverse chronological order - newest change first)
41 ***************************************************************/
42 
43     CURSOR cur_old_ref_values IS
44       SELECT   *
45       FROM     IGS_GE_REF_CD_TYPE_ALL
46       WHERE    rowid = x_rowid;
47 
48   BEGIN
49 
50     l_rowid := x_rowid;
51 
52     -- Code for setting the Old and New Reference Values.
53     -- Populate Old Values.
54     Open cur_old_ref_values;
55     Fetch cur_old_ref_values INTO old_references;
56     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
57       Close cur_old_ref_values;
58       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
59       IGS_GE_MSG_STACK.ADD;
60       App_Exception.Raise_Exception;
61       Return;
62     END IF;
63     Close cur_old_ref_values;
64 
65     -- Populate New Values.
66     new_references.self_service_flag := x_self_service_flag;
67     new_references.reference_cd_type := x_reference_cd_type;
68     new_references.description := x_description;
69     new_references.s_reference_cd_type := x_s_reference_cd_type;
70     new_references.closed_ind := x_closed_ind;
71     new_references.program_flag := x_program_flag;
72     new_references.program_offering_option_flag := x_program_offering_option_flag;
73     new_references.unit_flag := x_unit_flag;
74     new_references.unit_section_flag := x_unit_section_flag;
75     new_references.unit_section_occurrence_flag := x_unit_section_occurrence_flag;
76     new_references.mandatory_flag := x_mandatory_flag;
77     new_references.restricted_flag:= x_restricted_flag;
78     IF (p_action = 'UPDATE') THEN
79       new_references.creation_date := old_references.creation_date;
80       new_references.created_by := old_references.created_by;
81     ELSE
82       new_references.creation_date := x_creation_date;
83       new_references.created_by := x_created_by;
84     END IF;
85     new_references.last_update_date := x_last_update_date;
86     new_references.last_updated_by := x_last_updated_by;
87     new_references.last_update_login := x_last_update_login;
88     new_references.org_id := x_org_id;
89 
90   END Set_Column_Values;
91 
92   PROCEDURE BeforeRowInsertUpdate1(
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   Created By :
99   Date Created By :
100   Purpose :
101   Know limitations, enhancements or remarks
102   Change History
103   Who             When            What
104   (reverse chronological order - newest change first)
105 ***************************************************************/
106 v_message_name NUMBER(5);
107   BEGIN
108 	-- Validate system reference code type.
109 	IF p_inserting OR
110 		(p_updating AND
111 		((old_references.s_reference_cd_type <> new_references.s_reference_cd_type) OR
112 		(old_references.closed_ind = 'Y' AND new_references.closed_ind = 'N'))) THEN
113 		IF IGS_PS_VAL_RCT.crsp_val_rct_srct (
114 			new_references.s_reference_cd_type,
115 			v_message_name) = FALSE THEN
116 			Fnd_Message.Set_Name('IGS' , v_message_name);
117 			IGS_GE_MSG_STACK.ADD;
118 			App_Exception.Raise_Exception;
119 		END IF;
120 	END IF;
121   END BeforeRowInsertUpdate1;
122 
123  PROCEDURE Check_Constraints(
124    Column_Name IN VARCHAR2 DEFAULT NULL,
125    Column_Value IN VARCHAR2 DEFAULT NULL
126  ) as
127 /*************************************************************
128   Created By :
129   Date Created By :
130   Purpose :
131   Know limitations, enhancements or remarks
132   Change History
133   Who             When            What
134   (reverse chronological order - newest change first)
135 ***************************************************************/
136  BEGIN
137 	IF column_name is null then
138 	   NULL;
139 	ELSIF upper(Column_name) = 'CLOSED_IND' then
140 		new_references.closed_ind := COLUMN_VALUE;
141 	ELSIF upper(Column_name) = 'REFERENCE_CD_TYPE' then
142 		new_references.reference_cd_type := COLUMN_VALUE;
143 	ELSIF upper(Column_name) = 'S_REFERENCE_CD_TYPE' then
144 		new_references.s_reference_cd_type := COLUMN_VALUE;
145 	END IF;
146 	IF upper(Column_name) = 'CLOSED_IND' OR column_name is null then
147 		IF new_references.closed_ind <> UPPER(new_references.closed_ind ) OR
148 			new_references.closed_ind NOT IN ( 'Y' , 'N' ) then
149 			      Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
150 			      IGS_GE_MSG_STACK.ADD;
151 				App_Exception.Raise_Exception;
152 		END IF;
153 	END IF;
154 	IF upper(Column_name) = 'REFERENCE_CD_TYPE' OR column_name is null then
155 		IF new_references.reference_cd_type  <> UPPER(new_references.reference_cd_type  ) then
156 		      Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
157 		      IGS_GE_MSG_STACK.ADD;
158 			App_Exception.Raise_Exception;
159 		END IF;
160 	END IF;
161 	IF upper(Column_name) = 'S_REFERENCE_CD_TYPE' OR column_name is null then
162 		IF new_references.s_reference_cd_type  <> UPPER(new_references.s_reference_cd_type  ) then
163 		      Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
164 		      IGS_GE_MSG_STACK.ADD;
165 			App_Exception.Raise_Exception;
166 		END IF;
167 	END IF;
168 
169 
170       IF column_name IS NULL THEN
171         NULL;
172       ELSIF  UPPER(column_name) = 'SELF_SERVICE_FLAG'  THEN
173         new_references.self_service_flag := column_value;
174       ELSIF  UPPER(column_name) = 'PROGRAM_FLAG'  THEN
175         new_references.program_flag := column_value;
176       ELSIF  UPPER(column_name) = 'PROGRAM_OFFERING_OPTION_FLAG'  THEN
177         new_references.program_offering_option_flag := column_value;
178       ELSIF  UPPER(column_name) = 'UNIT_FLAG'  THEN
179         new_references.unit_flag := column_value;
180       ELSIF  UPPER(column_name) = 'UNIT_SECTION_FLAG'  THEN
181         new_references.unit_section_flag := column_value;
182       ELSIF  UPPER(column_name) = 'UNIT_SECTION_OCCURRENCE_FLAG'  THEN
183         new_references.unit_section_occurrence_flag := column_value;
184 
185         NULL;
186       END IF;
187 
188 
189 
190     -- The following code checks for check constraints on the Columns.
191       IF Upper(Column_Name) = 'SELF_SERVICE_FLAG' OR
192       	Column_Name IS NULL THEN
193         IF NOT (new_references.self_service_flag IN ('Y', 'N'))  THEN
194            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
195            IGS_GE_MSG_STACK.ADD;
196            App_Exception.Raise_Exception;
197         END IF;
198       END IF;
199 
200     -- The following code checks for check constraints on the Columns.
201       IF Upper(Column_Name) = 'PROGRAM_FLAG' OR
202       	Column_Name IS NULL THEN
203         IF NOT (new_references.program_flag IN ('Y', 'N'))  THEN
204            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
205            IGS_GE_MSG_STACK.ADD;
206            App_Exception.Raise_Exception;
207         END IF;
208       END IF;
209 
210     -- The following code checks for check constraints on the Columns.
211       IF Upper(Column_Name) = 'PROGRAM_OFFERING_OPTION_FLAG' OR
212       	Column_Name IS NULL THEN
213         IF NOT (new_references.program_offering_option_flag IN ('Y', 'N'))  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 
220     -- The following code checks for check constraints on the Columns.
221       IF Upper(Column_Name) = 'UNIT_FLAG' OR
222       	Column_Name IS NULL THEN
223         IF NOT (new_references.unit_flag IN ('Y', 'N'))  THEN
224            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
225            IGS_GE_MSG_STACK.ADD;
226            App_Exception.Raise_Exception;
227         END IF;
228       END IF;
229 
230     -- The following code checks for check constraints on the Columns.
231       IF Upper(Column_Name) = 'UNIT_SECTION_FLAG' OR
232       	Column_Name IS NULL THEN
233         IF NOT (new_references.unit_section_flag IN ('Y', 'N'))  THEN
234            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
235            IGS_GE_MSG_STACK.ADD;
236            App_Exception.Raise_Exception;
237         END IF;
238       END IF;
239 
240     -- The following code checks for check constraints on the Columns.
241       IF Upper(Column_Name) = 'UNIT_SECTION_OCCURRENCE_FLAG' OR
242       	Column_Name IS NULL THEN
243         IF NOT (new_references.unit_section_occurrence_flag IN ('Y', 'N'))  THEN
244            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
245            IGS_GE_MSG_STACK.ADD;
246            App_Exception.Raise_Exception;
247         END IF;
248       END IF;
249 
250       --Added as a part of Enh#2858431
251       IF NOT (new_references.restricted_flag IN ('Y', 'N'))  THEN
252          Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
253          IGS_GE_MSG_STACK.ADD;
254          App_Exception.Raise_Exception;
255       END IF;
256 
257  END Check_Constraints;
258 
259 
260   PROCEDURE Check_Parent_Existance as
261 /*************************************************************
262   Created By :
263   Date Created By :
264   Purpose :
265   Know limitations, enhancements or remarks
266   Change History
267   Who             When            What
268   (reverse chronological order - newest change first)
269 ***************************************************************/
270 
271   BEGIN
272 
273     IF (((old_references.s_reference_cd_type = new_references.s_reference_cd_type)) OR
274         ((new_references.s_reference_cd_type IS NULL))) THEN
275       NULL;
276     ELSE
277       IF NOT IGS_LOOKUPS_view_Pkg.Get_PK_For_Validation (
278 	  'REFERENCE_CD_TYPE',
279         new_references.s_reference_cd_type
280         ) THEN
281 		Fnd_Message.Set_Name('FND','FORM_RECORD_DELETED');
282 		IGS_GE_MSG_STACK.ADD;
283 		App_Exception.Raise_Exception;
284 	END IF;
285 
286     END IF;
287 
288   END Check_Parent_Existance;
289 
290   PROCEDURE Check_Child_Existance as
291 /*************************************************************
292   Created By :
293   Date Created By :
294   Purpose :
295   Know limitations, enhancements or remarks
296   Change History
297   Who             When            What
298   (reverse chronological order - newest change first)
299 ***************************************************************/
300 
301   BEGIN
302 
303     IGS_GE_REF_CD_PKG.GET_FK_IGS_GE_REF_CD_TYPE(
304        old_references.reference_cd_type
305       );
306 
307     IGS_PS_ENT_PT_REF_CD_PKG.GET_FK_IGS_GE_REF_CD_TYPE (
308        old_references.reference_cd_type
309       );
310 
311     IGS_PS_REF_CD_PKG.GET_FK_IGS_GE_REF_CD_TYPE (
312        old_references.reference_cd_type
313       );
314 
315     IGS_PS_REF_CD_HIST_PKG.GET_FK_IGS_GE_REF_CD_TYPE (
316        old_references.reference_cd_type
317       );
318 
319     IGS_PS_UNIT_REF_CD_PKG.GET_FK_IGS_GE_REF_CD_TYPE (
320       old_references.reference_cd_type
321       );
322 
323     IGS_PS_UNIT_REF_HIST_PKG.GET_FK_IGS_GE_REF_CD_TYPE (
324       old_references.reference_cd_type
325       );
326 
327     igs_ps_unitreqref_cd_pkg.get_fk_igs_ge_ref_cd_type (
328       old_references.reference_cd_type
329       );
330 
331     igs_ps_us_req_ref_cd_pkg.get_fk_igs_ge_ref_cd_type (
332       old_references.reference_cd_type
333       );
334 
335     igs_ps_usec_ref_cd_pkg.get_fk_igs_ge_ref_cd_type (
336       old_references.reference_cd_type
337       );
338 
339     igs_ps_usec_ocur_ref_pkg.get_fk_igs_ge_ref_cd_type (
340       old_references.reference_cd_type
341       );
342 
343   END Check_Child_Existance;
344 
345   FUNCTION GET_PK_FOR_VALIDATION (
346     x_reference_cd_type IN VARCHAR2
347     ) RETURN BOOLEAN as
348 /*************************************************************
349   Created By :
350   Date Created By :
351   Purpose :
352   Know limitations, enhancements or remarks
353   Change History
354   Who             When            What
355   (reverse chronological order - newest change first)
356 ***************************************************************/
357     CURSOR cur_rowid IS
358       SELECT   rowid
359       FROM     IGS_GE_REF_CD_TYPE_ALL
360       WHERE    reference_cd_type  = x_reference_cd_type
361       FOR UPDATE NOWAIT;
362 
363     lv_rowid cur_rowid%RowType;
364 
365   BEGIN
366 
367     Open cur_rowid;
368     Fetch cur_rowid INTO lv_rowid;
369 	IF (cur_rowid%FOUND) THEN
370 	  Close cur_rowid;
371 	  Return(TRUE);
372 	ELSE
373 	  Close cur_rowid;
374 	  Return(FALSE);
375 	END IF;
376 
377   END Get_PK_For_Validation;
378 
379   PROCEDURE GET_FK_IGS_LOOKUPS_VIEW (
380     x_s_reference_cd_type IN VARCHAR2
381     ) as
382 /*************************************************************
383   Created By :
384   Date Created By :
385   Purpose :
386   Know limitations, enhancements or remarks
387   Change History
388   Who             When            What
389   skpandey        24-JAN-2006     Bug#3686538: Stubbed as a part of query optimization
390   (reverse chronological order - newest change first)
391 ***************************************************************/
392   BEGIN
393 	NULL;
394   END GET_FK_IGS_LOOKUPS_VIEW;
395 
396   PROCEDURE Before_DML (
397     p_action IN VARCHAR2,
398     x_rowid IN VARCHAR2 DEFAULT NULL,
399     x_self_service_flag IN VARCHAR2 DEFAULT NULL,
400     x_reference_cd_type IN VARCHAR2 DEFAULT NULL,
401     x_description IN VARCHAR2 DEFAULT NULL,
402     x_s_reference_cd_type IN VARCHAR2 DEFAULT NULL,
403     x_closed_ind IN VARCHAR2 DEFAULT NULL,
404     x_program_flag IN VARCHAR2 DEFAULT NULL,
405     x_program_offering_option_flag IN VARCHAR2 DEFAULT NULL,
406     x_unit_flag IN VARCHAR2 DEFAULT NULL,
407     x_unit_section_flag IN VARCHAR2 DEFAULT NULL,
408     x_unit_section_occurrence_flag IN VARCHAR2 DEFAULT NULL,
409 
410     x_creation_date IN DATE DEFAULT NULL,
411     x_created_by IN NUMBER DEFAULT NULL,
412     x_last_update_date IN DATE DEFAULT NULL,
413     x_last_updated_by IN NUMBER DEFAULT NULL,
414     x_last_update_login IN NUMBER DEFAULT NULL,
415     x_org_id IN NUMBER DEFAULT NULL,
416     x_mandatory_flag                    IN     VARCHAR2    DEFAULT NULL,
417     x_restricted_flag IN VARCHAR2
418   ) as
419 /*************************************************************
420   Created By :
421   Date Created By :
422   Purpose :
423   Know limitations, enhancements or remarks
424   Change History
425   Who             When            What
426   sbeerell        09-MAY-2000     Changed according to DLD version 2
427   (reverse chronological order - newest change first)
428 ***************************************************************/
429   BEGIN
430 
431     Set_Column_Values (
432       p_action,
433       x_rowid,
434       x_self_service_flag,
435       x_reference_cd_type,
436       x_description,
437       x_s_reference_cd_type,
438       x_closed_ind,
439       x_program_flag,
440       x_program_offering_option_flag,
441       x_unit_flag,
442       x_unit_section_flag,
443       x_unit_section_occurrence_flag,
444 
445       x_creation_date,
446       x_created_by,
447       x_last_update_date,
448       x_last_updated_by,
449       x_last_update_login,
450       x_org_id,
451       x_mandatory_flag,
452       x_restricted_flag
453     );
454 
455     IF (p_action = 'INSERT') THEN
456       -- Call all the procedures related to Before Insert.
457       BeforeRowInsertUpdate1 ( p_inserting => TRUE );
458   	IF  GET_PK_FOR_VALIDATION ( new_references.reference_cd_type)  THEN
459 		Fnd_Message.Set_Name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
460 		IGS_GE_MSG_STACK.ADD;
461 		App_Exception.Raise_Exception;
462 	END IF;
463 	Check_Constraints;
464       Check_Parent_Existance;
465     ELSIF (p_action = 'UPDATE') THEN
466       -- Call all the procedures related to Before Update.
467       BeforeRowInsertUpdate1 ( p_updating => TRUE );
468 	Check_Constraints;
469       Check_Parent_Existance;
470     ELSIF (p_action = 'DELETE') THEN
471       -- Call all the procedures related to Before Delete.
472       Check_Child_Existance;
473     ELSIF (p_action = 'VALIDATE_INSERT') THEN
474   	IF  GET_PK_FOR_VALIDATION ( new_references.reference_cd_type )  THEN
475 		Fnd_Message.Set_Name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
476 		IGS_GE_MSG_STACK.ADD;
477 		App_Exception.Raise_Exception;
478 	END IF;
479 	Check_Constraints;
480     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
481  	Check_Constraints;
482     ELSIF (p_action = 'VALIDATE_DELETE') THEN
483       Check_Child_Existance;
484 
485     END IF;
486 
487   END Before_DML;
488 
489   PROCEDURE After_DML (
490     p_action IN VARCHAR2,
491     x_rowid IN VARCHAR2
492   ) as
493 /*************************************************************
494   Created By :
495   Date Created By :
496   Purpose :
497   Know limitations, enhancements or remarks
498   Change History
499   Who             When            What
500   (reverse chronological order - newest change first)
501 ***************************************************************/
502 
503   BEGIN
504 
505     l_rowid := x_rowid;
506 
507     IF (p_action = 'INSERT') THEN
508       -- Call all the procedures related to After Insert.
509       Null;
510     ELSIF (p_action = 'UPDATE') THEN
511       -- Call all the procedures related to After Update.
512       Null;
513     ELSIF (p_action = 'DELETE') THEN
514       -- Call all the procedures related to After Delete.
515       Null;
516     END IF;
517 
518   END After_DML;
519 
520 procedure INSERT_ROW (
521   X_ROWID in out NOCOPY VARCHAR2,
522   x_SELF_SERVICE_FLAG IN VARCHAR2,
523   x_REFERENCE_CD_TYPE IN VARCHAR2,
524   x_DESCRIPTION IN VARCHAR2,
525   x_S_REFERENCE_CD_TYPE IN VARCHAR2,
526   x_CLOSED_IND IN VARCHAR2,
527   x_PROGRAM_FLAG IN VARCHAR2,
528   x_PROGRAM_OFFERING_OPTION_FLAG IN VARCHAR2,
529   x_UNIT_FLAG IN VARCHAR2,
530   x_UNIT_SECTION_FLAG IN VARCHAR2,
531   x_UNIT_SECTION_OCCURRENCE_FLAG IN VARCHAR2,
532   X_MODE in VARCHAR2 default 'R',
533   X_ORG_ID in NUMBER,
534   x_mandatory_flag                    IN     VARCHAR2    DEFAULT NULL,
535   x_restricted_flag IN VARCHAR2
536   ) as
537 /*************************************************************
538   Created By :
539   Date Created By :
540   Purpose :
541   Know limitations, enhancements or remarks
542   Change History
543   Who             When            What
544   sbaliga	13-feb-2002	  Assigned igs_ge_gen-003.get_org_id to x-org_id in before_dml
545   				 as part of SWCR006 build.
546   sbeerell        09-MAY-2000     Changed according to DLD version 2
547   (reverse chronological order - newest change first)
548 ***************************************************************/
549 
550     cursor C is select ROWID from IGS_GE_REF_CD_TYPE_ALL
551       where REFERENCE_CD_TYPE = X_REFERENCE_CD_TYPE;
552     X_LAST_UPDATE_DATE DATE;
553     X_LAST_UPDATED_BY NUMBER;
554     X_LAST_UPDATE_LOGIN NUMBER;
555 begin
556   X_LAST_UPDATE_DATE := SYSDATE;
557   if(X_MODE = 'I') then
558     X_LAST_UPDATED_BY := 1;
559     X_LAST_UPDATE_LOGIN := 0;
560   elsif (X_MODE = 'R') then
561     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
562     if X_LAST_UPDATED_BY is NULL then
563       X_LAST_UPDATED_BY := -1;
564     end if;
565     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
566     if X_LAST_UPDATE_LOGIN is NULL then
567       X_LAST_UPDATE_LOGIN := -1;
568     end if;
569   else
570     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
571     IGS_GE_MSG_STACK.ADD;
572     app_exception.raise_exception;
573   end if;
574 
575   Before_DML (
576     p_action => 'INSERT',
577     x_rowid => X_ROWID,
578     x_org_id => igs_ge_gen_003.get_org_id,
579     x_self_service_flag=>X_SELF_SERVICE_FLAG,
580     x_reference_cd_type=>X_REFERENCE_CD_TYPE,
581     x_description=>X_DESCRIPTION,
582     x_s_reference_cd_type=>X_S_REFERENCE_CD_TYPE,
583     x_closed_ind=>NVL(X_CLOSED_IND,'N' ),
584     x_program_flag=>X_PROGRAM_FLAG,
585     x_program_offering_option_flag=>X_PROGRAM_OFFERING_OPTION_FLAG,
586     x_unit_flag=>X_UNIT_FLAG,
587     x_unit_section_flag=>X_UNIT_SECTION_FLAG,
588     x_unit_section_occurrence_flag=>X_UNIT_SECTION_OCCURRENCE_FLAG,
589     x_creation_date=>X_LAST_UPDATE_DATE,
590     x_created_by=>X_LAST_UPDATED_BY,
591     x_last_update_date=>X_LAST_UPDATE_DATE,
592     x_last_updated_by=>X_LAST_UPDATED_BY,
593     x_last_update_login=>X_LAST_UPDATE_LOGIN,
594 
595     x_mandatory_flag => X_MANDATORY_FLAG,
596     x_restricted_flag =>x_restricted_flag
597 );
598   insert into IGS_GE_REF_CD_TYPE_ALL (
599                  SELF_SERVICE_FLAG
600                 ,REFERENCE_CD_TYPE
601                 ,DESCRIPTION
602                 ,S_REFERENCE_CD_TYPE
603                 ,CLOSED_IND
604                 ,PROGRAM_FLAG
605                 ,PROGRAM_OFFERING_OPTION_FLAG
606                 ,UNIT_FLAG
607                 ,UNIT_SECTION_FLAG
608                 ,UNIT_SECTION_OCCURRENCE_FLAG
609                 ,CREATION_DATE
610                 ,CREATED_BY
611                 ,LAST_UPDATE_DATE
612                 ,LAST_UPDATED_BY
613                 ,LAST_UPDATE_LOGIN
614                 ,ORG_ID
615                 ,MANDATORY_FLAG
616                 ,RESTRICTED_FLAG
617   ) values (
618                  NEW_REFERENCES.SELF_SERVICE_FLAG
619                 ,NEW_REFERENCES.REFERENCE_CD_TYPE
620                 ,NEW_REFERENCES.DESCRIPTION
621                 ,NEW_REFERENCES.S_REFERENCE_CD_TYPE
622                 ,NEW_REFERENCES.CLOSED_IND
623                 ,NEW_REFERENCES.PROGRAM_FLAG
624                 ,NEW_REFERENCES.PROGRAM_OFFERING_OPTION_FLAG
625                 ,NEW_REFERENCES.UNIT_FLAG
626                 ,NEW_REFERENCES.UNIT_SECTION_FLAG
627                 ,NEW_REFERENCES.UNIT_SECTION_OCCURRENCE_FLAG
628                 ,X_LAST_UPDATE_DATE
629                 ,X_LAST_UPDATED_BY
630                 ,X_LAST_UPDATE_DATE
631                 ,X_LAST_UPDATED_BY
632                 ,X_LAST_UPDATE_LOGIN
633                 ,NEW_REFERENCES.ORG_ID
634                 ,NEW_REFERENCES.MANDATORY_FLAG
635                 ,NEW_REFERENCES.RESTRICTED_FLAG
636   );
637 
638   open c;
639   fetch c into X_ROWID;
640   if (c%notfound) then
641     close c;
642     raise no_data_found;
643   end if;
644   close c;
645 
646 After_DML (
647     p_action => 'INSERT',
648     x_rowid => X_ROWID
649 );
650 end INSERT_ROW;
651 
652 procedure LOCK_ROW (
653   X_ROWID in VARCHAR2,
654   x_SELF_SERVICE_FLAG IN VARCHAR2,
655   x_REFERENCE_CD_TYPE IN VARCHAR2,
656   x_DESCRIPTION IN VARCHAR2,
657   x_S_REFERENCE_CD_TYPE IN VARCHAR2,
658   x_CLOSED_IND IN VARCHAR2,
659   x_PROGRAM_FLAG IN VARCHAR2,
660   x_PROGRAM_OFFERING_OPTION_FLAG IN VARCHAR2,
661   x_UNIT_FLAG IN VARCHAR2,
662   x_UNIT_SECTION_FLAG IN VARCHAR2,
663   x_UNIT_SECTION_OCCURRENCE_FLAG IN VARCHAR2,
664   x_mandatory_flag IN VARCHAR2 DEFAULT NULL ,
665   x_restricted_flag IN VARCHAR2
666 ) as
667 /*************************************************************
668   Created By :
669   Date Created By :
670   Purpose :
671   Know limitations, enhancements or remarks
672   Change History
673   Who             When            What
674   sbeerell        09-MAY-2000     Changed according to DLD version 2
675   (reverse chronological order - newest change first)
676 ***************************************************************/
677 
678   cursor c1 is select
679      SELF_SERVICE_FLAG,
680      DESCRIPTION,
681      S_REFERENCE_CD_TYPE,
682      CLOSED_IND,
683      PROGRAM_FLAG,
684      PROGRAM_OFFERING_OPTION_FLAG,
685      UNIT_FLAG,
686      UNIT_SECTION_FLAG,
687      UNIT_SECTION_OCCURRENCE_FLAG,
688      MANDATORY_FLAG,
689      RESTRICTED_FLAG
690     from IGS_GE_REF_CD_TYPE_ALL
691        where ROWID = X_ROWID
692     for update  nowait;
693   tlinfo c1%rowtype;
694 
695 begin
696   open c1;
697   fetch c1 into tlinfo;
698   if (c1%notfound) then
699     close c1;
700     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
701     IGS_GE_MSG_STACK.ADD;
702     app_exception.raise_exception;
703     return;
704   end if;
705   close c1;
706 
707   if((tlinfo.SELF_SERVICE_FLAG = X_SELF_SERVICE_FLAG)
708     AND (tlinfo.DESCRIPTION = X_DESCRIPTION)
709     AND (tlinfo.S_REFERENCE_CD_TYPE = X_S_REFERENCE_CD_TYPE)
710     AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
711     AND (tlinfo.PROGRAM_FLAG = X_PROGRAM_FLAG)
712     AND (tlinfo.PROGRAM_OFFERING_OPTION_FLAG = X_PROGRAM_OFFERING_OPTION_FLAG)
713     AND (tlinfo.UNIT_FLAG = X_UNIT_FLAG)
714     AND (tlinfo.UNIT_SECTION_FLAG = X_UNIT_SECTION_FLAG)
715     AND (tlinfo.UNIT_SECTION_OCCURRENCE_FLAG = X_UNIT_SECTION_OCCURRENCE_FLAG)
716     AND ((tlinfo.mandatory_flag = x_mandatory_flag)
717          OR ((tlinfo.mandatory_flag IS NULL)
718              AND (X_mandatory_flag IS NULL)))
719     AND ((tlinfo.restricted_flag = x_restricted_flag)
720          OR ((tlinfo.restricted_flag IS NULL)
721              AND (X_restricted_flag IS NULL)))
722   ) then
723     null;
724   else
725     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
726     IGS_GE_MSG_STACK.ADD;
727     app_exception.raise_exception;
728   end if;
729   return;
730 end LOCK_ROW;
731 
732 procedure UPDATE_ROW (
733   X_ROWID in VARCHAR2,
734   x_SELF_SERVICE_FLAG IN VARCHAR2,
735   x_REFERENCE_CD_TYPE IN VARCHAR2,
736   x_DESCRIPTION IN VARCHAR2,
737   x_S_REFERENCE_CD_TYPE IN VARCHAR2,
738   x_CLOSED_IND IN VARCHAR2,
739   x_PROGRAM_FLAG IN VARCHAR2,
740   x_PROGRAM_OFFERING_OPTION_FLAG IN VARCHAR2,
741   x_UNIT_FLAG IN VARCHAR2,
742   x_UNIT_SECTION_FLAG IN VARCHAR2,
743   x_UNIT_SECTION_OCCURRENCE_FLAG IN VARCHAR2,
744   X_MODE in VARCHAR2 default 'R',
745   x_mandatory_flag IN VARCHAR2 DEFAULT NULL,
746   x_restricted_flag IN VARCHAR2
747   ) as
748 /*************************************************************
749   Created By :
750   Date Created By :
751   Purpose :
752   Know limitations, enhancements or remarks
753   Change History
754   Who             When            What
755   sbeerell        09-MAY-2000     Changed according to DLD version 2
756   (reverse chronological order - newest change first)
757 ***************************************************************/
758 
759     X_LAST_UPDATE_DATE DATE;
760     X_LAST_UPDATED_BY NUMBER;
761     X_LAST_UPDATE_LOGIN NUMBER;
762 begin
763   X_LAST_UPDATE_DATE := SYSDATE;
764   if(X_MODE = 'I') then
765     X_LAST_UPDATED_BY := 1;
766     X_LAST_UPDATE_LOGIN := 0;
767   elsif (X_MODE = 'R') then
768     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
769     if X_LAST_UPDATED_BY is NULL then
770       X_LAST_UPDATED_BY := -1;
771     end if;
772     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
773     if X_LAST_UPDATE_LOGIN is NULL then
774       X_LAST_UPDATE_LOGIN := -1;
775     end if;
776   else
777     FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
778     IGS_GE_MSG_STACK.ADD;
779     app_exception.raise_exception;
780   end if;
781 
782   Before_DML (
783     p_action => 'UPDATE',
784     x_rowid => X_ROWID,
785     x_self_service_flag=>X_SELF_SERVICE_FLAG,
786     x_reference_cd_type=>X_REFERENCE_CD_TYPE,
787     x_description=>X_DESCRIPTION,
788     x_s_reference_cd_type=>X_S_REFERENCE_CD_TYPE,
789     x_closed_ind=>NVL(X_CLOSED_IND,'N' ),
790     x_program_flag=>X_PROGRAM_FLAG,
791     x_program_offering_option_flag=>X_PROGRAM_OFFERING_OPTION_FLAG,
792     x_unit_flag=>X_UNIT_FLAG,
793     x_unit_section_flag=>X_UNIT_SECTION_FLAG,
794     x_unit_section_occurrence_flag=>X_UNIT_SECTION_OCCURRENCE_FLAG,
795     x_creation_date=>X_LAST_UPDATE_DATE,
796     x_created_by=>X_LAST_UPDATED_BY,
797     x_last_update_date=>X_LAST_UPDATE_DATE,
798     x_last_updated_by=>X_LAST_UPDATED_BY,
799     x_last_update_login=>X_LAST_UPDATE_LOGIN,
800 
801     x_mandatory_flag =>X_MANDATORY_FLAG,
802     x_restricted_flag => x_restricted_flag
803 		);
804 
805   update IGS_GE_REF_CD_TYPE_ALL set
806       SELF_SERVICE_FLAG =  NEW_REFERENCES.SELF_SERVICE_FLAG,
807       DESCRIPTION =  NEW_REFERENCES.DESCRIPTION,
808       S_REFERENCE_CD_TYPE =  NEW_REFERENCES.S_REFERENCE_CD_TYPE,
809       CLOSED_IND =  NEW_REFERENCES.CLOSED_IND,
810       PROGRAM_FLAG =  NEW_REFERENCES.PROGRAM_FLAG,
811       PROGRAM_OFFERING_OPTION_FLAG =  NEW_REFERENCES.PROGRAM_OFFERING_OPTION_FLAG,
812       UNIT_FLAG =  NEW_REFERENCES.UNIT_FLAG,
813       UNIT_SECTION_FLAG =  NEW_REFERENCES.UNIT_SECTION_FLAG,
814       UNIT_SECTION_OCCURRENCE_FLAG =  NEW_REFERENCES.UNIT_SECTION_OCCURRENCE_FLAG,
815       LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
816       LAST_UPDATED_BY = X_LAST_UPDATED_BY,
817       LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
818       MANDATORY_FLAG = NEW_REFERENCES.MANDATORY_FLAG,
819       RESTRICTED_FLAG = NEW_REFERENCES.RESTRICTED_FLAG
820     where ROWID = X_ROWID;
821   if (sql%notfound) then
822     raise no_data_found;
823   end if;
824   After_DML (
825     p_action => 'UPDATE',
826     x_rowid => X_ROWID
827   );
828 end UPDATE_ROW;
829 
830 procedure ADD_ROW (
831   X_ROWID in out NOCOPY VARCHAR2,
832   x_SELF_SERVICE_FLAG IN VARCHAR2,
833   x_REFERENCE_CD_TYPE IN VARCHAR2,
834   x_DESCRIPTION IN VARCHAR2,
835   x_S_REFERENCE_CD_TYPE IN VARCHAR2,
836   x_CLOSED_IND IN VARCHAR2,
837   x_PROGRAM_FLAG IN VARCHAR2,
838   x_PROGRAM_OFFERING_OPTION_FLAG IN VARCHAR2,
839   x_UNIT_FLAG IN VARCHAR2,
840   x_UNIT_SECTION_FLAG IN VARCHAR2,
841   x_UNIT_SECTION_OCCURRENCE_FLAG IN VARCHAR2,
842   X_MODE in VARCHAR2 default 'R',
843   X_ORG_ID in NUMBER,
844   X_mandatory_flag IN VARCHAR2 DEFAULT NULL,
845   x_restricted_flag IN VARCHAR2
846   ) as
847 /*************************************************************
848   Created By :
849   Date Created By :
850   Purpose :
851   Know limitations, enhancements or remarks
852   Change History
853   Who             When            What
854   sbeerell        09-MAY-2000     Changed according to DLD version 2
855   (reverse chronological order - newest change first)
856 ***************************************************************/
857 
858   cursor c1 is select rowid from IGS_GE_REF_CD_TYPE_ALL
859   where ROWID = X_ROWID
860   ;
861 
862 begin
863   open c1;
864   fetch c1 into X_ROWID;
865   if (c1%notfound) then
866     close c1;
867     INSERT_ROW (
868      X_ROWID,
869      X_SELF_SERVICE_FLAG,
870      X_REFERENCE_CD_TYPE,
871      X_DESCRIPTION,
872      X_S_REFERENCE_CD_TYPE,
873      X_CLOSED_IND,
874      X_PROGRAM_FLAG,
875      X_PROGRAM_OFFERING_OPTION_FLAG,
876      X_UNIT_FLAG,
877      X_UNIT_SECTION_FLAG,
878      X_UNIT_SECTION_OCCURRENCE_FLAG,
879      X_MODE,
880      X_ORG_ID,
881      x_MANDATORY_FLAG,
882      x_RESTRICTED_FLAG);
883 
884     return;
885   end if;
886   close c1;
887   UPDATE_ROW (
888    X_ROWID,
889    X_SELF_SERVICE_FLAG,
890    X_REFERENCE_CD_TYPE,
891    X_DESCRIPTION,
892    X_S_REFERENCE_CD_TYPE,
893    X_CLOSED_IND,
894    X_PROGRAM_FLAG,
895    X_PROGRAM_OFFERING_OPTION_FLAG,
896    X_UNIT_FLAG,
897    X_UNIT_SECTION_FLAG,
898    X_UNIT_SECTION_OCCURRENCE_FLAG,
899    X_MODE,
900    x_MANDATORY_FLAG ,
901    x_RESTRICTED_FLAG);
902 
903 end ADD_ROW;
904 
905 procedure DELETE_ROW (
906   X_ROWID in VARCHAR2
907 ) as
908 begin
909   Before_DML (
910     p_action => 'DELETE',
911     x_rowid => X_ROWID
912   );
913 
914   delete from IGS_GE_REF_CD_TYPE_ALL
915     where ROWID = X_ROWID;
916   if (sql%notfound) then
917     raise no_data_found;
918   end if;
919   After_DML (
920     p_action => 'DELETE',
921     x_rowid => X_ROWID
922   );
923 
924 end DELETE_ROW;
925 
926 end IGS_GE_REF_CD_TYPE_PKG;