[Home] [Help]
PACKAGE BODY: APPS.IGS_AS_ATTEND_CONFIG_PKG
Source
1 PACKAGE BODY igs_as_attend_config_pkg AS
2 /* $Header: IGSDI57B.pls 115.3 2002/11/28 23:25:07 nsidana ship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references igs_as_attend_config%ROWTYPE;
6 new_references igs_as_attend_config%ROWTYPE;
7
8 PROCEDURE set_column_values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_eac_id IN NUMBER DEFAULT NULL,
12 x_key_chk_dgt IN VARCHAR2 DEFAULT NULL,
13 x_attendance_entry_reqd IN VARCHAR2 DEFAULT NULL,
14 x_unit_discntd IN VARCHAR2 DEFAULT NULL,
15 x_hrs_exist IN VARCHAR2 DEFAULT NULL,
16 x_over_claimable_hrs IN VARCHAR2 DEFAULT NULL,
17 x_creation_date IN DATE DEFAULT NULL,
18 x_created_by IN NUMBER DEFAULT NULL,
19 x_last_update_date IN DATE DEFAULT NULL,
20 x_last_updated_by IN NUMBER DEFAULT NULL,
21 x_last_update_login IN NUMBER DEFAULT NULL
22 ) AS
23 /*
24 || Created By : cdcruz
25 || Created On : 25-JUL-2001
26 || Purpose : Initialises the Old and New references for the columns of the table.
27 || Known limitations, enhancements or remarks :
28 || Change History :
29 || Who When What
30 || (reverse chronological order - newest change first)
31 */
32
33 CURSOR cur_old_ref_values IS
34 SELECT *
35 FROM IGS_AS_ATTEND_CONFIG
36 WHERE rowid = x_rowid;
37
38 BEGIN
39
40 l_rowid := x_rowid;
41
42 -- Code for setting the Old and New Reference Values.
43 -- Populate Old Values.
44 OPEN cur_old_ref_values;
45 FETCH cur_old_ref_values INTO old_references;
46 IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
47 CLOSE cur_old_ref_values;
48 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
49 igs_ge_msg_stack.add;
50 app_exception.raise_exception;
51 RETURN;
52 END IF;
53 CLOSE cur_old_ref_values;
54
55 -- Populate New Values.
56 new_references.eac_id := x_eac_id;
57 new_references.key_chk_dgt := x_key_chk_dgt;
58 new_references.attendance_entry_reqd := x_attendance_entry_reqd;
59 new_references.unit_discntd := x_unit_discntd;
60 new_references.hrs_exist := x_hrs_exist;
61 new_references.over_claimable_hrs := x_over_claimable_hrs;
62
63 IF (p_action = 'UPDATE') THEN
64 new_references.creation_date := old_references.creation_date;
65 new_references.created_by := old_references.created_by;
66 ELSE
67 new_references.creation_date := x_creation_date;
68 new_references.created_by := x_created_by;
69 END IF;
70
71 new_references.last_update_date := x_last_update_date;
72 new_references.last_updated_by := x_last_updated_by;
73 new_references.last_update_login := x_last_update_login;
74
75 END set_column_values;
76
77
78 FUNCTION get_pk_for_validation (
79 x_eac_id IN NUMBER
80 ) RETURN BOOLEAN AS
81 /*
82 || Created By : cdcruz
83 || Created On : 25-JUL-2001
84 || Purpose : Validates the Primary Key of the table.
85 || Known limitations, enhancements or remarks :
86 || Change History :
87 || Who When What
88 || (reverse chronological order - newest change first)
89 */
90 CURSOR cur_rowid IS
91 SELECT rowid
92 FROM igs_as_attend_config
93 WHERE eac_id = x_eac_id
94 FOR UPDATE NOWAIT;
95
96 lv_rowid cur_rowid%RowType;
97
98 BEGIN
99
100 OPEN cur_rowid;
101 FETCH cur_rowid INTO lv_rowid;
102 IF (cur_rowid%FOUND) THEN
103 CLOSE cur_rowid;
104 RETURN(TRUE);
105 ELSE
106 CLOSE cur_rowid;
107 RETURN(FALSE);
108 END IF;
109
110 END get_pk_for_validation;
111
112
113 PROCEDURE before_dml (
114 p_action IN VARCHAR2,
115 x_rowid IN VARCHAR2 DEFAULT NULL,
116 x_eac_id IN NUMBER DEFAULT NULL,
117 x_key_chk_dgt IN VARCHAR2 DEFAULT NULL,
118 x_attendance_entry_reqd IN VARCHAR2 DEFAULT NULL,
119 x_unit_discntd IN VARCHAR2 DEFAULT NULL,
120 x_hrs_exist IN VARCHAR2 DEFAULT NULL,
121 x_over_claimable_hrs IN VARCHAR2 DEFAULT NULL,
122 x_creation_date IN DATE DEFAULT NULL,
123 x_created_by IN NUMBER DEFAULT NULL,
124 x_last_update_date IN DATE DEFAULT NULL,
125 x_last_updated_by IN NUMBER DEFAULT NULL,
126 x_last_update_login IN NUMBER DEFAULT NULL
127 ) AS
128 /*
129 || Created By : cdcruz
130 || Created On : 25-JUL-2001
131 || Purpose : Initialises the columns, Checks Constraints, Calls the
132 || Trigger Handlers for the table, before any DML operation.
133 || Known limitations, enhancements or remarks :
134 || Change History :
135 || Who When What
136 || (reverse chronological order - newest change first)
137 */
138 BEGIN
139
140 set_column_values (
141 p_action,
142 x_rowid,
143 x_eac_id,
144 x_key_chk_dgt,
145 x_attendance_entry_reqd,
146 x_unit_discntd,
147 x_hrs_exist,
148 x_over_claimable_hrs,
149 x_creation_date,
150 x_created_by,
151 x_last_update_date,
152 x_last_updated_by,
153 x_last_update_login
154 );
155
156 IF (p_action = 'INSERT') THEN
157 -- Call all the procedures related to Before Insert.
158 IF ( get_pk_for_validation(
159 new_references.eac_id
160 )
161 ) THEN
162 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
163 igs_ge_msg_stack.add;
164 app_exception.raise_exception;
165 END IF;
166 ELSIF (p_action = 'VALIDATE_INSERT') THEN
167 -- Call all the procedures related to Before Insert.
168 IF ( get_pk_for_validation (
169 new_references.eac_id
170 )
171 ) THEN
172 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
173 igs_ge_msg_stack.add;
174 app_exception.raise_exception;
175 END IF;
176 END IF;
177
178 END before_dml;
179
180
181 PROCEDURE insert_row (
182 x_rowid IN OUT NOCOPY VARCHAR2,
183 x_eac_id IN OUT NOCOPY NUMBER,
184 x_key_chk_dgt IN VARCHAR2,
185 x_attendance_entry_reqd IN VARCHAR2,
186 x_unit_discntd IN VARCHAR2,
187 x_hrs_exist IN VARCHAR2,
188 x_over_claimable_hrs IN VARCHAR2,
189 x_mode IN VARCHAR2 DEFAULT 'R'
190 ) AS
191 /*
192 || Created By : cdcruz
193 || Created On : 25-JUL-2001
194 || Purpose : Handles the INSERT DML logic for the table.
195 || Known limitations, enhancements or remarks :
196 || Change History :
197 || Who When What
198 || (reverse chronological order - newest change first)
199 */
200 CURSOR c IS
201 SELECT rowid
202 FROM igs_as_attend_config
203 WHERE eac_id = x_eac_id;
204
205 x_last_update_date DATE;
206 x_last_updated_by NUMBER;
207 x_last_update_login NUMBER;
208
209 BEGIN
210
211 x_last_update_date := SYSDATE;
212 IF (x_mode = 'I') THEN
213 x_last_updated_by := 1;
214 x_last_update_login := 0;
215 ELSIF (x_mode = 'R') THEN
216 x_last_updated_by := fnd_global.user_id;
217 IF (x_last_updated_by IS NULL) THEN
218 x_last_updated_by := -1;
219 END IF;
220 x_last_update_login := fnd_global.login_id;
221 IF (x_last_update_login IS NULL) THEN
222 x_last_update_login := -1;
223 END IF;
224 ELSE
225 fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
226 igs_ge_msg_stack.add;
227 app_exception.raise_exception;
228 END IF;
229
230 SELECT igs_as_attend_config_s.NEXTVAL
231 INTO x_eac_id
232 FROM dual;
233
234 before_dml(
235 p_action => 'INSERT',
236 x_rowid => x_rowid,
237 x_eac_id => x_eac_id,
238 x_key_chk_dgt => x_key_chk_dgt,
239 x_attendance_entry_reqd => x_attendance_entry_reqd,
240 x_unit_discntd => x_unit_discntd,
241 x_hrs_exist => x_hrs_exist,
242 x_over_claimable_hrs => x_over_claimable_hrs,
243 x_creation_date => x_last_update_date,
244 x_created_by => x_last_updated_by,
245 x_last_update_date => x_last_update_date,
246 x_last_updated_by => x_last_updated_by,
247 x_last_update_login => x_last_update_login
248 );
249
250 INSERT INTO igs_as_attend_config (
251 eac_id,
252 key_chk_dgt,
253 attendance_entry_reqd,
254 unit_discntd,
255 hrs_exist,
256 over_claimable_hrs,
257 creation_date,
258 created_by,
259 last_update_date,
260 last_updated_by,
261 last_update_login
262 ) VALUES (
263 new_references.eac_id,
264 new_references.key_chk_dgt,
265 new_references.attendance_entry_reqd,
266 new_references.unit_discntd,
267 new_references.hrs_exist,
268 new_references.over_claimable_hrs,
269 x_last_update_date,
270 x_last_updated_by,
271 x_last_update_date,
272 x_last_updated_by,
273 x_last_update_login
274 );
275
276 OPEN c;
277 FETCH c INTO x_rowid;
278 IF (c%NOTFOUND) THEN
279 CLOSE c;
280 RAISE NO_DATA_FOUND;
281 END IF;
282 CLOSE c;
283
284 END insert_row;
285
286
287 PROCEDURE lock_row (
288 x_rowid IN VARCHAR2,
289 x_eac_id IN NUMBER,
290 x_key_chk_dgt IN VARCHAR2,
291 x_attendance_entry_reqd IN VARCHAR2,
292 x_unit_discntd IN VARCHAR2,
293 x_hrs_exist IN VARCHAR2,
294 x_over_claimable_hrs IN VARCHAR2
295 ) AS
296 /*
297 || Created By : cdcruz
298 || Created On : 25-JUL-2001
299 || Purpose : Handles the LOCK mechanism for the table.
300 || Known limitations, enhancements or remarks :
301 || Change History :
302 || Who When What
303 || (reverse chronological order - newest change first)
304 */
305 CURSOR c1 IS
306 SELECT
307 key_chk_dgt,
308 attendance_entry_reqd,
309 unit_discntd,
310 hrs_exist,
311 over_claimable_hrs
312 FROM igs_as_attend_config
313 WHERE rowid = x_rowid
314 FOR UPDATE NOWAIT;
315
316 tlinfo c1%ROWTYPE;
317
318 BEGIN
319
320 OPEN c1;
321 FETCH c1 INTO tlinfo;
322 IF (c1%notfound) THEN
323 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
324 igs_ge_msg_stack.add;
325 CLOSE c1;
326 app_exception.raise_exception;
327 RETURN;
328 END IF;
329 CLOSE c1;
330
331 IF (
332 (tlinfo.key_chk_dgt = x_key_chk_dgt)
333 AND (tlinfo.attendance_entry_reqd = x_attendance_entry_reqd)
334 AND (tlinfo.unit_discntd = x_unit_discntd)
335 AND (tlinfo.hrs_exist = x_hrs_exist)
336 AND (tlinfo.over_claimable_hrs = x_over_claimable_hrs)
337 ) THEN
338 NULL;
339 ELSE
340 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
341 igs_ge_msg_stack.add;
342 app_exception.raise_exception;
343 END IF;
344
345 RETURN;
346
347 END lock_row;
348
349
350 PROCEDURE update_row (
351 x_rowid IN VARCHAR2,
352 x_eac_id IN NUMBER,
353 x_key_chk_dgt IN VARCHAR2,
354 x_attendance_entry_reqd IN VARCHAR2,
355 x_unit_discntd IN VARCHAR2,
356 x_hrs_exist IN VARCHAR2,
357 x_over_claimable_hrs IN VARCHAR2,
358 x_mode IN VARCHAR2 DEFAULT 'R'
359 ) AS
360 /*
361 || Created By : cdcruz
362 || Created On : 25-JUL-2001
363 || Purpose : Handles the UPDATE DML logic for the table.
364 || Known limitations, enhancements or remarks :
365 || Change History :
366 || Who When What
367 || (reverse chronological order - newest change first)
368 */
369 x_last_update_date DATE ;
370 x_last_updated_by NUMBER;
371 x_last_update_login NUMBER;
372
373 BEGIN
374
375 x_last_update_date := SYSDATE;
376 IF (X_MODE = 'I') THEN
377 x_last_updated_by := 1;
378 x_last_update_login := 0;
379 ELSIF (x_mode = 'R') THEN
380 x_last_updated_by := fnd_global.user_id;
381 IF x_last_updated_by IS NULL THEN
382 x_last_updated_by := -1;
383 END IF;
384 x_last_update_login := fnd_global.login_id;
385 IF (x_last_update_login IS NULL) THEN
386 x_last_update_login := -1;
387 END IF;
388 ELSE
389 fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
390 igs_ge_msg_stack.add;
391 app_exception.raise_exception;
392 END IF;
393
394 before_dml(
395 p_action => 'UPDATE',
396 x_rowid => x_rowid,
397 x_eac_id => x_eac_id,
398 x_key_chk_dgt => x_key_chk_dgt,
399 x_attendance_entry_reqd => x_attendance_entry_reqd,
400 x_unit_discntd => x_unit_discntd,
401 x_hrs_exist => x_hrs_exist,
402 x_over_claimable_hrs => x_over_claimable_hrs,
403 x_creation_date => x_last_update_date,
404 x_created_by => x_last_updated_by,
405 x_last_update_date => x_last_update_date,
406 x_last_updated_by => x_last_updated_by,
407 x_last_update_login => x_last_update_login
408 );
409
413 attendance_entry_reqd = new_references.attendance_entry_reqd,
410 UPDATE igs_as_attend_config
411 SET
412 key_chk_dgt = new_references.key_chk_dgt,
414 unit_discntd = new_references.unit_discntd,
415 hrs_exist = new_references.hrs_exist,
416 over_claimable_hrs = new_references.over_claimable_hrs,
417 last_update_date = x_last_update_date,
418 last_updated_by = x_last_updated_by,
419 last_update_login = x_last_update_login
420 WHERE rowid = x_rowid;
421
422 IF (SQL%NOTFOUND) THEN
423 RAISE NO_DATA_FOUND;
424 END IF;
425
426 END update_row;
427
428
429 PROCEDURE add_row (
430 x_rowid IN OUT NOCOPY VARCHAR2,
431 x_eac_id IN OUT NOCOPY NUMBER,
432 x_key_chk_dgt IN VARCHAR2,
433 x_attendance_entry_reqd IN VARCHAR2,
437 x_mode IN VARCHAR2 DEFAULT 'R'
438 ) AS
439 /*
440 || Created By : cdcruz
441 || Created On : 25-JUL-2001
442 || Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
443 || Known limitations, enhancements or remarks :
444 || Change History :
445 || Who When What
446 || (reverse chronological order - newest change first)
447 */
448 CURSOR c1 IS
449 SELECT rowid
450 FROM igs_as_attend_config
451 WHERE eac_id = x_eac_id;
452
453 BEGIN
454
455 OPEN c1;
456 FETCH c1 INTO x_rowid;
457 IF (c1%NOTFOUND) THEN
458 CLOSE c1;
459
460 insert_row (
461 x_rowid,
462 x_eac_id,
463 x_key_chk_dgt,
464 x_attendance_entry_reqd,
465 x_unit_discntd,
466 x_hrs_exist,
467 x_over_claimable_hrs,
468 x_mode
469 );
470 RETURN;
471 END IF;
472 CLOSE c1;
473
474 update_row (
475 x_rowid,
476 x_eac_id,
477 x_key_chk_dgt,
478 x_attendance_entry_reqd,
479 x_unit_discntd,
480 x_hrs_exist,
481 x_over_claimable_hrs,
482 x_mode
483 );
484
485 END add_row;
486
487
488 PROCEDURE delete_row (
489 x_rowid IN VARCHAR2
490 ) AS
491 /*
492 || Created By : cdcruz
493 || Created On : 25-JUL-2001
494 || Purpose : Handles the DELETE DML logic for the table.
495 || Known limitations, enhancements or remarks :
496 || Change History :
497 || Who When What
498 || (reverse chronological order - newest change first)
499 */
500 BEGIN
501
502 before_dml (
503 p_action => 'DELETE',
504 x_rowid => x_rowid
505 );
506
507 DELETE FROM igs_as_attend_config
508 WHERE rowid = x_rowid;
509
510 IF (SQL%NOTFOUND) THEN
511 RAISE NO_DATA_FOUND;
512 END IF;
513
514 END delete_row;
515
516
517 END igs_as_attend_config_pkg;
436 x_over_claimable_hrs IN VARCHAR2,
434 x_unit_discntd IN VARCHAR2,
435 x_hrs_exist IN VARCHAR2,