DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PE_PERSON_IMAGE_PKG

Source


1 package body IGS_PE_PERSON_IMAGE_PKG AS
2  /* $Header: IGSNI17B.pls 115.3 2002/11/29 01:18:23 nsidana ship $ */
3 
4 
5   l_rowid VARCHAR2(25);
6   old_references IGS_PE_PERSON_IMAGE%RowType;
7   new_references IGS_PE_PERSON_IMAGE%RowType;
8   PROCEDURE Set_Column_Values (
9     p_action IN VARCHAR2,
10     x_rowid IN VARCHAR2 DEFAULT NULL,
11     x_person_id IN NUMBER DEFAULT NULL,
12     x_image_dt IN DATE DEFAULT NULL,
13     x_creation_date IN DATE DEFAULT NULL,
14     x_created_by IN NUMBER DEFAULT NULL,
15     x_last_update_date IN DATE DEFAULT NULL,
16     x_last_updated_by IN NUMBER DEFAULT NULL,
17     x_last_update_login IN NUMBER DEFAULT NULL
18   ) AS
19 
20     CURSOR cur_old_ref_values IS
21       SELECT   *
22       FROM     IGS_PE_PERSON_IMAGE
23       WHERE    rowid = x_rowid;
24 
25   BEGIN
26 
27     l_rowid := x_rowid;
28 
29     -- Code for setting the Old and New Reference Values.
30     -- Populate Old Values.
31     Open cur_old_ref_values;
32     Fetch cur_old_ref_values INTO old_references;
33     IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
34       Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
35        IGS_GE_MSG_STACK.ADD;
36       Close cur_old_ref_values;
37        App_Exception.Raise_Exception;
38       Return;
39     END IF;
40     Close cur_old_ref_values;
41 
42     -- Populate New Values.
43     new_references.person_id := x_person_id;
44     new_references.image_dt := x_image_dt;
45     IF (p_action = 'UPDATE') THEN
46       new_references.creation_date := old_references.creation_date;
47       new_references.created_by := old_references.created_by;
48     ELSE
49       new_references.creation_date := x_creation_date;
50       new_references.created_by := x_created_by;
51     END IF;
52     new_references.last_update_date := x_last_update_date;
53     new_references.last_updated_by := x_last_updated_by;
54     new_references.last_update_login := x_last_update_login;
55 
56   END Set_Column_Values;
57 
58   PROCEDURE Check_Parent_Existance AS
59   BEGIN
60 
61     IF (((old_references.person_id = new_references.person_id)) OR
62         ((new_references.person_id IS NULL))) THEN
63       NULL;
64     ELSE
65 
66         IF  NOT IGS_PE_PERSON_PKG.Get_PK_For_Validation (
67          new_references.person_id) THEN
68      Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
69 
70      IGS_GE_MSG_STACK.ADD;
71      App_Exception.Raise_Exception;
72  END IF;
73     END IF;
74 
75   END Check_Parent_Existance;
76 
77   FUNCTION Get_PK_For_Validation (
78     x_person_id IN NUMBER,
79     x_image_dt IN DATE
80     )  RETURN BOOLEAN AS
81 
82     CURSOR cur_rowid IS
83       SELECT   rowid
84       FROM     IGS_PE_PERSON_IMAGE
85       WHERE    person_id = x_person_id
86       AND      image_dt = x_image_dt
87       FOR UPDATE NOWAIT;
88 
89     lv_rowid cur_rowid%RowType;
90 
91   BEGIN
92 
93     Open cur_rowid;
94     Fetch cur_rowid INTO lv_rowid;
95      IF (cur_rowid%FOUND) THEN
96        Close cur_rowid;
97        Return (TRUE);
98  	ELSE
99        Close cur_rowid;
100        Return (FALSE);
101  END IF;
102 
103   END Get_PK_For_Validation;
104 
105   PROCEDURE GET_FK_IGS_PE_PERSON (
106     x_person_id IN NUMBER
107     ) AS
108 
109     CURSOR cur_rowid IS
110       SELECT   rowid
111       FROM     IGS_PE_PERSON_IMAGE
112       WHERE    person_id = x_person_id ;
113 
114     lv_rowid cur_rowid%RowType;
115 
116   BEGIN
117 
118     Open cur_rowid;
119     Fetch cur_rowid INTO lv_rowid;
120     IF (cur_rowid%FOUND) THEN
121       Fnd_Message.Set_Name ('IGS', 'IGS_PE_PEI_PE_FK');
122       IGS_GE_MSG_STACK.ADD;
123 
124       Close cur_rowid;
125        App_Exception.Raise_Exception;
126       Return;
127     END IF;
128     Close cur_rowid;
129 
130   END GET_FK_IGS_PE_PERSON;
131 
132   PROCEDURE Before_DML (
133     p_action IN VARCHAR2,
134     x_rowid IN  VARCHAR2 DEFAULT NULL,
135     x_person_id IN NUMBER DEFAULT NULL,
136     x_image_dt IN DATE DEFAULT NULL,
137     x_creation_date IN DATE DEFAULT NULL,
138     x_created_by IN NUMBER DEFAULT NULL,
139     x_last_update_date IN DATE DEFAULT NULL,
140     x_last_updated_by IN NUMBER DEFAULT NULL,
141     x_last_update_login IN NUMBER DEFAULT NULL
142   ) AS
143   BEGIN
144 
145     Set_Column_Values (
146       p_action,
147       x_rowid,
148       x_person_id,
149       x_image_dt,
150       x_creation_date,
151       x_created_by,
152       x_last_update_date,
153       x_last_updated_by,
154       x_last_update_login
155     );
156 
157      IF (p_action = 'INSERT') THEN
158        -- Call all the procedures related to Before Insert.
159 
160       IF  Get_PK_For_Validation (
161           new_references.person_id ,
162             new_references.image_dt) THEN
163          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
164          IGS_GE_MSG_STACK.ADD;
165           App_Exception.Raise_Exception;
166       END IF;
167 
168       Check_Parent_Existance; -- if procedure present
169 
170  ELSIF (p_action = 'DELETE') THEN
171        -- Call all the procedures related to Before Delete.
172 
173        NULL;
174         ELSIF (p_action = 'VALIDATE_INSERT') THEN
175       IF  Get_PK_For_Validation (
176           new_references.person_id ,
177             new_references.image_dt) THEN
178          Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
179          IGS_GE_MSG_STACK.ADD;
180           App_Exception.Raise_Exception;
181       END IF;
182 
183  ELSIF (p_action = 'VALIDATE_UPDATE') THEN
184       NULL;
185 ELSIF (p_action = 'VALIDATE_DELETE') THEN
186       NULL;
187  END IF;
188 
189   END Before_DML;
190 
191   PROCEDURE After_DML (
192     p_action IN VARCHAR2,
193     x_rowid IN VARCHAR2
194   ) AS
195   BEGIN
196 
197     l_rowid := x_rowid;
198 
199     IF (p_action = 'INSERT') THEN
200       -- Call all the procedures related to After Insert.
201       Null;
202     ELSIF (p_action = 'UPDATE') THEN
203       -- Call all the procedures related to After Update.
204       Null;
205     ELSIF (p_action = 'DELETE') THEN
206       -- Call all the procedures related to After Delete.
207       Null;
208     END IF;
209 
210   END After_DML;
211 
212 
213 procedure INSERT_ROW (
214   X_ROWID in out NOCOPY VARCHAR2,
215   X_PERSON_ID in NUMBER,
216   X_IMAGE_DT in out NOCOPY DATE,
217   X_MODE in VARCHAR2 default 'R'
218   ) AS
219     cursor C is select ROWID from IGS_PE_PERSON_IMAGE
220       where PERSON_ID = X_PERSON_ID
221       and IMAGE_DT = NEW_REFERENCES.IMAGE_DT;
222     X_LAST_UPDATE_DATE DATE;
223     X_LAST_UPDATED_BY NUMBER;
224     X_LAST_UPDATE_LOGIN NUMBER;
225 begin
226   X_LAST_UPDATE_DATE := SYSDATE;
227   if(X_MODE = 'I') then
228     X_LAST_UPDATED_BY := 1;
229     X_LAST_UPDATE_LOGIN := 0;
230   elsif (X_MODE = 'R') then
231     X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
232     if X_LAST_UPDATED_BY is NULL then
233       X_LAST_UPDATED_BY := -1;
234     end if;
235     X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
236     if X_LAST_UPDATE_LOGIN is NULL then
237       X_LAST_UPDATE_LOGIN := -1;
238     end if;
239   else
240     FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
241     IGS_GE_MSG_STACK.ADD;
242     app_exception.raise_exception;
243   end if;
244  Before_DML(
245   p_action=>'INSERT',
246   x_rowid=>X_ROWID,
247   x_image_dt=> NVL(X_IMAGE_DT,SYSDATE),
248   x_person_id=>X_PERSON_ID,
249   x_creation_date=>X_LAST_UPDATE_DATE,
250   x_created_by=>X_LAST_UPDATED_BY,
251   x_last_update_date=>X_LAST_UPDATE_DATE,
252   x_last_updated_by=>X_LAST_UPDATED_BY,
253   x_last_update_login=>X_LAST_UPDATE_LOGIN
254   );
255 
256   insert into IGS_PE_PERSON_IMAGE (
257     PERSON_ID,
258     IMAGE_DT,
259     CREATION_DATE,
260     CREATED_BY,
261     LAST_UPDATE_DATE,
262     LAST_UPDATED_BY,
263     LAST_UPDATE_LOGIN
264   ) values (
265     NEW_REFERENCES.PERSON_ID,
266     NEW_REFERENCES.IMAGE_DT,
267     X_LAST_UPDATE_DATE,
268     X_LAST_UPDATED_BY,
269     X_LAST_UPDATE_DATE,
270     X_LAST_UPDATED_BY,
271     X_LAST_UPDATE_LOGIN
272   );
273 
274   open c;
275   fetch c into X_ROWID;
276   if (c%notfound) then
277     close c;
278     raise no_data_found;
279   end if;
280   close c;
281  After_DML(
282   p_action => 'INSERT',
283   x_rowid => X_ROWID
284   );
285 
286 end INSERT_ROW;
287 
288 procedure LOCK_ROW (
289   X_ROWID in VARCHAR2,
290   X_PERSON_ID in NUMBER,
291   X_IMAGE_DT in DATE
292 ) AS
293   cursor c1 is select rowid
294     from IGS_PE_PERSON_IMAGE
295     where ROWID = X_ROWID
296     for update nowait;
297   tlinfo c1%rowtype;
298 
299 begin
300   open c1;
301   fetch c1 into tlinfo;
302   if (c1%notfound) then
303     fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
304 
305     close c1;
306     App_Exception.Raise_Exception;
307     return;
308   end if;
309   close c1;
310 
311 
312   return;
313 end LOCK_ROW;
314 
315 
316 procedure DELETE_ROW (
317   X_ROWID in VARCHAR2
318 ) AS
319 begin
320  Before_DML(
321   p_action => 'DELETE',
322   x_rowid => X_ROWID
323   );
324   delete from IGS_PE_PERSON_IMAGE
325   where ROWID = X_ROWID;
326   if (sql%notfound) then
327     raise no_data_found;
328   end if;
329  After_DML(
330   p_action => 'DELETE',
331   x_rowid => X_ROWID
332   );
333 end DELETE_ROW;
334 
335 end IGS_PE_PERSON_IMAGE_PKG;