[Home] [Help]
PACKAGE BODY: APPS.IGS_RE_THESIS_RESULT_PKG
Source
1 package body IGS_RE_THESIS_RESULT_PKG as
2 /* $Header: IGSRI18B.pls 115.6 2002/11/29 03:36:27 nsidana ship $ */
3 l_rowid VARCHAR2(25);
4 old_references IGS_RE_THESIS_RESULT_ALL%RowType;
5 new_references IGS_RE_THESIS_RESULT_ALL%RowType;
6
7 PROCEDURE Set_Column_Values (
8 p_action IN VARCHAR2,
9 x_rowid IN VARCHAR2 DEFAULT NULL,
10 x_thesis_result_cd IN VARCHAR2 DEFAULT NULL,
11 x_description IN VARCHAR2 DEFAULT NULL,
12 x_s_thesis_result_cd IN VARCHAR2 DEFAULT NULL,
13 x_closed_ind IN VARCHAR2 DEFAULT NULL,
14 x_comments IN VARCHAR2 DEFAULT NULL,
15 x_creation_date IN DATE DEFAULT NULL,
16 x_created_by IN NUMBER DEFAULT NULL,
17 x_last_update_date IN DATE DEFAULT NULL,
18 x_last_updated_by IN NUMBER DEFAULT NULL,
19 x_last_update_login IN NUMBER DEFAULT NULL ,
20 x_org_id IN NUMBER DEFAULT NULL
21 ) AS
22
23 CURSOR cur_old_ref_values IS
24 SELECT *
25 FROM IGS_RE_THESIS_RESULT_ALL
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.thesis_result_cd := x_thesis_result_cd;
47 new_references.description := x_description;
48 new_references.s_thesis_result_cd := x_s_thesis_result_cd;
49 new_references.closed_ind := x_closed_ind;
50 new_references.comments := x_comments;
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 new_references.org_id := x_org_id;
62 END Set_Column_Values;
63
64 PROCEDURE Check_Constraints (
65 Column_Name in VARCHAR2 DEFAULT NULL ,
66 Column_Value in VARCHAR2 DEFAULT NULL
67 ) AS
68 BEGIN
69
70 IF Column_Name is null then
71 NULL;
72 ELSIF upper(Column_name) = 'CLOSED_IND' THEN
73 new_references.closed_ind := COLUMN_VALUE ;
74 ELSIF upper(Column_name) = 'S_THESIS_RESULT_CD' THEN
75 new_references.S_THESIS_RESULT_CD := COLUMN_VALUE ;
76 ELSIF upper(Column_name) = 'THESIS_RESULT_CD' THEN
77 new_references.THESIS_RESULT_CD := COLUMN_VALUE ;
78 END IF;
79
80 IF upper(column_name) = 'CLOSED_IND' OR COLUMN_NAME IS NULL THEN
81 IF new_references.closed_ind <> upper(NEW_REFERENCES.closed_ind) OR
82 new_references.closed_ind NOT IN ('Y', 'N') then
83 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
84 IGS_GE_MSG_STACK.ADD;
85 App_Exception.Raise_Exception ;
86 END IF;
87 END IF;
88
89 IF upper(column_name) = 'S_THESIS_RESULT_CD' OR COLUMN_NAME IS NULL THEN
90 IF new_references.S_THESIS_RESULT_CD <> upper(NEW_REFERENCES.S_THESIS_RESULT_CD) then
91 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
92 IGS_GE_MSG_STACK.ADD;
93 App_Exception.Raise_Exception ;
94 END IF;
95 END IF;
96
97 IF upper(column_name) = 'THESIS_RESULT_CD' OR COLUMN_NAME IS NULL THEN
98 IF new_references.THESIS_RESULT_CD <> upper(NEW_REFERENCES.THESIS_RESULT_CD) 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 END Check_Constraints ;
106
107
108 PROCEDURE Check_Parent_Existance AS
109 BEGIN
110
111 IF (((old_references.s_thesis_result_cd = new_references.s_thesis_result_cd)) OR
112 ((new_references.s_thesis_result_cd IS NULL))) THEN
113 NULL;
114 ELSE
115 IF NOT IGS_LOOKUPS_VIEW_PKG.Get_PK_For_Validation ( 'THESIS_RESULT',new_references.s_thesis_result_cd) THEN
116 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
117 IGS_GE_MSG_STACK.ADD;
118 App_Exception.Raise_Exception;
119 END IF;
120 END IF;
121
122 END Check_Parent_Existance;
123
124 PROCEDURE Check_Child_Existance AS
125 BEGIN
126
127 IGS_RE_THESIS_PKG.GET_FK_IGS_RE_THESIS_RESULT (
128 old_references.thesis_result_cd
129 );
130
131 IGS_RE_THESIS_EXAM_PKG.GET_FK_IGS_RE_THESIS_RESULT (
132 old_references.thesis_result_cd
133 );
134
135 IGS_RE_THS_PNL_MBR_PKG.GET_FK_IGS_RE_THESIS_RESULT (
136 old_references.thesis_result_cd
137 );
138
139 END Check_Child_Existance;
140
141 FUNCTION Get_PK_For_Validation (
142 x_thesis_result_cd IN VARCHAR2
143 ) RETURN BOOLEAN AS
144
145 CURSOR cur_rowid IS
146 SELECT rowid
147 FROM IGS_RE_THESIS_RESULT_ALL
148 WHERE thesis_result_cd = x_thesis_result_cd
149 FOR UPDATE NOWAIT;
150
151 lv_rowid cur_rowid%RowType;
152
153 BEGIN
154
155 Open cur_rowid;
156 Fetch cur_rowid INTO lv_rowid;
157 IF (cur_rowid%FOUND) THEN
158 Close cur_rowid;
159 RETURN(TRUE);
160 ELSE
161 Close cur_rowid;
162 RETURN(FALSE);
163 END IF;
164 END Get_PK_For_Validation;
165
166 PROCEDURE GET_FK_IGS_LOOKUPS_VIEW (
167 x_s_thesis_result_cd IN VARCHAR2
168 ) AS
169
170 CURSOR cur_rowid IS
171 SELECT rowid
172 FROM IGS_RE_THESIS_RESULT_ALL
173 WHERE s_thesis_result_cd = x_s_thesis_result_cd ;
174
175 lv_rowid cur_rowid%RowType;
176
177 BEGIN
178
179 Open cur_rowid;
180 Fetch cur_rowid INTO lv_rowid;
181 IF (cur_rowid%FOUND) THEN
182 Close cur_rowid;
183 Fnd_Message.Set_Name ('IGS', 'IGS_RE_THR_SLV_FK');
184 IGS_GE_MSG_STACK.ADD;
185 App_Exception.Raise_Exception;
186 Return;
187 END IF;
188 Close cur_rowid;
189
190 END GET_FK_IGS_LOOKUPS_VIEW;
191
192 PROCEDURE Before_DML (
193 p_action IN VARCHAR2,
194 x_rowid IN VARCHAR2 DEFAULT NULL,
195 x_thesis_result_cd IN VARCHAR2 DEFAULT NULL,
196 x_description IN VARCHAR2 DEFAULT NULL,
197 x_s_thesis_result_cd IN VARCHAR2 DEFAULT NULL,
198 x_closed_ind IN VARCHAR2 DEFAULT NULL,
199 x_comments IN VARCHAR2 DEFAULT NULL,
200 x_creation_date IN DATE DEFAULT NULL,
201 x_created_by IN NUMBER DEFAULT NULL,
202 x_last_update_date IN DATE DEFAULT NULL,
203 x_last_updated_by IN NUMBER DEFAULT NULL,
204 x_last_update_login IN NUMBER DEFAULT NULL,
205 x_org_id IN NUMBER DEFAULT NULL
206 ) AS
207 BEGIN
208
209 Set_Column_Values (
210 p_action,
211 x_rowid,
212 x_thesis_result_cd,
213 x_description,
214 x_s_thesis_result_cd,
215 x_closed_ind,
216 x_comments,
217 x_creation_date,
218 x_created_by,
219 x_last_update_date,
220 x_last_updated_by,
221 x_last_update_login ,
222 x_org_id
223 );
224
225 IF (p_action = 'INSERT') THEN
226 -- Call all the procedures related to Before Insert.
227 IF Get_PK_For_Validation (
228 new_references.thesis_result_cd
229 ) THEN
230 Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
231 IGS_GE_MSG_STACK.ADD;
232 App_Exception.Raise_Exception;
233 END IF;
234 Check_Constraints;
235 Check_Parent_Existance;
236 ELSIF (p_action = 'UPDATE') THEN
237 -- Call all the procedures related to Before Update.
238 Check_Constraints;
239 Check_Parent_Existance;
240 ELSIF (p_action = 'DELETE') THEN
241 -- Call all the procedures related to Before Delete.
242 Check_Child_Existance;
243 ELSIF (p_action = 'VALIDATE_INSERT') THEN
244 IF Get_PK_For_Validation (
245 new_references.thesis_result_cd
246 ) THEN
247 Fnd_Message.Set_Name ('IGS', 'IGS_GE_MULTI_ORG_DUP_REC');
248 IGS_GE_MSG_STACK.ADD;
249 App_Exception.Raise_Exception;
250 END IF;
251 Check_Constraints;
252 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
253 Check_Constraints;
254 ELSIF (p_action = 'VALIDATE_DELETE') THEN
255 Check_Child_Existance;
256 END IF;
257 END Before_DML;
258
259 procedure INSERT_ROW (
260 X_ROWID in out NOCOPY VARCHAR2,
261 X_THESIS_RESULT_CD in VARCHAR2,
262 X_DESCRIPTION in VARCHAR2,
263 X_S_THESIS_RESULT_CD in VARCHAR2,
264 X_CLOSED_IND in VARCHAR2,
265 X_COMMENTS in VARCHAR2,
266 X_MODE in VARCHAR2 default 'R',
267 X_ORG_ID in NUMBER
268 ) as
269 cursor C is select ROWID from IGS_RE_THESIS_RESULT_ALL
270 where THESIS_RESULT_CD = X_THESIS_RESULT_CD;
271 X_LAST_UPDATE_DATE DATE;
272 X_LAST_UPDATED_BY NUMBER;
273 X_LAST_UPDATE_LOGIN NUMBER;
274 begin
275 X_LAST_UPDATE_DATE := SYSDATE;
276 if(X_MODE = 'I') then
277 X_LAST_UPDATED_BY := 1;
278 X_LAST_UPDATE_LOGIN := 0;
279 elsif (X_MODE = 'R') then
280 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
281 if X_LAST_UPDATED_BY is NULL then
282 X_LAST_UPDATED_BY := -1;
283 end if;
284 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
285 if X_LAST_UPDATE_LOGIN is NULL then
286 X_LAST_UPDATE_LOGIN := -1;
287 end if;
288 else
289 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
290 IGS_GE_MSG_STACK.ADD;
291 app_exception.raise_exception;
292 end if;
293
294 Before_DML (
295 p_action => 'INSERT',
296 x_rowid => X_ROWID,
297 x_last_update_login => X_LAST_UPDATE_LOGIN,
298 x_thesis_result_cd => X_THESIS_RESULT_CD,
299 x_description => X_DESCRIPTION,
300 x_s_thesis_result_cd => X_S_THESIS_RESULT_CD,
301 x_closed_ind => NVL(X_CLOSED_IND, 'N'),
302 x_comments => X_COMMENTS,
303 x_created_by => X_LAST_UPDATED_BY ,
304 x_creation_date => X_LAST_UPDATE_DATE,
305 x_last_updated_by => X_LAST_UPDATED_BY,
306 x_last_update_date => X_LAST_UPDATE_DATE ,
307 x_org_id => igs_ge_gen_003.get_org_id );
308
309 insert into IGS_RE_THESIS_RESULT_ALL (
310 THESIS_RESULT_CD,
311 DESCRIPTION,
312 S_THESIS_RESULT_CD,
313 CLOSED_IND,
314 COMMENTS,
315 CREATION_DATE,
316 CREATED_BY,
317 LAST_UPDATE_DATE,
318 LAST_UPDATED_BY,
319 LAST_UPDATE_LOGIN,
320 ORG_ID
321 ) values (
322 NEW_REFERENCES.THESIS_RESULT_CD,
323 NEW_REFERENCES.DESCRIPTION,
324 NEW_REFERENCES.S_THESIS_RESULT_CD,
325 NEW_REFERENCES.CLOSED_IND,
326 NEW_REFERENCES.COMMENTS,
327 X_LAST_UPDATE_DATE,
328 X_LAST_UPDATED_BY,
329 X_LAST_UPDATE_DATE,
330 X_LAST_UPDATED_BY,
331 X_LAST_UPDATE_LOGIN,
332 NEW_REFERENCES.ORG_ID
333 );
334
335 open c;
336 fetch c into X_ROWID;
337 if (c%notfound) then
338 close c;
339 raise no_data_found;
340 end if;
341 close c;
342
343 end INSERT_ROW;
344
345 procedure LOCK_ROW (
346 X_ROWID in VARCHAR2,
347 X_THESIS_RESULT_CD in VARCHAR2,
348 X_DESCRIPTION in VARCHAR2,
349 X_S_THESIS_RESULT_CD in VARCHAR2,
350 X_CLOSED_IND in VARCHAR2,
351 X_COMMENTS in VARCHAR2
352 ) as
353 cursor c1 is select
354 DESCRIPTION,
355 S_THESIS_RESULT_CD,
356 CLOSED_IND,
357 COMMENTS
358 from IGS_RE_THESIS_RESULT_ALL
359 where ROWID = X_ROWID
360 for update nowait;
361 tlinfo c1%rowtype;
362
363 begin
364 open c1;
365 fetch c1 into tlinfo;
366 if (c1%notfound) then
367 close c1;
368 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
369 app_exception.raise_exception;
370 return;
371 end if;
372 close c1;
373
374 if ( (tlinfo.DESCRIPTION = X_DESCRIPTION)
375 AND (tlinfo.S_THESIS_RESULT_CD = X_S_THESIS_RESULT_CD)
376 AND (tlinfo.CLOSED_IND = X_CLOSED_IND)
377 AND ((tlinfo.COMMENTS = X_COMMENTS)
378 OR ((tlinfo.COMMENTS is null)
379 AND (X_COMMENTS is null)))
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_THESIS_RESULT_CD in VARCHAR2,
392 X_DESCRIPTION in VARCHAR2,
393 X_S_THESIS_RESULT_CD in VARCHAR2,
394 X_CLOSED_IND in VARCHAR2,
395 X_COMMENTS in VARCHAR2,
396 X_MODE in VARCHAR2 default 'R'
397 ) as
398 X_LAST_UPDATE_DATE DATE;
399 X_LAST_UPDATED_BY NUMBER;
400 X_LAST_UPDATE_LOGIN NUMBER;
401 begin
402 X_LAST_UPDATE_DATE := SYSDATE;
403 if(X_MODE = 'I') then
404 X_LAST_UPDATED_BY := 1;
405 X_LAST_UPDATE_LOGIN := 0;
406 elsif (X_MODE = 'R') then
407 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
408 if X_LAST_UPDATED_BY is NULL then
409 X_LAST_UPDATED_BY := -1;
410 end if;
411 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
412 if X_LAST_UPDATE_LOGIN is NULL then
413 X_LAST_UPDATE_LOGIN := -1;
414 end if;
415 else
416 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
417 IGS_GE_MSG_STACK.ADD;
418 app_exception.raise_exception;
419 end if;
420
421 Before_DML (
422 p_action => 'UPDATE',
423 x_rowid => X_ROWID,
424 x_last_update_login => X_LAST_UPDATE_LOGIN,
425 x_thesis_result_cd => X_THESIS_RESULT_CD,
426 x_description => X_DESCRIPTION,
427 x_s_thesis_result_cd => X_S_THESIS_RESULT_CD,
428 x_closed_ind => X_CLOSED_IND,
429 x_comments => X_COMMENTS,
430 x_created_by => X_LAST_UPDATED_BY ,
431 x_creation_date => X_LAST_UPDATE_DATE,
432 x_last_updated_by => X_LAST_UPDATED_BY,
433 x_last_update_date => X_LAST_UPDATE_DATE
434 );
435
436 update IGS_RE_THESIS_RESULT_ALL set
437 DESCRIPTION = NEW_REFERENCES.DESCRIPTION,
438 S_THESIS_RESULT_CD = NEW_REFERENCES.S_THESIS_RESULT_CD,
439 CLOSED_IND = NEW_REFERENCES.CLOSED_IND,
440 COMMENTS = NEW_REFERENCES.COMMENTS,
441 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
442 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
443 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
444 where ROWID = X_ROWID
445 ;
446 if (sql%notfound) then
447 raise no_data_found;
448 end if;
449
450 end UPDATE_ROW;
451
452 procedure ADD_ROW (
453 X_ROWID in out NOCOPY VARCHAR2,
454 X_THESIS_RESULT_CD in VARCHAR2,
455 X_DESCRIPTION in VARCHAR2,
456 X_S_THESIS_RESULT_CD in VARCHAR2,
457 X_CLOSED_IND in VARCHAR2,
458 X_COMMENTS in VARCHAR2,
459 X_MODE in VARCHAR2 default 'R',
460 X_ORG_ID in NUMBER
461 ) as
462 cursor c1 is select rowid from IGS_RE_THESIS_RESULT_ALL
463 where THESIS_RESULT_CD = X_THESIS_RESULT_CD
464 ;
465 begin
466 open c1;
467 fetch c1 into X_ROWID;
468 if (c1%notfound) then
469 close c1;
470 INSERT_ROW (
471 X_ROWID,
472 X_THESIS_RESULT_CD,
473 X_DESCRIPTION,
474 X_S_THESIS_RESULT_CD,
475 X_CLOSED_IND,
476 X_COMMENTS,
477 X_MODE,
478 X_ORG_ID);
479 return;
480 end if;
481 close c1;
482 UPDATE_ROW (
483 X_ROWID,
484 X_THESIS_RESULT_CD,
485 X_DESCRIPTION,
486 X_S_THESIS_RESULT_CD,
487 X_CLOSED_IND,
488 X_COMMENTS,
489 X_MODE);
490 end ADD_ROW;
491
492 procedure DELETE_ROW (
493 X_ROWID in VARCHAR2
494 ) as
495 begin
496
497 Before_DML (
498 p_action => 'DELETE',
499 x_rowid => X_ROWID
500 );
501
502 delete from IGS_RE_THESIS_RESULT_ALL
503 where ROWID = X_ROWID;
504 if (sql%notfound) then
505 raise no_data_found;
506 end if;
507
508 end DELETE_ROW;
509
510 end IGS_RE_THESIS_RESULT_PKG;