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