DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_SOURCE_CAT_PKG

Source


1 PACKAGE BODY igs_ad_source_cat_pkg AS
2 /* $Header: IGSAI71B.pls 115.22 2003/07/01 10:24:41 pbondugu ship $ */
3   l_rowid VARCHAR2(25);
4   old_references igs_ad_source_cat_all%RowType;
5   new_references igs_ad_source_cat_all%RowType;
6 
7   PROCEDURE Set_Column_Values (
8     p_action IN VARCHAR2,
9     x_rowid IN VARCHAR2 DEFAULT NULL,
10 		x_org_id IN NUMBER DEFAULT NULL,
11     x_src_cat_id IN NUMBER DEFAULT NULL,
12     x_source_type_id IN NUMBER DEFAULT NULL,
13     x_category_name IN VARCHAR2 DEFAULT NULL,
14     x_mandatory_ind IN VARCHAR2 DEFAULT NULL,
15     x_include_ind IN VARCHAR2 DEFAULT NULL,
16     x_discrepancy_rule_cd IN VARCHAR2 DEFAULT NULL,
17     x_creation_date IN DATE DEFAULT NULL,
18     x_created_by IN NUMBER DEFAULT NULL,
19     x_last_update_date IN DATE DEFAULT NULL,
20     x_last_updated_by IN NUMBER DEFAULT NULL,
21     x_last_update_login IN NUMBER DEFAULT NULL,
22     x_ss_mandatory_ind IN VARCHAR2 DEFAULT NULL,
23     x_ss_ind IN   VARCHAR2    DEFAULT NULL,
24     x_display_sequence IN NUMBER DEFAULT NULL,
25     x_DETAIL_LEVEL_IND IN VARCHAR2 DEFAULT NULL,
26     x_AD_TAB_NAME  IN VARCHAR2 DEFAULT NULL,
27     x_INT_TAB_NAME  IN VARCHAR2 DEFAULT NULL
28   ) AS
29 
30   /*************************************************************
31   Created By : amuthu
32   Date Created On : 16-May-2000
33   Purpose :
34   Know limitations, enhancements or remarks
35   Change History
36   Who             When            What
37 pkpatel      18-JUN-2001       Modified to add the processing for 3 new ADDED columns DETAIL_LEVEL_IND,AD_TAB_NAME and INT_TAB_NAME
38   (reverse chronological order - newest change first)
39   ***************************************************************/
40 
41     CURSOR cur_old_ref_values IS
42       SELECT   *
43       FROM     IGS_AD_SOURCE_CAT_ALL
44       WHERE    rowid = x_rowid;
45 
46   BEGIN
47 
48     l_rowid := x_rowid;
49 
50     -- Code for setting the Old and New Reference Values.
51     -- Populate Old Values.
52     Open cur_old_ref_values;
53     Fetch cur_old_ref_values INTO old_references;
54     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
55       Close cur_old_ref_values;
56       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
57       IGS_GE_MSG_STACK.ADD;
58       App_Exception.Raise_Exception;
59       Return;
60     END IF;
61     Close cur_old_ref_values;
62 
63     -- Populate New Values.
64     new_references.org_id := x_org_id;
65     new_references.src_cat_id := x_src_cat_id;
66     new_references.source_type_id := x_source_type_id;
67     new_references.category_name := x_category_name;
68     new_references.mandatory_ind := x_mandatory_ind;
69     new_references.include_ind := x_include_ind;
70     new_references.discrepancy_rule_cd := x_discrepancy_rule_cd;
71     IF (p_action = 'UPDATE') THEN
72       new_references.creation_date := old_references.creation_date;
73       new_references.created_by := old_references.created_by;
74     ELSE
75       new_references.creation_date := x_creation_date;
76       new_references.created_by := x_created_by;
77     END IF;
78     new_references.last_update_date := x_last_update_date;
79     new_references.last_updated_by := x_last_updated_by;
80     new_references.last_update_login := x_last_update_login;
81     new_references.ss_mandatory_ind := x_ss_mandatory_ind;
82     new_references.ss_ind := x_ss_ind;
83     new_references.display_sequence := x_display_sequence;
84     new_references.DETAIL_LEVEL_IND := x_DETAIL_LEVEL_IND;
85     new_references.ad_tab_name := x_ad_tab_name;
86     new_references.int_tab_name := x_int_tab_name;
87 
88   END Set_Column_Values;
89 
90   PROCEDURE Check_Constraints (
91 		 Column_Name IN VARCHAR2  DEFAULT NULL,
92 		 Column_Value IN VARCHAR2  DEFAULT NULL ) AS
93   /*************************************************************
94   Created By : amuthu
95   Date Created On : 16-May-2000
96   Purpose :
97   Know limitations, enhancements or remarks
98   Change History
99   Who             When            What
100 pkpatel      18-JUN-2001       Modified to add the processing for 3 new ADDED columns DETAIL_LEVEL_IND,AD_TAB_NAME and INT_TAB_NAME
101   (reverse chronological order - newest change first)
102   ***************************************************************/
103 
104   BEGIN
105 
106       IF column_name IS NULL THEN
107         NULL;
108       ELSIF  UPPER(column_name) = 'INCLUDE_IND'  THEN
109         new_references.include_ind := column_value;
110       ELSIF  UPPER(column_name) = 'MANDATORY_IND'  THEN
111         new_references.mandatory_ind := column_value;
112         ----Removed the validations for SS_IND,DISPLAY_SEQUENCE
113       ELSIF UPPER(column_name) = 'DETAIL_LEVEL_IND' THEN
114         new_references.detail_level_ind := column_value;
115       END IF;
116 
117     -- The following code checks for check constraints on the Columns.
118       IF Upper(Column_Name) = 'INCLUDE_IND' OR
119       	Column_Name IS NULL THEN
120         IF NOT (new_references.include_ind IN ('Y','N'))  THEN
121            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
122       IGS_GE_MSG_STACK.ADD;
123            App_Exception.Raise_Exception;
124         END IF;
125       END IF;
126 
127     -- The following code checks for check constraints on the Columns.
128       IF Upper(Column_Name) = 'MANDATORY_IND' OR
129       	Column_Name IS NULL THEN
130         IF NOT (new_references.mandatory_ind IN ('Y','N'))  THEN
131            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
132       IGS_GE_MSG_STACK.ADD;
133            App_Exception.Raise_Exception;
134         END IF;
135       END IF;
136 
137 
138     -- The following code checks for check constraints on the Columns.
139       IF Upper(Column_Name) = 'DETAIL_LEVEL_IND' OR
140       	Column_Name IS NULL THEN
141         IF NOT (new_references.detail_level_ind IN ('Y','N'))  THEN
142            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
143       IGS_GE_MSG_STACK.ADD;
144            App_Exception.Raise_Exception;
145         END IF;
146       END IF;
147 
148 
149 END Check_Constraints;
150 
151   PROCEDURE Check_Uniqueness AS
152   /*************************************************************
153   Created By : amuthu
154   Date Created On : 16-May-2000
155   Purpose :
156   Know limitations, enhancements or remarks
157   Change History
158   Who             When            What
159 
160   (reverse chronological order - newest change first)
161   ***************************************************************/
162    Begin
163      	IF Get_Uk_For_Validation (
164     		new_references.source_type_id
165     		,new_references.category_name
166     		) THEN
167  	  Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
168 	  IGS_GE_MSG_STACK.ADD;
169 	  app_exception.raise_exception;
170     	END IF;
171    END Check_Uniqueness;
172 
173 
174 
175   PROCEDURE Check_Parent_Existance AS
176   /*************************************************************
177   Created By : amuthu
178   Date Created On : 16-May-2000
179   Purpose :
180   Know limitations, enhancements or remarks
181   Change History
182   Who             When            What
183 
184   (reverse chronological order - newest change first)
185   ***************************************************************/
186 
187   BEGIN
188 
189     IF (((old_references.discrepancy_rule_cd = new_references.discrepancy_rule_cd)) OR
190         ((new_references.discrepancy_rule_cd IS NULL))) THEN
191       NULL;
192     ELSIF NOT Igs_lookups_view_Pkg.Get_PK_For_Validation (
193 			'DISCREPANCY_RULE',
194         		new_references.discrepancy_rule_cd
195         )  THEN
196       Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
197       IGS_GE_MSG_STACK.ADD;
198       App_Exception.Raise_Exception;
199     END IF;
200 
201     IF (((old_references.source_type_id = new_references.source_type_id)) OR
202         ((new_references.source_type_id IS NULL))) THEN
203       NULL;
204     ELSIF NOT Igs_Pe_Src_Types_Pkg.Get_PK_For_Validation (
205         		new_references.source_type_id
206         )  THEN
207 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
208       IGS_GE_MSG_STACK.ADD;
209  	 App_Exception.Raise_Exception;
210     END IF;
211 
212   END Check_Parent_Existance;
213 
214   FUNCTION Get_PK_For_Validation (
215     x_src_cat_id IN NUMBER
216     ) RETURN BOOLEAN AS
217 
218   /*************************************************************
219   Created By : amuthu
220   Date Created On : 16-May-2000
221   Purpose :
222   Know limitations, enhancements or remarks
223   Change History
224   Who             When            What
225 
226   (reverse chronological order - newest change first)
227   ***************************************************************/
228 
229     CURSOR cur_rowid IS
230       SELECT   rowid
231       FROM     igs_ad_source_cat_all
232       WHERE    src_cat_id = x_src_cat_id
233       FOR UPDATE NOWAIT;
234 
235     lv_rowid cur_rowid%RowType;
236 
237   BEGIN
238 
239     Open cur_rowid;
240     Fetch cur_rowid INTO lv_rowid;
241     IF (cur_rowid%FOUND) THEN
242       Close cur_rowid;
243       Return(TRUE);
244     ELSE
245       Close cur_rowid;
246       Return(FALSE);
247     END IF;
248   END Get_PK_For_Validation;
249 
250   FUNCTION Get_UK_For_Validation (
251     x_source_type_id IN NUMBER,
252     x_category_name VARCHAR2
253     ) RETURN BOOLEAN AS
254 
255   /*************************************************************
256   Created By : amuthu
257   Date Created On : 16-May-2000
258   Purpose :
259   Know limitations, enhancements or remarks
260   Change History
261   Who             When            What
262 
263   (reverse chronological order - newest change first)
264   ***************************************************************/
265 
266     CURSOR cur_rowid IS
267       SELECT   rowid
268       FROM     igs_ad_source_cat_all
269       WHERE    source_type_id = x_source_type_id
270       AND      category_name = x_category_name and      ((l_rowid is null) or (rowid <> l_rowid))
271 
272       ;
273     lv_rowid cur_rowid%RowType;
274 
275   BEGIN
276 
277     Open cur_rowid;
278     Fetch cur_rowid INTO lv_rowid;
279     IF (cur_rowid%FOUND) THEN
280       Close cur_rowid;
281         return (true);
282         ELSE
283        close cur_rowid;
284       return(false);
285     END IF;
286   END Get_UK_For_Validation ;
287 
288 
289   PROCEDURE Get_FK_Igs_Pe_Src_Types (
290     x_source_type_id IN NUMBER
291     ) AS
292   /*************************************************************
293   Created By : amuthu
294   Date Created On : 16-May-2000
295   Purpose :
296   Know limitations, enhancements or remarks
297   Change History
298   Who             When            What
299 
300   (reverse chronological order - newest change first)
301   ***************************************************************/
302 
303     CURSOR cur_rowid IS
304       SELECT   rowid
305       FROM     igs_ad_source_cat_all
306       WHERE    source_type_id = x_source_type_id ;
307 
308     lv_rowid cur_rowid%RowType;
309 
310   BEGIN
311 
312     Open cur_rowid;
313     Fetch cur_rowid INTO lv_rowid;
314     IF (cur_rowid%FOUND) THEN
315       Close cur_rowid;
316       Fnd_Message.Set_Name ('IGS', 'IGS_AD_ASRC_PST_FK');
317       IGS_GE_MSG_STACK.ADD;
318       App_Exception.Raise_Exception;
319       Return;
320     END IF;
321     Close cur_rowid;
322 
323   END Get_FK_Igs_Pe_Src_Types;
324 
325   PROCEDURE Before_DML (
326     p_action IN VARCHAR2,
327     x_rowid IN VARCHAR2 DEFAULT NULL,
328 		x_org_id IN NUMBER DEFAULT NULL,
329     x_src_cat_id IN NUMBER DEFAULT NULL,
330     x_source_type_id IN NUMBER DEFAULT NULL,
331     x_category_name IN VARCHAR2 DEFAULT NULL,
332     x_mandatory_ind IN VARCHAR2 DEFAULT NULL,
333     x_include_ind IN VARCHAR2 DEFAULT NULL,
334     x_discrepancy_rule_cd IN VARCHAR2 DEFAULT NULL,
335     x_creation_date IN DATE DEFAULT NULL,
336     x_created_by IN NUMBER DEFAULT NULL,
337     x_last_update_date IN DATE DEFAULT NULL,
338     x_last_updated_by IN NUMBER DEFAULT NULL,
339     x_last_update_login IN NUMBER DEFAULT NULL,
340     x_ss_mandatory_ind IN VARCHAR2 DEFAULT NULL,
341     x_ss_ind IN VARCHAR2 DEFAULT NULL,
345     x_int_tab_name IN VARCHAR2 DEFAULT NULL
342     x_display_sequence IN NUMBER DEFAULT NULL,
343     x_detail_level_ind IN VARCHAR2 DEFAULT NULL,
344     x_ad_tab_name IN VARCHAR2 DEFAULT NULL,
346   ) AS
347   /*************************************************************
348   Created By : amuthu
349   Date Created On : 16-May-2000
350   Purpose :
351   Know limitations, enhancements or remarks
352   Change History
353   Who             When            What
354 pkpatel      18-JUN-2001       Modified to add the processing for 3 new ADDED columns DETAIL_LEVEL_IND,AD_TAB_NAME and INT_TAB_NAME
355   (reverse chronological order - newest change first)
356   ***************************************************************/
357 
358   BEGIN
359 
360     Set_Column_Values (
361       p_action,
362       x_rowid,
363 			x_org_id,
364       x_src_cat_id,
365       x_source_type_id,
366       x_category_name,
367       x_mandatory_ind,
368       x_include_ind,
369       x_discrepancy_rule_cd,
370       x_creation_date,
371       x_created_by,
372       x_last_update_date,
373       x_last_updated_by,
374       x_last_update_login,
375       x_ss_mandatory_ind,
376       x_ss_ind,
377       x_display_sequence,
378       x_detail_level_ind,
379       x_ad_tab_name,
380       x_int_tab_name
381     );
382 
383     IF (p_action = 'INSERT') THEN
384       -- Call all the procedures related to Before Insert.
385       Null;
386 	     IF Get_Pk_For_Validation(
387     		new_references.src_cat_id)  THEN
388 	       Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
389       IGS_GE_MSG_STACK.ADD;
390 	       App_Exception.Raise_Exception;
391 	     END IF;
392       Check_Uniqueness;
393       Check_Constraints;
394       Check_Parent_Existance;
395     ELSIF (p_action = 'UPDATE') THEN
396       -- Call all the procedures related to Before Update.
397       Check_Uniqueness;
398       Check_Constraints;
399       Check_Parent_Existance;
400     ELSIF (p_action = 'DELETE') THEN
401       -- Call all the procedures related to Before Delete.
402       before_delete(
403               X_ROWID=>	x_rowid
404                    );
405     ELSIF (p_action = 'VALIDATE_INSERT') THEN
406 	 -- Call all the procedures related to Before Insert.
407       IF Get_PK_For_Validation (
408     		new_references.src_cat_id)  THEN
409 	       Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
410       IGS_GE_MSG_STACK.ADD;
411 	       App_Exception.Raise_Exception;
412 	     END IF;
413       Check_Uniqueness;
414       Check_Constraints;
415     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
416       Check_Uniqueness;
417       Check_Constraints;
418     ELSIF (p_action = 'VALIDATE_DELETE') THEN
419       Null;
420     END IF;
421 
422   END Before_DML;
423 
424   PROCEDURE After_DML (
425     p_action           IN     VARCHAR2,
426     x_rowid            IN     VARCHAR2,
427     x_SRC_CAT_ID       IN OUT NOCOPY NUMBER,
428     x_CATEGORY_NAME    IN     VARCHAR2
429   ) IS
430   /*************************************************************
431   Created By : amuthu
432   Date Created On : 16-May-2000
433   Purpose :
434   Know limitations, enhancements or remarks
435   Change History
436   Who             When            What
437 
438   (reverse chronological order - newest change first)
439   ***************************************************************/
440 
441   BEGIN
442 
443     l_rowid := x_rowid;
444 
445     IF (p_action = 'INSERT') THEN
446       -- Call all the procedures related to After Insert.
447       after_insert(
448         x_SRC_CAT_ID       =>x_SRC_CAT_ID ,
449         x_CATEGORY_NAME    =>x_CATEGORY_NAME
450                   );
451     ELSIF (p_action = 'UPDATE') THEN
452       -- Call all the procedures related to After Update.
453       Null;
454     ELSIF (p_action = 'DELETE') THEN
455       -- Call all the procedures related to After Delete.
456       Null;
457     END IF;
458 
459   l_rowid:=NULL;
460   END After_DML;
461 
462  procedure INSERT_ROW (
463        x_ROWID in out NOCOPY VARCHAR2,
464        x_ORG_ID IN NUMBER,
465        x_SRC_CAT_ID IN OUT NOCOPY NUMBER,
466        x_SOURCE_TYPE_ID IN NUMBER,
467        x_CATEGORY_NAME IN VARCHAR2,
468        x_MANDATORY_IND IN VARCHAR2,
469        x_INCLUDE_IND IN VARCHAR2,
470        x_DISCREPANCY_RULE_CD IN VARCHAR2,
471        x_MODE in VARCHAR2 default 'R',
472        x_SS_MANDATORY_IND IN VARCHAR2,
473        x_SS_IND IN VARCHAR2,
474        x_DISPLAY_SEQUENCE IN NUMBER,
475        x_detail_level_ind IN VARCHAR2 DEFAULT NULL,
476        x_ad_tab_name IN VARCHAR2 DEFAULT NULL,
477        x_int_tab_name IN VARCHAR2 DEFAULT NULL
478   ) AS
479   /*************************************************************
480   Created By : amuthu
481   Date Created On : 16-May-2000
482   Purpose :
483   Know limitations, enhancements or remarks
484   Change History
485   Who             When            What
486 pkpatel      18-JUN-2001       Modified to add the processing for 3 new ADDED columns DETAIL_LEVEL_IND,AD_TAB_NAME and INT_TAB_NAME
490     cursor C is select ROWID from IGS_AD_SOURCE_CAT_ALL
487   (reverse chronological order - newest change first)
488   ***************************************************************/
489 
491              where                 SRC_CAT_ID= X_SRC_CAT_ID;
492 
493      X_LAST_UPDATE_DATE DATE ;
494      X_LAST_UPDATED_BY NUMBER ;
495      X_LAST_UPDATE_LOGIN NUMBER ;
496  BEGIN
497      X_LAST_UPDATE_DATE := SYSDATE;
498       if(X_MODE = 'I') then
499         X_LAST_UPDATED_BY := 1;
500         X_LAST_UPDATE_LOGIN := 0;
501          elsif (X_MODE = 'R') then
502                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
503             if X_LAST_UPDATED_BY is NULL then
504                 X_LAST_UPDATED_BY := -1;
505             end if;
506             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
507          if X_LAST_UPDATE_LOGIN is NULL then
508             X_LAST_UPDATE_LOGIN := -1;
509           end if;
510        else
511         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
512       IGS_GE_MSG_STACK.ADD;
513           app_exception.raise_exception;
514        end if;
515 
516    X_SRC_CAT_ID := -1;
517 
518    Before_DML(
519  		p_action=>'INSERT',
520  		x_rowid=>X_ROWID,
521 		x_org_id => igs_ge_gen_003.get_org_id,
522  	       x_src_cat_id=>X_SRC_CAT_ID,
523  	       x_source_type_id=>X_SOURCE_TYPE_ID,
524  	       x_category_name=>X_CATEGORY_NAME,
525  	       x_mandatory_ind=>X_MANDATORY_IND,
526  	       x_include_ind=>X_INCLUDE_IND,
527  	       x_discrepancy_rule_cd=>X_DISCREPANCY_RULE_CD,
528 	       x_creation_date=>X_LAST_UPDATE_DATE,
529 	       x_created_by=>X_LAST_UPDATED_BY,
530 	       x_last_update_date=>X_LAST_UPDATE_DATE,
531 	       x_last_updated_by=>X_LAST_UPDATED_BY,
532 	       x_last_update_login=>X_LAST_UPDATE_LOGIN,
533 	       x_ss_mandatory_ind=>X_SS_MANDATORY_IND,
534 	       x_ss_ind=>X_SS_IND,
535 	       x_display_sequence=>X_display_sequence,
536 	       x_detail_level_ind => NVL(X_DETAIL_LEVEL_IND,'N'),
537 	       x_ad_tab_name => X_AD_TAB_NAME,
538 	       x_int_tab_name => X_INT_TAB_NAME
539               );
540      insert into IGS_AD_SOURCE_CAT_ALL (
541 		ORG_ID,
542 		SRC_CAT_ID
543 		,SOURCE_TYPE_ID
544 		,CATEGORY_NAME
545 		,MANDATORY_IND
546 		,INCLUDE_IND
547 		,DISCREPANCY_RULE_CD
548 	        ,CREATION_DATE
549 		,CREATED_BY
550 		,LAST_UPDATE_DATE
551 		,LAST_UPDATED_BY
552 		,LAST_UPDATE_LOGIN,
553 		SS_MANDATORY_IND
554 		,SS_IND
555 		,DISPLAY_SEQUENCE
556 		,DETAIL_LEVEL_IND
557 		,AD_TAB_NAME
558 		,INT_TAB_NAME
559         ) values
560          (
561 	        NEW_REFERENCES.ORG_ID,
562 	        IGS_AD_SRC_CAT_S.NEXTVAL
563 	        ,NEW_REFERENCES.SOURCE_TYPE_ID
564 	        ,NEW_REFERENCES.CATEGORY_NAME
565 	        ,NEW_REFERENCES.MANDATORY_IND
566 	        ,NEW_REFERENCES.INCLUDE_IND
567 	        ,NEW_REFERENCES.DISCREPANCY_RULE_CD
568 	        ,X_LAST_UPDATE_DATE
569 		,X_LAST_UPDATED_BY
570 		,X_LAST_UPDATE_DATE
571 		,X_LAST_UPDATED_BY
572 		,X_LAST_UPDATE_LOGIN
573 		,NULL
574 		,NULL
575 		,NULL
576 		,NEW_REFERENCES.DETAIL_LEVEL_IND
577 		,NEW_REFERENCES.AD_TAB_NAME
578 		,NEW_REFERENCES.INT_TAB_NAME
579 ) RETURNING SRC_CAT_ID INTO X_SRC_CAT_ID;
580 		open c;
581 		 fetch c into X_ROWID;
582  		if (c%notfound) then
583 		close c;
584  	     raise no_data_found;
585 		end if;
586  		close c;
587     After_DML (
588 		p_action => 'INSERT' ,
589 		x_rowid => X_ROWID   ,
590 		x_src_cat_id => X_SRC_CAT_ID ,
591 		x_category_name => NEW_REFERENCES.CATEGORY_NAME );
592 
593 end INSERT_ROW;
594 
595 
596 procedure LOCK_ROW (
597       X_ROWID in  VARCHAR2,
598        x_SRC_CAT_ID IN NUMBER,
599        x_SOURCE_TYPE_ID IN NUMBER,
600        x_CATEGORY_NAME IN VARCHAR2,
601        x_MANDATORY_IND IN VARCHAR2,
602        x_INCLUDE_IND IN VARCHAR2,
603        x_DISCREPANCY_RULE_CD IN VARCHAR2,
604        x_ss_mandatory_ind IN VARCHAR2,
605        x_ss_ind IN VARCHAR2,
606        x_display_sequence IN NUMBER,
607        x_detail_level_ind IN VARCHAR2 DEFAULT NULL,
608        x_ad_tab_name  IN VARCHAR2 DEFAULT NULL,
609        x_int_tab_name IN VARCHAR2 DEFAULT NULL
610          ) AS
611   /*************************************************************
612   Created By : amuthu
613   Date Created On : 16-May-2000
614   Purpose :
615   Know limitations, enhancements or remarks
616   Change History
617   Who             When            What
618 pkpatel      18-JUN-2001       Modified to add the processing for 3 new ADDED columns DETAIL_LEVEL_IND,AD_TAB_NAME and INT_TAB_NAME
619   (reverse chronological order - newest change first)
620   ***************************************************************/
621 
622    cursor c1 is
623    	select	SOURCE_TYPE_ID, CATEGORY_NAME, MANDATORY_IND, INCLUDE_IND, DISCREPANCY_RULE_CD,
624    	SS_IND,DISPLAY_SEQUENCE,DETAIL_LEVEL_IND,AD_TAB_NAME,INT_TAB_NAME
625    	  from IGS_AD_SOURCE_CAT_ALL
626    	 where ROWID = X_ROWID
627    	   for update nowait;
628      tlinfo c1%rowtype;
629 BEGIN
630   open c1;
631   fetch c1 into tlinfo;
632   if (c1%notfound) then
636     app_exception.raise_exception;
633     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
634       IGS_GE_MSG_STACK.ADD;
635     close c1;
637     return;
638   end if;
639   close c1;
640    ----Removed the check  for SS_IND,DISPLAY_SEQUENCE,SS_MANDATORY_IND ( pbondugu  Bug #3032535)
641 if (
642          ((tlinfo.MANDATORY_IND = X_MANDATORY_IND)
643    	    OR ((tlinfo.MANDATORY_IND is null)
644 		AND (X_MANDATORY_IND is null)))
645   AND (tlinfo.INCLUDE_IND = X_INCLUDE_IND)
646   AND (tlinfo.DISCREPANCY_RULE_CD = X_DISCREPANCY_RULE_CD)
647   AND ((tlinfo.DETAIL_LEVEL_IND = X_DETAIL_LEVEL_IND)
648    	    OR ((tlinfo.DETAIL_LEVEL_IND is null)
649 		AND (X_DETAIL_LEVEL_IND is null)))
650   AND ((tlinfo.AD_TAB_NAME = X_AD_TAB_NAME)
651    	    OR ((tlinfo.AD_TAB_NAME is null)
652 		AND (X_AD_TAB_NAME is null)))
653   AND ((tlinfo.INT_TAB_NAME = X_INT_TAB_NAME)
654    	    OR ((tlinfo.INT_TAB_NAME is null)
655 		AND (X_INT_TAB_NAME is null)))
656   ) then
657     null;
658   else
659     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
660       IGS_GE_MSG_STACK.ADD;
661     app_exception.raise_exception;
662   end if;
663   return;
664 end LOCK_ROW;
665  Procedure UPDATE_ROW (
666       X_ROWID in  VARCHAR2,
667        x_SRC_CAT_ID IN NUMBER,
668        x_SOURCE_TYPE_ID IN NUMBER,
669        x_CATEGORY_NAME IN VARCHAR2,
670        x_MANDATORY_IND IN VARCHAR2,
671        x_INCLUDE_IND IN VARCHAR2,
672        x_DISCREPANCY_RULE_CD IN VARCHAR2,
673       x_ss_mandatory_ind IN VARCHAR2,
674       x_SS_IND IN VARCHAR2,
675       x_DISPLAY_SEQUENCE IN NUMBER ,
676       x_DETAIL_LEVEL_IND IN VARCHAR2 DEFAULT NULL,
677       x_AD_TAB_NAME IN VARCHAR2 DEFAULT NULL,
678       x_INT_TAB_NAME IN VARCHAR2 DEFAULT NULL,
679       X_MODE in VARCHAR2 default 'R'
680   ) AS
681   /*************************************************************
682   Created By : amuthu
683   Date Created On : 16-May-2000
684   Purpose :
685   Know limitations, enhancements or remarks
686   Change History
687   Who             When            What
688  pkpatel      18-JUN-2001       Modified to add the processing for 3 new ADDED columns DETAIL_LEVEL_IND,AD_TAB_NAME and INT_TAB_NAME
689   (reverse chronological order - newest change first)
690   ***************************************************************/
691 
692      X_LAST_UPDATE_DATE DATE ;
693      X_LAST_UPDATED_BY NUMBER ;
694      X_LAST_UPDATE_LOGIN NUMBER ;
695  BEGIN
696      X_LAST_UPDATE_DATE := SYSDATE;
697       if(X_MODE = 'I') then
698         X_LAST_UPDATED_BY := 1;
699         X_LAST_UPDATE_LOGIN := 0;
700          elsif (X_MODE = 'R') then
701                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
702             if X_LAST_UPDATED_BY is NULL then
703                 X_LAST_UPDATED_BY := -1;
704             end if;
705             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
706          if X_LAST_UPDATE_LOGIN is NULL then
707             X_LAST_UPDATE_LOGIN := -1;
708           end if;
709        else
710         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
711       IGS_GE_MSG_STACK.ADD;
712           app_exception.raise_exception;
713        end if;
714    Before_DML(
715  		p_action=>'UPDATE',
716  		x_rowid=>X_ROWID,
717  	       x_src_cat_id=>X_SRC_CAT_ID,
718  	       x_source_type_id=>X_SOURCE_TYPE_ID,
719  	       x_category_name=>X_CATEGORY_NAME,
720  	       x_mandatory_ind=>X_MANDATORY_IND,
721  	       x_include_ind=>X_INCLUDE_IND,
722  	       x_discrepancy_rule_cd=>X_DISCREPANCY_RULE_CD,
723 	       x_creation_date=>X_LAST_UPDATE_DATE,
724 	       x_created_by=>X_LAST_UPDATED_BY,
725 	       x_last_update_date=>X_LAST_UPDATE_DATE,
726 	       x_last_updated_by=>X_LAST_UPDATED_BY,
727 	       x_last_update_login=>X_LAST_UPDATE_LOGIN,
728 	       x_ss_mandatory_ind=>X_SS_MANDATORY_IND,
729 	       x_ss_ind=>X_SS_IND,
730 	       x_display_sequence=>X_DISPLAY_SEQUENCE,
731 	       x_detail_level_ind=> X_DETAIL_LEVEL_IND,
732 	       x_ad_tab_name => X_AD_TAB_NAME,
733 	       x_int_tab_name => X_INT_TAB_NAME
734 	       );
735    update IGS_AD_SOURCE_CAT_ALL set
736         MANDATORY_IND =  NEW_REFERENCES.MANDATORY_IND,
737         INCLUDE_IND =  NEW_REFERENCES.INCLUDE_IND,
738         DISCREPANCY_RULE_CD =  NEW_REFERENCES.DISCREPANCY_RULE_CD,
739 	LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
740 	LAST_UPDATED_BY = X_LAST_UPDATED_BY,
741 	LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
742 	SS_MANDATORY_IND = NULL,
743 	SS_IND = NULL,
744 	DISPLAY_SEQUENCE = NULL,
745 	DETAIL_LEVEL_IND = NEW_REFERENCES.DETAIL_LEVEL_IND,
746 	AD_TAB_NAME = NEW_REFERENCES.AD_TAB_NAME,
747 	INT_TAB_NAME = NEW_REFERENCES.INT_TAB_NAME
748 	  where ROWID = X_ROWID;
749 	if (sql%notfound) then
750 		raise no_data_found;
751 	end if;
752 
753  After_DML (
754 	p_action => 'UPDATE' ,
755 	x_rowid => X_ROWID ,
756 	x_src_cat_id => NEW_REFERENCES.SRC_CAT_ID ,
757 	x_category_name => NEW_REFERENCES.CATEGORY_NAME
758 	);
759 end UPDATE_ROW;
760  procedure ADD_ROW (
761       X_ROWID in out NOCOPY VARCHAR2,
762 			x_ORG_ID IN NUMBER,
763        x_SRC_CAT_ID IN OUT NOCOPY NUMBER,
764        x_SOURCE_TYPE_ID IN NUMBER,
765        x_CATEGORY_NAME IN VARCHAR2,
769       X_MODE in VARCHAR2 default 'R',
766        x_MANDATORY_IND IN VARCHAR2,
767        x_INCLUDE_IND IN VARCHAR2,
768        x_DISCREPANCY_RULE_CD IN VARCHAR2,
770       x_ss_mandatory_ind IN VARCHAR2,
771       x_SS_IND IN VARCHAR2,
772       x_DISPLAY_SEQUENCE IN NUMBER,
773       x_DETAIL_LEVEL_IND IN VARCHAR2 DEFAULT NULL,
774       x_AD_TAB_NAME IN VARCHAR2 DEFAULT NULL,
775       x_INT_TAB_NAME IN VARCHAR2 DEFAULT NULL
776   ) AS
777   /*************************************************************
778   Created By : amuthu
779   Date Created On : 16-May-2000
780   Purpose :
781   Know limitations, enhancements or remarks
782   Change History
783   Who             When            What
784  pkpatel      18-JUN-2001       Modified to add the processing for 3 new ADDED columns DETAIL_LEVEL_IND,AD_TAB_NAME and INT_TAB_NAME
785   (reverse chronological order - newest change first)
786   ***************************************************************/
787 
788     cursor c1 is select ROWID from IGS_AD_SOURCE_CAT_ALL
789              where     SRC_CAT_ID= X_SRC_CAT_ID
790 ;
791 BEGIN
792 	open c1;
793 		fetch c1 into X_ROWID;
794 	if (c1%notfound) then
795 	close c1;
796     INSERT_ROW (
797       X_ROWID,
798 			x_ORG_ID,
799        X_SRC_CAT_ID,
800        X_SOURCE_TYPE_ID,
801        X_CATEGORY_NAME,
802        X_MANDATORY_IND,
803        X_INCLUDE_IND,
804        X_DISCREPANCY_RULE_CD,
805       X_MODE,
806       X_SS_MANDATORY_IND,
807       X_SS_IND,
808       X_DISPLAY_SEQUENCE ,
809       X_DETAIL_LEVEL_IND,
810       X_AD_TAB_NAME,
811       X_INT_TAB_NAME
812                );
813      return;
814 	end if;
815 	   close c1;
816 UPDATE_ROW (
817       X_ROWID,
818        X_SRC_CAT_ID,
819        X_SOURCE_TYPE_ID,
820        X_CATEGORY_NAME,
821        X_MANDATORY_IND,
822        X_INCLUDE_IND,
823        X_DISCREPANCY_RULE_CD,
824       X_SS_MANDATORY_IND,
825       X_SS_IND,
826       X_DISPLAY_SEQUENCE,
827       X_DETAIL_LEVEL_IND,
828       X_AD_TAB_NAME,
829       X_INT_TAB_NAME,
830       X_MODE
831  );
832 end ADD_ROW;
833 
834 procedure DELETE_ROW (
835   X_ROWID in VARCHAR2
836 ) AS
837   /*************************************************************
838   Created By : amuthu
839   Date Created On : 16-May-2000
840   Purpose :
841   Know limitations, enhancements or remarks
842   Change History
843   Who             When            What
844 
845   (reverse chronological order - newest change first)
846   ***************************************************************/
847 BEGIN
848 
849 Before_DML (
850 p_action => 'DELETE',
851 x_rowid => X_ROWID
852 );
853  delete from IGS_AD_SOURCE_CAT_ALL
854  where ROWID = X_ROWID;
855   if (sql%notfound) then
856     raise no_data_found;
857   end if;
858 After_DML (
859  p_action => 'DELETE',
860  x_rowid => X_ROWID,
861  x_src_cat_id => NEW_REFERENCES.SRC_CAT_ID ,
862  x_category_name => NEW_REFERENCES.CATEGORY_NAME
863 );
864 end DELETE_ROW;
865 
866 procedure AFTER_INSERT(
867    x_SRC_CAT_ID       IN OUT NOCOPY NUMBER,
868    x_CATEGORY_NAME    IN     VARCHAR2
869 ) AS
870 /*************************************************************
871   Created By : ssomani
872   Date Created On : 23-Oct-2000
873   Purpose :
874   Know limitations, enhancements or remarks
875   Change History
876   Who             When            What
877 pkpatel       18-JUN-2001      DLD: Modelling and Forecasting-SDQ
878                                Added logic to populate IGS_AD_DSCP_ATTR table
879   (reverse chronological order - newest change first)
880 ***************************************************************/
881  l_rowid_ins        VARCHAR2(25);
882 
883  l_rowid_sysdiscrepancy_ins  VARCHAR2(25);
884  l_discrepancy_attr_id       igs_ad_dscp_attr.discrepancy_attr_id%TYPE;
885 
886 --Inserting records corresponding to CATEGORY_NAME into IGS_AD_DSCP_ATTR reading from IGS_AD_SYSDSCP_ATTR
887 --cursor c_attr is select category_name,attribute_name from IGS_AD_SYSDSCP_ATTR
888 --where   category_name=x_CATEGORY_NAME;
889 
890  CURSOR  c_sysdiscrepancy_attr_cur IS
891 SELECT a.lookup_code
892 FROM   igs_lookup_values a
893        ,igs_lookup_values b
894 WHERE  b.lookup_code = 'PERSON' -- applicable only for person details
895 AND    b.lookup_code = x_category_name
896 AND    b.lookup_type = 'IMP_CATEGORIES'
897 AND    NVL(b.closed_ind,'N') = 'N'
898 AND    a.lookup_type = 'IGS_PE_DTL_ATTR_DISCRP_RULE'
899 AND    NVL(a.closed_ind,'N') = 'N';
900 
901 BEGIN
902 
903 FOR c_sysdiscrepancy_attr_rec IN c_sysdiscrepancy_attr_cur LOOP
904   igs_ad_dscp_attr_pkg.insert_row(
905         X_ROWID                =>l_rowid_sysdiscrepancy_ins,
906         X_DISCREPANCY_ATTR_ID  =>l_discrepancy_attr_id,
907         X_SRC_CAT_ID           =>x_src_cat_id,
908         X_ATTRIBUTE_NAME       =>c_sysdiscrepancy_attr_rec.lookup_code,
909         X_DISCREPANCY_RULE_CD  =>'I', -- To make the default DISCREPANCY RULE as 'I' i.e. 'Updating Existing Values With Imported Values'
910         X_MODE                 =>'R');
911 END LOOP;
912 END after_insert;
913 
914 procedure BEFORE_DELETE (
915   X_ROWID in VARCHAR2
916 ) AS
917 /*************************************************************
918   Created By : ssomani
919   Date Created On : 23-Oct-2000
920   Purpose :
921   Know limitations, enhancements or remarks
922   Change History
923   Who             When            What
924 pkpatel       18-JUN-2001    DLD: Modelling and Forecasting
925                              Added logic to delete records from IGS_AD_DSCP_ATTR table
926   (reverse chronological order - newest change first)
927   ***************************************************************/
928  --Deleting records from child table IGS_AD_DSCP_ATTR using foriegn key SRC_CAT_ID
929  CURSOR  c_sysdiscrepancy_attr_del_cur IS
930  SELECT  ROWID
931  FROM    igs_ad_dscp_attr
932  WHERE   src_cat_id  =    (SELECT  src_cat_id
933    			   FROM    igs_ad_source_cat_all
934    			   WHERE   ROWID = X_ROWID);
935 
936 BEGIN
937 
938 OPEN c_sysdiscrepancy_attr_del_cur;
939   LOOP
940     FETCH c_sysdiscrepancy_attr_del_cur into l_rowid;
941     EXIT  WHEN c_sysdiscrepancy_attr_del_cur%NOTFOUND;
942     igs_ad_dscp_attr_pkg.delete_row(l_rowid);
943   END LOOP;
944 
945   IF c_sysdiscrepancy_attr_del_cur%ISOPEN THEN
946      CLOSE c_sysdiscrepancy_attr_del_cur;
947   END IF;
948 
949 END before_delete;
950 
951 END igs_ad_source_cat_pkg;