[Home] [Help]
PACKAGE BODY: APPS.IGS_GR_TESTAMUR_TYPE_PKG
Source
1 package body IGS_GR_TESTAMUR_TYPE_PKG as
2 /* $Header: IGSGI18B.pls 115.6 2003/05/19 04:46:03 ijeddy ship $ */
3 l_rowid VARCHAR2(25);
4 old_references IGS_GR_TESTAMUR_TYPE%RowType;
5 new_references IGS_GR_TESTAMUR_TYPE%RowType;
6
7 PROCEDURE Set_Column_Values (
8 p_action IN VARCHAR2,
9 x_rowid IN VARCHAR2 DEFAULT NULL,
10 x_testamur_type IN VARCHAR2 DEFAULT NULL,
11 x_description IN VARCHAR2 DEFAULT NULL,
12 x_correspondence_type IN VARCHAR2 DEFAULT NULL,
13 x_closed_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 ) AS
20
21 CURSOR cur_old_ref_values IS
22 SELECT *
23 FROM IGS_GR_TESTAMUR_TYPE
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 Close cur_old_ref_values;
36 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
37 App_Exception.Raise_Exception;
38 Return;
39 END IF;
40 Close cur_old_ref_values;
41
42 -- Populate New Values.
43 new_references.testamur_type := x_testamur_type;
44 new_references.description := x_description;
45 new_references.correspondence_type := x_correspondence_type;
46 new_references.closed_ind := x_closed_ind;
47 IF (p_action = 'UPDATE') THEN
48 new_references.creation_date := old_references.creation_date;
49 new_references.created_by := old_references.created_by;
50 ELSE
51 new_references.creation_date := x_creation_date;
52 new_references.created_by := x_created_by;
53 END IF;
54 new_references.last_update_date := x_last_update_date;
55 new_references.last_updated_by := x_last_updated_by;
56 new_references.last_update_login := x_last_update_login;
57
58 END Set_Column_Values;
59
60 -- Trigger description :-
61 -- "OSS_TST".trg_tt_br_iu
62 -- BEFORE INSERT OR UPDATE
63 -- ON IGS_GR_TESTAMUR_TYPE
64 -- FOR EACH ROW
65
66 PROCEDURE BeforeRowInsertUpdate1(
67 p_inserting IN BOOLEAN DEFAULT FALSE,
68 p_updating IN BOOLEAN DEFAULT FALSE,
69 p_deleting IN BOOLEAN DEFAULT FALSE
70 ) AS
71 v_message_name VARCHAR2(30);
72 BEGIN
73 -- As a part of Bug : 1956374, removed the call to igs_gr_val_tt.corp_val_cort_closed. This procedure is also removed from the package.
74 -- It had not functionality. Just returened TRUE in all cases. Hence call removed.
75
76 Null;
77 END BeforeRowInsertUpdate1;
78
79 PROCEDURE Check_Parent_Existance AS
80 BEGIN
81
82 IF (((old_references.correspondence_type = new_references.correspondence_type)) OR
83 ((new_references.correspondence_type IS NULL))) THEN
84 NULL;
85 /*ELSE
86 IF NOT IGS_CO_TYPE_PKG.Get_PK_For_Validation (
87 new_references.correspondence_type
88 ) THEN
89 FND_MESSAGE.SET_NAME ('FND', 'FORM_RECORD_DELETED');
90 APP_EXCEPTION.RAISE_EXCEPTION;
91 END IF; commented for correspondence related changes
92 */
93
94 END IF;
95
96 END Check_Parent_Existance;
97
98 PROCEDURE Check_Child_Existance AS
99 BEGIN
100
101 IGS_PS_AWD_PKG.GET_FK_IGS_GR_TESTAMUR_TYPE (
102 old_references.testamur_type
103 );
104
105 END Check_Child_Existance;
106
107 FUNCTION Get_PK_For_Validation (
108 x_testamur_type IN VARCHAR2
109 ) RETURN BOOLEAN AS
110
111 CURSOR cur_rowid IS
112 SELECT rowid
113 FROM IGS_GR_TESTAMUR_TYPE
114 WHERE testamur_type = x_testamur_type
115 FOR UPDATE NOWAIT;
116
117 lv_rowid cur_rowid%RowType;
118
119 BEGIN
120
121 Open cur_rowid;
122 Fetch cur_rowid INTO lv_rowid;
123 IF (cur_rowid%FOUND) THEN
124 Close cur_rowid;
125 Return (TRUE);
126 ELSE
127 Close cur_rowid;
128 Return (FALSE);
129 END IF;
130
131 END Get_PK_For_Validation;
132
133 PROCEDURE CHECK_CONSTRAINTS(
134 Column_Name IN VARCHAR2 DEFAULT NULL,
135 Column_Value IN VARCHAR2 DEFAULT NULL
136 ) AS
137 BEGIN
138 IF Column_Name is null THEN
139 NULL;
140 ELSIF upper(Column_name) = 'CLOSED_IND' THEN
141 new_references.CLOSED_IND:= COLUMN_VALUE ;
142
143 ELSIF upper(Column_name) = 'CORRESPONDENCE_TYPE' THEN
144 new_references.CORRESPONDENCE_TYPE:= COLUMN_VALUE ;
145
146 ELSIF upper(Column_name) = 'TESTAMUR_TYPE' THEN
147 new_references.TESTAMUR_TYPE:= COLUMN_VALUE ;
148
149 END IF ;
150
151 IF upper(Column_name) = 'CLOSED_IND' OR COLUMN_NAME IS NULL THEN
152 IF new_references.CLOSED_IND not in ('Y','N') then
153 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
154 App_Exception.Raise_Exception ;
155 END IF;
156
157 END IF ;
158
159 IF upper(Column_name) = 'CORRESPONDENCE_TYPE' OR COLUMN_NAME IS NULL THEN
160 IF new_references.CORRESPONDENCE_TYPE<> upper(new_references.CORRESPONDENCE_TYPE) then
161 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
162 App_Exception.Raise_Exception ;
163 END IF;
164
165 END IF ;
166
167 IF upper(Column_name) = 'TESTAMUR_TYPE' OR COLUMN_NAME IS NULL THEN
168 IF new_references.TESTAMUR_TYPE<> upper(new_references.TESTAMUR_TYPE) then
169 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
170 App_Exception.Raise_Exception ;
171 END IF;
172
173 END IF ;
174 END CHECK_CONSTRAINTS;
175
176
177 PROCEDURE GET_FK_IGS_CO_TYPE (
178 x_correspondence_type IN VARCHAR2
179 ) AS
180
181 CURSOR cur_rowid IS
182 SELECT rowid
183 FROM IGS_GR_TESTAMUR_TYPE
184 WHERE correspondence_type = x_correspondence_type ;
185
186 lv_rowid cur_rowid%RowType;
187
188 BEGIN
189
190 Open cur_rowid;
191 Fetch cur_rowid INTO lv_rowid;
192 IF (cur_rowid%FOUND) THEN
193 Close cur_rowid;
194 Fnd_Message.Set_Name ('IGS', 'IGS_GR_TT_CORT_FK');
195 App_Exception.Raise_Exception;
196 Return;
197 END IF;
198 Close cur_rowid;
199
200 END GET_FK_IGS_CO_TYPE;
201
202 PROCEDURE Before_DML (
203 p_action IN VARCHAR2,
204 x_rowid IN VARCHAR2 DEFAULT NULL,
205 x_testamur_type IN VARCHAR2 DEFAULT NULL,
206 x_description IN VARCHAR2 DEFAULT NULL,
207 x_correspondence_type IN VARCHAR2 DEFAULT NULL,
208 x_closed_ind IN VARCHAR2 DEFAULT NULL,
209 x_creation_date IN DATE DEFAULT NULL,
210 x_created_by IN NUMBER DEFAULT NULL,
211 x_last_update_date IN DATE DEFAULT NULL,
212 x_last_updated_by IN NUMBER DEFAULT NULL,
213 x_last_update_login IN NUMBER DEFAULT NULL
214 ) AS
215 BEGIN
216
217 Set_Column_Values (
218 p_action,
219 x_rowid,
220 x_testamur_type,
221 x_description,
222 x_correspondence_type,
223 x_closed_ind,
224 x_creation_date,
225 x_created_by,
226 x_last_update_date,
227 x_last_updated_by,
228 x_last_update_login
229 );
230
231 IF (p_action = 'INSERT') THEN
232 -- Call all the procedures related to Before Insert.
233 BeforeRowInsertUpdate1 ( p_inserting => TRUE );
234 IF GET_PK_FOR_VALIDATION(NEW_REFERENCES.testamur_type) THEN
235 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
236 App_Exception.Raise_Exception;
237 END IF;
238
239 check_constraints;
240 Check_Parent_Existance;
241 ELSIF (p_action = 'UPDATE') THEN
242 -- Call all the procedures related to Before Update.
243 BeforeRowInsertUpdate1 ( p_updating => TRUE );
244
245 check_constraints;
246 Check_Parent_Existance;
247 ELSIF (p_action = 'DELETE') THEN
248 -- Call all the procedures related to Before Delete.
249 Check_Child_Existance;
250 ELSIF (p_action = 'VALIDATE_INSERT') THEN
251 IF GET_PK_FOR_VALIDATION(NEW_REFERENCES.testamur_type) THEN
252 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
253 App_Exception.Raise_Exception;
254 END IF;
255
256 check_constraints;
257 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
258
259 check_constraints;
260 ELSIF (p_action = 'VALIDATE_DELETE') THEN
261 check_child_existance;
262 END IF;
263
264
265 /*
266 The (L_ROWID := null) was added by ijeddy on the 12-apr-2003 as
267 part of the bug fix for bug no 2868726, (Uniqueness Check at Item Level)
268 */
269
270 L_ROWID := null;
271 END Before_DML;
272
273 procedure INSERT_ROW (
274 X_ROWID in out NOCOPY VARCHAR2,
275 X_TESTAMUR_TYPE in VARCHAR2,
276 X_DESCRIPTION in VARCHAR2,
277 X_CORRESPONDENCE_TYPE in VARCHAR2,
278 X_CLOSED_IND in VARCHAR2,
279 X_MODE in VARCHAR2 default 'R'
280 ) AS
281 cursor C is select ROWID from IGS_GR_TESTAMUR_TYPE
282 where TESTAMUR_TYPE = X_TESTAMUR_TYPE;
283 X_LAST_UPDATE_DATE DATE;
284 X_LAST_UPDATED_BY NUMBER;
285 X_LAST_UPDATE_LOGIN NUMBER;
286 begin
287 X_LAST_UPDATE_DATE := SYSDATE;
288 if(X_MODE = 'I') then
289 X_LAST_UPDATED_BY := 1;
290 X_LAST_UPDATE_LOGIN := 0;
291 elsif (X_MODE = 'R') then
292 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
293 if X_LAST_UPDATED_BY is NULL then
294 X_LAST_UPDATED_BY := -1;
295 end if;
296 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
297 if X_LAST_UPDATE_LOGIN is NULL then
298 X_LAST_UPDATE_LOGIN := -1;
299 end if;
300 else
301 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
302 app_exception.raise_exception;
303 end if;
304
305 Before_DML (
306 p_action => 'INSERT',
307 x_rowid => X_ROWID,
308 x_testamur_type => X_TESTAMUR_TYPE,
309 x_description => X_DESCRIPTION,
310 x_correspondence_type => X_CORRESPONDENCE_TYPE,
311 x_closed_ind => NVL(X_CLOSED_IND, 'N'),
312 x_creation_date => X_LAST_UPDATE_DATE,
313 x_created_by => X_LAST_UPDATED_BY,
314 x_last_update_date => X_LAST_UPDATE_DATE,
315 x_last_updated_by => X_LAST_UPDATED_BY,
316 x_last_update_login => X_LAST_UPDATE_LOGIN
317 );
318
319 insert into IGS_GR_TESTAMUR_TYPE (
320 TESTAMUR_TYPE,
321 DESCRIPTION,
322 CORRESPONDENCE_TYPE,
323 CLOSED_IND,
324 CREATION_DATE,
325 CREATED_BY,
326 LAST_UPDATE_DATE,
327 LAST_UPDATED_BY,
328 LAST_UPDATE_LOGIN
329 ) values (
330 NEW_REFERENCES.TESTAMUR_TYPE,
331 NEW_REFERENCES.DESCRIPTION,
332 NEW_REFERENCES.CORRESPONDENCE_TYPE,
333 NEW_REFERENCES.CLOSED_IND,
334 X_LAST_UPDATE_DATE,
335 X_LAST_UPDATED_BY,
336 X_LAST_UPDATE_DATE,
337 X_LAST_UPDATED_BY,
338 X_LAST_UPDATE_LOGIN
339 );
340
341 open c;
342 fetch c into X_ROWID;
343 if (c%notfound) then
344 close c;
345 raise no_data_found;
346 end if;
347 close c;
348
349 end INSERT_ROW;
350
351 procedure LOCK_ROW (
352 X_ROWID in VARCHAR2,
353 X_TESTAMUR_TYPE in VARCHAR2,
354 X_DESCRIPTION in VARCHAR2,
355 X_CORRESPONDENCE_TYPE in VARCHAR2,
356 X_CLOSED_IND in VARCHAR2
357 ) AS
358 cursor c1 is select
359 DESCRIPTION,
360 CORRESPONDENCE_TYPE,
361 CLOSED_IND
362 from IGS_GR_TESTAMUR_TYPE
363 where ROWID = X_ROWID for update nowait;
364 tlinfo c1%rowtype;
365
366 begin
367 open c1;
368 fetch c1 into tlinfo;
369 if (c1%notfound) then
370 close c1;
371 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
372 app_exception.raise_exception;
373 return;
374 end if;
375 close c1;
376
377 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
378 AND (tlinfo.CORRESPONDENCE_TYPE = X_CORRESPONDENCE_TYPE)
379 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
380 ) then
381 null;
382 else
383 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
384 app_exception.raise_exception;
385 end if;
386 return;
387 end LOCK_ROW;
388
389 procedure UPDATE_ROW (
390 X_ROWID in VARCHAR2,
391 X_TESTAMUR_TYPE in VARCHAR2,
392 X_DESCRIPTION in VARCHAR2,
393 X_CORRESPONDENCE_TYPE in VARCHAR2,
394 X_CLOSED_IND in VARCHAR2,
395 X_MODE in VARCHAR2 default 'R'
396 ) AS
397 X_LAST_UPDATE_DATE DATE;
398 X_LAST_UPDATED_BY NUMBER;
399 X_LAST_UPDATE_LOGIN NUMBER;
400 begin
401 X_LAST_UPDATE_DATE := SYSDATE;
402 if(X_MODE = 'I') then
403 X_LAST_UPDATED_BY := 1;
404 X_LAST_UPDATE_LOGIN := 0;
405 elsif (X_MODE = 'R') then
406 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
407 if X_LAST_UPDATED_BY is NULL then
408 X_LAST_UPDATED_BY := -1;
409 end if;
410 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
411 if X_LAST_UPDATE_LOGIN is NULL then
412 X_LAST_UPDATE_LOGIN := -1;
413 end if;
414 else
415 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
416 app_exception.raise_exception;
417 end if;
418
419 Before_DML (
420 p_action => 'UPDATE',
421 x_rowid => X_ROWID,
422 x_testamur_type => X_TESTAMUR_TYPE,
423 x_description => X_DESCRIPTION,
424 x_correspondence_type => X_CORRESPONDENCE_TYPE,
425 x_closed_ind => X_CLOSED_IND,
426 x_creation_date => X_LAST_UPDATE_DATE,
427 x_created_by => X_LAST_UPDATED_BY,
428 x_last_update_date => X_LAST_UPDATE_DATE,
429 x_last_updated_by => X_LAST_UPDATED_BY,
430 x_last_update_login => X_LAST_UPDATE_LOGIN
431 );
432
433 update IGS_GR_TESTAMUR_TYPE set
434 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
435 CORRESPONDENCE_TYPE = NEW_REFERENCES.CORRESPONDENCE_TYPE,
436 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
437 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
438 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
439 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
440 where ROWID = X_ROWID
441 ;
442 if (sql%notfound) then
443 raise no_data_found;
444 end if;
445
446 end UPDATE_ROW;
447
448 procedure ADD_ROW (
449 X_ROWID in out NOCOPY VARCHAR2,
450 X_TESTAMUR_TYPE in VARCHAR2,
451 X_DESCRIPTION in VARCHAR2,
452 X_CORRESPONDENCE_TYPE in VARCHAR2,
453 X_CLOSED_IND in VARCHAR2,
454 X_MODE in VARCHAR2 default 'R'
455 ) AS
456 cursor c1 is select rowid from IGS_GR_TESTAMUR_TYPE
457 where TESTAMUR_TYPE = X_TESTAMUR_TYPE
458 ;
459
460 begin
461 open c1;
462 fetch c1 into X_ROWID;
463 if (c1%notfound) then
464 close c1;
465 INSERT_ROW (
466 X_ROWID,
467 X_TESTAMUR_TYPE,
468 X_DESCRIPTION,
469 X_CORRESPONDENCE_TYPE,
470 X_CLOSED_IND,
471 X_MODE);
472 return;
473 end if;
474 close c1;
475 UPDATE_ROW (
476 X_ROWID,
477 X_TESTAMUR_TYPE,
478 X_DESCRIPTION,
479 X_CORRESPONDENCE_TYPE,
480 X_CLOSED_IND,
481 X_MODE);
482 end ADD_ROW;
483
484 procedure DELETE_ROW (
485 X_ROWID in VARCHAR2
486 ) AS
487 begin
488
489 Before_DML (
490 p_action => 'DELETE',
491 x_rowid => X_ROWID
492 );
493
494 delete from IGS_GR_TESTAMUR_TYPE
495 where ROWID = X_ROWID;
496 if (sql%notfound) then
497 raise no_data_found;
498 end if;
499
500 end DELETE_ROW;
501
502 end IGS_GR_TESTAMUR_TYPE_PKG;