DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_UNIT_LOCATION_PKG

Source


1 PACKAGE BODY igs_ps_unit_location_pkg AS
2 /* $Header: IGSPI0LB.pls 115.8 2003/10/30 13:30:23 rghosh ship $ */
3   l_rowid VARCHAR2(25);
4   old_references igs_ps_unit_location%RowType;
5   new_references igs_ps_unit_location%RowType;
6 
7   PROCEDURE Set_Column_Values (
8     p_action IN VARCHAR2,
9     x_rowid IN VARCHAR2 DEFAULT NULL,
10     x_unit_location_id IN NUMBER DEFAULT NULL,
11     x_unit_code IN VARCHAR2 DEFAULT NULL,
12     x_unit_version_number IN NUMBER DEFAULT NULL,
13     x_location_code IN VARCHAR2 DEFAULT NULL,
14     x_building_id IN NUMBER DEFAULT NULL,
15     x_room_id IN NUMBER DEFAULT NULL,
16     x_creation_date IN DATE DEFAULT NULL,
17     x_created_by IN NUMBER DEFAULT NULL,
18     x_last_update_date IN DATE DEFAULT NULL,
19     x_last_updated_by IN NUMBER DEFAULT NULL,
20     x_last_update_login IN NUMBER DEFAULT NULL
21   ) AS
22 
23   /*************************************************************
24   Created By : sokaul
25   Date Created By : 11-MAY-2000
26   Purpose : NEW TABLE
27   Know limitations, enhancements or remarks
28   Change History
29   Who             When            What
30 
31   (reverse chronological order - newest change first)
32   ***************************************************************/
33 
34     CURSOR cur_old_ref_values IS
35       SELECT   *
36       FROM     IGS_PS_UNIT_LOCATION
37       WHERE    rowid = x_rowid;
38 
39   BEGIN
40 
41     l_rowid := x_rowid;
42 
43     -- Code for setting the Old and New Reference Values.
44     -- Populate Old Values.
45     Open cur_old_ref_values;
46     Fetch cur_old_ref_values INTO old_references;
47     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
48       Close cur_old_ref_values;
49       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
50       IGS_GE_MSG_STACK.ADD;
51       App_Exception.Raise_Exception;
52       Return;
53     END IF;
54     Close cur_old_ref_values;
55 
56     -- Populate New Values.
57     new_references.unit_location_id := x_unit_location_id;
58     new_references.unit_code := x_unit_code;
59     new_references.unit_version_number := x_unit_version_number;
60     new_references.location_code := x_location_code;
61     new_references.building_id := x_building_id;
62     new_references.room_id := x_room_id;
63     IF (p_action = 'UPDATE') THEN
64       new_references.creation_date := old_references.creation_date;
65       new_references.created_by := old_references.created_by;
66     ELSE
67       new_references.creation_date := x_creation_date;
68       new_references.created_by := x_created_by;
69     END IF;
70     new_references.last_update_date := x_last_update_date;
71     new_references.last_updated_by := x_last_updated_by;
72     new_references.last_update_login := x_last_update_login;
73 
74   END Set_Column_Values;
75 
76   PROCEDURE Check_Constraints (
77 		 Column_Name IN VARCHAR2  DEFAULT NULL,
78 		 Column_Value IN VARCHAR2  DEFAULT NULL ) AS
79   /*************************************************************
80   Created By : sokaul
81   Date Created By : 11-MAY-2000
82   Purpose : NEW TABLE
83   Know limitations, enhancements or remarks
84   Change History
85   Who             When            What
86 
87   (reverse chronological order - newest change first)
88   ***************************************************************/
89 
90   BEGIN
91 
92       IF column_name IS NULL THEN
93         NULL;
94         NULL;
95       END IF;
96 
97 
98 
99 
100   END Check_Constraints;
101 
102  PROCEDURE Check_Uniqueness AS
103   /*************************************************************
104   Created By : sokaul
105   Date Created By : 11-MAY-2000
106   Purpose : NEW TABLE
107   Know limitations, enhancements or remarks
108   Change History
109   Who             When            What
110 
111   (reverse chronological order - newest change first)
112   ***************************************************************/
113 
114    begin
115      		IF Get_Uk_For_Validation (
116     		new_references.location_code
117     		,new_references.room_id
118     		,new_references.unit_code
119     		,new_references.unit_version_number
120     		,new_references.building_id
121     		) THEN
122  		Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
123       IGS_GE_MSG_STACK.ADD;
124 			app_exception.raise_exception;
125     		END IF;
126  END Check_Uniqueness ;
127   PROCEDURE Check_Parent_Existance AS
128   /*************************************************************
129   Created By : sokaul
130   Date Created By : 11-MAY-2000
131   Purpose : NEW TABLE
132   Know limitations, enhancements or remarks
133   Change History
134   Who             When            What
135 
136   (reverse chronological order - newest change first)
137   ***************************************************************/
138 
139   BEGIN
140 
141     IF (((old_references.location_code = new_references.location_code)) OR
142         ((new_references.location_code IS NULL))) THEN
143       NULL;
144     ELSIF NOT Igs_Ad_Location_Pkg.Get_PK_For_Validation (
145         		new_references.location_code ,
146             'N'
147         )  THEN
148 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
149       IGS_GE_MSG_STACK.ADD;
150  	 App_Exception.Raise_Exception;
151     END IF;
152 
153     IF (((old_references.unit_code = new_references.unit_code) AND
154          (old_references.unit_version_number = new_references.unit_version_number)) OR
155         ((new_references.unit_code IS NULL) OR
156          (new_references.unit_version_number IS NULL))) THEN
157       NULL;
158     ELSIF NOT Igs_Ps_Unit_Ver_Pkg.Get_PK_For_Validation (
159         		new_references.unit_code,
160          		 new_references.unit_version_number
161         )  THEN
162 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
163       IGS_GE_MSG_STACK.ADD;
164  	 App_Exception.Raise_Exception;
165     END IF;
166 
167     IF (((old_references.room_id = new_references.room_id)) OR
168         ((new_references.room_id IS NULL))) THEN
169       NULL;
170     ELSIF NOT Igs_Ad_Room_Pkg.Get_PK_For_Validation (
171         		new_references.room_id ,
172             'N'
173         )  THEN
174 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
175       IGS_GE_MSG_STACK.ADD;
176  	 App_Exception.Raise_Exception;
177     END IF;
178 
179     IF (((old_references.building_id = new_references.building_id)) OR
180         ((new_references.building_id IS NULL))) THEN
181       NULL;
182     ELSIF NOT Igs_Ad_Building_Pkg.Get_PK_For_Validation (
183         		new_references.building_id ,
184             'N'
185         )  THEN
186 	 Fnd_Message.Set_Name ('FND','FORM_RECORD_DELETED');
187       IGS_GE_MSG_STACK.ADD;
188  	 App_Exception.Raise_Exception;
189     END IF;
190 
191   END Check_Parent_Existance;
192 
193   FUNCTION Get_PK_For_Validation (
194     x_unit_location_id IN NUMBER
195     ) RETURN BOOLEAN AS
196 
197   /*************************************************************
198   Created By : sokaul
199   Date Created By : 11-MAY-2000
200   Purpose : NEW TABLE
201   Know limitations, enhancements or remarks
202   Change History
203   Who             When            What
204 
205   (reverse chronological order - newest change first)
206   ***************************************************************/
207 
208     CURSOR cur_rowid IS
209       SELECT   rowid
210       FROM     igs_ps_unit_location
211       WHERE    unit_location_id = x_unit_location_id
212       FOR UPDATE NOWAIT;
213 
214     lv_rowid cur_rowid%RowType;
215 
216   BEGIN
217 
218     Open cur_rowid;
219     Fetch cur_rowid INTO lv_rowid;
220     IF (cur_rowid%FOUND) THEN
221       Close cur_rowid;
222       Return(TRUE);
223     ELSE
224       Close cur_rowid;
225       Return(FALSE);
226     END IF;
227   END Get_PK_For_Validation;
228 
229   FUNCTION Get_UK_For_Validation (
230     x_location_code IN VARCHAR2,
231     x_room_id IN NUMBER,
232     x_unit_code IN VARCHAR2,
233     x_unit_version_number IN NUMBER,
234     x_building_id IN NUMBER
235     ) RETURN BOOLEAN AS
236 
237   /*************************************************************
238   Created By : sokaul
239   Date Created By : 11-MAY-2000
240   Purpose : NEW TABLE
241   Know limitations, enhancements or remarks
242   Change History
243   Who             When            What
244 
245   (reverse chronological order - newest change first)
246   ***************************************************************/
247 
248     CURSOR cur_rowid IS
249       SELECT   rowid
250       FROM     igs_ps_unit_location
251       WHERE    location_code = x_location_code
252       AND      unit_code = x_unit_code
253       AND      unit_version_number = x_unit_version_number
254       AND      nvl(room_id,0) = nvl(x_room_id,0)
255       AND      nvl(building_id,0) = nvl(x_building_id,0)
256       AND      ((l_rowid is null) or (rowid <> l_rowid))
257 
258       ;
259     lv_rowid cur_rowid%RowType;
260 
261   BEGIN
262 
263     Open cur_rowid;
264     Fetch cur_rowid INTO lv_rowid;
265     IF (cur_rowid%FOUND) THEN
266       Close cur_rowid;
267         return (true);
268         ELSE
269        close cur_rowid;
270       return(false);
271     END IF;
272   END Get_UK_For_Validation ;
273   PROCEDURE Get_FK_Igs_Ad_Location (
274     x_location_cd IN VARCHAR2
275     ) AS
276 
277   /*************************************************************
278   Created By : sokaul
279   Date Created By : 11-MAY-2000
280   Purpose : NEW TABLE
281   Know limitations, enhancements or remarks
282   Change History
283   Who             When            What
284 
285   (reverse chronological order - newest change first)
286   ***************************************************************/
287 
288     CURSOR cur_rowid IS
289       SELECT   rowid
290       FROM     igs_ps_unit_location
291       WHERE    location_code = x_location_cd ;
292 
293     lv_rowid cur_rowid%RowType;
294 
295   BEGIN
296 
297     Open cur_rowid;
298     Fetch cur_rowid INTO lv_rowid;
299     IF (cur_rowid%FOUND) THEN
300       Close cur_rowid;
301       Fnd_Message.Set_Name ('IGS', 'IGS_PS_UL_LOC_FK');
302       IGS_GE_MSG_STACK.ADD;
303       App_Exception.Raise_Exception;
304       Return;
305     END IF;
306     Close cur_rowid;
307 
308   END Get_FK_Igs_Ad_Location;
309 
310   PROCEDURE Get_FK_Igs_Ps_Unit_Ver (
311     x_unit_cd IN VARCHAR2,
312     x_version_number IN NUMBER
313     ) AS
314 
315   /*************************************************************
316   Created By : sokaul
317   Date Created By : 11-MAY-2000
318   Purpose : NEW TABLE
319   Know limitations, enhancements or remarks
320   Change History
321   Who             When            What
322 
323   (reverse chronological order - newest change first)
324   ***************************************************************/
325 
326     CURSOR cur_rowid IS
327       SELECT   rowid
328       FROM     igs_ps_unit_location
329       WHERE    unit_code = x_unit_cd
330       AND      unit_version_number = x_version_number ;
331 
332     lv_rowid cur_rowid%RowType;
333 
334   BEGIN
335 
336     Open cur_rowid;
337     Fetch cur_rowid INTO lv_rowid;
338     IF (cur_rowid%FOUND) THEN
339       Close cur_rowid;
340       Fnd_Message.Set_Name ('IGS', 'IGS_PS_UL_UV_FK');
341       IGS_GE_MSG_STACK.ADD;
342       App_Exception.Raise_Exception;
343       Return;
344     END IF;
345     Close cur_rowid;
346 
347   END Get_FK_Igs_Ps_Unit_Ver;
348 
349   PROCEDURE Get_FK_Igs_Ad_Room (
350     x_room_id IN NUMBER
351     ) AS
352 
353   /*************************************************************
354   Created By : sokaul
355   Date Created By : 11-MAY-2000
356   Purpose : NEW TABLE
357   Know limitations, enhancements or remarks
358   Change History
359   Who             When            What
360 
361   (reverse chronological order - newest change first)
362   ***************************************************************/
363 
364     CURSOR cur_rowid IS
365       SELECT   rowid
366       FROM     igs_ps_unit_location
367       WHERE    room_id = x_room_id ;
368 
369     lv_rowid cur_rowid%RowType;
370 
371   BEGIN
372 
373     Open cur_rowid;
374     Fetch cur_rowid INTO lv_rowid;
375     IF (cur_rowid%FOUND) THEN
376       Close cur_rowid;
377       Fnd_Message.Set_Name ('IGS', 'IGS_PS_UL_ROOM_FK');
378       IGS_GE_MSG_STACK.ADD;
379       App_Exception.Raise_Exception;
380       Return;
381     END IF;
382     Close cur_rowid;
383 
384   END Get_FK_Igs_Ad_Room;
385 
386   PROCEDURE Get_FK_Igs_Ad_Building (
387     x_building_id IN NUMBER
388     ) AS
389 
390   /*************************************************************
391   Created By : sokaul
392   Date Created By : 11-MAY-2000
393   Purpose : NEW TABLE
394   Know limitations, enhancements or remarks
395   Change History
396   Who             When            What
397 
398   (reverse chronological order - newest change first)
399   ***************************************************************/
400 
401     CURSOR cur_rowid IS
402       SELECT   rowid
403       FROM     igs_ps_unit_location
404       WHERE    building_id = x_building_id ;
405 
406     lv_rowid cur_rowid%RowType;
407 
408   BEGIN
409 
410     Open cur_rowid;
411     Fetch cur_rowid INTO lv_rowid;
412     IF (cur_rowid%FOUND) THEN
413       Close cur_rowid;
414       Fnd_Message.Set_Name ('IGS', 'IGS_PS_UL_BLDG_FK');
415       IGS_GE_MSG_STACK.ADD;
416       App_Exception.Raise_Exception;
417       Return;
418     END IF;
419     Close cur_rowid;
420 
421   END Get_FK_Igs_Ad_Building;
422 
423   PROCEDURE Before_DML (
424     p_action IN VARCHAR2,
425     x_rowid IN VARCHAR2 DEFAULT NULL,
426     x_unit_location_id IN NUMBER DEFAULT NULL,
427     x_unit_code IN VARCHAR2 DEFAULT NULL,
428     x_unit_version_number IN NUMBER DEFAULT NULL,
429     x_location_code IN VARCHAR2 DEFAULT NULL,
430     x_building_id IN NUMBER DEFAULT NULL,
431     x_room_id IN NUMBER DEFAULT NULL,
432     x_creation_date IN DATE DEFAULT NULL,
433     x_created_by IN NUMBER DEFAULT NULL,
434     x_last_update_date IN DATE DEFAULT NULL,
435     x_last_updated_by IN NUMBER DEFAULT NULL,
436     x_last_update_login IN NUMBER DEFAULT NULL
437   ) AS
438   /*************************************************************
439   Created By : sokaul
440   Date Created By : 11-MAY-2000
441   Purpose : NEW TABLE
442   Know limitations, enhancements or remarks
443   Change History
444   Who             When            What
445 
446   (reverse chronological order - newest change first)
447   ***************************************************************/
448 
449   BEGIN
450 
451     Set_Column_Values (
452       p_action,
453       x_rowid,
454       x_unit_location_id,
455       x_unit_code,
456       x_unit_version_number,
457       x_location_code,
458       x_building_id,
459       x_room_id,
460       x_creation_date,
461       x_created_by,
462       x_last_update_date,
463       x_last_updated_by,
464       x_last_update_login
465     );
466 
467     IF (p_action = 'INSERT') THEN
468       -- Call all the procedures related to Before Insert.
469       Null;
470 	     IF Get_Pk_For_Validation(
471     		new_references.unit_location_id)  THEN
472 	       Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
473       IGS_GE_MSG_STACK.ADD;
474 	       App_Exception.Raise_Exception;
475 	     END IF;
476       Check_Uniqueness;
477       Check_Constraints;
478       Check_Parent_Existance;
479     ELSIF (p_action = 'UPDATE') THEN
480       -- Call all the procedures related to Before Update.
481       Null;
482       Check_Uniqueness;
483       Check_Constraints;
484       Check_Parent_Existance;
485     ELSIF (p_action = 'DELETE') THEN
486       -- Call all the procedures related to Before Delete.
487       Null;
488     ELSIF (p_action = 'VALIDATE_INSERT') THEN
489 	 -- Call all the procedures related to Before Insert.
490       IF Get_PK_For_Validation (
491     		new_references.unit_location_id)  THEN
492 	       Fnd_Message.Set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
493       IGS_GE_MSG_STACK.ADD;
494 	       App_Exception.Raise_Exception;
495 	     END IF;
496       Check_Uniqueness;
497       Check_Constraints;
498     ELSIF (p_action = 'VALIDATE_UPDATE') THEN
499       Check_Uniqueness;
500       Check_Constraints;
501     ELSIF (p_action = 'VALIDATE_DELETE') THEN
502       Null;
503     END IF;
504 
505   END Before_DML;
506 
507   PROCEDURE After_DML (
508     p_action IN VARCHAR2,
509     x_rowid IN VARCHAR2
510   ) IS
511   /*************************************************************
512   Created By : sokaul
513   Date Created By : 11-MAY-2000
514   Purpose : NEW TABLE
515   Know limitations, enhancements or remarks
516   Change History
517   Who             When            What
518 
519   (reverse chronological order - newest change first)
520   ***************************************************************/
521 
522   BEGIN
523 
524     l_rowid := x_rowid;
525 
526     IF (p_action = 'INSERT') THEN
527       -- Call all the procedures related to After Insert.
528       Null;
529     ELSIF (p_action = 'UPDATE') THEN
530       -- Call all the procedures related to After Update.
531       Null;
532     ELSIF (p_action = 'DELETE') THEN
533       -- Call all the procedures related to After Delete.
534       Null;
535     END IF;
536 l_rowid:=NULL;
537   END After_DML;
538 
539  procedure INSERT_ROW (
540       X_ROWID in out NOCOPY VARCHAR2,
541        x_UNIT_LOCATION_ID IN OUT NOCOPY NUMBER,
542        x_UNIT_CODE IN VARCHAR2,
543        x_UNIT_VERSION_NUMBER IN NUMBER,
544        x_LOCATION_CODE IN VARCHAR2,
545        x_BUILDING_ID IN NUMBER,
546        x_ROOM_ID IN NUMBER,
547       X_MODE in VARCHAR2 default 'R'
548   ) AS
549   /*************************************************************
550   Created By : sokaul
551   Date Created By : 11-MAY-2000
552   Purpose : NEW TABLE
553   Know limitations, enhancements or remarks
554   Change History
555   Who             When            What
556 
557   (reverse chronological order - newest change first)
558   ***************************************************************/
559 
560     cursor C is select ROWID from IGS_PS_UNIT_LOCATION
561              where                 UNIT_LOCATION_ID= X_UNIT_LOCATION_ID
562 ;
563      X_LAST_UPDATE_DATE DATE ;
564      X_LAST_UPDATED_BY NUMBER ;
565      X_LAST_UPDATE_LOGIN NUMBER ;
566  begin
567      X_LAST_UPDATE_DATE := SYSDATE;
568       if(X_MODE = 'I') then
569         X_LAST_UPDATED_BY := 1;
570         X_LAST_UPDATE_LOGIN := 0;
571          elsif (X_MODE = 'R') then
572                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
573             if X_LAST_UPDATED_BY is NULL then
574                 X_LAST_UPDATED_BY := -1;
575             end if;
576             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
577          if X_LAST_UPDATE_LOGIN is NULL then
578             X_LAST_UPDATE_LOGIN := -1;
579           end if;
580        else
581         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
582       IGS_GE_MSG_STACK.ADD;
583           app_exception.raise_exception;
584        end if;
585    Select IGS_PS_UNIT_LOCATION_S.NEXTVAL into x_unit_location_id from dual;
586 
587    Before_DML(
588  		p_action=>'INSERT',
589  		x_rowid=>X_ROWID,
590  	       x_unit_location_id=>X_UNIT_LOCATION_ID,
591  	       x_unit_code=>X_UNIT_CODE,
592  	       x_unit_version_number=>X_UNIT_VERSION_NUMBER,
593  	       x_location_code=>X_LOCATION_CODE,
594  	       x_building_id=>X_BUILDING_ID,
595  	       x_room_id=>X_ROOM_ID,
596 	       x_creation_date=>X_LAST_UPDATE_DATE,
597 	       x_created_by=>X_LAST_UPDATED_BY,
598 	       x_last_update_date=>X_LAST_UPDATE_DATE,
599 	       x_last_updated_by=>X_LAST_UPDATED_BY,
600 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
601      insert into IGS_PS_UNIT_LOCATION (
602 		UNIT_LOCATION_ID
603 		,UNIT_CODE
604 		,UNIT_VERSION_NUMBER
605 		,LOCATION_CODE
606 		,BUILDING_ID
607 		,ROOM_ID
608 	        ,CREATION_DATE
609 		,CREATED_BY
610 		,LAST_UPDATE_DATE
611 		,LAST_UPDATED_BY
612 		,LAST_UPDATE_LOGIN
613         ) values  (
614 	        NEW_REFERENCES.UNIT_LOCATION_ID
615 	        ,NEW_REFERENCES.UNIT_CODE
616 	        ,NEW_REFERENCES.UNIT_VERSION_NUMBER
617 	        ,NEW_REFERENCES.LOCATION_CODE
618 	        ,NEW_REFERENCES.BUILDING_ID
619 	        ,NEW_REFERENCES.ROOM_ID
620 	        ,X_LAST_UPDATE_DATE
621 		,X_LAST_UPDATED_BY
622 		,X_LAST_UPDATE_DATE
623 		,X_LAST_UPDATED_BY
624 		,X_LAST_UPDATE_LOGIN
625 );
626 		open c;
627 		 fetch c into X_ROWID;
628  		if (c%notfound) then
629 		close c;
630  	     raise no_data_found;
631 		end if;
632  		close c;
633     After_DML (
634 		p_action => 'INSERT' ,
635 		x_rowid => X_ROWID );
636 end INSERT_ROW;
637  procedure LOCK_ROW (
638       X_ROWID in  VARCHAR2,
639        x_UNIT_LOCATION_ID IN NUMBER,
640        x_UNIT_CODE IN VARCHAR2,
641        x_UNIT_VERSION_NUMBER IN NUMBER,
642        x_LOCATION_CODE IN VARCHAR2,
643        x_BUILDING_ID IN NUMBER,
644        x_ROOM_ID IN NUMBER  ) AS
645   /*************************************************************
646   Created By : sokaul
647   Date Created By : 11-MAY-2000
648   Purpose : NEW TABLE
649   Know limitations, enhancements or remarks
650   Change History
651   Who             When            What
652 
653   (reverse chronological order - newest change first)
654   ***************************************************************/
655 
656    cursor c1 is select
657       UNIT_CODE
658 ,      UNIT_VERSION_NUMBER
659 ,      LOCATION_CODE
660 ,      BUILDING_ID
661 ,      ROOM_ID
662     from IGS_PS_UNIT_LOCATION
663     where ROWID = X_ROWID
664     for update nowait;
665      tlinfo c1%rowtype;
666 begin
667   open c1;
668   fetch c1 into tlinfo;
669   if (c1%notfound) then
670     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
671       IGS_GE_MSG_STACK.ADD;
672     close c1;
673     app_exception.raise_exception;
674     return;
675   end if;
676   close c1;
677 if ( (  tlinfo.UNIT_CODE = X_UNIT_CODE)
678   AND (tlinfo.UNIT_VERSION_NUMBER = X_UNIT_VERSION_NUMBER)
679   AND (tlinfo.LOCATION_CODE = X_LOCATION_CODE)
680   AND ((tlinfo.BUILDING_ID = X_BUILDING_ID)
681             OR ((tlinfo.BUILDING_ID is null)
682 		AND (X_BUILDING_ID is null)))
683   AND ((tlinfo.ROOM_ID = X_ROOM_ID)
684  	    OR ((tlinfo.ROOM_ID is null)
685 		AND (X_ROOM_ID is null)))
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  Procedure UPDATE_ROW (
696       X_ROWID in  VARCHAR2,
697        x_UNIT_LOCATION_ID IN NUMBER,
698        x_UNIT_CODE IN VARCHAR2,
699        x_UNIT_VERSION_NUMBER IN NUMBER,
700        x_LOCATION_CODE IN VARCHAR2,
701        x_BUILDING_ID IN NUMBER,
702        x_ROOM_ID IN NUMBER,
703       X_MODE in VARCHAR2 default 'R'
704   ) AS
705   /*************************************************************
706   Created By : sokaul
707   Date Created By : 11-MAY-2000
708   Purpose : NEW TABLE
709   Know limitations, enhancements or remarks
710   Change History
711   Who             When            What
712 
713   (reverse chronological order - newest change first)
714   ***************************************************************/
715 
716      X_LAST_UPDATE_DATE DATE ;
717      X_LAST_UPDATED_BY NUMBER ;
718      X_LAST_UPDATE_LOGIN NUMBER ;
719  begin
720      X_LAST_UPDATE_DATE := SYSDATE;
721       if(X_MODE = 'I') then
722         X_LAST_UPDATED_BY := 1;
723         X_LAST_UPDATE_LOGIN := 0;
724          elsif (X_MODE = 'R') then
725                X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
726             if X_LAST_UPDATED_BY is NULL then
727                 X_LAST_UPDATED_BY := -1;
728             end if;
729             X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
730          if X_LAST_UPDATE_LOGIN is NULL then
731             X_LAST_UPDATE_LOGIN := -1;
732           end if;
733        else
734         FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
735       IGS_GE_MSG_STACK.ADD;
736           app_exception.raise_exception;
737        end if;
738    Before_DML(
739  		p_action=>'UPDATE',
740  		x_rowid=>X_ROWID,
741  	       x_unit_location_id=>X_UNIT_LOCATION_ID,
742  	       x_unit_code=>X_UNIT_CODE,
743  	       x_unit_version_number=>X_UNIT_VERSION_NUMBER,
744  	       x_location_code=>X_LOCATION_CODE,
745  	       x_building_id=>X_BUILDING_ID,
746  	       x_room_id=>X_ROOM_ID,
747 	       x_creation_date=>X_LAST_UPDATE_DATE,
748 	       x_created_by=>X_LAST_UPDATED_BY,
749 	       x_last_update_date=>X_LAST_UPDATE_DATE,
750 	       x_last_updated_by=>X_LAST_UPDATED_BY,
751 	       x_last_update_login=>X_LAST_UPDATE_LOGIN);
752    update IGS_PS_UNIT_LOCATION set
753       UNIT_CODE =  NEW_REFERENCES.UNIT_CODE,
754       UNIT_VERSION_NUMBER =  NEW_REFERENCES.UNIT_VERSION_NUMBER,
755       LOCATION_CODE =  NEW_REFERENCES.LOCATION_CODE,
756       BUILDING_ID =  NEW_REFERENCES.BUILDING_ID,
757       ROOM_ID =  NEW_REFERENCES.ROOM_ID,
758 	LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
759 	LAST_UPDATED_BY = X_LAST_UPDATED_BY,
760 	LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
761 	  where ROWID = X_ROWID;
762 	if (sql%notfound) then
763 		raise no_data_found;
764 	end if;
765 
766  After_DML (
767 	p_action => 'UPDATE' ,
768 	x_rowid => X_ROWID
769 	);
770 end UPDATE_ROW;
771  procedure ADD_ROW (
772       X_ROWID in out NOCOPY VARCHAR2,
773        x_UNIT_LOCATION_ID IN OUT NOCOPY NUMBER,
774        x_UNIT_CODE IN VARCHAR2,
775        x_UNIT_VERSION_NUMBER IN NUMBER,
776        x_LOCATION_CODE IN VARCHAR2,
777        x_BUILDING_ID IN NUMBER,
778        x_ROOM_ID IN NUMBER,
779       X_MODE in VARCHAR2 default 'R'
780   ) AS
781   /*************************************************************
782   Created By : sokaul
783   Date Created By : 11-MAY-2000
784   Purpose : NEW TABLE
785   Know limitations, enhancements or remarks
786   Change History
787   Who             When            What
788 
789   (reverse chronological order - newest change first)
790   ***************************************************************/
791 
792     cursor c1 is select ROWID from IGS_PS_UNIT_LOCATION
793              where     UNIT_LOCATION_ID= X_UNIT_LOCATION_ID
794 ;
795 begin
796 	open c1;
797 		fetch c1 into X_ROWID;
798 	if (c1%notfound) then
799 	close c1;
800     INSERT_ROW (
801       X_ROWID,
802        X_UNIT_LOCATION_ID,
803        X_UNIT_CODE,
804        X_UNIT_VERSION_NUMBER,
805        X_LOCATION_CODE,
806        X_BUILDING_ID,
807        X_ROOM_ID,
808       X_MODE );
809      return;
810 	end if;
811 	   close c1;
812 UPDATE_ROW (
813       X_ROWID,
814        X_UNIT_LOCATION_ID,
815        X_UNIT_CODE,
816        X_UNIT_VERSION_NUMBER,
817        X_LOCATION_CODE,
818        X_BUILDING_ID,
819        X_ROOM_ID,
820       X_MODE );
821 end ADD_ROW;
822 procedure DELETE_ROW (
823   X_ROWID in VARCHAR2
824 ) AS
825   /*************************************************************
826   Created By : sokaul
827   Date Created By : 11-MAY-2000
828   Purpose : NEW TABLE
829   Know limitations, enhancements or remarks
830   Change History
831   Who             When            What
832 
833   (reverse chronological order - newest change first)
834   ***************************************************************/
835 
836 begin
837 Before_DML (
838 p_action => 'DELETE',
839 x_rowid => X_ROWID
840 );
841  delete from IGS_PS_UNIT_LOCATION
842  where ROWID = X_ROWID;
843   if (sql%notfound) then
844     raise no_data_found;
845   end if;
846 After_DML (
847  p_action => 'DELETE',
848  x_rowid => X_ROWID
849 );
850 end DELETE_ROW;
851 END igs_ps_unit_location_pkg;