[Home] [Help]
PACKAGE BODY: APPS.IGS_FI_PARTY_VENDRS_PKG
Source
1 PACKAGE BODY igs_fi_party_vendrs_pkg AS
2 /* $Header: IGSSIC8B.pls 115.1 2003/02/25 14:24:15 agairola noship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references igs_fi_party_vendrs%ROWTYPE;
6 new_references igs_fi_party_vendrs%ROWTYPE;
7
8 PROCEDURE set_column_values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2,
11 x_party_id IN NUMBER,
12 x_vendor_id IN NUMBER,
13 x_vendor_site_id IN NUMBER,
14 x_creation_date IN DATE,
15 x_created_by IN NUMBER,
16 x_last_update_date IN DATE,
17 x_last_updated_by IN NUMBER,
18 x_last_update_login IN NUMBER
19 ) AS
20 /*
21 || Created By : [email protected]
22 || Created On : 20-FEB-2003
23 || Purpose : Initialises the Old and New references for the columns of the table.
24 || Known limitations, enhancements or remarks :
25 || Change History :
26 || Who When What
27 || (reverse chronological order - newest change first)
28 */
29
30 CURSOR cur_old_ref_values IS
31 SELECT *
32 FROM igs_fi_party_vendrs
33 WHERE rowid = x_rowid;
34
35 BEGIN
36
37 l_rowid := x_rowid;
38
39 -- Code for setting the Old and New Reference Values.
40 -- Populate Old Values.
41 OPEN cur_old_ref_values;
42 FETCH cur_old_ref_values INTO old_references;
43 IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
44 CLOSE cur_old_ref_values;
45 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
46 igs_ge_msg_stack.add;
47 app_exception.raise_exception;
48 RETURN;
49 END IF;
50 CLOSE cur_old_ref_values;
51
52 -- Populate New Values.
53 new_references.party_id := x_party_id;
54 new_references.vendor_id := x_vendor_id;
55 new_references.vendor_site_id := x_vendor_site_id;
56
57 IF (p_action = 'UPDATE') THEN
58 new_references.creation_date := old_references.creation_date;
59 new_references.created_by := old_references.created_by;
60 ELSE
61 new_references.creation_date := x_creation_date;
62 new_references.created_by := x_created_by;
63 END IF;
64
65 new_references.last_update_date := x_last_update_date;
66 new_references.last_updated_by := x_last_updated_by;
67 new_references.last_update_login := x_last_update_login;
68
69 END set_column_values;
70
71 PROCEDURE check_parent_existence IS
72 /*
73 || Created By : [email protected]
74 || Created On : 20-FEB-2003
75 || Purpose : Checks the Foreign Keys
76 || Known limitations, enhancements or remarks :
77 || Change History :
78 || Who When What
79 || (reverse chronological order - newest change first)
80 */
81 CURSOR cur_party(cp_party_id NUMBER) IS
82 SELECT 'x'
83 FROM HZ_PARTIES
84 WHERE party_id = cp_party_id;
85
86
87 CURSOR cur_vendor(cp_vendor_id NUMBER) IS
88 SELECT 'x'
89 FROM po_vendors
90 WHERE vendor_id = cp_vendor_id;
91
92 CURSOR cur_vendor_site(cp_vendor_site_id NUMBER) IS
93 SELECT 'x'
94 FROM po_vendor_sites_all po
95 WHERE po.vendor_site_id = cp_vendor_site_id;
96
97 l_var VARCHAR2(1);
98 BEGIN
99 IF ((old_references.party_id = new_references.party_id) OR
100 (new_references.party_id IS NULL)) THEN
101 NULL;
102 ELSE
103 OPEN cur_party(new_references.party_id);
104 FETCH cur_party INTO l_var;
105 IF cur_party%FOUND THEN
106 CLOSE cur_party;
107 ELSE
108 CLOSE cur_party;
109 FND_MESSAGE.SET_NAME('FND',
110 'FORM_RECORD_DELETED');
111 IGS_GE_MSG_STACK.Add;
112 APP_EXCEPTION.RAISE_EXCEPTION;
113 END IF;
114 END IF;
115
116 IF ((old_references.vendor_id = new_references.vendor_id) OR
117 (new_references.vendor_id IS NULL)) THEN
118 NULL;
119 ELSE
120 OPEN cur_vendor(new_references.vendor_id);
121 FETCH cur_vendor INTO l_var;
122 IF cur_vendor%FOUND THEN
123 CLOSE cur_vendor;
124 ELSE
125 CLOSE cur_vendor;
126 FND_MESSAGE.SET_NAME('FND',
127 'FORM_RECORD_DELETED');
128 IGS_GE_MSG_STACK.Add;
129 APP_EXCEPTION.RAISE_EXCEPTION;
130 END IF;
131 END IF;
132
133 IF ((old_references.vendor_site_id = new_references.vendor_site_id) OR
134 (new_references.vendor_site_id IS NULL)) THEN
135 NULL;
136 ELSE
137 OPEN cur_vendor_site(new_references.vendor_site_id);
138 FETCH cur_vendor_site INTO l_var;
139 IF cur_vendor_site%FOUND THEN
140 CLOSE cur_vendor_site;
141 ELSE
142 CLOSE cur_vendor_site;
143 FND_MESSAGE.SET_NAME('FND',
144 'FORM_RECORD_DELETED');
145 IGS_GE_MSG_STACK.Add;
146 APP_EXCEPTION.RAISE_EXCEPTION;
147 END IF;
148 END IF;
149 END check_parent_existence;
150
151
152 FUNCTION get_pk_for_validation (
153 x_party_id IN NUMBER
154 ) RETURN BOOLEAN AS
155 /*
156 || Created By : [email protected]
157 || Created On : 20-FEB-2003
158 || Purpose : Validates the Primary Key of the table.
159 || Known limitations, enhancements or remarks :
160 || Change History :
161 || Who When What
162 || (reverse chronological order - newest change first)
163 */
164 CURSOR cur_rowid IS
165 SELECT rowid
166 FROM igs_fi_party_vendrs
167 WHERE party_id = x_party_id
168 FOR UPDATE NOWAIT;
169
170 lv_rowid cur_rowid%RowType;
171
172 BEGIN
173
174 OPEN cur_rowid;
175 FETCH cur_rowid INTO lv_rowid;
176 IF (cur_rowid%FOUND) THEN
177 CLOSE cur_rowid;
178 RETURN(TRUE);
179 ELSE
180 CLOSE cur_rowid;
181 RETURN(FALSE);
182 END IF;
183
184 END get_pk_for_validation;
185
186
187 PROCEDURE before_dml (
188 p_action IN VARCHAR2,
189 x_rowid IN VARCHAR2,
190 x_party_id IN NUMBER,
191 x_vendor_id IN NUMBER,
192 x_vendor_site_id IN NUMBER,
193 x_creation_date IN DATE,
194 x_created_by IN NUMBER,
195 x_last_update_date IN DATE,
196 x_last_updated_by IN NUMBER,
197 x_last_update_login IN NUMBER
198 ) AS
199 /*
200 || Created By : [email protected]
201 || Created On : 20-FEB-2003
202 || Purpose : Initialises the columns, Checks Constraints, Calls the
203 || Trigger Handlers for the table, before any DML operation.
204 || Known limitations, enhancements or remarks :
205 || Change History :
206 || Who When What
207 || (reverse chronological order - newest change first)
208 */
209 BEGIN
210
211 set_column_values (
212 p_action,
213 x_rowid,
214 x_party_id,
215 x_vendor_id,
216 x_vendor_site_id,
217 x_creation_date,
218 x_created_by,
219 x_last_update_date,
220 x_last_updated_by,
221 x_last_update_login
222 );
223
224 IF (p_action = 'INSERT') THEN
225 -- Call all the procedures related to Before Insert.
226 IF ( get_pk_for_validation(
227 new_references.party_id
228 )
229 ) THEN
230 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
231 igs_ge_msg_stack.add;
232 app_exception.raise_exception;
233 END IF;
234 check_parent_existence;
235 ELSIF (p_action = 'VALIDATE_INSERT') THEN
236 -- Call all the procedures related to Before Insert.
237 IF ( get_pk_for_validation (
238 new_references.party_id
239 )
240 ) THEN
241 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
242 igs_ge_msg_stack.add;
243 app_exception.raise_exception;
244 END IF;
245 check_parent_existence;
246 ELSIF (p_action = 'UPDATE') THEN
247 Check_Parent_Existence;
248 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
249 Check_Parent_Existence;
250 END IF;
251
252 END before_dml;
253
254
255 PROCEDURE insert_row (
256 x_rowid IN OUT NOCOPY VARCHAR2,
257 x_party_id IN NUMBER,
258 x_vendor_id IN NUMBER,
259 x_vendor_site_id IN NUMBER,
260 x_mode IN VARCHAR2
261 ) AS
262 /*
263 || Created By : [email protected]
264 || Created On : 20-FEB-2003
265 || Purpose : Handles the INSERT DML logic for the table.
266 || Known limitations, enhancements or remarks :
267 || Change History :
268 || Who When What
269 || (reverse chronological order - newest change first)
270 */
271
272 x_last_update_date DATE;
273 x_last_updated_by NUMBER;
274 x_last_update_login NUMBER;
275 x_request_id NUMBER;
276 x_program_id NUMBER;
277 x_program_application_id NUMBER;
278 x_program_update_date DATE;
279
280 BEGIN
281
282 x_last_update_date := SYSDATE;
283 IF (x_mode = 'I') THEN
284 x_last_updated_by := 1;
285 x_last_update_login := 0;
286 ELSIF (x_mode = 'R') THEN
287 x_last_updated_by := fnd_global.user_id;
288 IF (x_last_updated_by IS NULL) THEN
289 x_last_updated_by := -1;
290 END IF;
291 x_last_update_login := fnd_global.login_id;
292 IF (x_last_update_login IS NULL) THEN
293 x_last_update_login := -1;
294 END IF;
295 x_request_id := fnd_global.conc_request_id;
296 x_program_id := fnd_global.conc_program_id;
297 x_program_application_id := fnd_global.prog_appl_id;
298
299 IF (x_request_id = -1) THEN
300 x_request_id := NULL;
301 x_program_id := NULL;
302 x_program_application_id := NULL;
303 x_program_update_date := NULL;
304 ELSE
305 x_program_update_date := SYSDATE;
306 END IF;
307 ELSE
308 fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
309 fnd_message.set_token ('ROUTINE', 'IGS_FI_PARTY_VENDRS_PKG.INSERT_ROW');
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_party_id => x_party_id,
318 x_vendor_id => x_vendor_id,
319 x_vendor_site_id => x_vendor_site_id,
320 x_creation_date => x_last_update_date,
321 x_created_by => x_last_updated_by,
322 x_last_update_date => x_last_update_date,
323 x_last_updated_by => x_last_updated_by,
324 x_last_update_login => x_last_update_login
325 );
326
327 INSERT INTO igs_fi_party_vendrs (
328 party_id,
329 vendor_id,
330 vendor_site_id,
331 creation_date,
332 created_by,
333 last_update_date,
334 last_updated_by,
335 last_update_login,
336 request_id,
337 program_id,
338 program_application_id,
339 program_update_date
340 ) VALUES (
341 new_references.party_id,
342 new_references.vendor_id,
343 new_references.vendor_site_id,
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 x_request_id,
350 x_program_id,
351 x_program_application_id,
352 x_program_update_date
353 ) RETURNING ROWID INTO x_rowid;
354
355 END insert_row;
356
357
358 PROCEDURE lock_row (
359 x_rowid IN VARCHAR2,
360 x_party_id IN NUMBER,
361 x_vendor_id IN NUMBER,
362 x_vendor_site_id IN NUMBER
363 ) AS
364 /*
365 || Created By : [email protected]
366 || Created On : 20-FEB-2003
367 || Purpose : Handles the LOCK mechanism for the table.
368 || Known limitations, enhancements or remarks :
369 || Change History :
370 || Who When What
371 || (reverse chronological order - newest change first)
372 */
373 CURSOR c1 IS
374 SELECT party_id,
375 vendor_id,
376 vendor_site_id
377 FROM igs_fi_party_vendrs
378 WHERE rowid = x_rowid
379 FOR UPDATE NOWAIT;
380
381 tlinfo c1%ROWTYPE;
382
383 BEGIN
384
385 OPEN c1;
386 FETCH c1 INTO tlinfo;
387 IF (c1%notfound) THEN
388 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
389 igs_ge_msg_stack.add;
390 CLOSE c1;
391 app_exception.raise_exception;
392 RETURN;
393 END IF;
394 CLOSE c1;
395
396 IF ((tlinfo.party_id = x_party_id) AND
397 (tlinfo.vendor_id = x_vendor_id)
398 AND (tlinfo.vendor_site_id = x_vendor_site_id)
399 ) THEN
400 NULL;
401 ELSE
402 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
403 igs_ge_msg_stack.add;
404 app_exception.raise_exception;
405 END IF;
406
407 RETURN;
408
409 END lock_row;
410
411
412 PROCEDURE update_row (
413 x_rowid IN VARCHAR2,
414 x_party_id IN NUMBER,
415 x_vendor_id IN NUMBER,
416 x_vendor_site_id IN NUMBER,
417 x_mode IN VARCHAR2
418 ) AS
419 /*
420 || Created By : [email protected]
421 || Created On : 20-FEB-2003
422 || Purpose : Handles the UPDATE DML logic for the table.
423 || Known limitations, enhancements or remarks :
424 || Change History :
425 || Who When What
426 || (reverse chronological order - newest change first)
427 */
428 x_last_update_date DATE ;
429 x_last_updated_by NUMBER;
430 x_last_update_login NUMBER;
431 x_request_id NUMBER;
432 x_program_id NUMBER;
433 x_program_application_id NUMBER;
434 x_program_update_date DATE;
435
436 BEGIN
437
438 x_last_update_date := SYSDATE;
439 IF (X_MODE = 'I') THEN
440 x_last_updated_by := 1;
441 x_last_update_login := 0;
442 ELSIF (x_mode = 'R') THEN
443 x_last_updated_by := fnd_global.user_id;
444 IF x_last_updated_by IS NULL THEN
445 x_last_updated_by := -1;
446 END IF;
447 x_last_update_login := fnd_global.login_id;
448 IF (x_last_update_login IS NULL) THEN
449 x_last_update_login := -1;
450 END IF;
451 ELSE
452 fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
453 fnd_message.set_token ('ROUTINE', 'IGS_FI_PARTY_VENDRS_PKG.UPDATE_ROW');
454 igs_ge_msg_stack.add;
455 app_exception.raise_exception;
456 END IF;
457
458 before_dml(
459 p_action => 'UPDATE',
460 x_rowid => x_rowid,
461 x_party_id => x_party_id,
462 x_vendor_id => x_vendor_id,
463 x_vendor_site_id => x_vendor_site_id,
464 x_creation_date => x_last_update_date,
465 x_created_by => x_last_updated_by,
466 x_last_update_date => x_last_update_date,
467 x_last_updated_by => x_last_updated_by,
468 x_last_update_login => x_last_update_login
469 );
470
471 IF (x_mode = 'R') THEN
472 x_request_id := fnd_global.conc_request_id;
473 x_program_id := fnd_global.conc_program_id;
474 x_program_application_id := fnd_global.prog_appl_id;
475 IF (x_request_id = -1) THEN
476 x_request_id := old_references.request_id;
477 x_program_id := old_references.program_id;
478 x_program_application_id := old_references.program_application_id;
479 x_program_update_date := old_references.program_update_date;
480 ELSE
481 x_program_update_date := SYSDATE;
482 END IF;
483 END IF;
484
485 UPDATE igs_fi_party_vendrs
486 SET
487 vendor_id = new_references.vendor_id,
488 vendor_site_id = new_references.vendor_site_id,
489 last_update_date = x_last_update_date,
490 last_updated_by = x_last_updated_by,
491 last_update_login = x_last_update_login ,
492 request_id = x_request_id,
493 program_id = x_program_id,
494 program_application_id = x_program_application_id,
495 program_update_date = x_program_update_date
496 WHERE rowid = x_rowid;
497
498 IF (SQL%NOTFOUND) THEN
499 RAISE NO_DATA_FOUND;
500 END IF;
501
502 END update_row;
503
504
505
506
507 PROCEDURE delete_row (
508 x_rowid IN VARCHAR2
509 ) AS
510 /*
511 || Created By : [email protected]
512 || Created On : 20-FEB-2003
513 || Purpose : Handles the DELETE DML logic for the table.
514 || Known limitations, enhancements or remarks :
515 || Change History :
516 || Who When What
517 || (reverse chronological order - newest change first)
518 */
519 BEGIN
520
521 before_dml (
522 p_action => 'DELETE',
523 x_rowid => x_rowid
524 );
525
526 DELETE FROM igs_fi_party_vendrs
527 WHERE rowid = x_rowid;
528
529 IF (SQL%NOTFOUND) THEN
530 RAISE NO_DATA_FOUND;
531 END IF;
532
533 END delete_row;
534
535
536 END igs_fi_party_vendrs_pkg;