DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGF_SL_DISB_LOC_HISTORY_PKG

Source


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