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