[Home] [Help]
PACKAGE BODY: APPS.IGS_AD_SS_APPL_COMPS_PKG
Source
1 PACKAGE BODY igs_ad_ss_appl_comps_pkg AS
2 /* $Header: IGSAIH7B.pls 120.1 2005/09/08 14:43:27 appldev noship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references igs_ad_ss_appl_comps%ROWTYPE;
6 new_references igs_ad_ss_appl_comps%ROWTYPE;
7
8 PROCEDURE set_column_values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2,
11 x_admission_application_type IN VARCHAR2,
12 x_page_name IN VARCHAR2,
13 x_component_code IN VARCHAR2,
14 x_comp_disp_name IN VARCHAR2,
15 x_include_flag IN VARCHAR2,
16 x_required_flag IN VARCHAR2,
17 x_creation_date IN DATE,
18 x_created_by IN NUMBER,
19 x_last_update_date IN DATE,
20 x_last_updated_by IN NUMBER,
21 x_last_update_login IN NUMBER
22 ) AS
23 /*
24 || Created By :
25 || Created On : 07-JUL-2005
26 || Purpose : Initialises the Old and New references for the columns of the table.
27 || Known limitations, enhancements or remarks :
28 || Change History :
29 || Who When What
30 || (reverse chronological order - newest change first)
31 */
32
33 CURSOR cur_old_ref_values IS
34 SELECT *
35 FROM igs_ad_ss_appl_comps
36 WHERE rowid = x_rowid;
37
38 BEGIN
39
40 l_rowid := x_rowid;
41
42 -- Code for setting the Old and New Reference Values.
43 -- Populate Old Values.
44 OPEN cur_old_ref_values;
45 FETCH cur_old_ref_values INTO old_references;
46 IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
47 CLOSE cur_old_ref_values;
48 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
49 igs_ge_msg_stack.add;
50 app_exception.raise_exception;
51 RETURN;
52 END IF;
53 CLOSE cur_old_ref_values;
54
55 -- Populate New Values.
56 new_references.admission_application_type := x_admission_application_type;
57 new_references.page_name := x_page_name;
58 new_references.component_code := x_component_code;
59 new_references.comp_disp_name := NVL(x_comp_disp_name,old_references.comp_disp_name);
60 new_references.include_flag := x_include_flag;
61 new_references.required_flag := x_required_flag;
62
63 IF (p_action = 'UPDATE') THEN
64 new_references.creation_date := old_references.creation_date;
65 new_references.created_by := old_references.created_by;
66 ELSE
67 new_references.creation_date := x_creation_date;
68 new_references.created_by := x_created_by;
69 END IF;
70
71 new_references.last_update_date := x_last_update_date;
72 new_references.last_updated_by := x_last_updated_by;
73 new_references.last_update_login := x_last_update_login;
74
75 END set_column_values;
76
77
78 PROCEDURE check_parent_existance AS
79 /*
80 || Created By :
81 || Created On : 07-JUL-2005
82 || Purpose : Checks for the existance of Parent records.
83 || Known limitations, enhancements or remarks :
84 || Change History :
85 || Who When What
86 || (reverse chronological order - newest change first)
87 */
88 BEGIN
89
90 IF (((old_references.admission_application_type = new_references.admission_application_type) AND
91 (old_references.page_name = new_references.page_name)) OR
92 ((new_references.admission_application_type IS NULL) OR
93 (new_references.page_name IS NULL))) THEN
94 NULL;
95 ELSIF NOT igs_ad_ss_appl_pgs_pkg.get_pk_for_validation (
96 new_references.page_name,
97 new_references.admission_application_type
98 ) THEN
99 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
100 igs_ge_msg_stack.add;
101 app_exception.raise_exception;
102 END IF;
103
104 END check_parent_existance;
105
106
107 FUNCTION get_pk_for_validation (
108 x_admission_application_type IN VARCHAR2,
109 x_page_name IN VARCHAR2,
110 x_component_code IN VARCHAR2
111 ) RETURN BOOLEAN AS
112 /*
113 || Created By :
114 || Created On : 07-JUL-2005
115 || Purpose : Validates the Primary Key of the table.
116 || Known limitations, enhancements or remarks :
117 || Change History :
118 || Who When What
119 || (reverse chronological order - newest change first)
120 */
121 CURSOR cur_rowid IS
122 SELECT rowid
123 FROM igs_ad_ss_appl_comps
124 WHERE admission_application_type = x_admission_application_type
125 AND page_name = x_page_name
126 AND component_code = x_component_code
127 FOR UPDATE NOWAIT;
128
129 lv_rowid cur_rowid%RowType;
130
131 BEGIN
132
133 OPEN cur_rowid;
134 FETCH cur_rowid INTO lv_rowid;
135 IF (cur_rowid%FOUND) THEN
136 CLOSE cur_rowid;
137 RETURN(TRUE);
138 ELSE
139 CLOSE cur_rowid;
140 RETURN(FALSE);
141 END IF;
142
143 END get_pk_for_validation;
144
145
146 PROCEDURE get_fk_igs_ad_ss_appl_pgs (
147 x_admission_application_type IN VARCHAR2,
148 x_page_name IN VARCHAR2
149 ) AS
150 /*
151 || Created By :
152 || Created On : 07-JUL-2005
153 || Purpose : Validates the Foreign Keys for the table.
154 || Known limitations, enhancements or remarks :
155 || Change History :
156 || Who When What
157 || (reverse chronological order - newest change first)
158 */
159 CURSOR cur_rowid IS
160 SELECT rowid
161 FROM igs_ad_ss_appl_comps
162 WHERE ((admission_application_type = x_admission_application_type) AND
163 (page_name = x_page_name));
164
165 lv_rowid cur_rowid%RowType;
166
167 BEGIN
168
169 OPEN cur_rowid;
170 FETCH cur_rowid INTO lv_rowid;
171 IF (cur_rowid%FOUND) THEN
172 CLOSE cur_rowid;
173 fnd_message.set_name ('IGS', 'IGS_FOREIGN_KEY_REFERENCE');
174 igs_ge_msg_stack.add;
175 app_exception.raise_exception;
176 RETURN;
177 END IF;
178 CLOSE cur_rowid;
179
180 END get_fk_igs_ad_ss_appl_pgs;
181
182
183 PROCEDURE before_dml (
184 p_action IN VARCHAR2,
185 x_rowid IN VARCHAR2,
186 x_admission_application_type IN VARCHAR2,
187 x_page_name IN VARCHAR2,
188 x_component_code IN VARCHAR2,
189 x_comp_disp_name IN VARCHAR2,
190 x_include_flag IN VARCHAR2,
191 x_required_flag IN VARCHAR2,
192 x_creation_date IN DATE,
193 x_created_by IN NUMBER,
194 x_last_update_date IN DATE,
195 x_last_updated_by IN NUMBER,
196 x_last_update_login IN NUMBER
197 ) AS
198 /*
199 || Created By :
200 || Created On : 07-JUL-2005
201 || Purpose : Initialises the columns, Checks Constraints, Calls the
202 || Trigger Handlers for the table, before any DML operation.
203 || Known limitations, enhancements or remarks :
204 || Change History :
205 || Who When What
206 || (reverse chronological order - newest change first)
207 */
208 BEGIN
209
210 set_column_values (
211 p_action,
212 x_rowid,
213 x_admission_application_type,
214 x_page_name,
215 x_component_code,
216 x_comp_disp_name,
217 x_include_flag,
218 x_required_flag,
219 x_creation_date,
220 x_created_by,
221 x_last_update_date,
222 x_last_updated_by,
223 x_last_update_login
224 );
225
226 IF (p_action = 'INSERT') THEN
227 -- Call all the procedures related to Before Insert.
228 IF ( get_pk_for_validation(
229 new_references.admission_application_type,
230 new_references.page_name,
231 new_references.component_code
232 )
233 ) THEN
234 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
235 igs_ge_msg_stack.add;
236 app_exception.raise_exception;
237 END IF;
238 check_parent_existance;
239 ELSIF (p_action = 'UPDATE') THEN
240 -- Call all the procedures related to Before Update.
241 check_parent_existance;
242 ELSIF (p_action = 'VALIDATE_INSERT') THEN
243 -- Call all the procedures related to Before Insert.
244 IF ( get_pk_for_validation (
245 new_references.admission_application_type,
246 new_references.page_name,
247 new_references.component_code
248 )
249 ) THEN
250 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
251 igs_ge_msg_stack.add;
252 app_exception.raise_exception;
253 END IF;
254 END IF;
255
256 END before_dml;
257
258
259 PROCEDURE insert_row (
260 x_rowid IN OUT NOCOPY VARCHAR2,
261 x_admission_application_type IN OUT NOCOPY VARCHAR2,
262 x_page_name IN VARCHAR2,
263 x_component_code IN VARCHAR2,
264 x_comp_disp_name IN VARCHAR2,
265 x_include_flag IN VARCHAR2,
266 x_required_flag IN VARCHAR2,
267 x_mode IN VARCHAR2
268 ) AS
269 /*
270 || Created By :
271 || Created On : 07-JUL-2005
272 || Purpose : Handles the INSERT DML logic for the table.
273 || Known limitations, enhancements or remarks :
274 || Change History :
275 || Who When What
276 || (reverse chronological order - newest change first)
277 */
278
279 x_last_update_date DATE;
280 x_last_updated_by NUMBER;
281 x_last_update_login NUMBER;
282
283 BEGIN
284
285 x_last_update_date := SYSDATE;
286 IF (x_mode = 'I') THEN
287 x_last_updated_by := 1;
288 x_last_update_login := 0;
289 ELSIF (x_mode = 'R') THEN
290 x_last_updated_by := fnd_global.user_id;
291 IF (x_last_updated_by IS NULL) THEN
292 x_last_updated_by := -1;
293 END IF;
294 x_last_update_login := fnd_global.login_id;
295 IF (x_last_update_login IS NULL) THEN
296 x_last_update_login := -1;
297 END IF;
298 ELSE
299 fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
300 fnd_message.set_token ('ROUTINE', 'igs_ad_ss_appl_comps_PKG.INSERT_ROW');
301 igs_ge_msg_stack.add;
302 app_exception.raise_exception;
303 END IF;
304
305 before_dml(
306 p_action => 'INSERT',
307 x_rowid => x_rowid,
308 x_admission_application_type => x_admission_application_type,
309 x_page_name => x_page_name,
310 x_component_code => x_component_code,
311 x_comp_disp_name => x_comp_disp_name,
312 x_include_flag => x_include_flag,
313 x_required_flag => x_required_flag,
314 x_creation_date => x_last_update_date,
315 x_created_by => x_last_updated_by,
316 x_last_update_date => x_last_update_date,
317 x_last_updated_by => x_last_updated_by,
318 x_last_update_login => x_last_update_login
319 );
320
321 INSERT INTO igs_ad_ss_appl_comps (
322 admission_application_type,
323 page_name,
324 component_code,
325 comp_disp_name,
326 include_flag,
327 required_flag,
328 creation_date,
329 created_by,
330 last_update_date,
331 last_updated_by,
332 last_update_login
333 ) VALUES (
334 new_references.admission_application_type,
335 new_references.page_name,
336 new_references.component_code,
337 new_references.comp_disp_name,
338 new_references.include_flag,
339 new_references.required_flag,
340 x_last_update_date,
341 x_last_updated_by,
342 x_last_update_date,
343 x_last_updated_by,
344 x_last_update_login
345 ) RETURNING ROWID, admission_application_type INTO x_rowid, x_admission_application_type;
346
347 IF (x_rowid IS NULL) THEN
348 RAISE NO_DATA_FOUND;
349 END IF;
350
351 END insert_row;
352
353
354 PROCEDURE lock_row (
355 x_rowid IN VARCHAR2,
356 x_admission_application_type IN VARCHAR2,
357 x_page_name IN VARCHAR2,
358 x_component_code IN VARCHAR2,
359 x_comp_disp_name IN VARCHAR2,
360 x_include_flag IN VARCHAR2,
361 x_required_flag IN VARCHAR2
362 ) AS
363 /*
364 || Created By :
365 || Created On : 07-JUL-2005
366 || Purpose : Handles the LOCK mechanism for the table.
367 || Known limitations, enhancements or remarks :
368 || Change History :
369 || Who When What
370 || (reverse chronological order - newest change first)
371 */
372 CURSOR c1 IS
373 SELECT
374 comp_disp_name,
375 include_flag,
376 required_flag
377 FROM igs_ad_ss_appl_comps
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 (
397 (tlinfo.comp_disp_name = x_comp_disp_name)
398 AND (tlinfo.include_flag = x_include_flag)
399 AND (tlinfo.required_flag = x_required_flag)
400 ) THEN
401 NULL;
402 ELSE
403 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
404 igs_ge_msg_stack.add;
405 app_exception.raise_exception;
406 END IF;
407
408 RETURN;
409
410 END lock_row;
411
412
413 PROCEDURE update_row (
414 x_rowid IN VARCHAR2,
415 x_admission_application_type IN VARCHAR2,
416 x_page_name IN VARCHAR2,
417 x_component_code IN VARCHAR2,
418 x_comp_disp_name IN VARCHAR2,
419 x_include_flag IN VARCHAR2,
420 x_required_flag IN VARCHAR2,
421 x_mode IN VARCHAR2
422 ) AS
423 /*
424 || Created By :
425 || Created On : 07-JUL-2005
426 || Purpose : Handles the UPDATE DML logic for the table.
427 || Known limitations, enhancements or remarks :
428 || Change History :
429 || Who When What
430 || (reverse chronological order - newest change first)
431 */
432 x_last_update_date DATE ;
433 x_last_updated_by NUMBER;
434 x_last_update_login NUMBER;
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_ad_ss_appl_comps_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_admission_application_type => x_admission_application_type,
462 x_page_name => x_page_name,
463 x_component_code => x_component_code,
464 x_comp_disp_name => x_comp_disp_name,
465 x_include_flag => x_include_flag,
466 x_required_flag => x_required_flag,
467 x_creation_date => x_last_update_date,
468 x_created_by => x_last_updated_by,
469 x_last_update_date => x_last_update_date,
470 x_last_updated_by => x_last_updated_by,
471 x_last_update_login => x_last_update_login
472 );
473
474 UPDATE igs_ad_ss_appl_comps
475 SET
476 comp_disp_name = new_references.comp_disp_name,
477 include_flag = new_references.include_flag,
478 required_flag = new_references.required_flag,
479 last_update_date = x_last_update_date,
480 last_updated_by = x_last_updated_by,
481 last_update_login = x_last_update_login
482 WHERE rowid = x_rowid;
483
484 IF (SQL%NOTFOUND) THEN
485 RAISE NO_DATA_FOUND;
486 END IF;
487
488 END update_row;
489
490
491 PROCEDURE add_row (
492 x_rowid IN OUT NOCOPY VARCHAR2,
493 x_admission_application_type IN OUT NOCOPY VARCHAR2,
494 x_page_name IN VARCHAR2,
495 x_component_code IN VARCHAR2,
496 x_comp_disp_name IN VARCHAR2,
497 x_include_flag IN VARCHAR2,
498 x_required_flag IN VARCHAR2,
499 x_mode IN VARCHAR2
500 ) AS
501 /*
502 || Created By :
503 || Created On : 07-JUL-2005
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 igs_ad_ss_appl_comps
513 WHERE admission_application_type = x_admission_application_type
514 AND page_name = x_page_name
515 AND component_code = x_component_code;
516
517 BEGIN
518
519 OPEN c1;
520 FETCH c1 INTO x_rowid;
521 IF (c1%NOTFOUND) THEN
522 CLOSE c1;
523
524 insert_row (
525 x_rowid,
526 x_admission_application_type,
527 x_page_name,
528 x_component_code,
529 x_comp_disp_name,
530 x_include_flag,
531 x_required_flag,
532 x_mode
533 );
534 RETURN;
535 END IF;
536 CLOSE c1;
537
538 update_row (
539 x_rowid,
540 x_admission_application_type,
541 x_page_name,
542 x_component_code,
543 x_comp_disp_name,
544 x_include_flag,
545 x_required_flag,
546 x_mode
547 );
548
549 END add_row;
550
551
552 PROCEDURE delete_row (
553 x_rowid IN VARCHAR2
554 ) AS
555 /*
556 || Created By :
557 || Created On : 07-JUL-2005
558 || Purpose : Handles the DELETE DML logic for the table.
559 || Known limitations, enhancements or remarks :
560 || Change History :
561 || Who When What
562 || (reverse chronological order - newest change first)
563 */
564 BEGIN
565
566 before_dml (
567 p_action => 'DELETE',
568 x_rowid => x_rowid
569 );
570
571 DELETE FROM igs_ad_ss_appl_comps
572 WHERE rowid = x_rowid;
573
574 IF (SQL%NOTFOUND) THEN
575 RAISE NO_DATA_FOUND;
576 END IF;
577
578 END delete_row;
579
580
581 END igs_ad_ss_appl_comps_pkg;