DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGF_SL_SERVICER_BRC_PKG

Source


1 PACKAGE BODY igf_sl_servicer_brc_pkg AS
2 /* $Header: IGFLI05B.pls 115.7 2003/09/10 05:13:39 veramach ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references igf_sl_servicer_brc%ROWTYPE;
6   new_references igf_sl_servicer_brc%ROWTYPE;
7 
8   PROCEDURE set_column_values (
9     p_action                            IN     VARCHAR2,
10     x_rowid                             IN     VARCHAR2    DEFAULT NULL,
11     x_servicer_id                       IN     VARCHAR2    DEFAULT NULL,
12     x_srvc_non_ed_brc_id                IN     VARCHAR2    DEFAULT NULL,
13     x_description                       IN     VARCHAR2    DEFAULT NULL,
14     x_party_id                          IN     NUMBER      DEFAULT NULL,
15     x_enabled                           IN     VARCHAR2    DEFAULT NULL,
16     x_creation_date                     IN     DATE        DEFAULT NULL,
17     x_created_by                        IN     NUMBER      DEFAULT NULL,
18     x_last_update_date                  IN     DATE        DEFAULT NULL,
19     x_last_updated_by                   IN     NUMBER      DEFAULT NULL,
20     x_last_update_login                 IN     NUMBER      DEFAULT NULL
21   ) AS
22   /*
23   ||  Created By : sjadhav
24   ||  Created On : 07-NOV-2000
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     IGF_SL_SERVICER_BRC
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.servicer_id                       := x_servicer_id;
56     new_references.srvc_non_ed_brc_id                := x_srvc_non_ed_brc_id;
57     new_references.description                       := x_description;
58     new_references.party_id                          := x_party_id;
59     new_references.enabled                           := x_enabled;
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 
76   PROCEDURE check_parent_existance AS
77   /*
78   ||  Created By : sjadhav
79   ||  Created On : 07-NOV-2000
80   ||  Purpose : Checks for the existance of Parent records.
81   ||  Known limitations, enhancements or remarks :
82   ||  Change History :
83   ||  Who             When            What
84   ||  (reverse chronological order - newest change first)
85   */
86   BEGIN
87 
88     IF (((old_references.servicer_id = new_references.servicer_id)) OR
89         ((new_references.servicer_id IS NULL))) THEN
90       NULL;
91     ELSIF NOT igf_sl_servicer_pkg.get_pk_for_validation (
92                 new_references.servicer_id
93               ) THEN
94       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
95       igs_ge_msg_stack.add;
96       app_exception.raise_exception;
97     END IF;
98 
99   END check_parent_existance;
100 
101   PROCEDURE check_uniqueness AS
102  ------------------------------------------------------------------
103   --Created by  : veramach, Oracle India
104   --Date created: 3-SEP-2003
105   --
106   --Purpose:
107   --   Check uniquness of all unique key fields
108   --
109   --Known limitations/enhancements and/or remarks:
110   --
111   --Change History:
112   --Who         When            What
113   -------------------------------------------------------------------
114 
115   BEGIN
116 
117       IF ( get_uk_for_validation (
118            new_references.party_id
119          )
120        ) THEN
121       fnd_message.set_name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
122       igs_ge_msg_stack.add;
123       app_exception.raise_exception;
124     END IF;
125 
126   END check_uniqueness;
127 
128   FUNCTION get_pk_for_validation (
129     x_servicer_id                       IN     VARCHAR2,
130     x_srvc_non_ed_brc_id                IN     VARCHAR2
131   ) RETURN BOOLEAN AS
132   /*
133   ||  Created By : sjadhav
134   ||  Created On : 07-NOV-2000
135   ||  Purpose : Validates the Primary Key of the table.
136   ||  Known limitations, enhancements or remarks :
137   ||  Change History :
138   ||  Who             When            What
139   ||  (reverse chronological order - newest change first)
140   */
141     CURSOR cur_rowid IS
142       SELECT   rowid
143       FROM     igf_sl_servicer_brc
144       WHERE    servicer_id = x_servicer_id
145       AND      srvc_non_ed_brc_id = x_srvc_non_ed_brc_id
146       FOR UPDATE NOWAIT;
147 
148     lv_rowid cur_rowid%RowType;
149 
150   BEGIN
151 
152     OPEN cur_rowid;
153     FETCH cur_rowid INTO lv_rowid;
154     IF (cur_rowid%FOUND) THEN
155       CLOSE cur_rowid;
156       RETURN(TRUE);
157     ELSE
158       CLOSE cur_rowid;
159       RETURN(FALSE);
160     END IF;
161 
162   END get_pk_for_validation;
163 
164 
165   PROCEDURE get_fk_igf_sl_servicer (
166     x_servicer_id                       IN     VARCHAR2
167   ) AS
168   /*
169   ||  Created By : sjadhav
170   ||  Created On : 07-NOV-2000
171   ||  Purpose : Validates the Foreign Keys for the table.
172   ||  Known limitations, enhancements or remarks :
173   ||  Change History :
174   ||  Who             When            What
175   ||  (reverse chronological order - newest change first)
176   */
177     CURSOR cur_rowid IS
178       SELECT   rowid
179       FROM     igf_sl_servicer_brc
180       WHERE   ((servicer_id = x_servicer_id));
181 
182     lv_rowid cur_rowid%RowType;
183 
184   BEGIN
185 
186     OPEN cur_rowid;
187     FETCH cur_rowid INTO lv_rowid;
188     IF (cur_rowid%FOUND) THEN
189       CLOSE cur_rowid;
190       fnd_message.set_name ('IGF', 'IGF_SL_SRVB_SRVC_FK');
191       igs_ge_msg_stack.add;
192       app_exception.raise_exception;
193       RETURN;
194     END IF;
195     CLOSE cur_rowid;
196 
197   END get_fk_igf_sl_servicer;
198 
199   FUNCTION get_uk_for_validation (
200     x_party_id                           IN     NUMBER
201   ) RETURN BOOLEAN AS
202   /*
203   ||  Created By : veramach
204   ||  Created On : 03-SEP-2003
205   ||  Purpose : Validates the Unique of the table.
206   ||  Known limitations, enhancements or remarks :
207   ||  Change History :
208   ||  Who             When            What
209   ||  (reverse chronological order - newest change first)
210   */
211 
212     CURSOR cur_rowid IS
213       SELECT   rowid
214       FROM     igf_sl_servicer_brc
215       WHERE    party_id = x_party_id
216       AND      ((l_rowid IS NULL) OR (rowid <> l_rowid));
217 
218     lv_rowid cur_rowid%RowType;
219 
220   BEGIN
221 
222     OPEN cur_rowid;
223     FETCH cur_rowid INTO lv_rowid;
224     IF (cur_rowid%FOUND) THEN
225       CLOSE cur_rowid;
226       RETURN (TRUE);
227     ELSE
228        CLOSE cur_rowid;
229        RETURN(FALSE);
230     END IF;
231   END get_uk_for_validation;
232 
233 
234   PROCEDURE before_dml (
235     p_action                            IN     VARCHAR2,
236     x_rowid                             IN     VARCHAR2    DEFAULT NULL,
237     x_servicer_id                       IN     VARCHAR2    DEFAULT NULL,
238     x_srvc_non_ed_brc_id                IN     VARCHAR2    DEFAULT NULL,
239     x_description                       IN     VARCHAR2    DEFAULT NULL,
240     x_party_id                          IN     NUMBER      DEFAULT NULL,
241     x_enabled                           IN     VARCHAR2    DEFAULT NULL,
242     x_creation_date                     IN     DATE        DEFAULT NULL,
243     x_created_by                        IN     NUMBER      DEFAULT NULL,
244     x_last_update_date                  IN     DATE        DEFAULT NULL,
245     x_last_updated_by                   IN     NUMBER      DEFAULT NULL,
246     x_last_update_login                 IN     NUMBER      DEFAULT NULL
247   ) AS
248   /*
249   ||  Created By : sjadhav
250   ||  Created On : 07-NOV-2000
251   ||  Purpose : Initialises the columns, Checks Constraints, Calls the
252   ||            Trigger Handlers for the table, before any DML operation.
253   ||  Known limitations, enhancements or remarks :
254   ||  Change History :
255   ||  Who             When            What
256   ||  (reverse chronological order - newest change first)
257   */
258   BEGIN
259 
260     set_column_values (
261       p_action,
262       x_rowid,
263       x_servicer_id,
264       x_srvc_non_ed_brc_id,
265       x_description,
266       x_party_id,
267       x_enabled,
268       x_creation_date,
269       x_created_by,
270       x_last_update_date,
271       x_last_updated_by,
272       x_last_update_login
273     );
274 
275     IF (p_action = 'INSERT') THEN
276       -- Call all the procedures related to Before Insert.
277       IF ( get_pk_for_validation(
278              new_references.servicer_id,
279              new_references.srvc_non_ed_brc_id
280            )
281          ) THEN
282         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
283         igs_ge_msg_stack.add;
284         app_exception.raise_exception;
285 	check_uniqueness;
286       END IF;
287       check_parent_existance;
288       check_uniqueness;
289     ELSIF (p_action = 'UPDATE') THEN
290       -- Call all the procedures related to Before Update.
291       check_parent_existance;
292       check_uniqueness;
293     ELSIF (p_action = 'VALIDATE_INSERT') THEN
294       -- Call all the procedures related to Before Insert.
295       IF ( get_pk_for_validation (
296              new_references.servicer_id,
297              new_references.srvc_non_ed_brc_id
298            )
299          ) THEN
300         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
301         igs_ge_msg_stack.add;
302         app_exception.raise_exception;
303       END IF;
304     END IF;
305 
306   END before_dml;
307 
308 
309   PROCEDURE insert_row (
310     x_rowid                             IN OUT NOCOPY VARCHAR2,
311     x_servicer_id                       IN     VARCHAR2,
312     x_srvc_non_ed_brc_id                IN     VARCHAR2,
313     x_description                       IN     VARCHAR2,
314     x_party_id                          IN     NUMBER,
315     x_enabled                           IN     VARCHAR2,
316     x_mode                              IN     VARCHAR2 DEFAULT 'R'
317   ) AS
318   /*
319   ||  Created By : sjadhav
320   ||  Created On : 07-NOV-2000
321   ||  Purpose : Handles the INSERT DML logic for the table.
322   ||  Known limitations, enhancements or remarks :
323   ||  Change History :
324   ||  Who             When            What
325   ||  (reverse chronological order - newest change first)
326   */
327     CURSOR c IS
328       SELECT   rowid
329       FROM     igf_sl_servicer_brc
330       WHERE    servicer_id                       = x_servicer_id
331       AND      srvc_non_ed_brc_id                = x_srvc_non_ed_brc_id;
332 
333     x_last_update_date           DATE;
334     x_last_updated_by            NUMBER;
335     x_last_update_login          NUMBER;
336 
337   BEGIN
338 
339     x_last_update_date := SYSDATE;
340     IF (x_mode = 'I') THEN
341       x_last_updated_by := 1;
342       x_last_update_login := 0;
343     ELSIF (x_mode = 'R') THEN
344       x_last_updated_by := fnd_global.user_id;
345       IF (x_last_updated_by IS NULL) THEN
346         x_last_updated_by := -1;
347       END IF;
348       x_last_update_login := fnd_global.login_id;
349       IF (x_last_update_login IS NULL) THEN
350         x_last_update_login := -1;
351       END IF;
352     ELSE
353       fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
354       igs_ge_msg_stack.add;
355       app_exception.raise_exception;
356     END IF;
357 
358     before_dml(
359       p_action                            => 'INSERT',
360       x_rowid                             => x_rowid,
361       x_servicer_id                       => x_servicer_id,
362       x_srvc_non_ed_brc_id                => x_srvc_non_ed_brc_id,
363       x_description                       => x_description,
364       x_party_id                          => x_party_id,
365       x_enabled                           => x_enabled,
366       x_creation_date                     => x_last_update_date,
367       x_created_by                        => x_last_updated_by,
368       x_last_update_date                  => x_last_update_date,
369       x_last_updated_by                   => x_last_updated_by,
370       x_last_update_login                 => x_last_update_login
371     );
372 
373     INSERT INTO igf_sl_servicer_brc (
374       servicer_id,
375       srvc_non_ed_brc_id,
376       description,
377       party_id,
378       enabled,
379       creation_date,
380       created_by,
381       last_update_date,
382       last_updated_by,
383       last_update_login
384     ) VALUES (
385       new_references.servicer_id,
386       new_references.srvc_non_ed_brc_id,
387       new_references.description,
388       new_references.party_id,
389       new_references.enabled,
390       x_last_update_date,
391       x_last_updated_by,
392       x_last_update_date,
393       x_last_updated_by,
394       x_last_update_login
395     );
396 
397     OPEN c;
398     FETCH c INTO x_rowid;
399     IF (c%NOTFOUND) THEN
400       CLOSE c;
401       RAISE NO_DATA_FOUND;
402     END IF;
403     CLOSE c;
404 
405   END insert_row;
406 
407 
408   PROCEDURE lock_row (
409     x_rowid                             IN     VARCHAR2,
410     x_servicer_id                       IN     VARCHAR2,
411     x_srvc_non_ed_brc_id                IN     VARCHAR2,
412     x_description                       IN     VARCHAR2,
413     x_party_id                          IN     NUMBER,
414     x_enabled                           IN     VARCHAR2
415   ) AS
416   /*
417   ||  Created By : sjadhav
418   ||  Created On : 07-NOV-2000
422   ||  Who             When            What
419   ||  Purpose : Handles the LOCK mechanism for the table.
420   ||  Known limitations, enhancements or remarks :
421   ||  Change History :
423   ||  (reverse chronological order - newest change first)
424   */
425     CURSOR c1 IS
426       SELECT
427         description,
428         party_id,
429         enabled
430       FROM  igf_sl_servicer_brc
431       WHERE rowid = x_rowid
432       FOR UPDATE NOWAIT;
433 
434     tlinfo c1%ROWTYPE;
435 
436   BEGIN
437 
438     OPEN c1;
439     FETCH c1 INTO tlinfo;
440     IF (c1%notfound) THEN
441       fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
442       igs_ge_msg_stack.add;
443       CLOSE c1;
444       app_exception.raise_exception;
445       RETURN;
446     END IF;
447     CLOSE c1;
448 
449     IF (
450         (tlinfo.description = x_description)
451         AND ((tlinfo.party_id = x_party_id) OR ((tlinfo.party_id IS NULL) AND (X_party_id IS NULL)))
452         AND (tlinfo.enabled = x_enabled)
453        ) THEN
454       NULL;
455     ELSE
456       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
457       igs_ge_msg_stack.add;
458       app_exception.raise_exception;
459     END IF;
460 
461     RETURN;
462 
463   END lock_row;
464 
465 
466   PROCEDURE update_row (
467     x_rowid                             IN     VARCHAR2,
468     x_servicer_id                       IN     VARCHAR2,
469     x_srvc_non_ed_brc_id                IN     VARCHAR2,
470     x_description                       IN     VARCHAR2,
471     x_party_id                          IN     NUMBER,
472     x_enabled                           IN     VARCHAR2,
473     x_mode                              IN     VARCHAR2 DEFAULT 'R'
474   ) AS
475   /*
476   ||  Created By : sjadhav
477   ||  Created On : 07-NOV-2000
478   ||  Purpose : Handles the UPDATE DML logic for the table.
479   ||  Known limitations, enhancements or remarks :
480   ||  Change History :
481   ||  Who             When            What
482   ||  (reverse chronological order - newest change first)
483   */
484     x_last_update_date           DATE ;
485     x_last_updated_by            NUMBER;
486     x_last_update_login          NUMBER;
487 
488   BEGIN
489 
490     x_last_update_date := SYSDATE;
491     IF (X_MODE = 'I') THEN
492       x_last_updated_by := 1;
493       x_last_update_login := 0;
494     ELSIF (x_mode = 'R') THEN
495       x_last_updated_by := fnd_global.user_id;
496       IF x_last_updated_by IS NULL THEN
497         x_last_updated_by := -1;
498       END IF;
499       x_last_update_login := fnd_global.login_id;
500       IF (x_last_update_login IS NULL) THEN
501         x_last_update_login := -1;
502       END IF;
503     ELSE
504       fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
505       igs_ge_msg_stack.add;
506       app_exception.raise_exception;
507     END IF;
508 
509     before_dml(
510       p_action                            => 'UPDATE',
511       x_rowid                             => x_rowid,
512       x_servicer_id                       => x_servicer_id,
513       x_srvc_non_ed_brc_id                => x_srvc_non_ed_brc_id,
514       x_description                       => x_description,
515       x_party_id                          => x_party_id,
516       x_enabled                           => x_enabled,
517       x_creation_date                     => x_last_update_date,
518       x_created_by                        => x_last_updated_by,
519       x_last_update_date                  => x_last_update_date,
520       x_last_updated_by                   => x_last_updated_by,
521       x_last_update_login                 => x_last_update_login
522     );
523 
524     UPDATE igf_sl_servicer_brc
525       SET
526         description                       = new_references.description,
527         party_id                          = new_references.party_id,
528         enabled                           = new_references.enabled,
529         last_update_date                  = x_last_update_date,
530         last_updated_by                   = x_last_updated_by,
531         last_update_login                 = x_last_update_login
532       WHERE rowid = x_rowid;
533 
534     IF (SQL%NOTFOUND) THEN
535       RAISE NO_DATA_FOUND;
536     END IF;
537 
538   END update_row;
539 
540 
541   PROCEDURE add_row (
542     x_rowid                             IN OUT NOCOPY VARCHAR2,
543     x_servicer_id                       IN     VARCHAR2,
544     x_srvc_non_ed_brc_id                IN     VARCHAR2,
545     x_description                       IN     VARCHAR2,
546     x_party_id                          IN     NUMBER,
547     x_enabled                           IN     VARCHAR2,
548     x_mode                              IN     VARCHAR2 DEFAULT 'R'
549   ) AS
550   /*
551   ||  Created By : sjadhav
552   ||  Created On : 07-NOV-2000
553   ||  Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
554   ||  Known limitations, enhancements or remarks :
555   ||  Change History :
556   ||  Who             When            What
557   ||  (reverse chronological order - newest change first)
558   */
559     CURSOR c1 IS
560       SELECT   rowid
561       FROM     igf_sl_servicer_brc
562       WHERE    servicer_id                       = x_servicer_id
563       AND      srvc_non_ed_brc_id                = x_srvc_non_ed_brc_id;
564 
565   BEGIN
566 
567     OPEN c1;
568     FETCH c1 INTO x_rowid;
569     IF (c1%NOTFOUND) THEN
570       CLOSE c1;
571 
572       insert_row (
573         x_rowid,
574         x_servicer_id,
575         x_srvc_non_ed_brc_id,
576         x_description,
577         x_party_id,
578         x_enabled,
579         x_mode
580       );
581       RETURN;
582     END IF;
583     CLOSE c1;
584 
585     update_row (
586       x_rowid,
587       x_servicer_id,
588       x_srvc_non_ed_brc_id,
589       x_description,
590       x_party_id,
591       x_enabled,
592       x_mode
593     );
594 
595   END add_row;
596 
597 
598   PROCEDURE delete_row (
599     x_rowid IN VARCHAR2
600   ) AS
601   /*
602   ||  Created By : sjadhav
603   ||  Created On : 07-NOV-2000
604   ||  Purpose : Handles the DELETE DML logic for the table.
605   ||  Known limitations, enhancements or remarks :
606   ||  Change History :
607   ||  Who             When            What
608   ||  (reverse chronological order - newest change first)
609   */
610   BEGIN
611 
612     before_dml (
613       p_action => 'DELETE',
614       x_rowid => x_rowid
615     );
616 
617     DELETE FROM igf_sl_servicer_brc
618     WHERE rowid = x_rowid;
619 
620     IF (SQL%NOTFOUND) THEN
621       RAISE NO_DATA_FOUND;
622     END IF;
623 
624   END delete_row;
625 
626 
627 END igf_sl_servicer_brc_pkg;