DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_OR_ORG_INST_TYPE_PKG

Source


1 PACKAGE BODY igs_or_org_inst_type_pkg AS
2 /* $Header: IGSOI19B.pls 120.0 2005/06/01 16:49:51 appldev noship $ */
3   l_rowid VARCHAR2(25);
4   old_references igs_or_org_inst_type_all%RowType;
5   new_references igs_or_org_inst_type_all%RowType;
6 
7   PROCEDURE Set_Column_Values (
8     p_action IN VARCHAR2,
9     x_rowid IN VARCHAR2 DEFAULT NULL,
10     x_institution_type IN VARCHAR2 DEFAULT NULL,
11     x_description IN VARCHAR2 DEFAULT NULL,
12     x_SYSTEM_INST_TYPE VARCHAR2,
13     x_close_ind IN VARCHAR2 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     X_ORG_ID in NUMBER  DEFAULT NULL
20   ) AS
21 
22   /*************************************************************
23   Created By : ssahai
24   Date Created By : 11/05/2000
25   Purpose : Populating the new_references columns to be used by other functions.
26   Know limitations, enhancements or remarks
27   Change History
28   Who             When            What
29 
30   (reverse chronological order - newest change first)
31   ***************************************************************/
32 
33     CURSOR cur_old_ref_values IS
34       SELECT   *
35       FROM     igs_or_org_inst_type_all
36       WHERE    rowid = x_rowid;
37 
38   BEGIN
39 
40     l_rowid := x_rowid;
41 
42     -- Code for setting the Old and New Reference Values.
43     -- Populate Old Values.
44     Open cur_old_ref_values;
45     Fetch cur_old_ref_values INTO old_references;
46     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
47       Close cur_old_ref_values;
48       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
49       IGS_GE_MSG_STACK.ADD;
50       App_Exception.Raise_Exception;
51       Return;
52     END IF;
53     Close cur_old_ref_values;
54 
55     -- Populate New Values.
56     new_references.institution_type := x_institution_type;
57     new_references.description := x_description;
58     new_references.system_inst_type := x_system_inst_type;
59     new_references.close_ind := x_close_ind;
60     new_references.org_id := x_org_id;
61     IF (p_action = 'UPDATE') THEN
62       new_references.creation_date := old_references.creation_date;
63       new_references.created_by := old_references.created_by;
64     ELSE
65       new_references.creation_date := x_creation_date;
66       new_references.created_by := x_created_by;
67     END IF;
68     new_references.last_update_date := x_last_update_date;
69     new_references.last_updated_by := x_last_updated_by;
70     new_references.last_update_login := x_last_update_login;
71 
72   END Set_Column_Values;
73 
74   PROCEDURE Check_Constraints (
75 		 Column_Name IN VARCHAR2  DEFAULT NULL,
76 		 Column_Value IN VARCHAR2  DEFAULT NULL ) AS
77   /*************************************************************
78   Created By : ssahai
79   Date Created By : 11/5/2000
80   Purpose : To check for the existance of Parent values before inserting into foreign key columns.
81   Know limitations, enhancements or remarks
82   Change History
83   Who             When            What
84 
85   (reverse chronological order - newest change first)
86   ***************************************************************/
87 
88   BEGIN
89 
90       IF column_name IS NULL THEN
91         NULL;
92       ELSIF  UPPER(column_name) = 'CLOSE_IND'  THEN
93         new_references.close_ind := column_value;
94         NULL;
95       END IF;
96 
97 
98 
99     -- The following code checks for check constraints on the Columns.
100       IF Upper(Column_Name) = 'CLOSE_IND' OR
101       	Column_Name IS NULL THEN
102         IF NOT (new_references.close_ind IN ('Y','N'))  THEN
103            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
104       IGS_GE_MSG_STACK.ADD;
105            App_Exception.Raise_Exception;
106         END IF;
107       END IF;
108 
109 
110   END Check_Constraints;
111 
112   PROCEDURE Check_Child_Existance IS
113   /*************************************************************
114   Created By : ssahai
115   Date Created By : 11/5/2000
116   Purpose : To check for the existance of of child records before deleting the records from this table
117   Know limitations, enhancements or remarks
118   Change History
119   Who             When            What
120   Aiyer           04-Feb-2003     Modified for the bug 2664699
121                                   Replaced call to IGS_AD_I_ENTRY_STATS_PKG.GET_FK_FOR_VALIDATION
122 				  with IGS_RC_I_ENT_STATS_PKG.GET_FK_FOR_VALIDATION
123   Gmaheswa	  18-Mar-2005     Modified for bug 4207144. Deleted the reference to IGS_RC_I_ENT_STATS_PKG
124 				  as it is obsoleted.
125   (reverse chronological order - newest change first)
126   ***************************************************************/
127 
128   BEGIN
129 
130     Igs_Or_Institution_Pkg.Get_FK_Igs_Or_Org_Inst_Type (
131       old_references.institution_type
132       );
133 
134   END Check_Child_Existance;
135 
136   FUNCTION Get_PK_For_Validation (
137     x_institution_type IN VARCHAR2
138     ) RETURN BOOLEAN AS
139 
140   /*************************************************************
141   Created By : ssahai
142   Date Created By : 11/5/2000
143   Purpose : This function is used by other TBH's in their check_parent_existance to validate their their Foreign key values to this PK.
144   Know limitations, enhancements or remarks
145   Change History
146   Who             When            What
147 
148   (reverse chronological order - newest change first)
149   ***************************************************************/
150 
151     CURSOR cur_rowid IS
152       SELECT   rowid
153       FROM     igs_or_org_inst_type_all
154       WHERE    institution_type = x_institution_type
155       FOR UPDATE NOWAIT;
156 
157     lv_rowid cur_rowid%RowType;
158 
159   BEGIN
160 
161     Open cur_rowid;
162     Fetch cur_rowid INTO lv_rowid;
163     IF (cur_rowid%FOUND) THEN
164       Close cur_rowid;
165       Return(TRUE);
166     ELSE
167       Close cur_rowid;
168       Return(FALSE);
169     END IF;
170   END Get_PK_For_Validation;
171 
172   PROCEDURE Before_DML (
173     p_action IN VARCHAR2,
174     x_rowid IN VARCHAR2 DEFAULT NULL,
175     x_institution_type IN VARCHAR2 DEFAULT NULL,
176     x_description IN VARCHAR2 DEFAULT NULL,
177     x_SYSTEM_INST_TYPE VARCHAR2 DEFAULT NULL,
178     x_close_ind IN VARCHAR2 DEFAULT NULL,
179     x_creation_date IN DATE DEFAULT NULL,
180     x_created_by IN NUMBER DEFAULT NULL,
181     x_last_update_date IN DATE DEFAULT NULL,
182     x_last_updated_by IN NUMBER DEFAULT NULL,
183     x_last_update_login IN NUMBER DEFAULT NULL,
184     X_ORG_ID in NUMBER  DEFAULT NULL
185   ) AS
186   /*************************************************************
187   Created By : ssahai
188   Date Created By : 11/5/2000
189   Purpose : This procedure is called before any DML operation as a parameter.
190   This is a function which is called from other functions like insert_row/ add_row etc.
191   Know limitations, enhancements or remarks
192   Change History
193   Who             When            What
194 
195   (reverse chronological order - newest change first)
196   ***************************************************************/
197 
198   BEGIN
199 
200     Set_Column_Values (
201       p_action,
202       x_rowid,
203       x_institution_type,
204       x_description,
205       x_SYSTEM_INST_TYPE,
206       x_close_ind,
207       x_creation_date,
208       x_created_by,
209       x_last_update_date,
210       x_last_updated_by,
211       x_last_update_login ,
212       x_org_id
213     );
214 
215     IF (p_action = 'INSERT') THEN
216       -- Call all the procedures related to Before Insert.
217       Null;
218 	     IF Get_Pk_For_Validation(
219     		new_references.institution_type)  THEN
220 	       Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
221       IGS_GE_MSG_STACK.ADD;
222 	       App_Exception.Raise_Exception;
223 	     END IF;
224       Check_Constraints;
225     ELSIF (p_action = 'UPDATE') THEN
226       -- Call all the procedures related to Before Update.
227       Null;
228       Check_Constraints;
229     ELSIF (p_action = 'DELETE') THEN
230       -- Call all the procedures related to Before Delete.
231       Null;
232       Check_Child_Existance;
233     ELSIF (p_action = 'VALIDATE_INSERT') THEN
234 	 -- Call all the procedures related to Before Insert.
235       IF Get_PK_For_Validation (
236     		new_references.institution_type)  THEN
237 	       Fnd_Message.Set_name('IGS','IGS_GE_MULTI_ORG_DUP_REC');
238       IGS_GE_MSG_STACK.ADD;
239 	       App_Exception.Raise_Exception;
240 	     END IF;
241       Check_Constraints;
242     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
243       Check_Constraints;
244     ELSIF (p_action = 'VALIDATE_DELETE') THEN
245       Check_Child_Existance;
246     END IF;
247 
248   END Before_DML;
249 
250   PROCEDURE After_DML (
251     p_action IN VARCHAR2,
252     x_rowid IN VARCHAR2
253   ) IS
254   /*************************************************************
255   Created By : ssahai
256   Date Created By : 11/5/2000
257   Purpose : In case there are any after dml operations functions are to be performed, those can come in here.
258   Know limitations, enhancements or remarks
259   Change History
260   Who             When            What
261 
262   (reverse chronological order - newest change first)
263   ***************************************************************/
264 
265   BEGIN
266 
267     l_rowid := x_rowid;
268 
269     IF (p_action = 'INSERT') THEN
270       -- Call all the procedures related to After Insert.
271       Null;
272     ELSIF (p_action = 'UPDATE') THEN
273       -- Call all the procedures related to After Update.
274       Null;
275     ELSIF (p_action = 'DELETE') THEN
276       -- Call all the procedures related to After Delete.
277       Null;
278     END IF;
279 
280   END After_DML;
281 
282  procedure INSERT_ROW (
283       X_ROWID in out NOCOPY VARCHAR2,
284        x_INSTITUTION_TYPE IN VARCHAR2,
285        x_DESCRIPTION IN VARCHAR2,
286        x_SYSTEM_INST_TYPE VARCHAR2,
287        x_CLOSE_IND IN VARCHAR2,
288       X_MODE in VARCHAR2 default 'R'  ,
289       X_ORG_ID in NUMBER
290   ) AS
291   /*************************************************************
292   Created By : ssahai
293   Date Created By : 11/5/2000
294   Purpose : This procedure is called from forms during an insert_row (ON_INSERT) operation.
295   This in turn calls before_dml.
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 C is select ROWID from igs_or_org_inst_type_all
304              where                 INSTITUTION_TYPE= X_INSTITUTION_TYPE
305 ;
306      X_LAST_UPDATE_DATE DATE ;
307      X_LAST_UPDATED_BY NUMBER ;
308      X_LAST_UPDATE_LOGIN NUMBER ;
309  begin
310      X_LAST_UPDATE_DATE := SYSDATE;
311       if(X_MODE = 'I') then
312         X_LAST_UPDATED_BY := 1;
313         X_LAST_UPDATE_LOGIN := 0;
314          elsif (X_MODE = 'R') then
315                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
316             if X_LAST_UPDATED_BY is NULL then
317                 X_LAST_UPDATED_BY := -1;
318             end if;
319             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
320          if X_LAST_UPDATE_LOGIN is NULL then
321             X_LAST_UPDATE_LOGIN := -1;
322           end if;
323        else
324         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
325       IGS_GE_MSG_STACK.ADD;
326           app_exception.raise_exception;
327        end if;
328    Before_DML(
329  		p_action=>'INSERT',
330  		x_rowid=>X_ROWID,
331  	       x_institution_type=>X_INSTITUTION_TYPE,
332  	       x_description=>X_DESCRIPTION,
333                x_SYSTEM_INST_TYPE=>x_system_inst_type,
334  	       x_close_ind=>X_CLOSE_IND,
335 	       x_creation_date=>X_LAST_UPDATE_DATE,
336 	       x_created_by=>X_LAST_UPDATED_BY,
337 	       x_last_update_date=>X_LAST_UPDATE_DATE,
338 	       x_last_updated_by=>X_LAST_UPDATED_BY,
339 	       x_last_update_login=>X_LAST_UPDATE_LOGIN,
340                x_org_id=>igs_ge_gen_003.get_org_id);
341 
342      insert into igs_or_org_inst_type_all (
343 		INSTITUTION_TYPE
344 		,DESCRIPTION
345 		,SYSTEM_INST_TYPE
346 		,CLOSE_IND
347 	        ,CREATION_DATE
348 		,CREATED_BY
349 		,LAST_UPDATE_DATE
350 		,LAST_UPDATED_BY
351 		,LAST_UPDATE_LOGIN
352             ,ORG_ID
353         ) values  (
354   	         NEW_REFERENCES.INSTITUTION_TYPE
355 	        ,NEW_REFERENCES.DESCRIPTION
356 		,NEW_REFERENCES.SYSTEM_INST_TYPE
357 	        ,NEW_REFERENCES.CLOSE_IND
358 	        ,X_LAST_UPDATE_DATE
359 		,X_LAST_UPDATED_BY
360 		,X_LAST_UPDATE_DATE
361 		,X_LAST_UPDATED_BY
362 		,X_LAST_UPDATE_LOGIN,
363              NEW_REFERENCES.ORG_ID
364 );
365 		open c;
366 		 fetch c into X_ROWID;
367  		if (c%notfound) then
368 		close c;
369  	     raise no_data_found;
370 		end if;
371  		close c;
372     After_DML (
373 		p_action => 'INSERT' ,
374 		x_rowid => X_ROWID );
375 end INSERT_ROW;
376 
377  procedure LOCK_ROW (
378       X_ROWID in  VARCHAR2,
379        x_INSTITUTION_TYPE IN VARCHAR2,
380        x_DESCRIPTION IN VARCHAR2,
381        x_SYSTEM_INST_TYPE VARCHAR2,
382        x_CLOSE_IND IN VARCHAR2  ) AS
383   /*************************************************************
384   Created By : ssahai
385   Date Created By : 11/5/2000
386   Purpose : This procedure is called from forms during lock_row (ON_LOCK) operation
387   Know limitations, enhancements or remarks
388   Change History
389   Who             When            What
390 
391   (reverse chronological order - newest change first)
392   ***************************************************************/
393 
394    cursor c1 is select
395       DESCRIPTION
396 ,      CLOSE_IND
397 ,      SYSTEM_INST_TYPE
398     from igs_or_org_inst_type_all
399     where ROWID = X_ROWID
400     for update nowait;
401      tlinfo c1%rowtype;
402 begin
403   open c1;
404   fetch c1 into tlinfo;
405   if (c1%notfound) then
406     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
407       IGS_GE_MSG_STACK.ADD;
408     close c1;
409     app_exception.raise_exception;
410     return;
411   end if;
412   close c1;
413 if ( (  tlinfo.DESCRIPTION = X_DESCRIPTION)   AND (tlinfo.system_inst_type = x_system_inst_type)
414   AND ((tlinfo.CLOSE_IND = X_CLOSE_IND)
415  	    OR ((tlinfo.CLOSE_IND is null)
416 		AND (X_CLOSE_IND is null)))
417 
418   ) then
419     null;
420   else
421     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
422       IGS_GE_MSG_STACK.ADD;
423     app_exception.raise_exception;
424   end if;
425   return;
426 end LOCK_ROW;
427  Procedure UPDATE_ROW (
428       X_ROWID in  VARCHAR2,
429        x_INSTITUTION_TYPE IN VARCHAR2,
430        x_DESCRIPTION IN VARCHAR2,
431        x_SYSTEM_INST_TYPE VARCHAR2,
432        x_CLOSE_IND IN VARCHAR2,
433       X_MODE in VARCHAR2 default 'R'
434   ) AS
435   /*************************************************************
436   Created By : ssahai
437   Date Created By : 11/5/2000
438   Purpose : This procedure is used to update a row in case the PK of the row being updated is present. It is called from ADD_ROW.
439   Know limitations, enhancements or remarks
440   Change History
441   Who             When            What
442 
443   (reverse chronological order - newest change first)
444   ***************************************************************/
445 
446      X_LAST_UPDATE_DATE DATE ;
447      X_LAST_UPDATED_BY NUMBER ;
448      X_LAST_UPDATE_LOGIN NUMBER ;
449  begin
450      X_LAST_UPDATE_DATE := SYSDATE;
451       if(X_MODE = 'I') then
452         X_LAST_UPDATED_BY := 1;
453         X_LAST_UPDATE_LOGIN := 0;
454          elsif (X_MODE = 'R') then
455                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
456             if X_LAST_UPDATED_BY is NULL then
457                 X_LAST_UPDATED_BY := -1;
458             end if;
459             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
460          if X_LAST_UPDATE_LOGIN is NULL then
461             X_LAST_UPDATE_LOGIN := -1;
462           end if;
463        else
464         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
465       IGS_GE_MSG_STACK.ADD;
466           app_exception.raise_exception;
467        end if;
468    Before_DML(
469  		p_action=>'UPDATE',
470  		x_rowid=>X_ROWID,
471  	       x_institution_type=>X_INSTITUTION_TYPE,
472  	       x_description=>X_DESCRIPTION,
473                x_SYSTEM_INST_TYPE => X_SYSTEM_INST_TYPE,
474  	       x_close_ind=>X_CLOSE_IND,
475 	       x_creation_date=>X_LAST_UPDATE_DATE,
476 	       x_created_by=>X_LAST_UPDATED_BY,
477 	       x_last_update_date=>X_LAST_UPDATE_DATE,
478 	       x_last_updated_by=>X_LAST_UPDATED_BY,
479 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
480    update igs_or_org_inst_type_all set
481       DESCRIPTION =  NEW_REFERENCES.DESCRIPTION,
482       SYSTEM_INST_TYPE = NEW_REFERENCES.SYSTEM_INST_TYPE,
483       CLOSE_IND =  NEW_REFERENCES.CLOSE_IND,
484 	LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
485 	LAST_UPDATED_BY = X_LAST_UPDATED_BY,
486 	LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
487 	  where ROWID = X_ROWID;
488 	if (sql%notfound) then
489 		raise no_data_found;
490 	end if;
491 
492  After_DML (
493 	p_action => 'UPDATE' ,
494 	x_rowid => X_ROWID
495 	);
496 end UPDATE_ROW;
497  procedure ADD_ROW (
498       X_ROWID in out NOCOPY VARCHAR2,
499        x_INSTITUTION_TYPE IN VARCHAR2,
500        x_DESCRIPTION IN VARCHAR2,
501        x_SYSTEM_INST_TYPE VARCHAR2,
502        x_CLOSE_IND IN VARCHAR2,
503       X_MODE in VARCHAR2 default 'R'  ,
504       X_ORG_ID in NUMBER
505   ) AS
506   /*************************************************************
507   Created By : ssahai
508   Date Created By : 11/5/2000
509   Purpose : This procedure is called from forms during an insert_row (INSERT_ROW) - It checks if there is a
510   row for the given PK and if there isn't then it inserts it as a new row. If there is a existing Pk then it
511   uses update_row to update the same row.
512   Know limitations, enhancements or remarks
513   Change History
514   Who             When            What
515 
516   (reverse chronological order - newest change first)
517   ***************************************************************/
518 
519     cursor c1 is select ROWID from igs_or_org_inst_type_all
520              where     INSTITUTION_TYPE= X_INSTITUTION_TYPE
521 ;
522 begin
523 	open c1;
524 		fetch c1 into X_ROWID;
525 	if (c1%notfound) then
526 	close c1;
527     INSERT_ROW (
528       X_ROWID,
529        X_INSTITUTION_TYPE,
530        X_DESCRIPTION,
531        x_SYSTEM_INST_TYPE,
532        X_CLOSE_IND,
533       X_MODE ,
534       x_org_id);
535      return;
536 	end if;
537 	   close c1;
538 UPDATE_ROW (
539       X_ROWID,
540        X_INSTITUTION_TYPE,
541        X_DESCRIPTION,
542        x_SYSTEM_INST_TYPE,
543        X_CLOSE_IND,
544       X_MODE );
545 end ADD_ROW;
546 
547 procedure DELETE_ROW (
548   X_ROWID in VARCHAR2
549 ) AS
550   /*************************************************************
551   Created By : ssahai
552   Date Created By : 11/5/2000
553   Purpose : This procedure is called from forms during an delete_row (ON_DELETE) operation.
554   Know limitations, enhancements or remarks
555   Change History
556   Who             When            What
557 
558   (reverse chronological order - newest change first)
559   ***************************************************************/
560 
561 begin
562 Before_DML (
563 p_action => 'DELETE',
564 x_rowid => X_ROWID
565 );
566  delete from igs_or_org_inst_type_all
567  where ROWID = X_ROWID;
568   if (sql%notfound) then
569     raise no_data_found;
570   end if;
571 After_DML (
572  p_action => 'DELETE',
573  x_rowid => X_ROWID
574 );
575 end DELETE_ROW;
576 END igs_or_org_inst_type_pkg;