DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGF_AW_COA_GROUP_PKG

Source


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