DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PE_PERSON_ID_TYP_PKG

Source


1 package body IGS_PE_PERSON_ID_TYP_PKG AS
2   /* $Header: IGSNI25B.pls 120.1 2006/01/25 09:20:33 skpandey noship $ */
3 
4 ------------------------------------------------------------------
5 -- Change History
6 --
7 -- Bug ID : 2000408
8 -- who      when          what
9 -- CDCRUZ   Sep 24,2002   New Col added for
10 --                        Person DLD / FORMAT_MASK
11 ------------------------------------------------------------------
12 
13 /******************************************************
14 Created By : nigupta
15 Date Created By : 11-MAY-2000
16 Purpose : To create TBH Body
17 Know limitations, enhancements or remarks : None
18 Change History
19 Who		When		What
20 sraj		17-MAY-2000	Two columns have been added to this table.
21 (reverse chronological order - newest change first)
22 ********************************************************/
23 
24   l_rowid VARCHAR2(25);
25   old_references IGS_PE_PERSON_ID_TYP%RowType;
26   new_references IGS_PE_PERSON_ID_TYP%RowType;
27 
28   PROCEDURE Set_Column_Values (
29     p_action IN VARCHAR2,
30     x_rowid IN VARCHAR2  ,
31     x_person_id_type IN VARCHAR2  ,
32     x_description IN VARCHAR2  ,
33     x_s_person_id_type IN VARCHAR2  ,
34     x_institution_cd IN VARCHAR2  ,
35     x_preferred_ind IN VARCHAR2  ,
36     x_unique_ind IN VARCHAR2  ,
37     X_FORMAT_MASK IN VARCHAR2 ,
38     X_REGION_IND IN  VARCHAR2,
39     x_creation_date IN DATE  ,
40     x_created_by IN NUMBER  ,
41     x_last_update_date IN DATE  ,
42     x_last_updated_by IN NUMBER  ,
43     x_last_update_login IN NUMBER ,
44     x_closed_ind IN VARCHAR2
45   ) AS
46 
47   /*************************************************************
48   Created By :
49   Date Created By :
50   Purpose :
51   Know limitations, enhancements or remarks
52   Change History
53   Who             When            What
54   sraj		17-MAY-2000	Two columns have been added to this table.
55   (reverse chronological order - newest change first)
56   ***************************************************************/
57 
58     CURSOR cur_old_ref_values IS
59       SELECT   *
60       FROM     IGS_PE_PERSON_ID_TYP
61       WHERE    rowid = x_rowid;
62 
63   BEGIN
64 
65     l_rowid := x_rowid;
66 
67     -- Code for setting the Old and New Reference Values.
68     -- Populate Old Values.
69     Open cur_old_ref_values;
70     Fetch cur_old_ref_values INTO old_references;
71     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
72       Close cur_old_ref_values;
73       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
74       IGS_GE_MSG_STACK.ADD;
75       App_Exception.Raise_Exception;
76       Return;
77     END IF;
78     Close cur_old_ref_values;
79 
80     -- Populate New Values.
81     new_references.person_id_type := x_person_id_type;
82     new_references.description := x_description;
83     new_references.s_person_id_type := x_s_person_id_type;
84     new_references.institution_cd := x_institution_cd;
85     new_references.preferred_ind := x_preferred_ind;
86     new_references.unique_ind := x_unique_ind;
87     new_references.format_mask := x_format_mask ;
88     new_references.region_ind := x_region_ind;
89     new_references.closed_ind := x_closed_ind;
90 
91     IF (p_action = 'UPDATE') THEN
92       new_references.creation_date := old_references.creation_date;
93       new_references.created_by := old_references.created_by;
94     ELSE
95       new_references.creation_date := x_creation_date;
96       new_references.created_by := x_created_by;
97     END IF;
98     new_references.last_update_date := x_last_update_date;
99     new_references.last_updated_by := x_last_updated_by;
100     new_references.last_update_login := x_last_update_login;
101 
102   END Set_Column_Values;
103 
104   PROCEDURE BeforeRowInsertUpdate1(
105     p_inserting IN BOOLEAN ,
106     p_updating IN BOOLEAN ,
107     p_deleting IN BOOLEAN
108     ) AS
109 
110 /******************************************************
111 Created By : nigupta
112 Date Created By : 11-MAY-2000
113 Purpose : Before row insert and update
114 Know limitations, enhancements or remarks : None
115 Change History
116 Who		When		What
117 
118 
119 (reverse chronological order - newest change first)
120 ********************************************************/
121 
122 v_message_name  varchar2(30);
123   BEGIN
124 	-- Validate IGS_PE_PERSON ID TYPE.
125 	-- IGS_OR_INSTITUTION closed indicator.
126 	IF new_references.institution_cd IS NOT NULL AND
127 		(NVL(old_references.institution_cd, 'NULL') <> new_references.institution_cd) THEN
128 		IF IGS_EN_VAL_PIT.enrp_val_pit_inst_cd (
129 				new_references.institution_cd,
130 				v_message_name) = FALSE THEN
131 			 Fnd_Message.Set_Name('IGS', v_message_name);
132 			 IGS_GE_MSG_STACK.ADD;
133                          App_Exception.Raise_Exception;
134 		END IF;
135 	END IF;
136   END BeforeRowInsertUpdate1;
137 
138   PROCEDURE Check_Constraints (
139 		 Column_Name IN VARCHAR2  ,
140 		 Column_Value IN VARCHAR2   ) AS
141   /*************************************************************
142   Created By : sraj
143   Date Created By : 17-MAY-2000
144   Purpose :
145   Know limitations, enhancements or remarks
146   Change History
147   Who             When            What
148    sraj		17-MAY-2000	     Two columns have been added to this table.
149    pkpatel  19-JUL-2002      Bug No: 2384824
150                              Removed the upper check for Institution Code
151   (reverse chronological order - newest change first)
152   ***************************************************************/
153 
154   BEGIN
155 
156       IF column_name IS NULL THEN
157         NULL;
158       ELSIF  UPPER(column_name) = 'PREFERRED_IND'  THEN
159         new_references.preferred_ind := column_value;
160       ELSIF  UPPER(column_name) = 'UNIQUE_IND'  THEN
161         new_references.unique_ind := column_value;
162       ELSIF  UPPER(column_name) = 'REGION_IND'  THEN
163         new_references.region_ind := column_value;
164       ELSIF  UPPER(column_name) = 'PERSON_ID_TYPE'  THEN
165         new_references.person_id_type := column_value;
166        ELSIF  UPPER(column_name) = 'S_PERSON_ID_TYPE'  THEN
167         new_references.s_person_id_type := column_value;
168       ELSIF  UPPER(column_name) = 'INSTITUTION_CD'  THEN
169         new_references.institution_cd := column_value;
170         NULL;
171       END IF;
172 
173     -- The following code checks for check constraints on the Columns.
174       IF Upper(Column_Name) = 'PREFERRED_IND' OR
175       	Column_Name IS NULL THEN
176         IF NOT (new_references.preferred_ind IN ('Y', 'N'))  THEN
177            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
178       IGS_GE_MSG_STACK.ADD;
179            App_Exception.Raise_Exception;
180         END IF;
181       END IF;
182 
183     -- The following code checks for check constraints on the Columns.
184       IF Upper(Column_Name) = 'UNIQUE_IND' OR
185       	Column_Name IS NULL THEN
186         IF NOT (new_references.unique_ind IN ('N', 'Y'))  THEN
187            Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
188       IGS_GE_MSG_STACK.ADD;
189            App_Exception.Raise_Exception;
190         END IF;
191       END IF;
192 
193 
194      IF Upper(Column_Name) = 'REGION_IND' OR
195      	Column_Name IS NULL THEN
196        IF NOT (new_references.region_ind IN ('N', 'Y'))  THEN
197           Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
198      IGS_GE_MSG_STACK.ADD;
199           App_Exception.Raise_Exception;
200        END IF;
201      END IF;
202 
203     IF  UPPER(Column_Name) = 'PERSON_ID_TYPE' OR
204       		Column_Name IS NULL THEN
205         IF new_references.PERSON_ID_TYPE <> UPPER(new_references.person_id_type) THEN
206 		Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
207       IGS_GE_MSG_STACK.ADD;
208 		App_Exception.Raise_Exception;
209         END IF;
210       END IF;
211 
212       IF  UPPER(Column_Name) = 'S_PERSON_ID_TYPE' OR
213       		Column_Name IS NULL THEN
214         IF new_references.S_PERSON_ID_TYPE <> UPPER(new_references.s_person_id_type) THEN
215 		Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
216       IGS_GE_MSG_STACK.ADD;
217 		App_Exception.Raise_Exception;
218         END IF;
219       END IF;
220 
221 
222   END Check_Constraints;
223 
224   PROCEDURE Check_Parent_Existance AS
225 
226 /******************************************************
227 Created By : nigupta
228 Date Created By : 11-MAY-2000
229 Purpose : To check parent existance
230 Know limitations, enhancements or remarks : None
231 Change History
232 Who		When		What
233 
234 
235 (reverse chronological order - newest change first)
236 ********************************************************/
237 
238   BEGIN
239     IF (((old_references.institution_cd = new_references.institution_cd)) OR
240         ((new_references.institution_cd IS NULL))) THEN
241       NULL;
242     ELSE
243 
244       IF  NOT IGS_OR_INSTITUTION_PKG.Get_PK_For_Validation (
245          new_references.institution_cd) THEN
246      Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
247      IGS_GE_MSG_STACK.ADD;
248      IGS_GE_MSG_STACK.ADD;
249      App_Exception.Raise_Exception;
250  END IF;
251     END IF;
252     IF (((old_references.s_person_id_type = new_references.s_person_id_type)) OR
253         ((new_references.s_person_id_type IS NULL))) THEN
254       NULL;
255     ELSE
256        IF  NOT IGS_LOOKUPS_VIEW_PKG.Get_PK_For_Validation (
257          'PERSON_ID_TYPE',new_references.s_person_id_type) THEN
258          Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
259          IGS_GE_MSG_STACK.ADD;
260               App_Exception.Raise_Exception;
261        END IF;
262 
263     END IF;
264   END Check_Parent_Existance;
265 
266   FUNCTION Get_PK_For_Validation (
267     x_person_id_type IN VARCHAR2
268     )  RETURN BOOLEAN AS
269 
270 /******************************************************
271 Created By : nigupta
272 Date Created By : 11-MAY-2000
273 Purpose : To enforce primary key validations
274 Know limitations, enhancements or remarks : None
275 Change History
276 Who		  When		    What
277 pkpatel   19-JUL-2002   Bug No: 2384824
278                         Modified the logic to lock the parent record only while the child records are not present for that person_id_type
279 						If the childs are present then the person_id_type can not be deleted since the child alternate person I can only
280 						be end dated. Hence no need to lock the records.
281 (reverse chronological order - newest change first)
282 ********************************************************/
283        --Cursor to check the existence of parent
284       CURSOR cur_rowid IS
285       SELECT   rowid
286       FROM     IGS_PE_PERSON_ID_TYP
287       WHERE    person_id_type = x_person_id_type;
288 
289       lv_rowid cur_rowid%ROWTYPE;
290 
291   BEGIN
292     OPEN cur_rowid;
293     FETCH cur_rowid INTO lv_rowid;
294     IF (cur_rowid%FOUND) THEN
295        CLOSE cur_rowid;
296        RETURN (TRUE);
297     ELSE
298        CLOSE cur_rowid;
299        RETURN (FALSE);
300     END IF;
301   END Get_PK_For_Validation;
302 
303   FUNCTION Get_PID_Type_Validation (
304     x_person_id_type IN VARCHAR2
305     )  RETURN BOOLEAN AS
306 
307 /******************************************************
308 Created By : ssaleem
309 Date Created By : 17-SEP-2004
310 Purpose : To enforce primary key validations with closed indicator
311 Know limitations, enhancements or remarks : This function is created
312                  after adding closed indicator in IGS_PE_PERSON_ID_TYP
313 Change History
314 Who		  When		    What
315 (reverse chronological order - newest change first)
316 ********************************************************/
317        --Cursor to check the existence of parent
318       CURSOR cur_rowid IS
319       SELECT   rowid
320       FROM     IGS_PE_PERSON_ID_TYP
321       WHERE    person_id_type = x_person_id_type AND
322                CLOSED_IND = 'N';
323 
324       lv_rowid cur_rowid%ROWTYPE;
325 
326   BEGIN
327     OPEN cur_rowid;
328     FETCH cur_rowid INTO lv_rowid;
329     IF (cur_rowid%FOUND) THEN
330        CLOSE cur_rowid;
331        RETURN (TRUE);
332     ELSE
333        CLOSE cur_rowid;
334        RETURN (FALSE);
335     END IF;
336   END Get_PID_Type_Validation;
337 
338 
339 
340   PROCEDURE GET_FK_IGS_OR_INSTITUTION (
341     x_institution_cd IN VARCHAR2
342     ) AS
343 
344 /******************************************************
345 Created By : nigupta
346 Date Created By : 11-MAY-2000
347 Purpose : To enforce foriegn key validations
348 Know limitations, enhancements or remarks : None
349 Change History
350 Who		When		What
351 
352 
353 (reverse chronological order - newest change first)
354 ********************************************************/
355 
356    CURSOR cur_rowid IS
357       SELECT   rowid
358       FROM     IGS_PE_PERSON_ID_TYP
359       WHERE    institution_cd = x_institution_cd ;
360     lv_rowid cur_rowid%RowType;
361   BEGIN
362     Open cur_rowid;
363     Fetch cur_rowid INTO lv_rowid;
364     IF (cur_rowid%FOUND) THEN
365       Fnd_Message.Set_Name ('IGS', 'IGS_PE_PIT_INS_FK');
366        IGS_GE_MSG_STACK.ADD;
367       Close cur_rowid;
368       App_Exception.Raise_Exception;
369       Return;
370     END IF;
371     Close cur_rowid;
372   END GET_FK_IGS_OR_INSTITUTION;
373 
374   PROCEDURE GET_FK_IGS_LOOKUPS_VIEW (
375     x_s_person_id_type IN VARCHAR2
376     ) AS
377 
378 /******************************************************
379 Created By : nigupta
380 Date Created By : 11-MAY-2000
381 Purpose : for lookup views
382 Know limitations, enhancements or remarks : None
383 Change History
384 Who		When		What
385 skpandey        24-JAN-2006     Bug#3686538: Stubbed as a part of query optimization
386 (reverse chronological order - newest change first)
387 ********************************************************/
388   BEGIN
389 	NULL;
390   END GET_FK_IGS_LOOKUPS_VIEW;
391 
392   PROCEDURE Before_DML (
393     p_action IN VARCHAR2,
394     x_rowid IN VARCHAR2  ,
395     x_person_id_type IN VARCHAR2  ,
396     x_description IN VARCHAR2  ,
397     x_s_person_id_type IN VARCHAR2  ,
398     x_institution_cd IN VARCHAR2  ,
399     x_preferred_ind IN VARCHAR2  ,
400     x_unique_ind IN VARCHAR2  ,
401     X_FORMAT_MASK IN VARCHAR2 ,
402     X_REGION_IND IN  VARCHAR2,
403     x_closed_ind IN VARCHAR2,
404     x_creation_date IN DATE  ,
405     x_created_by IN NUMBER  ,
406     x_last_update_date IN DATE  ,
407     x_last_updated_by IN NUMBER  ,
408     x_last_update_login IN NUMBER
409   ) AS
410   /*************************************************************
411   Created By : sraj
412   Date Created By : 17-MAY-2000
413   Purpose :
414   Know limitations, enhancements or remarks
415   Change History
416   Who             When            What
417   sraj		17-MAY-2000	Two columns have been added to this table.
418   (reverse chronological order - newest change first)
419   ***************************************************************/
420 
421   BEGIN
422 
423     Set_Column_Values (
424       p_action,
425       x_rowid,
426       x_person_id_type,
427       x_description,
428       x_s_person_id_type,
429       x_institution_cd,
430       x_preferred_ind,
431       x_unique_ind,
432       x_format_mask,
433       x_region_ind,
434       x_creation_date,
435       x_created_by,
436       x_last_update_date,
437       x_last_updated_by,
438       x_last_update_login,
439       x_closed_ind
440     );
441 
442      IF (p_action = 'INSERT') THEN
443        -- Call all the procedures related to Before Insert.
444      BeforeRowInsertUpdate1 ( p_inserting => TRUE,
445                               p_updating => FALSE ,
446     p_deleting => FALSE);
447       IF  Get_PK_For_Validation (
448           new_references.person_id_type ) THEN
449          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
450          IGS_GE_MSG_STACK.ADD;
451           App_Exception.Raise_Exception;
452       END IF;
453 
454       Check_Constraints; -- if procedure present
455       Check_Parent_Existance; -- if procedure present
456 
457  ELSIF (p_action = 'UPDATE') THEN
458        -- Call all the procedures related to Before Update.
459        BeforeRowInsertUpdate1 ( p_updating => TRUE,
460                                 p_inserting => FALSE ,
461                                 p_deleting => FALSE);
462        Check_Constraints; -- if procedure present
463        Check_Parent_Existance; -- if procedure present
464 
465  ELSIF (p_action = 'VALIDATE_INSERT') THEN
466       IF  Get_PK_For_Validation (
467           new_references.person_id_type ) THEN
468          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
469          IGS_GE_MSG_STACK.ADD;
470           App_Exception.Raise_Exception;
471       END IF;
472 
473       Check_Constraints; -- if procedure present
474 
475  ELSIF (p_action = 'VALIDATE_UPDATE') THEN
476        Check_Constraints; -- if procedure present
477  END IF;
478 
479   END Before_DML;
480 
481   PROCEDURE After_DML (
482     p_action IN VARCHAR2,
483     x_rowid IN VARCHAR2
484   ) AS
485 
486 /******************************************************
487 Created By : nigupta
488 Date Created By : 11-MAY-2000
489 Purpose : To check after DML
490 Know limitations, enhancements or remarks : None
491 Change History
492 Who		When		What
493 
494 
495 (reverse chronological order - newest change first)
496 ********************************************************/
497 
498   BEGIN
499     l_rowid := x_rowid;
500     IF (p_action = 'INSERT') THEN
501       -- Call all the procedures related to After Insert.
502       Null;
503     ELSIF (p_action = 'UPDATE') THEN
504       -- Call all the procedures related to After Update.
505       Null;
506     END IF;
507   END After_DML;
508 
509  procedure INSERT_ROW (
510       X_ROWID in out NOCOPY VARCHAR2,
511        x_PERSON_ID_TYPE IN VARCHAR2,
512        x_DESCRIPTION IN VARCHAR2,
513        x_S_PERSON_ID_TYPE IN VARCHAR2,
514        x_INSTITUTION_CD IN VARCHAR2,
515        x_PREFERRED_IND IN VARCHAR2,
516        x_UNIQUE_IND IN VARCHAR2,
517        X_FORMAT_MASK IN VARCHAR2 ,
518        X_REGION_IND IN  VARCHAR2,
519       X_MODE in VARCHAR2,
520       X_CLOSED_IND IN VARCHAR2
521   ) AS
522   /*************************************************************
523   Created By : sraj
524   Date Created By : 17-MAY-2000
525   Purpose :
526   Know limitations, enhancements or remarks
527   Change History
528   Who             When            What
529   sraj		17-MAY-2000	Two columns have been added to this table.
530   (reverse chronological order - newest change first)
531   ***************************************************************/
532 
533     cursor C is select ROWID from IGS_PE_PERSON_ID_TYP
534              where                 PERSON_ID_TYPE= X_PERSON_ID_TYPE
535 ;
536      X_LAST_UPDATE_DATE DATE ;
537      X_LAST_UPDATED_BY NUMBER ;
538      X_LAST_UPDATE_LOGIN NUMBER ;
539  begin
540      X_LAST_UPDATE_DATE := SYSDATE;
541       if(X_MODE = 'I') then
542         X_LAST_UPDATED_BY := 1;
543         X_LAST_UPDATE_LOGIN := 0;
544          elsif (X_MODE = 'R') then
545                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
546             if X_LAST_UPDATED_BY is NULL then
547                 X_LAST_UPDATED_BY := -1;
548             end if;
549             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
550          if X_LAST_UPDATE_LOGIN is NULL then
551             X_LAST_UPDATE_LOGIN := -1;
552           end if;
553        else
554         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
555       IGS_GE_MSG_STACK.ADD;
556           app_exception.raise_exception;
557        end if;
558    Before_DML(
559  		p_action=>'INSERT',
560  		x_rowid=>X_ROWID,
561  	       x_person_id_type=>X_PERSON_ID_TYPE,
562  	       x_description=>X_DESCRIPTION,
563  	       x_s_person_id_type=>X_S_PERSON_ID_TYPE,
564  	       x_institution_cd=>X_INSTITUTION_CD,
565  	       x_preferred_ind=>X_PREFERRED_IND,
566  	       x_unique_ind=>X_UNIQUE_IND,
567 	       x_format_mask=>X_format_mask,
568                x_region_ind => X_REGION_IND,
569                x_closed_ind=> X_CLOSED_IND,
570 	       x_creation_date=>X_LAST_UPDATE_DATE,
571 	       x_created_by=>X_LAST_UPDATED_BY,
572 	       x_last_update_date=>X_LAST_UPDATE_DATE,
573 	       x_last_updated_by=>X_LAST_UPDATED_BY,
574 	       x_last_update_login=>X_LAST_UPDATE_LOGIN
575 	       );
576      insert into IGS_PE_PERSON_ID_TYP (
577 		PERSON_ID_TYPE
578 		,DESCRIPTION
579 		,S_PERSON_ID_TYPE
580 		,INSTITUTION_CD
581 		,PREFERRED_IND
582 		,UNIQUE_IND
583 		,FORMAT_MASK
584           ,REGION_IND
585 	        ,CREATION_DATE
586 		,CREATED_BY
587 		,LAST_UPDATE_DATE
588 		,LAST_UPDATED_BY
589 		,LAST_UPDATE_LOGIN
590 		,CLOSED_IND
591         ) values  (
592 	        NEW_REFERENCES.PERSON_ID_TYPE
593 	        ,NEW_REFERENCES.DESCRIPTION
594 	        ,NEW_REFERENCES.S_PERSON_ID_TYPE
595 	        ,NEW_REFERENCES.INSTITUTION_CD
596 	        ,NEW_REFERENCES.PREFERRED_IND
597 	        ,NEW_REFERENCES.UNIQUE_IND
598 	        ,NEW_REFERENCES.FORMAT_MASK
599              ,NEW_REFERENCES.REGION_IND
600 	        ,X_LAST_UPDATE_DATE
601 		,X_LAST_UPDATED_BY
602 		,X_LAST_UPDATE_DATE
603 		,X_LAST_UPDATED_BY
604 		,X_LAST_UPDATE_LOGIN
605 		,NEW_REFERENCES.CLOSED_IND
606 );
607 		open c;
608 		 fetch c into X_ROWID;
609  		if (c%notfound) then
610 		close c;
611  	     raise no_data_found;
612 		end if;
613  		close c;
614     After_DML (
615 		p_action => 'INSERT' ,
616 		x_rowid => X_ROWID );
617 end INSERT_ROW;
618  procedure LOCK_ROW (
619       X_ROWID in  VARCHAR2,
620        x_PERSON_ID_TYPE IN VARCHAR2,
621        x_DESCRIPTION IN VARCHAR2,
622        x_S_PERSON_ID_TYPE IN VARCHAR2,
623        x_INSTITUTION_CD IN VARCHAR2,
624        x_PREFERRED_IND IN VARCHAR2,
625        x_UNIQUE_IND IN VARCHAR2 ,
626        X_FORMAT_MASK IN VARCHAR2,
627        X_REGION_IND IN  VARCHAR2
628        ) AS
629   /*************************************************************
630   Created By : sraj
631   Date Created By : 17-MAY-2000
632   Purpose :
633   Know limitations, enhancements or remarks
634   Change History
635   Who             When            What
636   sraj		17-MAY-2000	Two columns have been added to this table.
637   (reverse chronological order - newest change first)
638   ***************************************************************/
639 
640    cursor c1 is select
641       DESCRIPTION
642 ,      S_PERSON_ID_TYPE
643 ,      INSTITUTION_CD
644 ,      PREFERRED_IND
645 ,      UNIQUE_IND
646 ,      FORMAT_MASK
647 ,     REGION_IND
648     from IGS_PE_PERSON_ID_TYP
649     where ROWID = X_ROWID
650     for update nowait;
651      tlinfo c1%rowtype;
652 begin
653   open c1;
654   fetch c1 into tlinfo;
655   if (c1%notfound) then
656     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
657       IGS_GE_MSG_STACK.ADD;
658     close c1;
659     app_exception.raise_exception;
660     return;
661   end if;
662   close c1;
663 if (  (tlinfo.DESCRIPTION = X_DESCRIPTION)
664   AND ((tlinfo.S_PERSON_ID_TYPE = X_S_PERSON_ID_TYPE)
665  	    OR ((tlinfo.S_PERSON_ID_TYPE is null)
666 		AND (X_S_PERSON_ID_TYPE is null)))
667   AND ((tlinfo.INSTITUTION_CD = X_INSTITUTION_CD)
668  	    OR ((tlinfo.INSTITUTION_CD is null)
669 		AND (X_INSTITUTION_CD is null)))
670   AND ((tlinfo.PREFERRED_IND = X_PREFERRED_IND)
671  	    OR ((tlinfo.PREFERRED_IND is null)
672 		AND (X_PREFERRED_IND is null)))
673 
674   AND ((tlinfo.FORMAT_MASK = X_FORMAT_MASK)
675  	    OR ((tlinfo.FORMAT_MASK is null)
676 		AND (X_FORMAT_MASK is null)))
677 
678   AND ((tlinfo.UNIQUE_IND = X_UNIQUE_IND)
679  	    OR ((tlinfo.UNIQUE_IND is null)
680 		AND (X_UNIQUE_IND is null)))
681 
682    AND ((tlinfo.REGION_IND = X_REGION_IND)
683          OR((tlinfo.REGION_IND IS NULL)
684          AND (X_REGION_IND IS NULL)))
685 
686    )then
687     null;
688   else
689     fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
690       IGS_GE_MSG_STACK.ADD;
691     app_exception.raise_exception;
692   end if;
693   return;
694 end LOCK_ROW;
695 
696  PROCEDURE UPDATE_ROW (
697       X_ROWID in  VARCHAR2,
698        x_PERSON_ID_TYPE IN VARCHAR2,
699        x_DESCRIPTION IN VARCHAR2,
700        x_S_PERSON_ID_TYPE IN VARCHAR2,
701        x_INSTITUTION_CD IN VARCHAR2,
702        x_PREFERRED_IND IN VARCHAR2,
703        x_UNIQUE_IND IN VARCHAR2,
704       X_FORMAT_MASK IN VARCHAR2 ,
705        X_REGION_IND IN  VARCHAR2,
706       X_MODE in VARCHAR2,
707       X_CLOSED_IND IN VARCHAR2
708   ) AS
709   /*************************************************************
710   Created By : sraj
711   Date Created By : 17-MAY-2000
712   Purpose :
713   Know limitations, enhancements or remarks
714   Change History
715   Who             When            What
716   sraj		17-MAY-2000	Two columns have been added to this table.
717   (reverse chronological order - newest change first)
718   ***************************************************************/
719 
720      X_LAST_UPDATE_DATE DATE ;
721      X_LAST_UPDATED_BY NUMBER ;
722      X_LAST_UPDATE_LOGIN NUMBER ;
723  begin
724      X_LAST_UPDATE_DATE := SYSDATE;
725       if(X_MODE = 'I') then
726         X_LAST_UPDATED_BY := 1;
727         X_LAST_UPDATE_LOGIN := 0;
728          elsif (X_MODE = 'R') then
729                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
730             if X_LAST_UPDATED_BY is NULL then
731                 X_LAST_UPDATED_BY := -1;
732             end if;
733             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
734          if X_LAST_UPDATE_LOGIN is NULL then
735             X_LAST_UPDATE_LOGIN := -1;
736           end if;
737        else
738         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
739       IGS_GE_MSG_STACK.ADD;
740           app_exception.raise_exception;
741        end if;
742    Before_DML(
743  		p_action=>'UPDATE',
744  		x_rowid=>X_ROWID,
745  	       x_person_id_type=>X_PERSON_ID_TYPE,
746  	       x_description=>X_DESCRIPTION,
747  	       x_s_person_id_type=>X_S_PERSON_ID_TYPE,
748  	       x_institution_cd=>X_INSTITUTION_CD,
749  	       x_preferred_ind=>X_PREFERRED_IND,
750  	       x_unique_ind=>X_UNIQUE_IND,
751 	       x_format_mask=>X_FORMAT_MASK,
752                x_region_ind => X_REGION_IND,
753                x_closed_ind => X_CLOSED_IND,
754 	       x_creation_date=>X_LAST_UPDATE_DATE,
755 	       x_created_by=>X_LAST_UPDATED_BY,
756 	       x_last_update_date=>X_LAST_UPDATE_DATE,
757 	       x_last_updated_by=>X_LAST_UPDATED_BY,
758 	       x_last_update_login=>X_LAST_UPDATE_LOGIN
759 	       );
760    update IGS_PE_PERSON_ID_TYP set
761       DESCRIPTION =  NEW_REFERENCES.DESCRIPTION,
762       S_PERSON_ID_TYPE =  NEW_REFERENCES.S_PERSON_ID_TYPE,
763       INSTITUTION_CD =  NEW_REFERENCES.INSTITUTION_CD,
764       PREFERRED_IND =  NEW_REFERENCES.PREFERRED_IND,
765       UNIQUE_IND =  NEW_REFERENCES.UNIQUE_IND,
766       FORMAT_MASK = NEW_REFERENCES.FORMAT_MASK,
767       REGION_IND =  NEW_REFERENCES.REGION_IND,
768 	LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
769 	LAST_UPDATED_BY = X_LAST_UPDATED_BY,
770 	LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN,
771         CLOSED_IND = NEW_REFERENCES.CLOSED_IND
772 	  where ROWID = X_ROWID;
773 	if (sql%notfound) then
774 		raise no_data_found;
775 	end if;
776 
777  After_DML (
778 	p_action => 'UPDATE' ,
779 	x_rowid => X_ROWID
780 	);
781 end UPDATE_ROW;
782 
783  procedure ADD_ROW (
784       X_ROWID in out NOCOPY VARCHAR2,
785        x_PERSON_ID_TYPE IN VARCHAR2,
786        x_DESCRIPTION IN VARCHAR2,
787        x_S_PERSON_ID_TYPE IN VARCHAR2,
788        x_INSTITUTION_CD IN VARCHAR2,
789        x_PREFERRED_IND IN VARCHAR2,
790        x_UNIQUE_IND IN VARCHAR2,
791        X_FORMAT_MASK IN VARCHAR2 ,
792        X_REGION_IND IN  VARCHAR2,
793        X_MODE in VARCHAR2,
794        X_CLOSED_IND IN VARCHAR2
795   ) AS
796   /*************************************************************
797   Created By : sraj
798   Date Created By : 17-MAY-2000
799   Purpose :
800   Know limitations, enhancements or remarks
801   Change History
802   Who             When            What
803   sraj		17-MAY-2000	Two columns have been added to this table.
804   (reverse chronological order - newest change first)
805   ***************************************************************/
806 
807     cursor c1 is select ROWID from IGS_PE_PERSON_ID_TYP
808              where     PERSON_ID_TYPE= X_PERSON_ID_TYPE
809 ;
810 begin
811 	open c1;
812 		fetch c1 into X_ROWID;
813 	if (c1%notfound) then
814 	close c1;
815     INSERT_ROW (
816       X_ROWID,
817        X_PERSON_ID_TYPE,
818        X_DESCRIPTION,
819        X_S_PERSON_ID_TYPE,
820        X_INSTITUTION_CD,
821        X_PREFERRED_IND,
822        X_UNIQUE_IND,
823        X_FORMAT_MASK,
824        X_REGION_IND,
825       X_MODE,
826       X_CLOSED_IND);
827      return;
828 	end if;
829 	   close c1;
830 UPDATE_ROW (
831       X_ROWID,
832        X_PERSON_ID_TYPE,
833        X_DESCRIPTION,
834        X_S_PERSON_ID_TYPE,
835        X_INSTITUTION_CD,
836        X_PREFERRED_IND,
837        X_UNIQUE_IND,
838        X_FORMAT_MASK,
839        X_REGION_IND ,
840       X_MODE,
841       X_CLOSED_IND);
842 end ADD_ROW;
843 
844 END igs_pe_person_id_typ_pkg;