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