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