DBA Data[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;