DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGF_SL_AWD_DISB_LOC_PKG

Source


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