[Home] [Help]
PACKAGE BODY: APPS.IGS_PR_STDNT_PR_UNIT_PKG
Source
1 package body IGS_PR_STDNT_PR_UNIT_PKG AS
2 /* $Header: IGSQI18B.pls 120.0 2005/07/05 11:32:13 appldev noship $ */
3
4 l_rowid VARCHAR2(25);
5 old_references IGS_PR_STDNT_PR_UNIT%RowType;
6 new_references IGS_PR_STDNT_PR_UNIT%RowType;
7
8 PROCEDURE Set_Column_Values (
9 p_action IN VARCHAR2,
10 x_rowid IN VARCHAR2 DEFAULT NULL,
11 x_person_id IN NUMBER DEFAULT NULL,
12 x_course_cd IN VARCHAR2 DEFAULT NULL,
13 x_spo_sequence_number IN NUMBER DEFAULT NULL,
14 x_unit_cd IN VARCHAR2 DEFAULT NULL,
15 x_s_unit_type IN VARCHAR2 DEFAULT NULL,
16 x_creation_date IN DATE DEFAULT NULL,
17 x_created_by IN NUMBER DEFAULT NULL,
18 x_last_update_date IN DATE DEFAULT NULL,
19 x_last_updated_by IN NUMBER DEFAULT NULL,
20 x_last_update_login IN NUMBER DEFAULT NULL
21 ) AS
22
23 CURSOR cur_old_ref_values IS
24 SELECT *
25 FROM IGS_PR_STDNT_PR_UNIT
26 WHERE rowid = x_rowid;
27
28 BEGIN
29
30 l_rowid := x_rowid;
31
32 -- Code for setting the Old and New Reference Values.
33 -- Populate Old Values.
34 Open cur_old_ref_values;
35 Fetch cur_old_ref_values INTO old_references;
36 IF (cur_old_ref_values%NOTFOUND) AND (p_action not in ('INSERT','VALIDATE_INSERT')) THEN
37 Fnd_Message.Set_Name ('FND', 'FORM_RECORD_DELETED');
38 IGS_GE_MSG_STACK.ADD;
39 Close cur_old_ref_values;
40 App_Exception.Raise_Exception;
41
42 Return;
43 END IF;
44 Close cur_old_ref_values;
45
46 -- Populate New Values.
47 new_references.person_id := x_person_id;
48 new_references.course_cd := x_course_cd;
49 new_references.spo_sequence_number := x_spo_sequence_number;
50 new_references.unit_cd := x_unit_cd;
51 new_references.s_unit_type := x_s_unit_type;
52 IF (p_action = 'UPDATE') THEN
53 new_references.creation_date := old_references.creation_date;
54 new_references.created_by := old_references.created_by;
55 ELSE
56 new_references.creation_date := x_creation_date;
57 new_references.created_by := x_created_by;
58 END IF;
59 new_references.last_update_date := x_last_update_date;
60 new_references.last_updated_by := x_last_updated_by;
61 new_references.last_update_login := x_last_update_login;
62
63 END Set_Column_Values;
64 PROCEDURE Check_Parent_Existance AS
65 BEGIN
66
67 IF (((old_references.person_id = new_references.person_id) AND
68 (old_references.course_cd = new_references.course_cd) AND
69 (old_references.spo_sequence_number = new_references.spo_sequence_number)) OR
70 ((new_references.person_id IS NULL) OR
71 (new_references.course_cd IS NULL) OR
72 (new_references.spo_sequence_number IS NULL))) THEN
73 NULL;
74 ELSE
75 IF NOT IGS_PR_STDNT_PR_OU_PKG.Get_PK_For_Validation (
76 new_references.person_id,
77 new_references.course_cd,
78 new_references.spo_sequence_number
79 )THEN
80 Fnd_Message.Set_Name('FND','FORM_RECORD_DELETED');
81 IGS_GE_MSG_STACK.ADD;
82 App_Exception.Raise_Exception;
83
84 END IF;
85
86 END IF;
87
88 IF (((old_references.unit_cd = new_references.unit_cd)) OR
89 ((new_references.unit_cd IS NULL))) THEN
90 NULL;
91 ELSE
92 IF NOT IGS_PS_UNIT_PKG.Get_PK_For_Validation (
93 new_references.unit_cd
94 )THEN
95 Fnd_Message.Set_Name('FND','FORM_RECORD_DELETED');
96 IGS_GE_MSG_STACK.ADD;
97 App_Exception.Raise_Exception;
98
99 END IF;
100
101 END IF;
102
103 END Check_Parent_Existance;
104
105 FUNCTION Get_PK_For_Validation (
106 x_person_id IN NUMBER,
107 x_course_cd IN VARCHAR2,
108 x_spo_sequence_number IN NUMBER,
109 x_unit_cd IN VARCHAR2
110 ) RETURN BOOLEAN AS
111
112 CURSOR cur_rowid IS
113 SELECT rowid
114 FROM IGS_PR_STDNT_PR_UNIT
115 WHERE person_id = x_person_id
116 AND course_cd = x_course_cd
117 AND spo_sequence_number = x_spo_sequence_number
118 AND unit_cd = x_unit_cd
119 FOR UPDATE NOWAIT;
120
121 lv_rowid cur_rowid%RowType;
122
123 BEGIN
124
125 Open cur_rowid;
126 Fetch cur_rowid INTO lv_rowid;
127 IF (cur_rowid%FOUND) THEN
128 Close cur_rowid;
129 Return (TRUE);
130 ELSE
131 Close cur_rowid;
132 Return (FALSE);
133 END IF;
134
135 END Get_PK_For_Validation;
136
137 PROCEDURE GET_FK_IGS_PR_STDNT_PR_OU (
138 x_person_id IN NUMBER,
139 x_course_cd IN VARCHAR2,
140 x_sequence_number IN NUMBER
141 ) AS
142
143 CURSOR cur_rowid IS
144 SELECT rowid
145 FROM IGS_PR_STDNT_PR_UNIT
146 WHERE person_id = x_person_id
147 AND course_cd = x_course_cd
148 AND spo_sequence_number = x_sequence_number ;
149
150 lv_rowid cur_rowid%RowType;
151
152 BEGIN
153
154 Open cur_rowid;
155 Fetch cur_rowid INTO lv_rowid;
156 IF (cur_rowid%FOUND) THEN
157 Fnd_Message.Set_Name ('IGS', 'IGS_PR_SPU_SPO_FK');
158 IGS_GE_MSG_STACK.ADD;
159 Close cur_rowid;
160 App_Exception.Raise_Exception;
161
162 Return;
163 END IF;
164 Close cur_rowid;
165
166 END GET_FK_IGS_PR_STDNT_PR_OU;
167
168 PROCEDURE GET_FK_IGS_PS_UNIT (
169 x_unit_cd IN VARCHAR2
170 ) AS
171
172 CURSOR cur_rowid IS
173 SELECT rowid
174 FROM IGS_PR_STDNT_PR_UNIT
175 WHERE unit_cd = x_unit_cd ;
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 Fnd_Message.Set_Name ('IGS', 'IGS_PR_SPU_UN_FK');
185 IGS_GE_MSG_STACK.ADD;
186 Close cur_rowid;
187 App_Exception.Raise_Exception;
188
189 Return;
190 END IF;
191 Close cur_rowid;
192
193 END GET_FK_IGS_PS_UNIT;
194
195 PROCEDURE Before_DML (
196 p_action IN VARCHAR2,
197 x_rowid IN VARCHAR2 DEFAULT NULL,
198 x_person_id IN NUMBER DEFAULT NULL,
199 x_course_cd IN VARCHAR2 DEFAULT NULL,
200 x_spo_sequence_number IN NUMBER DEFAULT NULL,
201 x_unit_cd IN VARCHAR2 DEFAULT NULL,
202 x_s_unit_type IN VARCHAR2 DEFAULT NULL,
203 x_creation_date IN DATE DEFAULT NULL,
204 x_created_by IN NUMBER DEFAULT NULL,
205 x_last_update_date IN DATE DEFAULT NULL,
206 x_last_updated_by IN NUMBER DEFAULT NULL,
207 x_last_update_login IN NUMBER DEFAULT NULL
208 ) AS
209 BEGIN
210
211 Set_Column_Values (
212 p_action,
213 x_rowid,
214 x_person_id,
215 x_course_cd,
216 x_spo_sequence_number,
217 x_unit_cd,
218 x_s_unit_type,
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 Check_Parent_Existance;
229 IF GET_PK_FOR_VALIDATION(
230 new_references.person_id,
231 new_references.course_cd,
232 new_references.spo_sequence_number,
233 new_references.unit_cd) 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_CONSTRAINTS;
239
240 ELSIF (p_action = 'UPDATE') THEN
241 -- Call all the procedures related to Before Update.
242
243 Check_Parent_Existance;
244 CHECK_CONSTRAINTS;
245
246 ELSIF (p_action = 'VALIDATE_INSERT') THEN
247 IF GET_PK_FOR_VALIDATION(
248 new_references.person_id,
249 new_references.course_cd,
250 new_references.spo_sequence_number,
251 new_references.unit_cd) THEN
252 Fnd_Message.Set_Name('IGS','IGS_GE_RECORD_ALREADY_EXISTS');
253 IGS_GE_MSG_STACK.ADD;
254 App_Exception.Raise_Exception;
255 END IF;
256 CHECK_CONSTRAINTS;
257
258 ELSIF (p_action = 'VALIDATE_UPDATE') THEN
259 CHECK_CONSTRAINTS;
260
261 END IF;
262
263 END Before_DML;
264
265 procedure INSERT_ROW (
266 X_ROWID in out NOCOPY VARCHAR2,
267 X_PERSON_ID in NUMBER,
268 X_COURSE_CD in VARCHAR2,
269 X_SPO_SEQUENCE_NUMBER in NUMBER,
270 X_UNIT_CD in VARCHAR2,
271 X_S_UNIT_TYPE in VARCHAR2,
272 X_MODE in VARCHAR2 default 'R'
273 ) AS
274 cursor C is select ROWID from IGS_PR_STDNT_PR_UNIT
275 where PERSON_ID = X_PERSON_ID
276 and COURSE_CD = X_COURSE_CD
277 and SPO_SEQUENCE_NUMBER = X_SPO_SEQUENCE_NUMBER
278 and UNIT_CD = X_UNIT_CD;
279 X_LAST_UPDATE_DATE DATE;
280 X_LAST_UPDATED_BY NUMBER;
281 X_LAST_UPDATE_LOGIN NUMBER;
282 begin
283 X_LAST_UPDATE_DATE := SYSDATE;
284 if(X_MODE = 'I') then
285 X_LAST_UPDATED_BY := 1;
286 X_LAST_UPDATE_LOGIN := 0;
287 elsif (X_MODE IN ('R', 'S')) then
288 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
289 if X_LAST_UPDATED_BY is NULL then
290 X_LAST_UPDATED_BY := -1;
291 end if;
292 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
293 if X_LAST_UPDATE_LOGIN is NULL then
294 X_LAST_UPDATE_LOGIN := -1;
295 end if;
296 else
297 FND_MESSAGE.SET_NAME( 'FND', 'SYSTEM-INVALID ARGS');
298 IGS_GE_MSG_STACK.ADD;
299 app_exception.raise_exception;
300 end if;
301 Before_DML (
302 p_action => 'INSERT',
303 x_rowid => x_rowid ,
304 x_person_id => x_person_id ,
305 x_course_cd => x_course_cd ,
306 x_spo_sequence_number => x_spo_sequence_number ,
307 x_unit_cd => x_unit_cd ,
308 x_s_unit_type => x_s_unit_type ,
309 x_creation_date => x_last_update_date ,
310 x_created_by => x_last_updated_by ,
311 x_last_update_date => x_last_update_date ,
312 x_last_updated_by => x_last_updated_by ,
313 x_last_update_login => X_last_update_login
314 ) ;
315
316 IF (x_mode = 'S') THEN
317 igs_sc_gen_001.set_ctx('R');
318 END IF;
319 insert into IGS_PR_STDNT_PR_UNIT (
320 PERSON_ID,
321 COURSE_CD,
322 SPO_SEQUENCE_NUMBER,
323 UNIT_CD,
324 S_UNIT_TYPE,
325 CREATION_DATE,
326 CREATED_BY,
327 LAST_UPDATE_DATE,
328 LAST_UPDATED_BY,
329 LAST_UPDATE_LOGIN
330 ) values (
331 NEW_REFERENCES.PERSON_ID,
332 NEW_REFERENCES.COURSE_CD,
333 NEW_REFERENCES.SPO_SEQUENCE_NUMBER,
334 NEW_REFERENCES.UNIT_CD,
335 NEW_REFERENCES.S_UNIT_TYPE,
336 X_LAST_UPDATE_DATE,
337 X_LAST_UPDATED_BY,
338 X_LAST_UPDATE_DATE,
339 X_LAST_UPDATED_BY,
340 X_LAST_UPDATE_LOGIN
341 );
342 IF (x_mode = 'S') THEN
343 igs_sc_gen_001.unset_ctx('R');
344 END IF;
345
346
347 open c;
348 fetch c into X_ROWID;
349 if (c%notfound) then
350 close c;
351 raise no_data_found;
352 end if;
353 close c;
354 EXCEPTION
355 WHEN OTHERS THEN
356 IF (SQLCODE IN (-28115, -28113, -28111)) THEN
357 fnd_message.set_name ('IGS', 'IGS_SC_POLICY_EXCEPTION');
358 fnd_message.set_token ('ERR_CD', SQLCODE);
359 igs_ge_msg_stack.add;
360 igs_sc_gen_001.unset_ctx('R');
361 app_exception.raise_exception;
362 ELSE
363 igs_sc_gen_001.unset_ctx('R');
364 RAISE;
365 END IF;
366
367 end INSERT_ROW;
368
369 procedure LOCK_ROW (
370 X_ROWID in VARCHAR2,
371 X_PERSON_ID in NUMBER,
372 X_COURSE_CD in VARCHAR2,
373 X_SPO_SEQUENCE_NUMBER in NUMBER,
374 X_UNIT_CD in VARCHAR2,
375 X_S_UNIT_TYPE in VARCHAR2
376 ) AS
377 cursor c1 is select
378 ROWID ,
379 PERSON_ID ,
380 COURSE_CD ,
381 SPO_SEQUENCE_NUMBER ,
382 UNIT_CD ,
383 S_UNIT_TYPE
384 from IGS_PR_STDNT_PR_UNIT
385 where ROWID = X_ROWID for update nowait;
386 tlinfo c1%rowtype;
387
388 begin
389 open c1;
390 fetch c1 into tlinfo;
391 if (c1%notfound) then
392 fnd_message.set_name('FND', 'FORM_RECORD_DELETED');
393 IGS_GE_MSG_STACK.ADD;
394 close c1;
395 app_exception.raise_exception;
396
397 return;
398 end if;
399 close c1;
400
401 if (
402 (tlinfo.PERSON_ID = X_PERSON_ID) AND
403 (tlinfo.COURSE_CD = X_COURSE_CD) AND
404 (tlinfo.SPO_SEQUENCE_NUMBER = X_SPO_SEQUENCE_NUMBER) AND
405 (tlinfo.UNIT_CD = X_UNIT_CD) AND
406 (tlinfo.S_UNIT_TYPE = X_S_UNIT_TYPE)
407 ) then
408 null;
409 else
410 fnd_message.set_name('FND', 'FORM_RECORD_CHANGED');
411 IGS_GE_MSG_STACK.ADD;
412 app_exception.raise_exception;
413 end if;
414 return;
415 end LOCK_ROW;
416
417 procedure UPDATE_ROW (
418 X_ROWID in VARCHAR2,
419 X_PERSON_ID in NUMBER,
420 X_COURSE_CD in VARCHAR2,
421 X_SPO_SEQUENCE_NUMBER in NUMBER,
422 X_UNIT_CD in VARCHAR2,
423 X_S_UNIT_TYPE in VARCHAR2,
424 X_MODE in VARCHAR2 default 'R'
425 ) AS
426 X_LAST_UPDATE_DATE DATE;
427 X_LAST_UPDATED_BY NUMBER;
428 X_LAST_UPDATE_LOGIN NUMBER;
429 begin
430 X_LAST_UPDATE_DATE := SYSDATE;
431 if(X_MODE = 'I') then
432 X_LAST_UPDATED_BY := 1;
433 X_LAST_UPDATE_LOGIN := 0;
434 elsif (X_MODE IN ('R', 'S')) then
435 X_LAST_UPDATED_BY := FND_GLOBAL.USER_ID;
436 if X_LAST_UPDATED_BY is NULL then
437 X_LAST_UPDATED_BY := -1;
438 end if;
439 X_LAST_UPDATE_LOGIN :=FND_GLOBAL.LOGIN_ID;
440 if X_LAST_UPDATE_LOGIN is NULL then
441 X_LAST_UPDATE_LOGIN := -1;
442 end if;
443 else
444 FND_MESSAGE.SET_NAME('FND', 'SYSTEM-INVALID ARGS');
445 IGS_GE_MSG_STACK.ADD;
446 app_exception.raise_exception;
447 end if;
448 Before_DML (
449 p_action => 'UPDATE',
450 x_rowid => x_rowid ,
451 x_person_id => x_person_id ,
452 x_course_cd => x_course_cd ,
453 x_spo_sequence_number => x_spo_sequence_number ,
454 x_unit_cd => x_unit_cd ,
455 x_s_unit_type => x_s_unit_type ,
456 x_creation_date => x_last_update_date ,
457 x_created_by => x_last_updated_by ,
458 x_last_update_date => x_last_update_date ,
459 x_last_updated_by => x_last_updated_by ,
460 x_last_update_login => X_last_update_login
461 ) ;
462 IF (x_mode = 'S') THEN
463 igs_sc_gen_001.set_ctx('R');
464 END IF;
465 update IGS_PR_STDNT_PR_UNIT set
466 S_UNIT_TYPE = NEW_REFERENCES.S_UNIT_TYPE,
467 LAST_UPDATE_DATE = X_LAST_UPDATE_DATE,
468 LAST_UPDATED_BY = X_LAST_UPDATED_BY,
469 LAST_UPDATE_LOGIN = X_LAST_UPDATE_LOGIN
470 where ROWID = X_ROWID;
471 if (sql%notfound) then
472 fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
473 igs_ge_msg_stack.add;
474 igs_sc_gen_001.unset_ctx('R');
475 app_exception.raise_exception;
476 end if;
477 IF (x_mode = 'S') THEN
478 igs_sc_gen_001.unset_ctx('R');
479 END IF;
480
481 EXCEPTION
482 WHEN OTHERS THEN
483 IF (SQLCODE = (-28115)) THEN
484 fnd_message.set_name ('IGS', 'IGS_SC_UPD_POLICY_EXCP');
485 fnd_message.set_token ('ERR_CD', SQLCODE);
486 igs_ge_msg_stack.add;
487 igs_sc_gen_001.unset_ctx('R');
488 app_exception.raise_exception;
489 ELSE
490 igs_sc_gen_001.unset_ctx('R');
491 RAISE;
492 END IF;
493
494 end UPDATE_ROW;
495
496 procedure ADD_ROW (
497 X_ROWID in out NOCOPY VARCHAR2,
498 X_PERSON_ID in NUMBER,
499 X_COURSE_CD in VARCHAR2,
500 X_SPO_SEQUENCE_NUMBER in NUMBER,
501 X_UNIT_CD in VARCHAR2,
502 X_S_UNIT_TYPE in VARCHAR2,
503 X_MODE in VARCHAR2 default 'R'
504 ) AS
505 cursor c1 is select rowid from IGS_PR_STDNT_PR_UNIT
506 where PERSON_ID = X_PERSON_ID
507 and COURSE_CD = X_COURSE_CD
508 and SPO_SEQUENCE_NUMBER = X_SPO_SEQUENCE_NUMBER
509 and UNIT_CD = X_UNIT_CD
510 ;
511 begin
512 open c1;
513 fetch c1 into X_ROWID;
514 if (c1%notfound) then
515 close c1;
516 INSERT_ROW (
517 X_ROWID,
518 X_PERSON_ID,
519 X_COURSE_CD,
520 X_SPO_SEQUENCE_NUMBER,
521 X_UNIT_CD,
522 X_S_UNIT_TYPE,
523 X_MODE);
524 return;
525 end if;
526 close c1;
527 UPDATE_ROW (
528 X_ROWID ,
529 X_PERSON_ID,
530 X_COURSE_CD,
531 X_SPO_SEQUENCE_NUMBER,
532 X_UNIT_CD,
533 X_S_UNIT_TYPE,
534 X_MODE);
535 end ADD_ROW;
536
537 procedure DELETE_ROW (
538 X_ROWID in VARCHAR2,
539 x_mode IN VARCHAR2
540 ) AS
541 begin
542 Before_DML (
543 p_action => 'DELETE',
544 x_rowid => X_ROWID
545 ) ;
546
547 IF (x_mode = 'S') THEN
548 igs_sc_gen_001.set_ctx('R');
549 END IF;
550 delete from IGS_PR_STDNT_PR_UNIT
551 where ROWID = X_ROWID;
552 if (sql%notfound) then
553 fnd_message.set_name ('IGS', 'IGS_SC_POLICY_UPD_DEL_EXCEP');
554 igs_ge_msg_stack.add;
555 igs_sc_gen_001.unset_ctx('R');
556 app_exception.raise_exception;
557 end if;
558 IF (x_mode = 'S') THEN
559 igs_sc_gen_001.unset_ctx('R');
560 END IF;
561
562 end DELETE_ROW;
563
564 PROCEDURE Check_Constraints (
565 Column_Name IN VARCHAR2 DEFAULT NULL,
566 Column_Value IN VARCHAR2 DEFAULT NULL
567 ) AS
568 BEGIN
569
570 IF Column_Name is null THEN
571 NULL;
572 ELSIF upper(Column_name) = 'SPO_SEQUENCE_NUMBER' THEN
573 new_references.SPO_SEQUENCE_NUMBER:= IGS_GE_NUMBER.to_num(COLUMN_VALUE) ;
574
575 ELSIF upper(Column_name) = 'S_UNIT_TYPE' THEN
576 new_references.S_UNIT_TYPE:= COLUMN_VALUE ;
577
578 ELSIF upper(Column_name) = 'UNIT_CD' THEN
579 new_references.UNIT_CD:= COLUMN_VALUE ;
580
581 END IF ;
582
583 IF upper(Column_name) = 'SPO_SEQUENCE_NUMBER' OR COLUMN_NAME IS NULL THEN
584 IF new_references.SPO_SEQUENCE_NUMBER < 1 or new_references.SPO_SEQUENCE_NUMBER > 999999 then
585 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
586 IGS_GE_MSG_STACK.ADD;
587 App_Exception.Raise_Exception ;
588 END IF;
589
590 END IF ;
591
592 IF upper(Column_name) = 'S_UNIT_TYPE' OR COLUMN_NAME IS NULL THEN
593 IF new_references.S_UNIT_TYPE<> upper(new_references.S_UNIT_TYPE) then
594 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
595 IGS_GE_MSG_STACK.ADD;
596 App_Exception.Raise_Exception ;
597 END IF;
598
599 IF new_references.S_UNIT_TYPE not in ('EXCLUDED','REQUIRED') then
600 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
601 IGS_GE_MSG_STACK.ADD;
602 App_Exception.Raise_Exception ;
603 END IF;
604
605 END IF ;
606
607 IF upper(Column_name) = 'UNIT_CD' OR COLUMN_NAME IS NULL THEN
608 IF new_references.UNIT_CD<> upper(new_references.UNIT_CD) then
609 Fnd_Message.Set_Name('IGS','IGS_GE_INVALID_VALUE');
610 IGS_GE_MSG_STACK.ADD;
611 App_Exception.Raise_Exception ;
612 END IF;
613
614 END IF ;
615
616
617 END Check_Constraints;
618
619
620 end IGS_PR_STDNT_PR_UNIT_PKG;