[Home] [Help]
PACKAGE BODY: APPS.IGF_AW_DP_TEACH_PRDS_PKG
Source
1 PACKAGE BODY igf_aw_dp_teach_prds_pkg AS
2 /* $Header: IGFWI61B.pls 120.0 2005/06/01 15:46:00 appldev noship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references igf_aw_dp_teach_prds%ROWTYPE;
6 new_references igf_aw_dp_teach_prds%ROWTYPE;
7
8 PROCEDURE set_column_values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2,
11 x_adteach_id IN NUMBER,
12 x_adterms_id IN NUMBER,
13 x_tp_cal_type IN VARCHAR2,
14 x_tp_sequence_number IN NUMBER,
15 x_tp_perct_num IN NUMBER,
16 x_date_offset_cd IN VARCHAR2,
17 x_attendance_type_code IN VARCHAR2,
18 x_credit_points_num IN NUMBER,
19 x_creation_date IN DATE,
20 x_created_by IN NUMBER,
21 x_last_update_date IN DATE,
22 x_last_updated_by IN NUMBER,
23 x_last_update_login IN NUMBER
24 ) AS
25 /*
26 || Created By : veramach
27 || Created On : 31-OCT-2003
28 || Purpose : Initialises the Old and New references for the columns of the table.
29 || Known limitations, enhancements or remarks :
30 || Change History :
31 || Who When What
32 || (reverse chronological order - newest change first)
33 */
34
35 CURSOR cur_old_ref_values IS
36 SELECT *
37 FROM igf_aw_dp_teach_prds
38 WHERE rowid = x_rowid;
39
40 BEGIN
41
42 l_rowid := x_rowid;
43
44 -- Code for setting the Old and New Reference Values.
45 -- Populate Old Values.
46 OPEN cur_old_ref_values;
47 FETCH cur_old_ref_values INTO old_references;
48 IF ((cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT'))) THEN
49 CLOSE cur_old_ref_values;
50 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
51 igs_ge_msg_stack.add;
52 app_exception.raise_exception;
53 RETURN;
54 END IF;
55 CLOSE cur_old_ref_values;
56
57 -- Populate New Values.
58 new_references.adteach_id := x_adteach_id;
59 new_references.adterms_id := x_adterms_id;
60 new_references.tp_cal_type := x_tp_cal_type;
61 new_references.tp_sequence_number := x_tp_sequence_number;
62 new_references.tp_perct_num := x_tp_perct_num;
63 new_references.date_offset_cd := x_date_offset_cd;
64 new_references.attendance_type_code := x_attendance_type_code;
65 new_references.credit_points_num := x_credit_points_num;
66
67 IF (p_action = 'UPDATE') THEN
68 new_references.creation_date := old_references.creation_date;
69 new_references.created_by := old_references.created_by;
70 ELSE
71 new_references.creation_date := x_creation_date;
72 new_references.created_by := x_created_by;
73 END IF;
74
75 new_references.last_update_date := x_last_update_date;
76 new_references.last_updated_by := x_last_updated_by;
77 new_references.last_update_login := x_last_update_login;
78
79 END set_column_values;
80
81
82 PROCEDURE check_parent_existance AS
83 /*
84 || Created By : veramach
85 || Created On : 31-OCT-2003
86 || Purpose : Checks for the existance of Parent records.
87 || Known limitations, enhancements or remarks :
88 || Change History :
89 || Who When What
90 || (reverse chronological order - newest change first)
91 */
92 BEGIN
93
94 IF (((old_references.adterms_id = new_references.adterms_id)) OR
95 ((new_references.adterms_id IS NULL))) THEN
96 NULL;
97 ELSIF NOT igf_aw_dp_terms_pkg.get_pk_for_validation (
98 new_references.adterms_id
99 ) THEN
100 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
101 igs_ge_msg_stack.add;
102 app_exception.raise_exception;
103 END IF;
104 IF (((old_references.tp_cal_type = new_references.tp_cal_type) AND
105 (old_references.tp_sequence_number = new_references.tp_sequence_number)) OR
106 ((new_references.tp_cal_type IS NULL) OR
107 (new_references.tp_sequence_number IS NULL))) THEN
108 NULL;
109 ELSIF NOT igs_ca_inst_pkg.get_pk_for_validation(
110 new_references.tp_cal_type,
111 new_references.tp_sequence_number
112 ) THEN
113 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
114 igs_ge_msg_stack.add;
115 app_exception.raise_exception;
116 END IF;
117
118 IF (((old_references.date_offset_cd = new_references.date_offset_cd)) OR
119 ((new_references.date_offset_cd IS NULL))) THEN
120 NULL;
121 ELSIF NOT igs_ca_da_pkg.get_pk_for_validation(
122 new_references.date_offset_cd
123 ) THEN
124 fnd_message.set_name ('FND', 'FORM_RECORD_DELETED');
125 igs_ge_msg_stack.add;
126 app_exception.raise_exception;
127 END IF;
128
129 END check_parent_existance;
130
131 PROCEDURE check_uniqueness AS
132 ------------------------------------------------------------------
133 --Created by : veramach, Oracle India
134 --Date created: 06-NOV-2003
135 --
136 --Purpose:Call all unique key constraint functions
137 --
138 --
139 --Known limitations/enhancements and/or remarks:
140 --
141 --Change History:
142 --Who When What
143 -------------------------------------------------------------------
144
145 BEGIN
146 IF ( get_uk_for_validation(
147 new_references.adterms_id,
148 new_references.tp_cal_type,
149 new_references.tp_sequence_number,
150 new_references.date_offset_cd
151 )
152 ) THEN
153 fnd_message.set_name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
154 igs_ge_msg_stack.add;
155 app_exception.raise_exception;
156 END IF;
157 END check_uniqueness;
158
159 FUNCTION get_pk_for_validation (
160 x_adteach_id IN NUMBER
161 ) RETURN BOOLEAN AS
162 /*
163 || Created By : veramach
164 || Created On : 31-OCT-2003
165 || Purpose : Validates the Primary Key of the table.
166 || Known limitations, enhancements or remarks :
167 || Change History :
168 || Who When What
169 || (reverse chronological order - newest change first)
170 */
171 CURSOR cur_rowid IS
172 SELECT rowid
173 FROM igf_aw_dp_teach_prds
174 WHERE adteach_id = x_adteach_id
175 FOR UPDATE NOWAIT;
176
177 lv_rowid cur_rowid%RowType;
178
179 BEGIN
180
181 OPEN cur_rowid;
182 FETCH cur_rowid INTO lv_rowid;
183 IF (cur_rowid%FOUND) THEN
184 CLOSE cur_rowid;
185 RETURN(TRUE);
186 ELSE
187 CLOSE cur_rowid;
188 RETURN(FALSE);
189 END IF;
190
191 END get_pk_for_validation;
192
193
194 PROCEDURE get_fk_igf_aw_dp_terms (
195 x_adterms_id IN NUMBER
196 ) AS
197 /*
198 || Created By : veramach
199 || Created On : 31-OCT-2003
200 || Purpose : Validates the Foreign Keys for the table.
201 || Known limitations, enhancements or remarks :
202 || Change History :
203 || Who When What
204 || (reverse chronological order - newest change first)
205 */
206 CURSOR cur_rowid IS
207 SELECT rowid
208 FROM igf_aw_dp_teach_prds
209 WHERE ((adterms_id = x_adterms_id));
210
211 lv_rowid cur_rowid%RowType;
212
213 BEGIN
214
215 OPEN cur_rowid;
216 FETCH cur_rowid INTO lv_rowid;
217 IF (cur_rowid%FOUND) THEN
218 CLOSE cur_rowid;
219 fnd_message.set_name ('IGF', 'IGF_AW_ADTEACH_ADTERMS_FK');
220 igs_ge_msg_stack.add;
221 app_exception.raise_exception;
222 RETURN;
223 END IF;
224 CLOSE cur_rowid;
225
226 END get_fk_igf_aw_dp_terms;
227
228 PROCEDURE get_fk_igs_ca_inst (
229 x_cal_type IN VARCHAR2,
230 x_sequence_number IN NUMBER
231 ) AS
232 /*
233 || Created By : veramach
234 || Created On : 21-NOV-2003
235 || Purpose : Validates the Foreign Keys for the table.
236 || Known limitations, enhancements or remarks :
237 || Change History :
238 || Who When What
239 || (reverse chronological order - newest change first)
240 */
241 CURSOR cur_rowid IS
242 SELECT rowid
243 FROM igf_aw_dp_teach_prds
244 WHERE ((tp_cal_type = x_cal_type) AND
245 (tp_sequence_number = x_sequence_number));
246
247 lv_rowid cur_rowid%ROWTYPE;
248
249 BEGIN
250
251 OPEN cur_rowid;
252 FETCH cur_rowid INTO lv_rowid;
253 IF (cur_rowid%FOUND) THEN
254 CLOSE cur_rowid;
255 fnd_message.set_name ('IGF', 'IGF_AW_ADTEACH_CI_FK');
256 igs_ge_msg_stack.add;
257 app_exception.raise_exception;
258 RETURN;
259 END IF;
260 CLOSE cur_rowid;
261
262 END get_fk_igs_ca_inst;
263
264 PROCEDURE get_fk_igs_ca_da (
265 x_dt_alias IN VARCHAR2
266 ) AS
267 /*
268 || Created By : veramach
269 || Created On : 21-NOV-2003
270 || Purpose : Validates the Foreign Keys for the table.
271 || Known limitations, enhancements or remarks :
272 || Change History :
273 || Who When What
274 || (reverse chronological order - newest change first)
275 */
276 CURSOR cur_rowid IS
277 SELECT rowid
278 FROM igf_aw_dp_teach_prds
279 WHERE ((date_offset_cd = x_dt_alias));
280
281 lv_rowid cur_rowid%ROWTYPE;
282
283 BEGIN
284
285 OPEN cur_rowid;
286 FETCH cur_rowid INTO lv_rowid;
287 IF (cur_rowid%FOUND) THEN
288 CLOSE cur_rowid;
289 fnd_message.set_name ('IGS', 'IGF_AW_ADTEACH_DA_FK');
290 igs_ge_msg_stack.add;
291 app_exception.raise_exception;
292 RETURN;
293 END IF;
294 CLOSE cur_rowid;
295
296 END get_fk_igs_ca_da;
297
298 FUNCTION get_uk_for_validation(
299 x_adterms_id IN NUMBER,
300 x_tp_cal_type IN VARCHAR2,
301 x_tp_sequence_number IN NUMBER,
302 x_date_offset_cd IN VARCHAR2
303 ) RETURN BOOLEAN AS
304 ------------------------------------------------------------------
305 --Created by : veramach, Oracle India
306 --Date created: 06-NOV-2003
307 --
308 --Purpose:
309 --
310 --
311 --Known limitations/enhancements and/or remarks:
312 --
313 --Change History:
314 --Who When What
315 --bkkumar 27-July-2004 Bug 3783096 Added the uniqueness for
316 -- the column date_offset_cd
317 -------------------------------------------------------------------
318 CURSOR cur_rowid IS
319 SELECT rowid
320 FROM igf_aw_dp_teach_prds
321 WHERE adterms_id = x_adterms_id
322 AND tp_cal_type = x_tp_cal_type
323 AND tp_sequence_number = x_tp_sequence_number
324 AND NVL(date_offset_cd,'*') = NVL(x_date_offset_cd,'*')
325 AND ((l_rowid IS NULL) OR (rowid <> l_rowid));
326
327 lv_rowid cur_rowid%ROWTYPE;
328
329 BEGIN
330
331 OPEN cur_rowid;
332 FETCH cur_rowid INTO lv_rowid;
333 IF (cur_rowid%FOUND) THEN
334 CLOSE cur_rowid;
335 RETURN TRUE;
336 ELSE
337 CLOSE cur_rowid;
338 RETURN FALSE;
339 END IF;
340
341 END get_uk_for_validation;
342
343 PROCEDURE before_dml (
344 p_action IN VARCHAR2,
345 x_rowid IN VARCHAR2,
346 x_adteach_id IN NUMBER,
347 x_adterms_id IN NUMBER,
348 x_tp_cal_type IN VARCHAR2,
349 x_tp_sequence_number IN NUMBER,
350 x_tp_perct_num IN NUMBER,
351 x_date_offset_cd IN VARCHAR2,
352 x_attendance_type_code IN VARCHAR2,
353 x_credit_points_num IN NUMBER,
354 x_creation_date IN DATE,
355 x_created_by IN NUMBER,
356 x_last_update_date IN DATE,
357 x_last_updated_by IN NUMBER,
358 x_last_update_login IN NUMBER
359 ) AS
360 /*
361 || Created By : veramach
362 || Created On : 31-OCT-2003
363 || Purpose : Initialises the columns, Checks Constraints, Calls the
364 || Trigger Handlers for the table, before any DML operation.
365 || Known limitations, enhancements or remarks :
366 || Change History :
367 || Who When What
368 || (reverse chronological order - newest change first)
369 */
370 BEGIN
371
372 set_column_values (
373 p_action,
374 x_rowid,
375 x_adteach_id,
376 x_adterms_id,
377 x_tp_cal_type,
378 x_tp_sequence_number,
379 x_tp_perct_num,
380 x_date_offset_cd,
381 x_attendance_type_code,
382 x_credit_points_num,
383 x_creation_date,
384 x_created_by,
385 x_last_update_date,
386 x_last_updated_by,
387 x_last_update_login
388 );
389
390 IF (p_action = 'INSERT') THEN
391 -- Call all the procedures related to Before Insert.
392 IF ( get_pk_for_validation(
393 new_references.adteach_id
394 )
395 ) THEN
396 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
397 igs_ge_msg_stack.add;
398 app_exception.raise_exception;
399 END IF;
400 check_parent_existance;
401 check_uniqueness;
402 ELSIF (p_action = 'UPDATE') THEN
403 -- Call all the procedures related to Before Update.
404 check_parent_existance;
405 check_uniqueness;
406 ELSIF (p_action = 'VALIDATE_INSERT') THEN
407 -- Call all the procedures related to Before Insert.
408 IF ( get_pk_for_validation (
409 new_references.adteach_id
410 )
411 ) THEN
412 fnd_message.set_name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
413 igs_ge_msg_stack.add;
414 app_exception.raise_exception;
415 END IF;
416 check_uniqueness;
417 END IF;
418
419 END before_dml;
420
421
425 x_adterms_id IN NUMBER,
422 PROCEDURE insert_row (
423 x_rowid IN OUT NOCOPY VARCHAR2,
424 x_adteach_id IN OUT NOCOPY NUMBER,
426 x_tp_cal_type IN VARCHAR2,
427 x_tp_sequence_number IN NUMBER,
428 x_tp_perct_num IN NUMBER,
429 x_date_offset_cd IN VARCHAR2,
430 x_attendance_type_code IN VARCHAR2,
431 x_credit_points_num IN NUMBER,
432 x_mode IN VARCHAR2
433 ) AS
434 /*
435 || Created By : veramach
436 || Created On : 31-OCT-2003
437 || Purpose : Handles the INSERT DML logic for the table.
438 || Known limitations, enhancements or remarks :
439 || Change History :
440 || Who When What
441 || (reverse chronological order - newest change first)
442 */
443
444 x_last_update_date DATE;
445 x_last_updated_by NUMBER;
446 x_last_update_login NUMBER;
447
448 BEGIN
449
450 x_last_update_date := SYSDATE;
451 IF (x_mode = 'I') THEN
452 x_last_updated_by := 1;
453 x_last_update_login := 0;
454 ELSIF (x_mode = 'R') THEN
455 x_last_updated_by := fnd_global.user_id;
456 IF (x_last_updated_by IS NULL) THEN
457 x_last_updated_by := -1;
458 END IF;
459 x_last_update_login := fnd_global.login_id;
460 IF (x_last_update_login IS NULL) THEN
461 x_last_update_login := -1;
462 END IF;
463 ELSE
464 fnd_message.set_name ('FND', 'SYSTEM-INVALID ARGS');
465 fnd_message.set_token ('ROUTINE', 'IGF_AW_DP_TEACH_PRDS_PKG.INSERT_ROW');
466 igs_ge_msg_stack.add;
467 app_exception.raise_exception;
468 END IF;
469
470 x_adteach_id := NULL;
471
472 before_dml(
473 p_action => 'INSERT',
474 x_rowid => x_rowid,
475 x_adteach_id => x_adteach_id,
476 x_adterms_id => x_adterms_id,
477 x_tp_cal_type => x_tp_cal_type,
478 x_tp_sequence_number => x_tp_sequence_number,
479 x_tp_perct_num => x_tp_perct_num,
480 x_date_offset_cd => x_date_offset_cd,
481 x_attendance_type_code => x_attendance_type_code,
482 x_credit_points_num => x_credit_points_num,
483 x_creation_date => x_last_update_date,
484 x_created_by => x_last_updated_by,
485 x_last_update_date => x_last_update_date,
486 x_last_updated_by => x_last_updated_by,
487 x_last_update_login => x_last_update_login
488 );
489
490 INSERT INTO igf_aw_dp_teach_prds (
491 adteach_id,
492 adterms_id,
493 tp_cal_type,
494 tp_sequence_number,
495 tp_perct_num,
496 date_offset_cd,
497 attendance_type_code,
498 credit_points_num,
499 creation_date,
500 created_by,
501 last_update_date,
502 last_updated_by,
503 last_update_login
504 ) VALUES (
505 igf_aw_dp_teach_prds_s.NEXTVAL,
506 new_references.adterms_id,
507 new_references.tp_cal_type,
508 new_references.tp_sequence_number,
509 new_references.tp_perct_num,
510 new_references.date_offset_cd,
511 new_references.attendance_type_code,
512 new_references.credit_points_num,
513 x_last_update_date,
514 x_last_updated_by,
515 x_last_update_date,
516 x_last_updated_by,
517 x_last_update_login
518 ) RETURNING ROWID, adteach_id INTO x_rowid, x_adteach_id;
519
520 END insert_row;
521
522
523 PROCEDURE lock_row (
524 x_rowid IN VARCHAR2,
525 x_adteach_id IN NUMBER,
526 x_adterms_id IN NUMBER,
527 x_tp_cal_type IN VARCHAR2,
528 x_tp_sequence_number IN NUMBER,
529 x_tp_perct_num IN NUMBER,
530 x_date_offset_cd IN VARCHAR2,
531 x_attendance_type_code IN VARCHAR2,
532 x_credit_points_num IN NUMBER
533 ) AS
534 /*
535 || Created By : veramach
536 || Created On : 31-OCT-2003
537 || Purpose : Handles the LOCK mechanism for the table.
538 || Known limitations, enhancements or remarks :
539 || Change History :
540 || Who When What
541 || (reverse chronological order - newest change first)
542 */
543 CURSOR c1 IS
544 SELECT
545 adterms_id,
546 tp_cal_type,
547 tp_sequence_number,
548 tp_perct_num,
549 date_offset_cd,
550 attendance_type_code,
551 credit_points_num
552 FROM igf_aw_dp_teach_prds
556 tlinfo c1%ROWTYPE;
553 WHERE rowid = x_rowid
554 FOR UPDATE NOWAIT;
555
557
558 BEGIN
559
560 OPEN c1;
561 FETCH c1 INTO tlinfo;
562 IF (c1%notfound) THEN
563 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
564 igs_ge_msg_stack.add;
565 CLOSE c1;
566 app_exception.raise_exception;
567 RETURN;
568 END IF;
569 CLOSE c1;
570
571 IF (
572 (tlinfo.adterms_id = x_adterms_id)
573 AND (tlinfo.tp_cal_type = x_tp_cal_type)
574 AND (tlinfo.tp_sequence_number = x_tp_sequence_number)
575 AND (tlinfo.tp_perct_num = x_tp_perct_num)
576 AND ((tlinfo.date_offset_cd = x_date_offset_cd) OR ((tlinfo.date_offset_cd IS NULL) AND (X_date_offset_cd IS NULL)))
577 AND ((tlinfo.attendance_type_code = x_attendance_type_code) OR ((tlinfo.attendance_type_code IS NULL) AND (X_attendance_type_code IS NULL)))
578 AND ((tlinfo.credit_points_num = x_credit_points_num) OR ((tlinfo.credit_points_num IS NULL) AND (X_credit_points_num IS NULL)))
579 ) THEN
580 NULL;
581 ELSE
582 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
583 igs_ge_msg_stack.add;
584 app_exception.raise_exception;
585 END IF;
586
587 RETURN;
588
589 END lock_row;
590
591
592 PROCEDURE update_row (
593 x_rowid IN VARCHAR2,
594 x_adteach_id IN NUMBER,
595 x_adterms_id IN NUMBER,
596 x_tp_cal_type IN VARCHAR2,
597 x_tp_sequence_number IN NUMBER,
598 x_tp_perct_num IN NUMBER,
599 x_date_offset_cd IN VARCHAR2,
600 x_attendance_type_code IN VARCHAR2,
601 x_credit_points_num IN NUMBER,
602 x_mode IN VARCHAR2
603 ) AS
604 /*
605 || Created By : veramach
606 || Created On : 31-OCT-2003
607 || Purpose : Handles the UPDATE DML logic for the table.
608 || Known limitations, enhancements or remarks :
609 || Change History :
610 || Who When What
611 || (reverse chronological order - newest change first)
612 */
613 x_last_update_date DATE ;
614 x_last_updated_by NUMBER;
615 x_last_update_login NUMBER;
616
617 BEGIN
618
619 x_last_update_date := SYSDATE;
620 IF (X_MODE = 'I') THEN
621 x_last_updated_by := 1;
622 x_last_update_login := 0;
623 ELSIF (x_mode = 'R') THEN
624 x_last_updated_by := fnd_global.user_id;
625 IF x_last_updated_by IS NULL THEN
626 x_last_updated_by := -1;
627 END IF;
628 x_last_update_login := fnd_global.login_id;
629 IF (x_last_update_login IS NULL) THEN
630 x_last_update_login := -1;
631 END IF;
632 ELSE
633 fnd_message.set_name( 'FND', 'SYSTEM-INVALID ARGS');
634 fnd_message.set_token ('ROUTINE', 'IGF_AW_DP_TEACH_PRDS_PKG.UPDATE_ROW');
635 igs_ge_msg_stack.add;
636 app_exception.raise_exception;
637 END IF;
638
639 before_dml(
640 p_action => 'UPDATE',
641 x_rowid => x_rowid,
642 x_adteach_id => x_adteach_id,
643 x_adterms_id => x_adterms_id,
644 x_tp_cal_type => x_tp_cal_type,
645 x_tp_sequence_number => x_tp_sequence_number,
646 x_tp_perct_num => x_tp_perct_num,
647 x_date_offset_cd => x_date_offset_cd,
648 x_attendance_type_code => x_attendance_type_code,
649 x_credit_points_num => x_credit_points_num,
650 x_creation_date => x_last_update_date,
651 x_created_by => x_last_updated_by,
652 x_last_update_date => x_last_update_date,
653 x_last_updated_by => x_last_updated_by,
654 x_last_update_login => x_last_update_login
655 );
656
657 UPDATE igf_aw_dp_teach_prds
658 SET
659 adterms_id = new_references.adterms_id,
660 tp_cal_type = new_references.tp_cal_type,
661 tp_sequence_number = new_references.tp_sequence_number,
662 tp_perct_num = new_references.tp_perct_num,
663 date_offset_cd = new_references.date_offset_cd,
664 attendance_type_code = new_references.attendance_type_code,
665 credit_points_num = new_references.credit_points_num,
666 last_update_date = x_last_update_date,
667 last_updated_by = x_last_updated_by,
668 last_update_login = x_last_update_login
669 WHERE rowid = x_rowid;
670
671 IF (SQL%NOTFOUND) THEN
672 RAISE NO_DATA_FOUND;
673 END IF;
674
675 END update_row;
676
677
678 PROCEDURE add_row (
679 x_rowid IN OUT NOCOPY VARCHAR2,
680 x_adteach_id IN OUT NOCOPY NUMBER,
681 x_adterms_id IN NUMBER,
682 x_tp_cal_type IN VARCHAR2,
683 x_tp_sequence_number IN NUMBER,
684 x_tp_perct_num IN NUMBER,
685 x_date_offset_cd IN VARCHAR2,
686 x_attendance_type_code IN VARCHAR2,
687 x_credit_points_num IN NUMBER,
688 x_mode IN VARCHAR2
689 ) AS
690 /*
691 || Created By : veramach
692 || Created On : 31-OCT-2003
693 || Purpose : Adds a row if there is no existing row, otherwise updates existing row in the table.
694 || Known limitations, enhancements or remarks :
695 || Change History :
696 || Who When What
697 || (reverse chronological order - newest change first)
698 */
699 CURSOR c1 IS
700 SELECT rowid
701 FROM igf_aw_dp_teach_prds
702 WHERE adteach_id = x_adteach_id;
703
704 BEGIN
705
706 OPEN c1;
707 FETCH c1 INTO x_rowid;
708 IF (c1%NOTFOUND) THEN
709 CLOSE c1;
710
711 insert_row (
712 x_rowid,
713 x_adteach_id,
714 x_adterms_id,
715 x_tp_cal_type,
716 x_tp_sequence_number,
717 x_tp_perct_num,
718 x_date_offset_cd,
719 x_attendance_type_code,
720 x_credit_points_num,
721 x_mode
722 );
723 RETURN;
724 END IF;
725 CLOSE c1;
726
727 update_row (
728 x_rowid,
729 x_adteach_id,
730 x_adterms_id,
731 x_tp_cal_type,
732 x_tp_sequence_number,
733 x_tp_perct_num,
734 x_date_offset_cd,
735 x_attendance_type_code,
736 x_credit_points_num,
737 x_mode
738 );
739
740 END add_row;
741
742
743 PROCEDURE delete_row (
744 x_rowid IN VARCHAR2
745 ) AS
746 /*
747 || Created By : veramach
748 || Created On : 31-OCT-2003
749 || Purpose : Handles the DELETE DML logic for the table.
750 || Known limitations, enhancements or remarks :
751 || Change History :
752 || Who When What
753 || (reverse chronological order - newest change first)
754 */
755 BEGIN
756
757 before_dml (
758 p_action => 'DELETE',
759 x_rowid => x_rowid
760 );
761
762 DELETE FROM igf_aw_dp_teach_prds
763 WHERE rowid = x_rowid;
764
765 IF (SQL%NOTFOUND) THEN
766 RAISE NO_DATA_FOUND;
767 END IF;
768
769 END delete_row;
770
771
772 END igf_aw_dp_teach_prds_pkg;