DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGF_AW_COA_LD_PKG

Source


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