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