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