DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_PS_USEC_SP_FEES_PKG

Source


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