[Home] [Help]
PACKAGE BODY: APPS.IGF_AW_FRLOG_PKG
Source
1 PACKAGE BODY igf_aw_frlog_pkg AS
2 /* $Header: IGFWI29B.pls 115.4 2002/11/28 14:40:32 nsidana ship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references igf_aw_frlog_all%ROWTYPE;
6 new_references igf_aw_frlog_all%ROWTYPE;
7
8 PROCEDURE set_column_values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_frlog_id IN NUMBER DEFAULT NULL,
12 x_frol_id IN NUMBER DEFAULT NULL,
13 x_fund_id IN NUMBER DEFAULT NULL,
14 x_rollover_fund_id IN NUMBER 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 || Created By : prchandr
23 || Created On : 01-JUN-2001
24 || Purpose : Initialises the Old and New references for the columns of the table.
25 || Known limitations, enhancements or remarks :
26 || Change History :
27 || Who When What
28 || (reverse chronological order - newest change first)
29 */
30
31 CURSOR cur_old_ref_values IS
32 SELECT *
33 FROM IGF_AW_FRLOG_ALL
34 WHERE rowid = x_rowid;
35
36 BEGIN
37
38 l_rowid := x_rowid;
39
40 -- Code for setting the Old and New Reference Values.
41 -- Populate Old Values.
42 OPEN cur_old_ref_values;
43 FETCH cur_old_ref_values INTO old_references;
44 IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
45 CLOSE cur_old_ref_values;
46 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
47 igs_ge_msg_stack.add;
48 app_exception.raise_exception;
49 RETURN;
50 END IF;
51 CLOSE cur_old_ref_values;
52
53 -- Populate New Values.
54 new_references.frlog_id := x_frlog_id;
55 new_references.frol_id := x_frol_id;
56 new_references.fund_id := x_fund_id;
57 new_references.rollover_fund_id := x_rollover_fund_id;
58
59 IF (p_action = 'UPDATE') THEN
60 new_references.creation_date := old_references.creation_date;
61 new_references.created_by := old_references.created_by;
62 ELSE
63 new_references.creation_date := x_creation_date;
64 new_references.created_by := x_created_by;
65 END IF;
66
67 new_references.last_update_date := x_last_update_date;
68 new_references.last_updated_by := x_last_updated_by;
69 new_references.last_update_login := x_last_update_login;
70
71 END set_column_values;
72
73
74 PROCEDURE check_parent_existance AS
75 /*
76 || Created By : prchandr
77 || Created On : 01-JUN-2001
78 || Purpose : Checks for the existance of Parent records.
79 || Known limitations, enhancements or remarks :
80 || Change History :
81 || Who When What
82 || (reverse chronological order - newest change first)
83 */
84 BEGIN
85
86 IF (((old_references.frol_id = new_references.frol_id)) OR
87 ((new_references.frol_id IS NULL))) THEN
88 NULL;
89 ELSIF NOT igf_aw_fund_rollover_pkg.get_pk_for_validation (
90 new_references.frol_id
91 ) THEN
92 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
93 igs_ge_msg_stack.add;
94 app_exception.raise_exception;
95 END IF;
96
97 IF (((old_references.fund_id = new_references.fund_id)) OR
98 ((new_references.fund_id IS NULL))) THEN
99 NULL;
100 ELSIF NOT igf_aw_fund_mast_pkg.get_pk_for_validation (
101 new_references.fund_id
102 ) THEN
103 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
104 igs_ge_msg_stack.add;
105 app_exception.raise_exception;
106 END IF;
107
108 END check_parent_existance;
109
110
111 FUNCTION get_pk_for_validation (
112 x_frlog_id IN NUMBER
113 ) RETURN BOOLEAN AS
114 /*
115 || Created By : prchandr
116 || Created On : 01-JUN-2001
117 || Purpose : Validates the Primary Key of the table.
118 || Known limitations, enhancements or remarks :
119 || Change History :
120 || Who When What
121 || (reverse chronological order - newest change first)
122 */
123 CURSOR cur_rowid IS
124 SELECT rowid
125 FROM igf_aw_frlog_all
126 WHERE frlog_id = x_frlog_id
127 FOR UPDATE NOWAIT;
128
129 lv_rowid cur_rowid%RowType;
130
131 BEGIN
132
133 OPEN cur_rowid;
134 FETCH cur_rowid INTO lv_rowid;
135 IF (cur_rowid%FOUND) THEN
136 CLOSE cur_rowid;
137 RETURN(TRUE);
138 ELSE
139 CLOSE cur_rowid;
140 RETURN(FALSE);
141 END IF;
142
143 END get_pk_for_validation;
144
145
146 PROCEDURE get_fk_igf_aw_fund_rollover (
147 x_frol_id IN NUMBER
148 ) AS
149 /*
150 || Created By : prchandr
151 || Created On : 01-JUN-2001
152 || Purpose : Validates the Foreign Keys for the table.
153 || Known limitations, enhancements or remarks :
154 || Change History :
155 || Who When What
156 || (reverse chronological order - newest change first)
157 */
158 CURSOR cur_rowid IS
159 SELECT rowid
160 FROM igf_aw_frlog_all
161 WHERE ((frol_id = x_frol_id));
162
163 lv_rowid cur_rowid%RowType;
164
165 BEGIN
166
167 OPEN cur_rowid;
168 FETCH cur_rowid INTO lv_rowid;
169 IF (cur_rowid%FOUND) THEN
170 CLOSE cur_rowid;
171 fnd_message.set_name ('IGF', 'IGF_AW_FRLOG_FROL_FK');
172 igs_ge_msg_stack.add;
173 app_exception.raise_exception;
174 RETURN;
175 END IF;
176 CLOSE cur_rowid;
177
178 END get_fk_igf_aw_fund_rollover;
179
180
181 PROCEDURE get_fk_igf_aw_fund_mast (
182 x_fund_id IN NUMBER
183 ) AS
184 /*
185 || Created By : prchandr
186 || Created On : 01-JUN-2001
187 || Purpose : Validates the Foreign Keys for the table.
188 || Known limitations, enhancements or remarks :
189 || Change History :
190 || Who When What
191 || (reverse chronological order - newest change first)
192 */
193 CURSOR cur_rowid IS
194 SELECT rowid
195 FROM igf_aw_frlog_all
196 WHERE ((fund_id = x_fund_id));
197
198 lv_rowid cur_rowid%RowType;
199
200 BEGIN
201
202 OPEN cur_rowid;
203 FETCH cur_rowid INTO lv_rowid;
204 IF (cur_rowid%FOUND) THEN
205 CLOSE cur_rowid;
206 fnd_message.set_name ('IGF', 'IGF_AW_FRLOG_FMAST_FK');
207 igs_ge_msg_stack.add;
208 app_exception.raise_exception;
209 RETURN;
210 END IF;
211 CLOSE cur_rowid;
212
213 END get_fk_igf_aw_fund_mast;
214
215
216 PROCEDURE before_dml (
217 p_action IN VARCHAR2,
218 x_rowid IN VARCHAR2 DEFAULT NULL,
219 x_frlog_id IN NUMBER DEFAULT NULL,
220 x_frol_id IN NUMBER DEFAULT NULL,
221 x_fund_id IN NUMBER DEFAULT NULL,
222 x_rollover_fund_id IN NUMBER DEFAULT NULL,
223 x_creation_date IN DATE DEFAULT NULL,
224 x_created_by IN NUMBER DEFAULT NULL,
225 x_last_update_date IN DATE DEFAULT NULL,
226 x_last_updated_by IN NUMBER DEFAULT NULL,
227 x_last_update_login IN NUMBER DEFAULT NULL
228 ) AS
229 /*
230 || Created By : prchandr
231 || Created On : 01-JUN-2001
232 || Purpose : Initialises the columns, Checks Constraints, Calls the
233 || Trigger Handlers for the table, before any DML operation.
234 || Known limitations, enhancements or remarks :
235 || Change History :
236 || Who When What
237 || (reverse chronological order - newest change first)
238 */
239 BEGIN
240
241 set_column_values (
242 p_action,
243 x_rowid,
244 x_frlog_id,
245 x_frol_id,
246 x_fund_id,
247 x_rollover_fund_id,
248 x_creation_date,
249 x_created_by,
250 x_last_update_date,
251 x_last_updated_by,
252 x_last_update_login
253 );
254
255 IF (p_action = 'INSERT') THEN
256 -- Call all the procedures related to Before Insert.
257 IF ( get_pk_for_validation(
258 new_references.frlog_id
259 )
260 ) THEN
261 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
262 igs_ge_msg_stack.add;
263 app_exception.raise_exception;
264 END IF;
265 check_parent_existance;
266 ELSIF (p_action = 'UPDATE') THEN
267 -- Call all the procedures related to Before Update.
268 check_parent_existance;
269 ELSIF (p_action = 'VALIDATE_INSERT') THEN
270 -- Call all the procedures related to Before Insert.
271 IF ( get_pk_for_validation (
272 new_references.frlog_id
273 )
274 ) THEN
275 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
276 igs_ge_msg_stack.add;
277 app_exception.raise_exception;
278 END IF;
279 END IF;
280
281 END before_dml;
282
283
284 PROCEDURE insert_row (
285 x_rowid IN OUT NOCOPY VARCHAR2,
286 x_frlog_id IN OUT NOCOPY NUMBER,
287 x_frol_id IN NUMBER,
288 x_fund_id IN NUMBER,
289 x_rollover_fund_id IN NUMBER,
290 x_mode IN VARCHAR2 DEFAULT 'R'
291 ) AS
292 /*
293 || Created By : prchandr
294 || Created On : 01-JUN-2001
295 || Purpose : Handles the INSERT DML logic for the table.
296 || Known limitations, enhancements or remarks :
297 || Change History :
298 || Who When What
299 || (reverse chronological order - newest change first)
300 */
301 CURSOR c IS
302 SELECT rowid
303 FROM igf_aw_frlog_all
304 WHERE frlog_id = x_frlog_id;
305
306 x_last_update_date DATE;
307 x_last_updated_by NUMBER;
308 x_last_update_login NUMBER;
309 x_request_id NUMBER;
310 x_program_id NUMBER;
311 x_program_application_id NUMBER;
312 x_program_update_date DATE;
313
314 BEGIN
315
316 x_last_update_date := SYSDATE;
317 IF (x_mode = 'I') THEN
318 x_last_updated_by := 1;
319 x_last_update_login := 0;
320 ELSIF (x_mode = 'R') THEN
321 x_last_updated_by := fnd_global.user_id;
322 IF (x_last_updated_by IS NULL) THEN
323 x_last_updated_by := -1;
324 END IF;
325 x_last_update_login := fnd_global.login_id;
326 IF (x_last_update_login IS NULL) THEN
327 x_last_update_login := -1;
328 END IF;
329 x_request_id := fnd_global.conc_request_id;
330 x_program_id := fnd_global.conc_program_id;
331 x_program_application_id := fnd_global.prog_appl_id;
332
333 IF (x_request_id = -1) THEN
334 x_request_id := NULL;
335 x_program_id := NULL;
336 x_program_application_id := NULL;
337 x_program_update_date := NULL;
338 ELSE
339 x_program_update_date := SYSDATE;
340 END IF;
341 ELSE
342 fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
343 igs_ge_msg_stack.add;
344 app_exception.raise_exception;
345 END IF;
346
347 SELECT igf_aw_frlog_s.NEXTVAL
348 INTO x_frlog_id
349 FROM dual;
350
351 new_references.org_id := igs_ge_gen_003.get_org_id;
352
353 before_dml(
354 p_action => 'INSERT',
355 x_rowid => x_rowid,
356 x_frlog_id => x_frlog_id,
357 x_frol_id => x_frol_id,
358 x_fund_id => x_fund_id,
359 x_rollover_fund_id => x_rollover_fund_id,
360 x_creation_date => x_last_update_date,
361 x_created_by => x_last_updated_by,
362 x_last_update_date => x_last_update_date,
363 x_last_updated_by => x_last_updated_by,
364 x_last_update_login => x_last_update_login
365 );
366
367 INSERT INTO igf_aw_frlog_all (
368 frlog_id,
369 frol_id,
370 fund_id,
371 rollover_fund_id,
372 org_id,
373 creation_date,
374 created_by,
375 last_update_date,
376 last_updated_by,
377 last_update_login,
378 request_id,
379 program_id,
380 program_application_id,
381 program_update_date
382 ) VALUES (
383 new_references.frlog_id,
384 new_references.frol_id,
385 new_references.fund_id,
386 new_references.rollover_fund_id,
387 new_references.org_id,
388 x_last_update_date,
389 x_last_updated_by,
390 x_last_update_date,
391 x_last_updated_by,
395 x_program_application_id,
392 x_last_update_login ,
393 x_request_id,
394 x_program_id,
396 x_program_update_date
397 );
398
399 OPEN c;
400 FETCH c INTO x_rowid;
401 IF (c%NOTFOUND) THEN
402 CLOSE c;
403 RAISE NO_DATA_FOUND;
404 END IF;
405 CLOSE c;
406
407 END insert_row;
408
409
410 PROCEDURE lock_row (
411 x_rowid IN VARCHAR2,
412 x_frlog_id IN NUMBER,
413 x_frol_id IN NUMBER,
414 x_fund_id IN NUMBER,
415 x_rollover_fund_id IN NUMBER
416 ) AS
417 /*
418 || Created By : prchandr
419 || Created On : 01-JUN-2001
420 || Purpose : Handles the LOCK mechanism for the table.
421 || Known limitations, enhancements or remarks :
422 || Change History :
423 || Who When What
424 || (reverse chronological order - newest change first)
425 */
426 CURSOR c1 IS
427 SELECT
428 frol_id,
429 fund_id,
430 rollover_fund_id
431 FROM igf_aw_frlog_all
432 WHERE rowid = x_rowid
433 FOR UPDATE NOWAIT;
434
435 tlinfo c1%ROWTYPE;
436
437 BEGIN
438
439 OPEN c1;
440 FETCH c1 INTO tlinfo;
441 IF (c1%notfound) THEN
442 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
443 igs_ge_msg_stack.add;
444 CLOSE c1;
445 app_exception.raise_exception;
446 RETURN;
447 END IF;
448 CLOSE c1;
449
450 IF (
451 (tlinfo.frol_id = x_frol_id)
452 AND (tlinfo.fund_id = x_fund_id)
453 AND (tlinfo.rollover_fund_id = x_rollover_fund_id)
454 ) THEN
455 NULL;
456 ELSE
457 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
458 igs_ge_msg_stack.add;
459 app_exception.raise_exception;
460 END IF;
461
462 RETURN;
463
464 END lock_row;
465
466
467 PROCEDURE update_row (
468 x_rowid IN VARCHAR2,
469 x_frlog_id IN NUMBER,
470 x_frol_id IN NUMBER,
471 x_fund_id IN NUMBER,
472 x_rollover_fund_id IN NUMBER,
473 x_mode IN VARCHAR2 DEFAULT 'R'
474 ) AS
475 /*
476 || Created By : prchandr
477 || Created On : 01-JUN-2001
478 || Purpose : Handles the UPDATE DML logic for the table.
479 || Known limitations, enhancements or remarks :
480 || Change History :
481 || Who When What
482 || (reverse chronological order - newest change first)
483 */
484 x_last_update_date DATE ;
485 x_last_updated_by NUMBER;
486 x_last_update_login NUMBER;
487 x_request_id NUMBER;
488 x_program_id NUMBER;
489 x_program_application_id NUMBER;
490 x_program_update_date DATE;
491
492 BEGIN
493
494 x_last_update_date := SYSDATE;
495 IF (X_MODE = 'I') THEN
496 x_last_updated_by := 1;
497 x_last_update_login := 0;
498 ELSIF (x_mode = 'R') THEN
499 x_last_updated_by := fnd_global.user_id;
500 IF x_last_updated_by IS NULL THEN
501 x_last_updated_by := -1;
502 END IF;
503 x_last_update_login := fnd_global.login_id;
504 IF (x_last_update_login IS NULL) THEN
505 x_last_update_login := -1;
506 END IF;
507 ELSE
508 fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
509 igs_ge_msg_stack.add;
510 app_exception.raise_exception;
511 END IF;
512
513 before_dml(
514 p_action => 'UPDATE',
515 x_rowid => x_rowid,
516 x_frlog_id => x_frlog_id,
517 x_frol_id => x_frol_id,
518 x_fund_id => x_fund_id,
519 x_rollover_fund_id => x_rollover_fund_id,
520 x_creation_date => x_last_update_date,
521 x_created_by => x_last_updated_by,
522 x_last_update_date => x_last_update_date,
523 x_last_updated_by => x_last_updated_by,
524 x_last_update_login => x_last_update_login
525 );
526
527 IF (x_mode = 'R') THEN
528 x_request_id := fnd_global.conc_request_id;
529 x_program_id := fnd_global.conc_program_id;
530 x_program_application_id := fnd_global.prog_appl_id;
531 IF (x_request_id = -1) THEN
532 x_request_id := old_references.request_id;
533 x_program_id := old_references.program_id;
534 x_program_application_id := old_references.program_application_id;
535 x_program_update_date := old_references.program_update_date;
536 ELSE
537 x_program_update_date := SYSDATE;
538 END IF;
539 END IF;
540
541 UPDATE igf_aw_frlog_all
542 SET
543 frol_id = new_references.frol_id,
544 fund_id = new_references.fund_id,
545 rollover_fund_id = new_references.rollover_fund_id,
546 last_update_date = x_last_update_date,
547 last_updated_by = x_last_updated_by,
548 last_update_login = x_last_update_login ,
549 request_id = x_request_id,
550 program_id = x_program_id,
551 program_application_id = x_program_application_id,
552 program_update_date = x_program_update_date
553 WHERE rowid = x_rowid;
554
555 IF (SQL%NOTFOUND) THEN
556 RAISE NO_DATA_FOUND;
557 END IF;
558
559 END update_row;
560
561
562 PROCEDURE add_row (
563 x_rowid IN OUT NOCOPY VARCHAR2,
567 x_rollover_fund_id IN NUMBER,
564 x_frlog_id IN OUT NOCOPY NUMBER,
565 x_frol_id IN NUMBER,
566 x_fund_id IN NUMBER,
568 x_mode IN VARCHAR2 DEFAULT 'R'
569 ) AS
570 /*
571 || Created By : prchandr
572 || Created On : 01-JUN-2001
573 || Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
574 || Known limitations, enhancements or remarks :
575 || Change History :
576 || Who When What
577 || (reverse chronological order - newest change first)
578 */
579 CURSOR c1 IS
580 SELECT rowid
581 FROM igf_aw_frlog_all
582 WHERE frlog_id = x_frlog_id;
583
584 BEGIN
585
586 OPEN c1;
587 FETCH c1 INTO x_rowid;
588 IF (c1%NOTFOUND) THEN
589 CLOSE c1;
590
591 insert_row (
592 x_rowid,
593 x_frlog_id,
594 x_frol_id,
595 x_fund_id,
596 x_rollover_fund_id,
597 x_mode
598 );
599 RETURN;
600 END IF;
601 CLOSE c1;
602
603 update_row (
604 x_rowid,
605 x_frlog_id,
606 x_frol_id,
607 x_fund_id,
608 x_rollover_fund_id,
609 x_mode
610 );
611
612 END add_row;
613
614
615 PROCEDURE delete_row (
616 x_rowid IN VARCHAR2
617 ) AS
618 /*
619 || Created By : prchandr
620 || Created On : 01-JUN-2001
621 || Purpose : Handles the DELETE DML logic for the table.
622 || Known limitations, enhancements or remarks :
623 || Change History :
624 || Who When What
625 || (reverse chronological order - newest change first)
626 */
627 BEGIN
628
629 before_dml (
630 p_action => 'DELETE',
631 x_rowid => x_rowid
632 );
633
634 DELETE FROM igf_aw_frlog_all
635 WHERE rowid = x_rowid;
636
637 IF (SQL%NOTFOUND) THEN
638 RAISE NO_DATA_FOUND;
639 END IF;
640
641 END delete_row;
642
643
644 END igf_aw_frlog_pkg;