DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_CONV_GS_TYPES_PKG

Source


1 PACKAGE BODY igs_ad_conv_gs_types_pkg AS
2 /* $Header: IGSAI77B.pls 115.12 2003/12/09 11:06:49 akadam ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references igs_ad_conv_gs_types%RowType;
6   new_references igs_ad_conv_gs_types%RowType;
7 
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_conv_gs_types_id IN NUMBER DEFAULT NULL,
12     x_from_code_id IN NUMBER DEFAULT NULL,
13     x_to_code_id IN NUMBER DEFAULT NULL,
14     x_creation_date IN DATE DEFAULT NULL,
15     x_created_by IN NUMBER DEFAULT NULL,
16     x_last_update_date IN DATE DEFAULT NULL,
17     x_last_updated_by IN NUMBER DEFAULT NULL,
18     x_last_update_login IN NUMBER DEFAULT NULL
19   ) AS
20 
21   /*************************************************************
22   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
23   Date Created : 19-May-2000
24   Purpose :
25   Know limitations, enhancements or remarks
26   Change History
27   Who             When            What
28 
29   (reverse chronological order - newest change first)
30   ***************************************************************/
31     CURSOR cur_old_ref_values IS
32       SELECT   *
33       FROM     IGS_AD_CONV_GS_TYPES
34       WHERE    rowid = x_rowid;
35 
36   BEGIN
37     l_rowid := x_rowid;
38     -- Code for setting the Old and New Reference Values.
39     -- Populate Old Values.
40     Open cur_old_ref_values;
41     Fetch cur_old_ref_values INTO old_references;
42     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
43       Close cur_old_ref_values;
44       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
45       IGS_GE_MSG_STACK.ADD;
46       App_Exception.Raise_Exception;
47       Return;
48     END IF;
49     Close cur_old_ref_values;
50 
51     -- Populate New Values.
52     new_references.conv_gs_types_id := x_conv_gs_types_id;
53     new_references.from_code_id := x_from_code_id;
54     new_references.to_code_id := x_to_code_id;
55     IF (p_action = 'UPDATE') THEN
56       new_references.creation_date := old_references.creation_date;
57       new_references.created_by := old_references.created_by;
58     ELSE
59       new_references.creation_date := x_creation_date;
60       new_references.created_by := x_created_by;
61     END IF;
62     new_references.last_update_date := x_last_update_date;
63     new_references.last_updated_by := x_last_updated_by;
64     new_references.last_update_login := x_last_update_login;
65   END Set_Column_Values;
66 
67   PROCEDURE BeforeRowInsertUpdate(
68     p_inserting IN BOOLEAN DEFAULT FALSE,
69     p_updating IN BOOLEAN DEFAULT FALSE,
70     p_deleting IN BOOLEAN DEFAULT FALSE
71   ) AS
72   /*************************************************************
73   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
74   Date Created : 19-May-2000
75   Purpose : To ensure that the FROM_CODE_ID and TO_CODE_ID are not the same
76   Know limitations, enhancements or remarks
77   Change History
78   Who             When            What
79 
80   (reverse chronological order - newest change first)
81   ***************************************************************/
82   BEGIN
83     IF p_inserting OR p_updating THEN
84       IF (new_references.from_code_id = new_references.to_code_id) THEN
85         FND_MESSAGE.SET_NAME('IGS','IGS_AD_FROMTO_GRADE_SAME');
86         IGS_GE_MSG_STACK.ADD;
87         APP_EXCEPTION.RAISE_EXCEPTION;
88       END IF;
89     END IF;
90   END;
91 
92   PROCEDURE Check_Uniqueness AS
93   /*************************************************************
94   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
95   Date Created : 19-May-2000
96   Purpose :
97   Know limitations, enhancements or remarks
98   Change History
99   Who             When            What
100 
101   (reverse chronological order - newest change first)
102   ***************************************************************/
103   begin
104     IF Get_Uk_For_Validation (
105       new_references.from_code_id
106       ,new_references.to_code_id
107     ) THEN
108       Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
109       IGS_GE_MSG_STACK.ADD;
110       app_exception.raise_exception;
111     END IF;
112   END Check_Uniqueness ;
113 
114   PROCEDURE Check_Parent_Existance AS
115   /*************************************************************
116   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
117   Date Created : 19-May-2000
118   Purpose :
119   Know limitations, enhancements or remarks
120   Change History
121   Who             When            What
122 
123   (reverse chronological order - newest change first)
124   ***************************************************************/
125   BEGIN
126     IF (((old_references.to_code_id = new_references.to_code_id)) OR
127         ((new_references.to_code_id IS NULL))) THEN
128       NULL;
129     ELSIF NOT Igs_Ad_Code_Classes_Pkg.Get_UK2_For_Validation (
130                 new_references.to_code_id,
131                 'GRADING_SCALE_TYPES',
132                 'N'
133               ) THEN
134       Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
135       IGS_GE_MSG_STACK.ADD;
136       App_Exception.Raise_Exception;
137     END IF;
138 
139     IF (((old_references.from_code_id = new_references.from_code_id)) OR
140         ((new_references.from_code_id IS NULL))) THEN
141       NULL;
142     ELSIF NOT Igs_Ad_Code_Classes_Pkg.Get_UK2_For_Validation (
143                 new_references.from_code_id,
144                 'GRADING_SCALE_TYPES',
145                 'N'
146               ) THEN
147       Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
148       IGS_GE_MSG_STACK.ADD;
149       App_Exception.Raise_Exception;
150     END IF;
151 
152   END Check_Parent_Existance;
153 
154   PROCEDURE Check_Child_Existance IS
155   /*************************************************************
156   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
157   Date Created : 19-May-2000
158   Purpose :
159   Know limitations, enhancements or remarks
160   Change History
161   Who             When            What
162   (reverse chronological order - newest change first)
163   ***************************************************************/
164   BEGIN
165     Igs_Ad_Conv_Gs_Vals_Pkg.Get_FK_Igs_Ad_Conv_Gs_Types (
166       old_references.conv_gs_types_id
167     );
168   END Check_Child_Existance;
169 
170   FUNCTION Get_PK_For_Validation (
171     x_conv_gs_types_id IN NUMBER
172     ) RETURN BOOLEAN AS
173   /*************************************************************
174   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
175   Date Created : 19-May-2000
176   Purpose :
177   Know limitations, enhancements or remarks
178   Change History
179   Who             When            What
180 
181   (reverse chronological order - newest change first)
182   ***************************************************************/
183     CURSOR cur_rowid IS
184       SELECT   rowid
185       FROM     igs_ad_conv_gs_types
186       WHERE    conv_gs_types_id = x_conv_gs_types_id
187       FOR UPDATE NOWAIT;
188 
189     lv_rowid cur_rowid%RowType;
190 
191   BEGIN
192     Open cur_rowid;
193     Fetch cur_rowid INTO lv_rowid;
194     IF (cur_rowid%FOUND) THEN
195       Close cur_rowid;
196       Return(TRUE);
197     ELSE
198       Close cur_rowid;
199       Return(FALSE);
200     END IF;
201   END Get_PK_For_Validation;
202 
203   FUNCTION Get_UK_For_Validation (
204     x_from_code_id IN NUMBER,
205     x_to_code_id IN NUMBER
206   ) RETURN BOOLEAN AS
207   /*************************************************************
208   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
209   Date Created : 19-May-2000
210   Purpose :
211   Know limitations, enhancements or remarks
212   Change History
213   Who             When            What
214 
215   (reverse chronological order - newest change first)
216   ***************************************************************/
217     CURSOR cur_rowid IS
218       SELECT   rowid
219       FROM     igs_ad_conv_gs_types
220       WHERE    from_code_id = x_from_code_id
221       AND      to_code_id = x_to_code_id and ((l_rowid is null) or (rowid <> l_rowid));
222     lv_rowid cur_rowid%RowType;
223   BEGIN
224     Open cur_rowid;
225     Fetch cur_rowid INTO lv_rowid;
226     IF (cur_rowid%FOUND) THEN
227       Close cur_rowid;
228       return (true);
229     ELSE
230       close cur_rowid;
231       return(false);
232     END IF;
233   END Get_UK_For_Validation ;
234 
235   PROCEDURE Get_FK_Igs_Ad_Code_Classes (
236     x_code_id IN NUMBER
237   ) AS
238   /*************************************************************
239   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
240   Date Created : 19-May-2000
241   Purpose :
242   Know limitations, enhancements or remarks
243   Change History
244   Who             When            What
245 
246   (reverse chronological order - newest change first)
247   ***************************************************************/
248     CURSOR cur_rowid1 IS
249       SELECT   rowid
250       FROM     igs_ad_conv_gs_types
251       WHERE    to_code_id = x_code_id ;
252 
253     CURSOR cur_rowid2 IS
254       SELECT   rowid
255       FROM     igs_ad_conv_gs_types
256       WHERE    from_code_id = x_code_id ;
257 
258     lv_rowid1 cur_rowid1%RowType;
259     lv_rowid2 cur_rowid2%RowType;
260 
261   BEGIN
262     Open cur_rowid1;
263     Fetch cur_rowid1 INTO lv_rowid1;
264     IF (cur_rowid1%FOUND) THEN
265       Close cur_rowid1;
266       Fnd_Message.Set_Name ('IGS', 'IGS_AD_ACGT_ACDC_FK2');
267       IGS_GE_MSG_STACK.ADD;
268       App_Exception.Raise_Exception;
269       Return;
270     END IF;
271     Close cur_rowid1;
272 
273     Open cur_rowid2;
274     Fetch cur_rowid2 INTO lv_rowid2;
275     IF (cur_rowid2%FOUND) THEN
276       Close cur_rowid2;
277       Fnd_Message.Set_Name ('IGS', 'IGS_AD_ACGT_ACDC_FK1');
278       IGS_GE_MSG_STACK.ADD;
279       App_Exception.Raise_Exception;
280       Return;
281     END IF;
282     Close cur_rowid2;
283 
284   END Get_FK_Igs_Ad_Code_Classes;
285 
286   PROCEDURE Before_DML (
287     p_action IN VARCHAR2,
288     x_rowid IN VARCHAR2 DEFAULT NULL,
289     x_conv_gs_types_id IN NUMBER DEFAULT NULL,
290     x_from_code_id IN NUMBER DEFAULT NULL,
291     x_to_code_id IN NUMBER DEFAULT NULL,
292     x_creation_date IN DATE DEFAULT NULL,
293     x_created_by IN NUMBER DEFAULT NULL,
294     x_last_update_date IN DATE DEFAULT NULL,
295     x_last_updated_by IN NUMBER DEFAULT NULL,
296     x_last_update_login IN NUMBER DEFAULT NULL
297   ) AS
298   /*************************************************************
299   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
300   Date Created : 19-May-2000
301   Purpose :
302   Know limitations, enhancements or remarks
303   Change History
304   Who             When            What
305 
306   (reverse chronological order - newest change first)
307   ***************************************************************/
308   BEGIN
309     Set_Column_Values (
310       p_action,
311       x_rowid,
312       x_conv_gs_types_id,
313       x_from_code_id,
314       x_to_code_id,
315       x_creation_date,
316       x_created_by,
317       x_last_update_date,
318       x_last_updated_by,
319       x_last_update_login
320     );
321 
322     IF (p_action = 'INSERT') THEN
323       -- Call all the procedures related to Before Insert.
324       BeforeRowInsertUpdate ( p_inserting => TRUE );
325       IF Get_Pk_For_Validation(
326            new_references.conv_gs_types_id
327          ) THEN
328         Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
329         IGS_GE_MSG_STACK.ADD;
330 	App_Exception.Raise_Exception;
331       END IF;
332       Check_Uniqueness;
333       Check_Parent_Existance;
334     ELSIF (p_action = 'UPDATE') THEN
335       -- Call all the procedures related to Before Update.
336       BeforeRowInsertUpdate ( p_updating => TRUE );
337       Check_Uniqueness;
338       Check_Parent_Existance;
339     ELSIF (p_action = 'DELETE') THEN
340       -- Call all the procedures related to Before Delete.
341       Check_Child_Existance;
342     ELSIF (p_action = 'VALIDATE_INSERT') THEN
343       -- Call all the procedures related to Before Insert.
344       IF Get_PK_For_Validation (
345            new_references.conv_gs_types_id
346          ) THEN
347 	Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
348         IGS_GE_MSG_STACK.ADD;
349 	App_Exception.Raise_Exception;
350       END IF;
351       Check_Uniqueness;
352     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
353       Check_Uniqueness;
354     ELSIF (p_action = 'VALIDATE_DELETE') THEN
355       Check_Child_Existance;
356     END IF;
357 
358   END Before_DML;
359 
360   procedure INSERT_ROW (
361     X_ROWID in out NOCOPY VARCHAR2,
362     x_CONV_GS_TYPES_ID IN OUT NOCOPY NUMBER,
363     x_FROM_CODE_ID IN NUMBER,
364     x_TO_CODE_ID IN NUMBER,
365     X_MODE in VARCHAR2 default 'R'
366   ) AS
367   /*************************************************************
368   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
369   Date Created : 19-May-2000
370   Purpose :
371   Know limitations, enhancements or remarks
372   Change History
373   Who             When            What
374 
375   (reverse chronological order - newest change first)
376   ***************************************************************/
377     cursor C is
378       select ROWID
379       from IGS_AD_CONV_GS_TYPES
380       where CONV_GS_TYPES_ID= X_CONV_GS_TYPES_ID;
381     X_LAST_UPDATE_DATE DATE ;
382     X_LAST_UPDATED_BY NUMBER ;
383     X_LAST_UPDATE_LOGIN NUMBER ;
384   begin
385     X_LAST_UPDATE_DATE := SYSDATE;
386     if (X_MODE = 'I') then
387       X_LAST_UPDATED_BY := 1;
388       X_LAST_UPDATE_LOGIN := 0;
389     elsif (X_MODE = 'R') then
390       X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
391       if X_LAST_UPDATED_BY is NULL then
392         X_LAST_UPDATED_BY := -1;
393       end if;
394       X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
395       if X_LAST_UPDATE_LOGIN is NULL then
396         X_LAST_UPDATE_LOGIN := -1;
397       end if;
398     else
399       FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
400       IGS_GE_MSG_STACK.ADD;
401       app_exception.raise_exception;
402     end if;
403 
404     X_CONV_GS_TYPES_ID := -1;
405     Before_DML(
406       p_action=>'INSERT',
407       x_rowid=>X_ROWID,
408       x_conv_gs_types_id=>X_CONV_GS_TYPES_ID,
409       x_from_code_id=>X_FROM_CODE_ID,
410       x_to_code_id=>X_TO_CODE_ID,
411       x_creation_date=>X_LAST_UPDATE_DATE,
412       x_created_by=>X_LAST_UPDATED_BY,
413       x_last_update_date=>X_LAST_UPDATE_DATE,
414       x_last_updated_by=>X_LAST_UPDATED_BY,
415       x_last_update_login=>X_LAST_UPDATE_LOGIN
416     );
417     insert into IGS_AD_CONV_GS_TYPES (
418       CONV_GS_TYPES_ID
419       ,FROM_CODE_ID
420       ,TO_CODE_ID
421       ,CREATION_DATE
422       ,CREATED_BY
423       ,LAST_UPDATE_DATE
424       ,LAST_UPDATED_BY
425       ,LAST_UPDATE_LOGIN
426     ) values  (
427        IGS_AD_CONV_GS_TYPES_S.NEXTVAL
428       ,NEW_REFERENCES.FROM_CODE_ID
429       ,NEW_REFERENCES.TO_CODE_ID
430       ,X_LAST_UPDATE_DATE
431       ,X_LAST_UPDATED_BY
432       ,X_LAST_UPDATE_DATE
433       ,X_LAST_UPDATED_BY
434       ,X_LAST_UPDATE_LOGIN
435     )RETURNING CONV_GS_TYPES_ID INTO X_CONV_GS_TYPES_ID;
436     open c;
437     fetch c into X_ROWID;
438     if (c%notfound) then
439       close c;
440       raise no_data_found;
441     end if;
442     close c;
443   end INSERT_ROW;
444 
445   procedure LOCK_ROW (
446     X_ROWID in  VARCHAR2,
447     x_CONV_GS_TYPES_ID IN NUMBER,
448     x_FROM_CODE_ID IN NUMBER,
449     x_TO_CODE_ID IN NUMBER
450   ) AS
451   /*************************************************************
452   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
453   Date Created : 19-May-2000
454   Purpose :
455   Know limitations, enhancements or remarks
456   Change History
457   Who             When            What
458 
459   (reverse chronological order - newest change first)
460   ***************************************************************/
461     cursor c1 is
462       select FROM_CODE_ID
463              , TO_CODE_ID
464       from IGS_AD_CONV_GS_TYPES
465       where ROWID = X_ROWID
466       for update nowait;
467     tlinfo c1%rowtype;
468   begin
469     open c1;
470     fetch c1 into tlinfo;
471     if (c1%notfound) then
472       fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
473       IGS_GE_MSG_STACK.ADD;
474       close c1;
475       app_exception.raise_exception;
476       return;
477     end if;
478     close c1;
479     if (( tlinfo.FROM_CODE_ID = X_FROM_CODE_ID)
480         AND (tlinfo.TO_CODE_ID = X_TO_CODE_ID)) then
481       null;
482     else
483       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
484       IGS_GE_MSG_STACK.ADD;
485       app_exception.raise_exception;
486     end if;
487     return;
488   end LOCK_ROW;
489 
490   Procedure UPDATE_ROW (
491     X_ROWID in  VARCHAR2,
492     x_CONV_GS_TYPES_ID IN NUMBER,
493     x_FROM_CODE_ID IN NUMBER,
494     x_TO_CODE_ID IN NUMBER,
495     X_MODE in VARCHAR2 default 'R'
496   ) AS
497   /*************************************************************
498   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
499   Date Created : 19-May-2000
500   Purpose :
501   Know limitations, enhancements or remarks
502   Change History
503   Who             When            What
504 
505   (reverse chronological order - newest change first)
506   ***************************************************************/
507     X_LAST_UPDATE_DATE DATE ;
508     X_LAST_UPDATED_BY NUMBER ;
509     X_LAST_UPDATE_LOGIN NUMBER ;
510   begin
511     X_LAST_UPDATE_DATE := SYSDATE;
512     if (X_MODE = 'I') then
513       X_LAST_UPDATED_BY := 1;
514       X_LAST_UPDATE_LOGIN := 0;
515     elsif (X_MODE = 'R') then
516       X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
517       if X_LAST_UPDATED_BY is NULL then
518         X_LAST_UPDATED_BY := -1;
519       end if;
520       X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
521       if X_LAST_UPDATE_LOGIN is NULL then
522         X_LAST_UPDATE_LOGIN := -1;
523       end if;
524     else
525       FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
526       IGS_GE_MSG_STACK.ADD;
527       app_exception.raise_exception;
528     end if;
529     Before_DML(
530       p_action=>'UPDATE',
531       x_rowid=>X_ROWID,
532       x_conv_gs_types_id=>X_CONV_GS_TYPES_ID,
533       x_from_code_id=>X_FROM_CODE_ID,
534       x_to_code_id=>X_TO_CODE_ID,
535       x_creation_date=>X_LAST_UPDATE_DATE,
536       x_created_by=>X_LAST_UPDATED_BY,
537       x_last_update_date=>X_LAST_UPDATE_DATE,
538       x_last_updated_by=>X_LAST_UPDATED_BY,
539       x_last_update_login=>X_LAST_UPDATE_LOGIN
540     );
541     update IGS_AD_CONV_GS_TYPES
542       set
543         FROM_CODE_ID =  NEW_REFERENCES.FROM_CODE_ID,
544         TO_CODE_ID =  NEW_REFERENCES.TO_CODE_ID,
545         LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
546         LAST_UPDATED_BY = X_LAST_UPDATED_BY,
547         LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
548       where ROWID = X_ROWID;
549     if (sql%notfound) then
550       raise no_data_found;
551     end if;
552   end UPDATE_ROW;
553 
554   procedure ADD_ROW (
555     X_ROWID in out NOCOPY VARCHAR2,
556     x_CONV_GS_TYPES_ID IN  OUT NOCOPY NUMBER,
557     x_FROM_CODE_ID IN NUMBER,
558     x_TO_CODE_ID IN NUMBER,
559     X_MODE in VARCHAR2 default 'R'
560   ) AS
561   /*************************************************************
562   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
563   Date Created : 19-May-2000
564   Purpose :
565   Know limitations, enhancements or remarks
566   Change History
567   Who             When            What
568 
569   (reverse chronological order - newest change first)
570   ***************************************************************/
571     cursor c1 is
572       select ROWID
573       from IGS_AD_CONV_GS_TYPES
574       where CONV_GS_TYPES_ID= X_CONV_GS_TYPES_ID;
575   begin
576     open c1;
577     fetch c1 into X_ROWID;
578     if (c1%notfound) then
579       close c1;
580       INSERT_ROW (
581         X_ROWID,
582         X_CONV_GS_TYPES_ID,
583         X_FROM_CODE_ID,
584         X_TO_CODE_ID,
585         X_MODE
586       );
587       return;
588     end if;
589     close c1;
590     UPDATE_ROW (
591       X_ROWID,
592       X_CONV_GS_TYPES_ID,
593       X_FROM_CODE_ID,
594       X_TO_CODE_ID,
595       X_MODE
596     );
597   end ADD_ROW;
598 
599   procedure DELETE_ROW (
600     X_ROWID in VARCHAR2
601   ) AS
602   /*************************************************************
603   Created By :  Subramanikandan, Oracle IDC. (ssomasun.in)
604   Date Created : 19-May-2000
605   Purpose :
606   Know limitations, enhancements or remarks
607   Change History
608   Who             When            What
609 
610   (reverse chronological order - newest change first)
611   ***************************************************************/
612   begin
613     Before_DML (
614       p_action => 'DELETE',
615       x_rowid => X_ROWID
616     );
617     delete from IGS_AD_CONV_GS_TYPES
618       where ROWID = X_ROWID;
619     if (sql%notfound) then
620       raise no_data_found;
621     end if;
622   end DELETE_ROW;
623 
624 END igs_ad_conv_gs_types_pkg;