[Home] [Help]
PACKAGE BODY: APPS.IGS_FI_FND_SRC_RSTN_PKG
Source
1 package body IGS_FI_FND_SRC_RSTN_PKG AS
2 /* $Header: IGSSI40B.pls 115.3 2002/11/29 03:46:46 nsidana ship $*/
3
4
5
6 l_rowid VARCHAR2(25);
7
8 old_references IGS_FI_FND_SRC_RSTN%RowType;
9
10 new_references IGS_FI_FND_SRC_RSTN%RowType;
11
12
13
14 PROCEDURE Set_Column_Values (
15
16 p_action IN VARCHAR2,
17
18 x_rowid IN VARCHAR2 DEFAULT NULL,
19
20 x_course_cd IN VARCHAR2 DEFAULT NULL,
21
22 x_version_number IN NUMBER DEFAULT NULL,
23
24 x_funding_source IN VARCHAR2 DEFAULT NULL,
25
26 x_dflt_ind IN VARCHAR2 DEFAULT NULL,
27
28 x_restricted_ind IN VARCHAR2 DEFAULT NULL,
29
30 x_creation_date IN DATE DEFAULT NULL,
31
32 x_created_by IN NUMBER DEFAULT NULL,
33
34 x_last_update_date IN DATE DEFAULT NULL,
35
36 x_last_updated_by IN NUMBER DEFAULT NULL,
37
38 x_last_update_login IN NUMBER DEFAULT NULL
39
40 ) AS
41
42
43
44 CURSOR cur_old_ref_values IS
45
46 SELECT *
47
48 FROM IGS_FI_FND_SRC_RSTN
49
50 WHERE rowid = x_rowid;
51
52
53
54 BEGIN
55
56
57
58 l_rowid := x_rowid;
59
60
61
62 -- Code for setting the Old and New Reference Values.
63
64 -- Populate Old Values.
65
66 Open cur_old_ref_values;
67
68 Fetch cur_old_ref_values INTO old_references;
69
70 IF (cur_old_ref_values%NOTFOUND) AND (p_action NOT IN ('INSERT', 'VALIDATE_INSERT')) THEN
71
72 Close cur_old_ref_values;
73 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
74 IGS_GE_MSG_STACK.ADD;
75 App_Exception.Raise_Exception;
76
77
78 Return;
79
80 END IF;
81
82 Close cur_old_ref_values;
83
84
85
86 -- Populate New Values.
87
88 new_references.course_cd := x_course_cd;
89
90 new_references.version_number := x_version_number;
91
92 new_references.funding_source := x_funding_source;
93
94 new_references.dflt_ind := x_dflt_ind;
95
96 new_references.restricted_ind := x_restricted_ind;
97
98 IF (p_action = 'UPDATE') THEN
99
100 new_references.creation_date := old_references.creation_date;
101
102 new_references.created_by := old_references.created_by;
103
104 ELSE
105
106 new_references.creation_date := x_creation_date;
107
108 new_references.created_by := x_created_by;
109
110 END IF;
111
112 new_references.last_update_date := x_last_update_date;
113
114 new_references.last_updated_by := x_last_updated_by;
115
116 new_references.last_update_login := x_last_update_login;
117
118
119
120 END Set_Column_Values;
121
122
123
124 -- Trigger description :-
125
126 -- "OSS_TST".trg_fsr_br_iud
127
128 -- BEFORE INSERT OR DELETE OR UPDATE
129
130 -- ON IGS_FI_FND_SRC_RSTN
131
132 -- FOR EACH ROW
133
134
135
136 PROCEDURE BeforeRowInsertUpdateDelete1(
137
138 p_inserting IN BOOLEAN DEFAULT FALSE,
139
140 p_updating IN BOOLEAN DEFAULT FALSE,
141
142 p_deleting IN BOOLEAN DEFAULT FALSE
143
144 ) AS
145
146 v_message_name varchar2(30);
147
148 v_course_cd IGS_FI_FND_SRC_RSTN.course_cd%TYPE;
149
150 v_version_number IGS_FI_FND_SRC_RSTN.version_number%TYPE;
151
152 v_dflt_ind IGS_FI_FND_SRC_RSTN.dflt_ind%TYPE;
153
154 v_restricted_ind IGS_FI_FND_SRC_RSTN.restricted_ind%TYPE;
155
156 BEGIN
157
158 -- Set variables.
159
160 IF p_deleting THEN
161
162 v_course_cd := old_references.course_cd;
163
164 v_version_number := old_references.version_number;
165
166 ELSE -- p_inserting or p_updating
167
168 v_course_cd := new_references.course_cd;
169
170 v_version_number := new_references.version_number;
171
172 END IF;
173
174 -- Validate the insert/update/delete.
175
176 IF IGS_PS_VAL_CRS.crsp_val_iud_crv_dtl (
177
178 v_course_cd,
179
180 v_version_number,
181
182 v_message_name) = FALSE THEN
183
184 Fnd_Message.Set_Name('IGS',v_message_name);
185 IGS_GE_MSG_STACK.ADD;
186 App_Exception.Raise_Exception;
187
188 END IF;
189
190 -- Validate funding source. Funding source is not updateable.
191
192 IF p_inserting THEN
193
194 IF IGS_PS_VAL_FSr.crsp_val_fsr_fnd_src (
195
196 new_references.funding_source,
197
198 v_message_name) = FALSE THEN
199
200 Fnd_Message.Set_Name('IGS',v_message_name);
201 IGS_GE_MSG_STACK.ADD;
202 App_Exception.Raise_Exception;
203
204 END IF;
205
206 END IF;
207
208 -- Validate restricted/default indicators.
209
210 IF p_inserting OR p_updating THEN
211
212 IF IGS_PS_VAL_FSr.crsp_val_fsr_inds (
213
214 new_references.dflt_ind,
215
216 new_references.restricted_ind,
217
218 v_message_name) = FALSE THEN
219
220 Fnd_Message.Set_Name('IGS',v_message_name);
221 IGS_GE_MSG_STACK.ADD;
222 App_Exception.Raise_Exception;
223
224 END IF;
225
226 END IF;
227
228 -- Create history record for update.
229
230 IF p_updating THEN
231
232 IF old_references.dflt_ind <> new_references.dflt_ind OR
233
234 old_references.restricted_ind <> new_references.restricted_ind THEN
235
236 SELECT DECODE(old_references.dflt_ind,new_references.dflt_ind,NULL,old_references.dflt_ind),
237
238 DECODE(old_references.restricted_ind,new_references.restricted_ind,NULL,old_references.restricted_ind)
239
240 INTO v_dflt_ind,
241
242 v_restricted_ind
243
244 FROM dual;
245
246 IGS_PS_GEN_004.CRSP_INS_FSR_HIST(
247
248 old_references.course_cd,
249
250 old_references.version_number,
251
252 old_references.funding_source,
253
254 old_references.last_update_date,
255
256 new_references.last_update_date,
257
258 old_references.last_updated_by,
259
260 v_dflt_ind,
261
262 v_restricted_ind);
263
264 END IF;
265
266 END IF;
267
268 -- Create history record for deletion.
269
270 IF p_deleting THEN
271
272 IGS_PS_GEN_004.CRSP_INS_FSR_HIST(
273
274 old_references.course_cd,
275
276 old_references.version_number,
277
278 old_references.funding_source,
279
280 old_references.last_update_date,
281
282 SYSDATE,
283
284 old_references.last_updated_by,
285
286 old_references.dflt_ind,
287
288 old_references.restricted_ind);
289
290 END IF;
291
292
293
294
295
296 END BeforeRowInsertUpdateDelete1;
297
298 PROCEDURE Check_Constraints (
299 Column_Name IN VARCHAR2 DEFAULT NULL,
300 Column_Value IN VARCHAR2 DEFAULT NULL
301 )AS
302 BEGIN
303
304 IF Column_Name is NULL THEN
305 NULL;
306 ELSIF upper(Column_Name) = 'DFLT_IND' then
307 new_references.dflt_ind := Column_Value;
308 ELSIF upper(Column_Name) = 'RESTRICTED_IND' then
309 new_references.restricted_ind := Column_Value;
310 ELSIF upper(Column_Name) = 'COURSE_CD' then
311 new_references.course_cd := Column_Value;
312 ELSIF upper(Column_Name) = 'FUNDING_SOURCE' then
313 new_references.funding_source := Column_Value;
314 END IF;
315 IF upper(Column_Name) = 'RESTRICTED_IND' OR column_name is NULL THEN
316 IF new_references.restricted_ind <> 'Y' AND
317 new_references.restricted_ind <> 'N'
318 THEN
319 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
320 IGS_GE_MSG_STACK.ADD;
321 App_Exception.Raise_Exception;
322 END IF;
323 END IF;
324
325 IF upper(Column_Name) = 'DFLT_IND' OR column_name is NULL THEN
326 IF new_references.dflt_ind <> 'Y' AND
327 new_references.dflt_ind <> 'N'
328 THEN
329 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
330 IGS_GE_MSG_STACK.ADD;
331 App_Exception.Raise_Exception;
332 END IF;
333 END IF;
334 IF upper(Column_Name) = 'COURSE_CD' OR
335 column_name is NULL THEN
336 IF new_references.course_cd <> UPPER(new_references.course_cd) THEN
337 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
338 IGS_GE_MSG_STACK.ADD;
339 App_Exception.Raise_Exception;
340 END IF;
341 END IF;
342 IF upper(Column_Name) = 'FUNDING_SOURCE' OR
343 column_name is NULL THEN
344 IF new_references.funding_source <> UPPER(new_references.funding_source) THEN
345 Fnd_Message.Set_Name ('IGS', 'IGS_GE_INVALID_VALUE');
346 IGS_GE_MSG_STACK.ADD;
347 App_Exception.Raise_Exception;
348 END IF;
349 END IF;
350
351 END Check_Constraints;
352 PROCEDURE Check_Parent_Existance AS
353
354 BEGIN
355 IF (((old_references.funding_source = new_references.funding_source)) OR
356 ((new_references.funding_source IS NULL))) THEN
357 NULL;
358 ELSIF NOT IGS_FI_FUND_SRC_PKG.Get_PK_For_Validation (
359 new_references.funding_source
360 ) THEN
361 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
362 IGS_GE_MSG_STACK.ADD;
363 App_Exception.Raise_Exception;
364 END IF;
365 IF (((old_references.course_cd = new_references.course_cd) AND
366 (old_references.version_number = new_references.version_number)) OR
367 ((new_references.course_cd IS NULL) OR
368 (new_references.version_number IS NULL))) THEN
369 NULL;
370 ELSIF NOT IGS_PS_VER_PKG.Get_PK_For_Validation (
371 new_references.course_cd,
372 new_references.version_number
373 ) THEN
374 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
375 IGS_GE_MSG_STACK.ADD;
376 App_Exception.Raise_Exception;
377 END IF;
378 END Check_Parent_Existance;
379
380 FUNCTION Get_PK_For_Validation (
381 x_course_cd IN VARCHAR2,
382 x_version_number IN NUMBER,
383 x_funding_source IN VARCHAR2
384 ) RETURN BOOLEAN AS
385 CURSOR cur_rowid IS
386 SELECT rowid
387 FROM IGS_FI_FND_SRC_RSTN
388 WHERE course_cd = x_course_cd
389 AND version_number = x_version_number
390 AND funding_source = x_funding_source
391 FOR UPDATE NOWAIT;
392 lv_rowid cur_rowid%RowType;
393 BEGIN
394 Open cur_rowid;
395 Fetch cur_rowid INTO lv_rowid;
396 IF (cur_rowid%FOUND) THEN
397 Close cur_rowid;
398 Return (TRUE);
399 ELSE
400 Close cur_rowid;
401 Return (FALSE);
402 END IF;
403 END Get_PK_For_Validation;
404
405
406 PROCEDURE GET_FK_IGS_FI_FUND_SRC (
407 x_funding_source IN VARCHAR2
408 ) AS
409 CURSOR cur_rowid IS
410 SELECT rowid
411 FROM IGS_FI_FND_SRC_RSTN
412 WHERE funding_source = x_funding_source ;
413
414 lv_rowid cur_rowid%RowType;
415 BEGIN
416 Open cur_rowid;
417 Fetch cur_rowid INTO lv_rowid;
418 IF (cur_rowid%FOUND) THEN
419 Close cur_rowid;
420 Fnd_Message.Set_Name ('IGS', 'IGS_FI_FSR_FS_FK');
421 IGS_GE_MSG_STACK.ADD;
422 App_Exception.Raise_Exception;
423 Return;
424 END IF;
425 Close cur_rowid;
426
427 END GET_FK_IGS_FI_FUND_SRC;
428
429
430
431 PROCEDURE GET_FK_IGS_PS_VER (
432
433 x_course_cd IN VARCHAR2,
434
435 x_version_number IN NUMBER
436
437 ) AS
438
439
440
441 CURSOR cur_rowid IS
442
443 SELECT rowid
444
445 FROM IGS_FI_FND_SRC_RSTN
446
447 WHERE course_cd = x_course_cd
448
449 AND version_number = x_version_number ;
450
451
452
453 lv_rowid cur_rowid%RowType;
454
455
456
457 BEGIN
458
459
460
461 Open cur_rowid;
462
463 Fetch cur_rowid INTO lv_rowid;
464
465 IF (cur_rowid%FOUND) THEN
466
467 Close cur_rowid;
468 Fnd_Message.Set_Name ('IGS', 'IGS_FI_FSR_CRV_FK');
469 IGS_GE_MSG_STACK.ADD;
470 App_Exception.Raise_Exception;
471
472
473 Return;
474
475 END IF;
476
477 Close cur_rowid;
478
479
480
481 END GET_FK_IGS_PS_VER;
482
483
484
485 PROCEDURE Before_DML (
486 p_action IN VARCHAR2,
487 x_rowid IN VARCHAR2 DEFAULT NULL,
488 x_course_cd IN VARCHAR2 DEFAULT NULL,
489 x_version_number IN NUMBER DEFAULT NULL,
490 x_funding_source IN VARCHAR2 DEFAULT NULL,
491 x_dflt_ind IN VARCHAR2 DEFAULT NULL,
492 x_restricted_ind IN VARCHAR2 DEFAULT NULL,
493 x_creation_date IN DATE DEFAULT NULL,
494 x_created_by IN NUMBER DEFAULT NULL,
495 x_last_update_date IN DATE DEFAULT NULL,
496 x_last_updated_by IN NUMBER DEFAULT NULL,
497 x_last_update_login IN NUMBER DEFAULT NULL
498 ) AS
499
500 BEGIN
501
502
503
504 Set_Column_Values (
505
506 p_action,
507
508 x_rowid,
509
510 x_course_cd,
511
512 x_version_number,
513
514 x_funding_source,
515
516 x_dflt_ind,
517
518 x_restricted_ind,
519
520 x_creation_date,
521
522 x_created_by,
523
524 x_last_update_date,
525
526 x_last_updated_by,
527
528 x_last_update_login
529
530 );
531
532
533
534 IF (p_action = 'INSERT') THEN
535
536 -- Call all the procedures related to Before Insert.
537
538 BeforeRowInsertUpdateDelete1 ( p_inserting => TRUE );
539 IF Get_PK_For_Validation ( new_references.course_cd,
540 new_references.version_number,
541 new_references.funding_source ) THEN
542 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
543 IGS_GE_MSG_STACK.ADD;
544 App_Exception.Raise_Exception;
545 END IF;
546
547 Check_Constraints;
548
549 Check_Parent_Existance;
550
551 ELSIF (p_action = 'UPDATE') THEN
552
556
553 -- Call all the procedures related to Before Update.
554
555 BeforeRowInsertUpdateDelete1 ( p_updating => TRUE );
557 Check_Constraints;
558
559 Check_Parent_Existance;
560
561 ELSIF (p_action = 'DELETE') THEN
562
563 -- Call all the procedures related to Before Delete.
564
565 BeforeRowInsertUpdateDelete1 ( p_deleting => TRUE );
566
567 ELSIF (p_action = 'VALIDATE_INSERT') THEN
568 -- Call all the procedures related to Before Insert.
569 IF Get_PK_For_Validation ( new_references.course_cd,
570 new_references.version_number,
571 new_references.funding_source ) THEN
572 Fnd_Message.Set_Name ('IGS', 'IGS_GE_RECORD_ALREADY_EXISTS');
573 IGS_GE_MSG_STACK.ADD;
574 App_Exception.Raise_Exception;
575 END IF;
576 Check_Constraints;
577 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
578 Check_Constraints;
579 END IF;
580 END Before_DML;
581
582 procedure INSERT_ROW (
583 X_ROWID in out NOCOPY VARCHAR2,
584 X_COURSE_CD in VARCHAR2,
585 X_FUNDING_SOURCE in VARCHAR2,
586 X_VERSION_NUMBER in NUMBER,
587 X_DFLT_IND in VARCHAR2,
588 X_RESTRICTED_IND in VARCHAR2,
589 X_MODE in VARCHAR2 default 'R'
590 ) AS
591 cursor C is select ROWID from IGS_FI_FND_SRC_RSTN
592 where COURSE_CD = X_COURSE_CD
593 and FUNDING_SOURCE = X_FUNDING_SOURCE
594 and VERSION_NUMBER = X_VERSION_NUMBER;
595 X_LAST_UPDATE_DATE DATE;
596 X_LAST_UPDATED_BY NUMBER;
597 X_LAST_UPDATE_LOGIN NUMBER;
598 begin
599 X_LAST_UPDATE_DATE := SYSDATE;
600 if(X_MODE = 'I') then
601 X_LAST_UPDATED_BY := 1;
602 X_LAST_UPDATE_LOGIN := 0;
603 elsif (X_MODE = 'R') then
604 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
605 if X_LAST_UPDATED_BY is NULL then
606 X_LAST_UPDATED_BY := -1;
607 end if;
608 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
609 if X_LAST_UPDATE_LOGIN is NULL then
610 X_LAST_UPDATE_LOGIN := -1;
611 end if;
612 else
613 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
614 IGS_GE_MSG_STACK.ADD;
615 app_exception.raise_exception;
616 end if;
617
618
619
620 Before_DML(
621 p_action=>'INSERT',
622 x_rowid=>X_ROWID,
623 x_course_cd=>X_COURSE_CD,
624 x_dflt_ind=>NVL(X_DFLT_IND,'N'),
625 x_funding_source=>X_FUNDING_SOURCE,
626 x_restricted_ind=>NVL(X_RESTRICTED_IND,'Y'),
627 x_version_number=>X_VERSION_NUMBER,
628 x_creation_date=>X_LAST_UPDATE_DATE,
629 x_created_by=>X_LAST_UPDATED_BY,
630 x_last_update_date=>X_LAST_UPDATE_DATE,
631 x_last_updated_by=>X_LAST_UPDATED_BY,
632 x_last_update_login=>X_LAST_UPDATE_LOGIN
633 );
634
635 insert into IGS_FI_FND_SRC_RSTN (
636 COURSE_CD,
637 VERSION_NUMBER,
638 FUNDING_SOURCE,
639 DFLT_IND,
640 RESTRICTED_IND,
641 CREATION_DATE,
642 CREATED_BY,
643 LAST_UPDATE_DATE,
644 LAST_UPDATED_BY,
645 LAST_UPDATE_LOGIN
646 ) values (
647 NEW_REFERENCES.COURSE_CD,
648 NEW_REFERENCES.VERSION_NUMBER,
649 NEW_REFERENCES.FUNDING_SOURCE,
650 NEW_REFERENCES.DFLT_IND,
651 NEW_REFERENCES.RESTRICTED_IND,
652 X_LAST_UPDATE_DATE,
653 X_LAST_UPDATED_BY,
654 X_LAST_UPDATE_DATE,
655 X_LAST_UPDATED_BY,
656 X_LAST_UPDATE_LOGIN
657 );
658
659 open c;
660 fetch c into X_ROWID;
661 if (c%notfound) then
662 close c;
663 raise no_data_found;
664 end if;
665 close c;
666
667 end INSERT_ROW;
668
669 procedure LOCK_ROW (
670 X_ROWID in VARCHAR2,
671 X_COURSE_CD in VARCHAR2,
672 X_FUNDING_SOURCE in VARCHAR2,
673 X_VERSION_NUMBER in NUMBER,
674 X_DFLT_IND in VARCHAR2,
675 X_RESTRICTED_IND in VARCHAR2
676 ) AS
677 cursor c1 is select
678 DFLT_IND,
679 RESTRICTED_IND
680 from IGS_FI_FND_SRC_RSTN
681 where ROWID=X_ROWID
682 for update nowait;
683 tlinfo c1%rowtype;
684
685 begin
686 open c1;
687 fetch c1 into tlinfo;
688 if (c1%notfound) then
689 close c1;
690 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
691 IGS_GE_MSG_STACK.ADD;
692 app_exception.raise_exception;
693 return;
694 end if;
695 close c1;
696
697 if ( (tlinfo.DFLT_IND = X_DFLT_IND)
698 AND (tlinfo.RESTRICTED_IND = X_RESTRICTED_IND)
699 ) then
700 null;
701 else
702 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
703 IGS_GE_MSG_STACK.ADD;
704 app_exception.raise_exception;
705 end if;
706 return;
707 end LOCK_ROW;
708
709 procedure UPDATE_ROW (
710 X_ROWID in VARCHAR2,
711 X_COURSE_CD in VARCHAR2,
712 X_FUNDING_SOURCE in VARCHAR2,
713 X_VERSION_NUMBER in NUMBER,
714 X_DFLT_IND in VARCHAR2,
715 X_RESTRICTED_IND in VARCHAR2,
716 X_MODE in VARCHAR2 default 'R'
717 ) AS
718 X_LAST_UPDATE_DATE DATE;
719 X_LAST_UPDATED_BY NUMBER;
720 X_LAST_UPDATE_LOGIN NUMBER;
721 begin
722 X_LAST_UPDATE_DATE := SYSDATE;
723 if(X_MODE = 'I') then
724 X_LAST_UPDATED_BY := 1;
725 X_LAST_UPDATE_LOGIN := 0;
726 elsif (X_MODE = 'R') then
727 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
728 if X_LAST_UPDATED_BY is NULL then
729 X_LAST_UPDATED_BY := -1;
730 end if;
731 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
732 if X_LAST_UPDATE_LOGIN is NULL then
733 X_LAST_UPDATE_LOGIN := -1;
734 end if;
735 else
736 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
737 IGS_GE_MSG_STACK.ADD;
738 app_exception.raise_exception;
739 end if;
740
741 Before_DML(
742
743 p_action=>'UPDATE',
744
745 x_rowid=>X_ROWID,
746
747 x_course_cd=>X_COURSE_CD,
748
749 x_dflt_ind=>X_DFLT_IND,
750
751 x_funding_source=>X_FUNDING_SOURCE,
752
753 x_restricted_ind=>X_RESTRICTED_IND,
754
755 x_version_number=>X_VERSION_NUMBER,
756
757 x_creation_date=>X_LAST_UPDATE_DATE,
758
759 x_created_by=>X_LAST_UPDATED_BY,
760
761 x_last_update_date=>X_LAST_UPDATE_DATE,
762
763 x_last_updated_by=>X_LAST_UPDATED_BY,
764
765 x_last_update_login=>X_LAST_UPDATE_LOGIN
766
767 );
768
769
770 update IGS_FI_FND_SRC_RSTN set
771 DFLT_IND = NEW_REFERENCES.DFLT_IND,
772 RESTRICTED_IND = NEW_REFERENCES.RESTRICTED_IND,
773 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
774 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
775 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
776 where ROWID=X_ROWID
777 ;
778 if (sql%notfound) then
779 raise no_data_found;
780 end if;
781
782 end UPDATE_ROW;
783
784 procedure ADD_ROW (
785 X_ROWID in out NOCOPY VARCHAR2,
786 X_COURSE_CD in VARCHAR2,
787 X_FUNDING_SOURCE in VARCHAR2,
788 X_VERSION_NUMBER in NUMBER,
789 X_DFLT_IND in VARCHAR2,
790 X_RESTRICTED_IND in VARCHAR2,
791 X_MODE in VARCHAR2 default 'R'
792 ) AS
793 cursor c1 is select rowid from IGS_FI_FND_SRC_RSTN
794 where COURSE_CD = X_COURSE_CD
795 and FUNDING_SOURCE = X_FUNDING_SOURCE
796 and VERSION_NUMBER = X_VERSION_NUMBER
797 ;
798 begin
799 open c1;
800 fetch c1 into X_ROWID;
801 if (c1%notfound) then
802 close c1;
803 INSERT_ROW (
804 X_ROWID,
805 X_COURSE_CD,
806 X_FUNDING_SOURCE,
807 X_VERSION_NUMBER,
808 X_DFLT_IND,
809 X_RESTRICTED_IND,
810 X_MODE);
811 return;
812 end if;
813 close c1;
814 UPDATE_ROW (
815 X_ROWID,
816 X_COURSE_CD,
817 X_FUNDING_SOURCE,
818 X_VERSION_NUMBER,
819 X_DFLT_IND,
820 X_RESTRICTED_IND,
821 X_MODE);
822 end ADD_ROW;
823
824 procedure DELETE_ROW (
825 X_ROWID in VARCHAR2
826 ) AS
827 begin
828
829 Before_DML (
830 p_action => 'DELETE',
831 x_rowid => X_ROWID
832 );
833 delete from IGS_FI_FND_SRC_RSTN
834 where ROWID=X_ROWID;
835 if (sql%notfound) then
836 raise no_data_found;
837 end if;
838 end DELETE_ROW;
839 end IGS_FI_FND_SRC_RSTN_PKG;