[Home] [Help]
PACKAGE BODY: APPS.IGS_PE_PERS_RELN_TYP_PKG
Source
1 package body IGS_PE_PERS_RELN_TYP_PKG AS
2 /* $Header: IGSNI30B.pls 115.3 2002/11/29 01:21:11 nsidana ship $ */
3
4
5 l_rowid VARCHAR2(25);
6 old_references IGS_PE_PERS_RELN_TYP%RowType;
7 new_references IGS_PE_PERS_RELN_TYP%RowType;
8
9 PROCEDURE Set_Column_Values (
10 p_action IN VARCHAR2,
11 x_rowid IN VARCHAR2 DEFAULT NULL,
12 x_person_relation_type IN VARCHAR2 DEFAULT NULL,
13 x_description 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 ) AS
20
21 CURSOR cur_old_ref_values IS
22 SELECT *
23 FROM IGS_PE_PERS_RELN_TYP
24 WHERE rowid = x_rowid;
25
26 BEGIN
27
28 l_rowid := x_rowid;
29
30 -- Code for setting the Old and New Reference Values.
31 -- Populate Old Values.
32 Open cur_old_ref_values;
33 Fetch cur_old_ref_values INTO old_references;
34 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT','VALIDATE_INSERT')) THEN
35 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
36 IGS_GE_MSG_STACK.ADD;
37 Close cur_old_ref_values;
38 App_Exception.Raise_Exception;
39 Return;
40 END IF;
41 Close cur_old_ref_values;
42
43 -- Populate New Values.
44 new_references.person_relation_type := x_person_relation_type;
45 new_references.description := x_description;
46 IF (p_action = 'UPDATE') THEN
47 new_references.creation_date := old_references.creation_date;
48 new_references.created_by := old_references.created_by;
49 ELSE
50 new_references.creation_date := x_creation_date;
51 new_references.created_by := x_created_by;
52 END IF;
53 new_references.last_update_date := x_last_update_date;
54 new_references.last_updated_by := x_last_updated_by;
55 new_references.last_update_login := x_last_update_login;
56
57 END Set_Column_Values;
58
59 PROCEDURE Check_Constraints (
60 Column_Name IN VARCHAR2 DEFAULT NULL,
61 Column_Value IN VARCHAR2 DEFAULT NULL
62 )
63 AS
64 BEGIN
65 IF column_name is null then
66 NULL;
67
68 ELSIF upper(Column_name) = 'PERSON_RELATION_TYPE' then
69 new_references.person_relation_type:= column_value;
70 END IF;
71
72 IF upper(column_name) = 'PERSON_RELATION_TYPE' OR
73 column_name is null Then
74 IF new_references.person_relation_type <>UPPER(new_references.person_relation_type) Then
75 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
76 IGS_GE_MSG_STACK.ADD;
77 App_Exception.Raise_Exception;
78 END IF;
79 END IF;
80 END Check_Constraints;
81
82
83 PROCEDURE Check_Child_Existance AS
84 BEGIN
85
86 IGS_PE_PERS_RELATION_PKG.GET_FK_IGS_PE_PERS_RELN_TYP (
87 old_references.person_relation_type
88 );
89
90 END Check_Child_Existance;
91
92 FUNCTION Get_PK_For_Validation (
93 x_person_relation_type IN VARCHAR2
94 ) RETURN BOOLEAN AS
95
96 CURSOR cur_rowid IS
97 SELECT rowid
98 FROM IGS_PE_PERS_RELN_TYP
99 WHERE person_relation_type = x_person_relation_type
100 FOR UPDATE NOWAIT;
101
102 lv_rowid cur_rowid%RowType;
103
104 BEGIN
105
106 Open cur_rowid;
107 Fetch cur_rowid INTO lv_rowid;
108 IF (cur_rowid%FOUND) THEN
109 Close cur_rowid;
110 Return (TRUE);
111 ELSE
112 Close cur_rowid;
113 Return (FALSE);
114 END IF;
115
116 END Get_PK_For_Validation;
117
118 PROCEDURE Before_DML (
119 p_action IN VARCHAR2,
120 x_rowid IN VARCHAR2 DEFAULT NULL,
121 x_person_relation_type IN VARCHAR2 DEFAULT NULL,
122 x_description IN VARCHAR2 DEFAULT NULL,
123 x_creation_date IN DATE DEFAULT NULL,
124 x_created_by IN NUMBER DEFAULT NULL,
125 x_last_update_date IN DATE DEFAULT NULL,
126 x_last_updated_by IN NUMBER DEFAULT NULL,
127 x_last_update_login IN NUMBER DEFAULT NULL
128 ) AS
129 BEGIN
130
131 Set_Column_Values (
132 p_action,
133 x_rowid,
134 x_person_relation_type,
135 x_description,
136 x_creation_date,
137 x_created_by,
138 x_last_update_date,
139 x_last_updated_by,
140 x_last_update_login
141 );
142
143 IF (p_action = 'INSERT') THEN
144 -- Call all the procedures related to Before Insert.
145
146 IF Get_PK_For_Validation (
147 new_references.person_relation_type ) THEN
148 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
149 IGS_GE_MSG_STACK.ADD;
150 App_Exception.Raise_Exception;
151 END IF;
152
153 Check_Constraints; -- if procedure present
154
155 ELSIF (p_action = 'UPDATE') THEN
156 -- Call all the procedures related to Before Update.
157
158
159 Check_Constraints; -- if procedure present
160
161 ELSIF (p_action = 'DELETE') THEN
162 -- Call all the procedures related to Before Delete.
163 Check_Child_Existance; -- if procedure present
164 ELSIF (p_action = 'VALIDATE_INSERT') THEN
165 IF Get_PK_For_Validation (
166 new_references.person_relation_type ) THEN
167 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
168 IGS_GE_MSG_STACK.ADD;
169 App_Exception.Raise_Exception;
170 END IF;
171
172 Check_Constraints; -- if procedure present
173 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
174
175 Check_Constraints; -- if procedure present
176
177 ELSIF (p_action = 'VALIDATE_DELETE') THEN
178 Check_Child_Existance; -- if procedure present
179 END IF;
180
181 END Before_DML;
182
183 PROCEDURE After_DML (
184 p_action IN VARCHAR2,
185 x_rowid IN VARCHAR2
186 ) AS
187 BEGIN
188
189 l_rowid := x_rowid;
190
191 IF (p_action = 'INSERT') THEN
192 -- Call all the procedures related to After Insert.
193 Null;
194 ELSIF (p_action = 'UPDATE') THEN
195 -- Call all the procedures related to After Update.
196 Null;
197 ELSIF (p_action = 'DELETE') THEN
198 -- Call all the procedures related to After Delete.
199 Null;
200 END IF;
201
202 END After_DML;
203
204 procedure INSERT_ROW (
205 X_ROWID in out NOCOPY VARCHAR2,
206 X_PERSON_RELATION_TYPE in VARCHAR2,
207 X_DESCRIPTION in VARCHAR2,
208 X_MODE in VARCHAR2 default 'R'
209 ) AS
210 cursor C is select ROWID from IGS_PE_PERS_RELN_TYP
211 where PERSON_RELATION_TYPE = X_PERSON_RELATION_TYPE;
212 X_LAST_UPDATE_DATE DATE;
213 X_LAST_UPDATED_BY NUMBER;
214 X_LAST_UPDATE_LOGIN NUMBER;
215 begin
216 X_LAST_UPDATE_DATE := SYSDATE;
217 if(X_MODE = 'I') then
218 X_LAST_UPDATED_BY := 1;
219 X_LAST_UPDATE_LOGIN := 0;
220 elsif (X_MODE = 'R') then
221 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
222 if X_LAST_UPDATED_BY is NULL then
223 X_LAST_UPDATED_BY := -1;
224 end if;
225 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
226 if X_LAST_UPDATE_LOGIN is NULL then
227 X_LAST_UPDATE_LOGIN := -1;
228 end if;
229 else
230 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
231 IGS_GE_MSG_STACK.ADD;
232 app_exception.raise_exception;
233 end if;
234 Before_DML(
235 p_action=>'INSERT',
236 x_rowid=>X_ROWID,
237 x_description=>X_DESCRIPTION,
238 x_person_relation_type=>X_PERSON_RELATION_TYPE,
239 x_creation_date=>X_LAST_UPDATE_DATE,
240 x_created_by=>X_LAST_UPDATED_BY,
241 x_last_update_date=>X_LAST_UPDATE_DATE,
242 x_last_updated_by=>X_LAST_UPDATED_BY,
243 x_last_update_login=>X_LAST_UPDATE_LOGIN
244 );
245
246 insert into IGS_PE_PERS_RELN_TYP (
247 PERSON_RELATION_TYPE,
248 DESCRIPTION,
249 CREATION_DATE,
250 CREATED_BY,
251 LAST_UPDATE_DATE,
252 LAST_UPDATED_BY,
253 LAST_UPDATE_LOGIN
254 ) values (
255 NEW_REFERENCES.PERSON_RELATION_TYPE,
256 NEW_REFERENCES.DESCRIPTION,
257 X_LAST_UPDATE_DATE,
258 X_LAST_UPDATED_BY,
259 X_LAST_UPDATE_DATE,
260 X_LAST_UPDATED_BY,
261 X_LAST_UPDATE_LOGIN
262 );
263
264 open c;
265 fetch c into X_ROWID;
266 if (c%notfound) then
267 close c;
268 raise no_data_found;
269 end if;
270 close c;
271 After_DML(
272 p_action => 'INSERT',
273 x_rowid => X_ROWID
274 );
275 end INSERT_ROW;
276
277 procedure LOCK_ROW (
278 X_ROWID in VARCHAR2,
279 X_PERSON_RELATION_TYPE in VARCHAR2,
280 X_DESCRIPTION in VARCHAR2
281 ) AS
282 cursor c1 is select
283 DESCRIPTION
284 from IGS_PE_PERS_RELN_TYP
285 where ROWID = X_ROWID
286 for update nowait;
287 tlinfo c1%rowtype;
288
289 begin
290 open c1;
291 fetch c1 into tlinfo;
292 if (c1%notfound) then
293 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
294
295 close c1;
296 App_Exception.Raise_Exception;
297 return;
298 end if;
299 close c1;
300
301 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
302 ) then
303 null;
304 else
305 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
306 app_exception.raise_exception;
307 end if;
308 return;
309 end LOCK_ROW;
310
311 procedure UPDATE_ROW (
312 X_ROWID in VARCHAR2,
313 X_PERSON_RELATION_TYPE in VARCHAR2,
314 X_DESCRIPTION in VARCHAR2,
315 X_MODE in VARCHAR2 default 'R'
316 ) AS
317 X_LAST_UPDATE_DATE DATE;
318 X_LAST_UPDATED_BY NUMBER;
319 X_LAST_UPDATE_LOGIN NUMBER;
320 begin
321 X_LAST_UPDATE_DATE := SYSDATE;
322 if(X_MODE = 'I') then
323 X_LAST_UPDATED_BY := 1;
324 X_LAST_UPDATE_LOGIN := 0;
325 elsif (X_MODE = 'R') then
326 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
327 if X_LAST_UPDATED_BY is NULL then
328 X_LAST_UPDATED_BY := -1;
329 end if;
330 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
331 if X_LAST_UPDATE_LOGIN is NULL then
332 X_LAST_UPDATE_LOGIN := -1;
333 end if;
334 else
335 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
336 IGS_GE_MSG_STACK.ADD;
337 app_exception.raise_exception;
338 end if;
339
340 Before_DML(
341 p_action=>'UPDATE',
342 x_rowid=>X_ROWID,
343 x_description=>X_DESCRIPTION,
344 x_person_relation_type=>X_PERSON_RELATION_TYPE,
345 x_creation_date=>X_LAST_UPDATE_DATE,
346 x_created_by=>X_LAST_UPDATED_BY,
347 x_last_update_date=>X_LAST_UPDATE_DATE,
348 x_last_updated_by=>X_LAST_UPDATED_BY,
349 x_last_update_login=>X_LAST_UPDATE_LOGIN
350 );
351
352 update IGS_PE_PERS_RELN_TYP set
353 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
354 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
355 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
356 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
357 where ROWID = X_ROWID
358 ;
359 if (sql%notfound) then
360 raise no_data_found;
361 end if;
362
363 After_DML(
364 p_action => 'UPDATE',
365 x_rowid => X_ROWID
366 );
367 end UPDATE_ROW;
368
369 procedure ADD_ROW (
370 X_ROWID in out NOCOPY VARCHAR2,
371 X_PERSON_RELATION_TYPE in VARCHAR2,
372 X_DESCRIPTION in VARCHAR2,
373 X_MODE in VARCHAR2 default 'R'
374 ) AS
375 cursor c1 is select rowid from IGS_PE_PERS_RELN_TYP
376 where PERSON_RELATION_TYPE = X_PERSON_RELATION_TYPE
377 ;
378
379 begin
380 open c1;
381 fetch c1 into X_ROWID;
382 if (c1%notfound) then
383 close c1;
384 INSERT_ROW (
385 X_ROWID,
386 X_PERSON_RELATION_TYPE,
387 X_DESCRIPTION,
388 X_MODE);
389 return;
390 end if;
391 close c1;
392 UPDATE_ROW (
393 X_ROWID,
394 X_PERSON_RELATION_TYPE,
395 X_DESCRIPTION,
396 X_MODE);
397 end ADD_ROW;
398
399 procedure DELETE_ROW (
400 X_ROWID in VARCHAR2
401 ) AS
402 begin
403
404 Before_DML(
405 p_action => 'DELETE',
406 x_rowid => X_ROWID
407 );
408 delete from IGS_PE_PERS_RELN_TYP
409 where ROWID = X_ROWID;
410 if (sql%notfound) then
411 raise no_data_found;
412 end if;
413 After_DML(
414 p_action => 'DELETE',
415 x_rowid => X_ROWID
416 );
417 end DELETE_ROW;
418
419 end IGS_PE_PERS_RELN_TYP_PKG;