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