DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_RECRT_PI_HDR_PKG

Source


1 PACKAGE BODY igs_ad_recrt_pi_hdr_pkg AS
2 /* $Header: IGSAIE7B.pls 115.5 2003/01/23 04:45:54 knag ship $ */
3 
4   l_rowid VARCHAR2(25);
5   old_references igs_ad_recrt_pi_hdr_all%ROWTYPE;
6   new_references igs_ad_recrt_pi_hdr_all%ROWTYPE;
7 
8   PROCEDURE set_column_values (
9     p_action                            IN     VARCHAR2,
10     x_rowid                             IN     VARCHAR2    DEFAULT NULL,
11     x_prblty_val_batch_id               IN     NUMBER      DEFAULT NULL,
12     x_description                       IN     VARCHAR2    DEFAULT NULL,
13     x_creation_date                     IN     DATE        DEFAULT NULL,
14     x_created_by                        IN     NUMBER      DEFAULT NULL,
15     x_last_update_date                  IN     DATE        DEFAULT NULL,
16     x_last_updated_by                   IN     NUMBER      DEFAULT NULL,
17     x_last_update_login                 IN     NUMBER      DEFAULT NULL
18   ) AS
19   /*
20   ||  Created By : pkpatel
21   ||  Created On : 06-AUG-2001
22   ||  Purpose : Initialises the Old and New references for the columns of the table.
23   ||  Known limitations, enhancements or remarks :
24   ||  Change History :
25   ||  Who             When            What
26   ||  (reverse chronological order - newest change first)
27   */
28 
29     CURSOR cur_old_ref_values IS
30       SELECT   *
31       FROM     IGS_AD_RECRT_PI_HDR_ALL
32       WHERE    rowid = x_rowid;
33 
34   BEGIN
35 
36     l_rowid := x_rowid;
37 
38     -- Code for setting the Old and New Reference Values.
39     -- Populate Old Values.
40     OPEN cur_old_ref_values;
41     FETCH cur_old_ref_values INTO old_references;
42     IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
43       CLOSE cur_old_ref_values;
44       fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
45       igs_ge_msg_stack.add;
46       app_exception.raise_exception;
47       RETURN;
48     END IF;
49     CLOSE cur_old_ref_values;
50 
51     -- Populate New Values.
52     new_references.prblty_val_batch_id               := x_prblty_val_batch_id;
53     new_references.description                       := x_description;
54 
55     IF (p_action = 'UPDATE') THEN
56       new_references.creation_date                   := old_references.creation_date;
57       new_references.created_by                      := old_references.created_by;
58     ELSE
59       new_references.creation_date                   := x_creation_date;
60       new_references.created_by                      := x_created_by;
61     END IF;
62 
63     new_references.last_update_date                  := x_last_update_date;
64     new_references.last_updated_by                   := x_last_updated_by;
65     new_references.last_update_login                 := x_last_update_login;
66 
67   END set_column_values;
68 
69 
70   FUNCTION get_pk_for_validation (
71     x_prblty_val_batch_id               IN     NUMBER
72   ) RETURN BOOLEAN AS
73   /*
74   ||  Created By : pkpatel
75   ||  Created On : 06-AUG-2001
76   ||  Purpose : Validates the Primary Key of the table.
77   ||  Known limitations, enhancements or remarks :
78   ||  Change History :
79   ||  Who             When            What
80   ||  (reverse chronological order - newest change first)
81   */
82     CURSOR cur_rowid IS
83       SELECT   rowid
84       FROM     igs_ad_recrt_pi_hdr_all
85       WHERE    prblty_val_batch_id = x_prblty_val_batch_id
86       FOR UPDATE NOWAIT;
87 
88     lv_rowid cur_rowid%RowType;
89 
90   BEGIN
91 
92     OPEN cur_rowid;
93     FETCH cur_rowid INTO lv_rowid;
94     IF (cur_rowid%FOUND) THEN
95       CLOSE cur_rowid;
96       RETURN(TRUE);
97     ELSE
98       CLOSE cur_rowid;
99       RETURN(FALSE);
100     END IF;
101 
102   END get_pk_for_validation;
103 
104 
105   PROCEDURE before_dml (
106     p_action                            IN     VARCHAR2,
107     x_rowid                             IN     VARCHAR2    DEFAULT NULL,
108     x_prblty_val_batch_id               IN     NUMBER      DEFAULT NULL,
109     x_description                       IN     VARCHAR2    DEFAULT NULL,
110     x_creation_date                     IN     DATE        DEFAULT NULL,
111     x_created_by                        IN     NUMBER      DEFAULT NULL,
112     x_last_update_date                  IN     DATE        DEFAULT NULL,
113     x_last_updated_by                   IN     NUMBER      DEFAULT NULL,
114     x_last_update_login                 IN     NUMBER      DEFAULT NULL
115   ) AS
116   /*
117   ||  Created By : pkpatel
118   ||  Created On : 06-AUG-2001
119   ||  Purpose : Initialises the columns, Checks Constraints, Calls the
120   ||            Trigger Handlers for the table, before any DML operation.
121   ||  Known limitations, enhancements or remarks :
122   ||  Change History :
123   ||  Who             When            What
124   ||  (reverse chronological order - newest change first)
125   */
126   BEGIN
127 
128     set_column_values (
129       p_action,
130       x_rowid,
131       x_prblty_val_batch_id,
132       x_description,
133       x_creation_date,
134       x_created_by,
135       x_last_update_date,
136       x_last_updated_by,
137       x_last_update_login
138     );
139 
140     IF (p_action = 'INSERT') THEN
141       -- Call all the procedures related to Before Insert.
142       IF ( get_pk_for_validation(
143              new_references.prblty_val_batch_id
144            )
145          ) THEN
146         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
147         igs_ge_msg_stack.add;
148         app_exception.raise_exception;
149       END IF;
150     ELSIF (p_action = 'VALIDATE_INSERT') THEN
151       -- Call all the procedures related to Before Insert.
152       IF ( get_pk_for_validation (
153              new_references.prblty_val_batch_id
154            )
155          ) THEN
156         fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
157         igs_ge_msg_stack.add;
158         app_exception.raise_exception;
159       END IF;
160     END IF;
161 
162   END before_dml;
163 
164 
165   PROCEDURE insert_row (
166     x_rowid                             IN OUT NOCOPY VARCHAR2,
167     x_prblty_val_batch_id               IN OUT NOCOPY NUMBER,
168     x_description                       IN     VARCHAR2,
169     x_mode                              IN     VARCHAR2 DEFAULT 'R'
170   ) AS
171   /*
172   ||  Created By : pkpatel
173   ||  Created On : 06-AUG-2001
174   ||  Purpose : Handles the INSERT DML logic for the table.
175   ||  Known limitations, enhancements or remarks :
176   ||  Change History :
177   ||  Who             When            What
178   ||  (reverse chronological order - newest change first)
179   */
180     CURSOR c IS
181       SELECT   rowid
182       FROM     igs_ad_recrt_pi_hdr_all
183       WHERE    prblty_val_batch_id               = x_prblty_val_batch_id;
184 
185     x_last_update_date           DATE;
186     x_last_updated_by            NUMBER;
187     x_last_update_login          NUMBER;
188 
189   BEGIN
190 
191     x_last_update_date := SYSDATE;
192     IF (x_mode = 'I') THEN
193       x_last_updated_by := 1;
194       x_last_update_login := 0;
195     ELSIF (x_mode = 'R') THEN
196       x_last_updated_by := fnd_global.user_id;
197       IF (x_last_updated_by IS NULL) THEN
198         x_last_updated_by := -1;
199       END IF;
200       x_last_update_login := fnd_global.login_id;
201       IF (x_last_update_login IS NULL) THEN
202         x_last_update_login := -1;
203       END IF;
204     ELSE
205       fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
206       igs_ge_msg_stack.add;
207       app_exception.raise_exception;
208     END IF;
209 
210     new_references.org_id := igs_ge_gen_003.get_org_id;
211 
212     x_prblty_val_batch_id := -1;
213     before_dml(
214       p_action                            => 'INSERT',
215       x_rowid                             => x_rowid,
216       x_prblty_val_batch_id               => x_prblty_val_batch_id,
217       x_description                       => x_description,
218       x_creation_date                     => x_last_update_date,
219       x_created_by                        => x_last_updated_by,
220       x_last_update_date                  => x_last_update_date,
221       x_last_updated_by                   => x_last_updated_by,
222       x_last_update_login                 => x_last_update_login
223     );
224 
225     INSERT INTO igs_ad_recrt_pi_hdr_all (
226       prblty_val_batch_id,
227       description,
228       org_id,
229       creation_date,
230       created_by,
231       last_update_date,
232       last_updated_by,
233       last_update_login
234     ) VALUES (
235       igs_ad_recrt_pi_hdr_s.NEXTVAL,
236       new_references.description,
237       new_references.org_id,
238       x_last_update_date,
239       x_last_updated_by,
240       x_last_update_date,
241       x_last_updated_by,
242       x_last_update_login
243     )RETURNING prblty_val_batch_id INTO x_prblty_val_batch_id;
244 
245     OPEN c;
246     FETCH c INTO x_rowid;
247     IF (c%NOTFOUND) THEN
248       CLOSE c;
249       RAISE NO_DATA_FOUND;
250     END IF;
251     CLOSE c;
252 
253   END insert_row;
254 
255 
256   PROCEDURE lock_row (
257     x_rowid                             IN     VARCHAR2,
258     x_prblty_val_batch_id               IN     NUMBER,
259     x_description                       IN     VARCHAR2
260   ) AS
261   /*
262   ||  Created By : pkpatel
263   ||  Created On : 06-AUG-2001
264   ||  Purpose : Handles the LOCK mechanism for the table.
265   ||  Known limitations, enhancements or remarks :
266   ||  Change History :
267   ||  Who             When            What
268   ||  (reverse chronological order - newest change first)
269   */
270     CURSOR c1 IS
271       SELECT
272         description
273       FROM  igs_ad_recrt_pi_hdr_all
274       WHERE rowid = x_rowid
275       FOR UPDATE NOWAIT;
276 
277     tlinfo c1%ROWTYPE;
278 
279   BEGIN
280 
281     OPEN c1;
282     FETCH c1 INTO tlinfo;
283     IF (c1%notfound) THEN
284       fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
285       igs_ge_msg_stack.add;
286       CLOSE c1;
287       app_exception.raise_exception;
288       RETURN;
289     END IF;
290     CLOSE c1;
291 
292     IF (
293         ((tlinfo.description = x_description) OR ((tlinfo.description IS NULL) AND (X_description IS NULL)))
294        ) THEN
295       NULL;
296     ELSE
297       fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
298       igs_ge_msg_stack.add;
299       app_exception.raise_exception;
300     END IF;
301 
302     RETURN;
303 
304   END lock_row;
305 
306 
307   PROCEDURE update_row (
308     x_rowid                             IN     VARCHAR2,
309     x_prblty_val_batch_id               IN     NUMBER,
310     x_description                       IN     VARCHAR2,
311     x_mode                              IN     VARCHAR2 DEFAULT 'R'
312   ) AS
313   /*
314   ||  Created By : pkpatel
315   ||  Created On : 06-AUG-2001
316   ||  Purpose : Handles the UPDATE DML logic for the table.
317   ||  Known limitations, enhancements or remarks :
318   ||  Change History :
319   ||  Who             When            What
320   ||  (reverse chronological order - newest change first)
321   */
322     x_last_update_date           DATE ;
323     x_last_updated_by            NUMBER;
324     x_last_update_login          NUMBER;
325 
326   BEGIN
327 
328     x_last_update_date := SYSDATE;
329     IF (X_MODE = 'I') THEN
330       x_last_updated_by := 1;
331       x_last_update_login := 0;
332     ELSIF (x_mode = 'R') THEN
333       x_last_updated_by := fnd_global.user_id;
334       IF x_last_updated_by IS NULL THEN
335         x_last_updated_by := -1;
336       END IF;
337       x_last_update_login := fnd_global.login_id;
338       IF (x_last_update_login IS NULL) THEN
339         x_last_update_login := -1;
340       END IF;
341     ELSE
342       fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
343       igs_ge_msg_stack.add;
344       app_exception.raise_exception;
345     END IF;
346 
347     before_dml(
348       p_action                            => 'UPDATE',
349       x_rowid                             => x_rowid,
350       x_prblty_val_batch_id               => x_prblty_val_batch_id,
351       x_description                       => x_description,
352       x_creation_date                     => x_last_update_date,
353       x_created_by                        => x_last_updated_by,
354       x_last_update_date                  => x_last_update_date,
355       x_last_updated_by                   => x_last_updated_by,
356       x_last_update_login                 => x_last_update_login
357     );
358 
359     UPDATE igs_ad_recrt_pi_hdr_all
360       SET
361         description                       = new_references.description,
362         last_update_date                  = x_last_update_date,
363         last_updated_by                   = x_last_updated_by,
364         last_update_login                 = x_last_update_login
365       WHERE rowid = x_rowid;
366 
367     IF (SQL%NOTFOUND) THEN
368       RAISE NO_DATA_FOUND;
369     END IF;
370 
371   END update_row;
372 
373 
374   PROCEDURE add_row (
375     x_rowid                             IN OUT NOCOPY VARCHAR2,
376     x_prblty_val_batch_id               IN OUT NOCOPY NUMBER,
377     x_description                       IN     VARCHAR2,
378     x_mode                              IN     VARCHAR2 DEFAULT 'R'
379   ) AS
380   /*
381   ||  Created By : pkpatel
382   ||  Created On : 06-AUG-2001
383   ||  Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
384   ||  Known limitations, enhancements or remarks :
385   ||  Change History :
386   ||  Who             When            What
387   ||  (reverse chronological order - newest change first)
388   */
389     CURSOR c1 IS
390       SELECT   rowid
391       FROM     igs_ad_recrt_pi_hdr_all
392       WHERE    prblty_val_batch_id               = x_prblty_val_batch_id;
393 
394   BEGIN
395 
396     OPEN c1;
397     FETCH c1 INTO x_rowid;
398     IF (c1%NOTFOUND) THEN
399       CLOSE c1;
400 
401       insert_row (
402         x_rowid,
403         x_prblty_val_batch_id,
404         x_description,
405         x_mode
406       );
407       RETURN;
408     END IF;
409     CLOSE c1;
410 
411     update_row (
412       x_rowid,
413       x_prblty_val_batch_id,
414       x_description,
415       x_mode
416     );
417 
418   END add_row;
419 
420 
421   PROCEDURE delete_row (
422     x_rowid IN VARCHAR2
423   ) AS
424   /*
425   ||  Created By : pkpatel
426   ||  Created On : 06-AUG-2001
427   ||  Purpose : Handles the DELETE DML logic for the table.
428   ||  Known limitations, enhancements or remarks :
429   ||  Change History :
430   ||  Who             When            What
431   ||  (reverse chronological order - newest change first)
432   */
433   BEGIN
434 
435     before_dml (
436       p_action => 'DELETE',
437       x_rowid => x_rowid
438     );
439 
440     DELETE FROM igs_ad_recrt_pi_hdr_all
441     WHERE rowid = x_rowid;
442 
443     IF (SQL%NOTFOUND) THEN
444       RAISE NO_DATA_FOUND;
445     END IF;
446 
447   END delete_row;
448 
449 
450 END igs_ad_recrt_pi_hdr_pkg;