DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_GE_VAL_PARAM

Source


1 Package Body           IGS_GE_VAL_PARAM
2 /* $Header: IGSGE08B.pls 120.0 2005/06/01 15:52:59 appldev noship $ */
3 
4 AS
5 -- Global Variables
6 gv_other_detail VARCHAR2(256)   := NULL;
7 -- Module:      repp_val_unit_cd
8 -- Purpose:     validation for unit code
9 --
10 -- MODIFICATION HISTORY
11 -- IGS_PE_PERSON       Date            Comments
12 -- ---------    --------        ------------------------------------------
13 -- MSONTER      21/08/98        Initial creation of function
14 -- smvk         09-Jul-2004     Bug # 3676145. Modified the cursors c_uc and c_mode to select active (not closed) unit classes.
15 FUNCTION repp_val_unit_cd( p_unit_cd IN OUT NOCOPY IGS_PS_UNIT_VER_all.unit_cd%TYPE,
16                         p_msg_name OUT NOCOPY VARCHAR2)
17 RETURN  BOOLEAN
18 AS
19 --
20 -- Local Cursors
21 CURSOR c_unit(cp_unit_cd IGS_PS_UNIT_VER.unit_cd%TYPE)
22 IS
23 SELECT
24         'x'
25 FROM    IGS_PS_UNIT_VER    UV,
26         IGS_PS_UNIT_STAT     UNS
27 WHERE
28         uv.unit_cd              LIKE    cp_unit_cd
29 AND     uns.unit_status         =       uv.unit_status
30 AND     uns.s_unit_status       =       'ACTIVE';
31 --
32 -- Local Variables
33 v_unit_ok       VARCHAR2(1)     := NULL;
34 BEGIN
35         --
36         -- check for uppper case requirement
37         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('UNIT_CD','IGS_PS_UNIT_VER')
38         THEN
39                 p_unit_cd := UPPER(p_unit_cd);
40         END IF;
41         --
42         -- validate IGS_PS_UNIT entered
43         IF c_unit%ISOPEN
44         THEN
45                 CLOSE c_unit;
46         END IF;
47         OPEN c_unit(p_unit_cd);
48         FETCH c_unit INTO v_unit_ok;
49         IF c_unit%NOTFOUND
50         THEN
51                 CLOSE c_unit;
52                 p_msg_name := 'IGS_GE_VAL_DOES_NOT_XS';
53                 RETURN FALSE;
54         END IF;
55         RETURN TRUE;
56 EXCEPTION
57         WHEN OTHERS THEN
58                 IF c_unit%ISOPEN
59                 THEN
60                         CLOSE c_unit;
61                 END IF;
62 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
63                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
64                 RETURN FALSE;
65 END;    -- repp_val_unit_cd
66 -- Module:      repp_val_location
67 -- Purpose:     validation for unit code
68 --
69 -- MODIFICATION HISTORY
70  -- Person       Date            Comments
71 -- ---------    --------        ------------------------------------------
72 -- MSONTER      21/08/98        Initial creation of function
73 FUNCTION repp_val_location( p_location_cd IN OUT NOCOPY IGS_AD_LOCATION_ALL.location_cd%TYPE,
74                         p_msg_name OUT NOCOPY VARCHAR2)
75 RETURN  BOOLEAN
76 AS
77 --
78 -- Local Cursors
79 CURSOR c_loc(cp_loc_cd IGS_AD_LOCATION.location_cd%TYPE)
80 IS
81 SELECT
82         'x'
83 FROM    IGS_AD_LOCATION        LOC
84 WHERE
85         loc.location_cd LIKE    cp_loc_cd
86 AND     loc.closed_ind  =       'N';
87 --
88 -- Local Variables
89 v_loc_ok        VARCHAR2(1)     := NULL;
90 BEGIN
91         --
92         -- check for uppper case requirement
93         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('LOCATION_CD','LOCATION')
94         THEN
95                 p_location_cd := UPPER(p_location_cd);
96         END IF;
97         --
98          -- validate unit entered
99         IF c_loc%ISOPEN
100         THEN
101                 CLOSE c_loc;
102         END IF;
103         OPEN c_loc(p_location_cd);
104         FETCH c_loc INTO v_loc_ok;
105         IF c_loc%NOTFOUND
106         THEN
107                 CLOSE c_loc;
108                 p_msg_name := 'IGS_GE_INVALID_VALUE';
109                 RETURN FALSE;
110         END IF;
111         RETURN TRUE;
112 EXCEPTION
113         WHEN OTHERS THEN
114                 IF c_loc%ISOPEN
115                 THEN
116                         CLOSE c_loc;
117                 END IF;
118 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
119                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
120                 RETURN FALSE;
121 END;    -- repp_val_location_cd
122 -- Module:      repp_val_att_mode
123 -- Purpose:     validation for attendance modes
124 --
125 -- MODIFICATION HISTORY
126 -- Person       Date            Comments
127 -- ---------    --------        ------------------------------------------
128 -- MSONTER      21/08/98        Initial creation of function
129  FUNCTION repp_val_att_mode( p_att_mode IN OUT NOCOPY IGS_EN_ATD_MODE_ALL.ATTENDANCE_MODE%TYPE,
130                         p_msg_name OUT NOCOPY VARCHAR2)
131 RETURN  BOOLEAN
132 AS
133 --
134 -- Local Cursors
135 CURSOR c_att(cp_att_mode IGS_EN_ATD_MODE.ATTENDANCE_MODE%TYPE)
136 IS
137 SELECT
138         'x'
139 FROM    IGS_EN_ATD_MODE atm
140 WHERE
141         atm.attendance_mode     LIKE    cp_att_mode
142 AND     atm.closed_ind          =       'N';
143 --
144 -- Local Variables
145 v_ok    VARCHAR2(1)     := NULL;
146 BEGIN
147         --
148         -- check for uppper case requirement
149         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('IGS_EN_ATD_MODE','IGS_EN_ATD_MODE')
150         THEN
151                 p_att_mode := UPPER(p_att_mode);
152         END IF;
153         --
154          -- validate unit entered
155         IF c_att%ISOPEN
156         THEN
157                 CLOSE c_att;
158         END IF;
159         OPEN c_att(p_att_mode);
160         FETCH c_att INTO v_ok;
161         IF c_att%NOTFOUND
162         THEN
163                 CLOSE c_att;
164                 p_msg_name := 'IGS_GE_INVALID_VALUE';
165                 RETURN FALSE;
166         END IF;
167         RETURN TRUE;
168 EXCEPTION
169         WHEN OTHERS THEN
170                 IF c_att%ISOPEN
171                 THEN
172                         CLOSE c_att;
173                 END IF;
174 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
175                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
176                 RETURN FALSE;
177 END;    -- repp_val_att_mode
178 -- Module:      repp_val_att_type
179 -- Purpose:     validation for attendance types
180 --
181 -- MODIFICATION HISTORY
182 -- PERSON       Date            Comments
183 -- ---------    --------        ------------------------------------------
184 -- MSONTER      21/08/98        Initial creation of function
185 FUNCTION repp_val_att_type( p_att_type IN OUT NOCOPY IGS_EN_ATD_TYPE_ALL.attendance_type%TYPE,
186                         p_msg_name OUT NOCOPY VARCHAR2)
187 RETURN  BOOLEAN
188 AS
189 --
190 -- Local Cursors
191 CURSOR c_att(cp_att_type IGS_EN_ATD_TYPE.ATTENDANCE_TYPE%TYPE)
192 IS
193 SELECT
194         'x'
195 FROM    IGS_EN_ATD_TYPE att
196 WHERE
197         att.attendance_type     LIKE    cp_att_type
198 AND     att.closed_ind          =       'N';
199 --
200 -- Local Variables
201 v_att_ok        VARCHAR2(1)     := NULL;
202 BEGIN
203         --
204         -- check for uppper case requirement
205         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('ATTEDANCE_TYPE','IGS_EN_ATD_TYPE')
206         THEN
207                 p_att_type := UPPER(p_att_type);
208         END IF;
209         --
210          -- validate unit entered
211         IF c_att%ISOPEN
212         THEN
213                 CLOSE c_att;
214         END IF;
215         OPEN c_att(p_att_type);
216         FETCH c_att INTO v_att_ok;
217         IF c_att%NOTFOUND
218         THEN
219                 CLOSE c_att;
220                 p_msg_name := 'IGS_GE_INVALID_VALUE';
221                 RETURN FALSE;
222         END IF;
223         RETURN TRUE;
224 EXCEPTION
225         WHEN OTHERS THEN
226                 IF c_att%ISOPEN
227                 THEN
228                         CLOSE c_att;
229                 END IF;
230 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
231                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
232                 RETURN FALSE;
233 END;    -- repp_val_att_type
234 -- Module:      repp_val_unit_class
235  -- Purpose:     validation for unit class
236 --
237 -- MODIFICATION HISTORY
238  -- Person       Date            Comments
239 -- ---------    --------        ------------------------------------------
240 -- MSONTER      21/08/98        Initial creation of function
241 FUNCTION repp_val_unit_class( p_unit_class IN OUT NOCOPY IGS_AS_UNIT_CLASS_ALL.unit_class%TYPE,
242                         p_msg_name OUT NOCOPY VARCHAR2)
243 RETURN  BOOLEAN
244 AS
245 --
246 -- Local Cursors
247 CURSOR c_uc(cp_unit_class IGS_AS_UNIT_CLASS.UNIT_CLASS%TYPE)
248 IS
249 SELECT
250         'x'
251 FROM    IGS_AS_UNIT_CLASS              UC
252 WHERE
253          uc.unit_class   LIKE    cp_unit_class
254 AND     uc.closed_ind   =       'N';
255 --
256 -- Local Variables
257 v_ok    VARCHAR2(1)     := NULL;
258 BEGIN
259         --
260         -- check for uppper case requirement
261         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('IGS_AS_UNIT_CLASS','IGS_AS_UNIT_CLASS')
262         THEN
263                 p_unit_class := UPPER(p_unit_class);
264         END IF;
265         --
266          -- validate unit entered
267         IF c_uc%ISOPEN
268         THEN
269                 CLOSE c_uc;
270         END IF;
271         OPEN c_uc(p_unit_class);
272         FETCH c_uc INTO v_ok;
273         IF c_uc%NOTFOUND
274         THEN
275                 CLOSE c_uc;
276                 p_msg_name := 'IGS_GE_INVALID_VALUE';
277                 RETURN FALSE;
278         END IF;
279         RETURN TRUE;
280 EXCEPTION
281         WHEN OTHERS THEN
282                 IF c_uc%ISOPEN
283                 THEN
284                         CLOSE c_uc;
285                 END IF;
286 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
287 		    IGS_GE_MSG_STACK.ADD;
288                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
289                 RETURN FALSE;
290 END;    -- repp_val_unit_class
291 -- Module:      repp_val_unit_mode
292  -- Purpose:     validation for unit mode
293 --
294 -- MODIFICATION HISTORY
295  -- Person       Date            Comments
296 -- ---------    --------        ------------------------------------------
297 -- MSONTER      21/08/98        Initial creation of function
298  FUNCTION repp_val_unit_mode( p_unit_mode IN OUT NOCOPY IGS_AS_UNIT_MODE.unit_mode%TYPE,
299                         p_msg_name OUT NOCOPY VARCHAR2)
300 RETURN  BOOLEAN
301 AS
302 --
303 -- Local Cursors
304 CURSOR c_um(cp_unit_mode IGS_AS_UNIT_MODE.UNIT_MODE%TYPE)
305 IS
306 SELECT
307         'x'
308 FROM    IGS_AS_UNIT_MODE       um
309 WHERE
310          um.unit_mode    LIKE    cp_unit_mode
311 AND     um.closed_ind   =       'N';
312 --
313 -- Local Variables
314 v_um_ok VARCHAR2(1)     := NULL;
315 BEGIN
316         --
317         -- check for uppper case requirement
318         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('IGS_AS_UNIT_MODE','IGS_AS_UNIT_MODE')
319         THEN
320                 p_unit_mode := UPPER(p_unit_mode);
321         END IF;
322         --
323          -- validate unit entered
324         IF c_um%ISOPEN
325         THEN
326                 CLOSE c_um;
327         END IF;
328         OPEN c_um(p_unit_mode);
329         FETCH c_um INTO v_um_ok;
330         IF c_um%NOTFOUND
331         THEN
332                 CLOSE c_um;
333                 p_msg_name := 'IGS_GE_INVALID_VALUE';
334                 RETURN FALSE;
335         END IF;
336         RETURN TRUE;
337 EXCEPTION
338         WHEN OTHERS THEN
339                 IF c_um%ISOPEN
340                 THEN
341                         CLOSE c_um;
342                 END IF;
343 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
344 		    IGS_GE_MSG_STACK.ADD;
345                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
346                 RETURN FALSE;
347 END;    -- repp_val_unit_mode
348 -- Module:      repp_val_crs_type
349 -- Purpose:     validation for IGS_PS_TYPEs
350 --
351 -- MODIFICATION HISTORY
352  -- Person       Date            Comments
353 -- ---------    --------        ------------------------------------------
354 -- MSONTER      21/08/98        Initial creation of function
355  FUNCTION repp_val_crs_type( p_crs_type IN OUT NOCOPY IGS_PS_TYPE_ALL.COURSE_TYPE%TYPE,
356                         p_msg_name OUT NOCOPY VARCHAR2)
357 RETURN  BOOLEAN
358 AS
359 --
360 -- Local Cursors
361 CURSOR c_crs(cp_crs_type IGS_PS_TYPE.course_type%TYPE)
362 IS
363 SELECT
364         'x'
365 FROM    IGS_PS_TYPE     CT
366 WHERE
367          ct.course_type  LIKE    cp_crs_type
368 AND     ct.closed_ind   =       'N';
369 --
370 -- Local Variables
371 v_ok    VARCHAR2(1)     := NULL;
372 BEGIN
373         --
374         -- check for uppper case requirement
375         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('IGS_PS_TYPE','IGS_PS_TYPE')
376         THEN
377                 p_crs_type := UPPER(p_crs_type);
378         END IF;
379         --
380          -- validate unit entered
381         IF c_crs%ISOPEN
382         THEN
383                 CLOSE c_crs;
384         END IF;
385         OPEN c_crs(p_crs_type);
386         FETCH c_crs INTO v_ok;
387         IF c_crs%NOTFOUND
388         THEN
389                 CLOSE c_crs;
390                 p_msg_name := 'IGS_GE_INVALID_VALUE';
391                 RETURN FALSE;
392         END IF;
393         RETURN TRUE;
394 EXCEPTION
395         WHEN OTHERS THEN
396                 IF c_crs%ISOPEN
397                 THEN
398                         CLOSE c_crs;
399                 END IF;
400           	    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
401           	    IGS_GE_MSG_STACK.ADD;
402                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
403                 RETURN FALSE;
404 END;    -- repp_val_crs_type
405 -- Module:      repp_val_enr_cat
406 -- Purpose:     validation for enrolment categories
407 --
408 -- MODIFICATION HISTORY
409  -- Person       Date            Comments
410 -- ---------    --------        ------------------------------------------
411 -- MSONTER      21/08/98        Initial creation of function
412 FUNCTION repp_val_enr_cat( p_enr_cat IN OUT NOCOPY IGS_EN_ENROLMENT_CAT.ENROLMENT_CAT%TYPE,
413                         p_msg_name OUT NOCOPY VARCHAR2)
414 RETURN  BOOLEAN
415 AS
416 --
417 -- Local Cursors
418  CURSOR c_crs(cp_enr_cat IGS_EN_ENROLMENT_CAT.enrolment_cat%TYPE)
419 IS
420 SELECT
421         'x'
422 FROM    IGS_EN_ENROLMENT_CAT   EC
423 WHERE
424          ec.enrolment_cat        LIKE    cp_enr_cat
425 AND     ec.closed_ind   =       'N';
426 --
427 -- Local Variables
428 v_ok    VARCHAR2(1)     := NULL;
429 BEGIN
430         --
431         -- check for uppper case requirement
432         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('IGS_EN_ENROLMENT_CAT','IGS_EN_ENROLMENT_CAT')
433         THEN
434                 p_enr_cat := UPPER(p_enr_cat);
435         END IF;
436         --
437          -- validate unit entered
438         IF c_crs%ISOPEN
439         THEN
440                 CLOSE c_crs;
441         END IF;
442         OPEN c_crs(p_enr_cat);
443         FETCH c_crs INTO v_ok;
444         IF c_crs%NOTFOUND
445         THEN
446                 CLOSE c_crs;
447                 p_msg_name := 'IGS_GE_INVALID_VALUE';
448                 RETURN FALSE;
449         END IF;
450         RETURN TRUE;
451 EXCEPTION
452         WHEN OTHERS THEN
453                 IF c_crs%ISOPEN
454                 THEN
455                         CLOSE c_crs;
456                 END IF;
457 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
458 		    IGS_GE_MSG_STACK.ADD;
459                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
460                 RETURN FALSE;
461 END;    -- repp_val_enr_cat
462 -- Module:      repp_val_adm_cat
463 -- Purpose:     validation for admission categories
464 --
465 -- MODIFICATION HISTORY
466 -- Person       Date            Comments
467 -- ---------    --------        ------------------------------------------
468 -- MSONTER      21/08/98        Initial creation of function
469 FUNCTION repp_val_adm_cat( p_adm_cat IN OUT NOCOPY IGS_AD_CAT.ADMISSION_CAT%TYPE,
470                         p_msg_name OUT NOCOPY VARCHAR2)
471 RETURN  BOOLEAN
472 AS
473 --
474 -- Local Cursors
475 CURSOR c_crs(cp_adm_cat IGS_AD_CAT.admission_cat%TYPE)
476 IS
477 SELECT
478         'x'
479 FROM    IGS_AD_CAT   ADC
480 WHERE
481          adc.admission_cat       LIKE    cp_adm_cat
482 AND     adc.closed_ind  =       'N';
483 --
484 -- Local Variables
485 v_ok    VARCHAR2(1)     := NULL;
486 BEGIN
487         --
488         -- check for uppper case requirement
489         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('IGS_AD_CAT','IGS_AD_CAT')
490         THEN
491                 p_adm_cat := UPPER(p_adm_cat);
492         END IF;
493         --
494          -- validate unit entered
495         IF c_crs%ISOPEN
496         THEN
497                 CLOSE c_crs;
498         END IF;
499         OPEN c_crs(p_adm_cat);
500         FETCH c_crs INTO v_ok;
501         IF c_crs%NOTFOUND
502         THEN
503                 CLOSE c_crs;
504                 p_msg_name := 'IGS_GE_INVALID_VALUE';
505                 RETURN FALSE;
506         END IF;
507         RETURN TRUE;
508 EXCEPTION
509         WHEN OTHERS THEN
510                 IF c_crs%ISOPEN
511                 THEN
512                         CLOSE c_crs;
513                 END IF;
514 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
515 		    IGS_GE_MSG_STACK.ADD;
516                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
517                 RETURN FALSE;
518 END;    -- repp_val_adm_cat
519 -- Module:      repp_val_fee_cat
520 -- Purpose:     validation for fee categories
521 --
522 -- MODIFICATION HISTORY
523  -- Person       Date            Comments
524 -- ---------    --------        ------------------------------------------
525 -- MSONTER      21/08/98        Initial creation of function
526 FUNCTION repp_val_fee_cat( p_fee_cat IN OUT NOCOPY IGS_FI_FEE_CAT_ALL.FEE_CAT%TYPE,
527                         p_msg_name OUT NOCOPY VARCHAR2)
528 RETURN  BOOLEAN
529 AS
530 --
531 -- Local Cursors
532 CURSOR c_crs(cp_fee_cat IGS_FI_FEE_CAT.fee_cat%TYPE)
533 IS
534 SELECT
535         'x'
536 FROM    IGS_FI_FEE_CAT fc
537 WHERE
538          fc.fee_cat      LIKE    cp_fee_cat
539 AND     fc.closed_ind   =       'N';
540 --
541 -- Local Variables
542 v_ok    VARCHAR2(1)     := NULL;
543 BEGIN
544         --
545         -- check for uppper case requirement
546         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('IGS_FI_FEE_CAT','IGS_FI_FEE_CAT')
547         THEN
548                 p_fee_cat := UPPER(p_fee_cat);
549         END IF;
550         --
551          -- validate unit entered
552         IF c_crs%ISOPEN
553         THEN
554                 CLOSE c_crs;
555         END IF;
556         OPEN c_crs(p_fee_cat);
557         FETCH c_crs INTO v_ok;
558         IF c_crs%NOTFOUND
559         THEN
560                 CLOSE c_crs;
561                 p_msg_name := 'IGS_GE_INVALID_VALUE';
562                 RETURN FALSE;
563         END IF;
564         RETURN TRUE;
565 EXCEPTION
566         WHEN OTHERS THEN
567                 IF c_crs%ISOPEN
568                 THEN
569                         CLOSE c_crs;
570                 END IF;
571 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
572 		    IGS_GE_MSG_STACK.ADD;
573                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
574                 RETURN FALSE;
575 END;    -- repp_val_adm_cat
576 -- Module:      repp_val_unit_cal
577  -- Purpose:     validation for unit code against a specific calendar
578 --
579 -- MODIFICATION HISTORY
580  -- Person       Date            Comments
581 -- ---------    --------        ------------------------------------------
582 -- MSONTER      28/08/98        Initial creation of function
583 FUNCTION repp_val_unit_cal( p_unit_cd   IN      IGS_PS_UNIT_VER_ALL.unit_cd%TYPE,
584                              p_ass_cal_type      IN      IGS_CA_INST_ALL.CAL_TYPE%TYPE,
585                             p_ass_seq_num       IN      IGS_CA_INST_ALL.sequence_number%TYPE,
586                             p_teach_cal_type    IN      IGS_CA_INST_ALL.cal_type%TYPE,
587                             p_teach_seq_num     IN      IGS_CA_INST_ALL.sequence_number%TYPE,
588                             p_msg_name           OUT NOCOPY     VARCHAR2)
589 RETURN  BOOLEAN
590 AS
591 --
592 -- Local Cursors
593 --
594 -- Local Variables
595 BEGIN
596 /*
597 ** complete this later
598 */
599         RETURN TRUE;
600 EXCEPTION
601         WHEN OTHERS THEN
602                 RETURN TRUE;
603 END;    -- repp_unit_cal_val
604 -- Module:      repp_val_unit_mode_class
605 -- Purpose:     validation for unit mode and class parameters
606 --
607 -- MODIFICATION HISTORY
608 -- Person       Date            Comments
609 -- ---------    --------        ------------------------------------------
610 -- MSONTER      21/08/98        Initial creation of function
611   FUNCTION repp_val_unit_mode_class
612       ( p_mode IN IGS_AS_UNIT_CLASS_ALL.unit_mode%TYPE,
613       p_class IN IGS_AS_UNIT_CLASS_ALL.unit_class%TYPE,
614        p_msg_name OUT NOCOPY 	VARCHAR2)
615 RETURN  BOOLEAN
616 AS
617 --
618 -- Local Cursors
619  CURSOR c_mode(cp_unit_class IGS_AS_UNIT_CLASS.unit_class%TYPE,
620                  cp_unit_mode IGS_AS_UNIT_MODE.unit_mode%TYPE)
621 IS
622 SELECT
623         'x'
624 FROM    IGS_AS_UNIT_CLASS uc
625 WHERE   uc.unit_class   LIKE    cp_unit_class
626 AND     uc.unit_mode    LIKE    cp_unit_mode
627 AND     uc.closed_ind = 'N';
628 --
629 -- Local Variables
630 v_found VARCHAR2(1)     := NULL;
631 BEGIN
632         IF c_mode%ISOPEN
633         THEN
634                 CLOSE c_mode;
635         END IF;
636         OPEN c_mode(p_class, p_mode);
637         FETCH c_mode INTO v_found;
638         IF c_mode%NOTFOUND
639         THEN
640                 CLOSE c_mode;
641                 p_msg_name := 'IGS_AD_UC_UM_INCOMPLATIBLE';
642                 RETURN FALSE;
643         END IF;
644         CLOSE c_mode;
645         p_msg_name := NULL;
646         RETURN TRUE;
647 EXCEPTION
648         WHEN OTHERS THEN
649                 IF c_mode%ISOPEN
650                 THEN
651                         CLOSE c_mode;
652                 END IF;
653 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
654 		    IGS_GE_MSG_STACK.ADD;
655                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
656                 RETURN FALSE;
657 END;    -- repp_val_unit_mode_class
658 -- Module:      repp_val_course
659  -- Purpose:     validation for course code
660 --
661 -- MODIFICATION HISTORY
662  -- Person       Date            Comments
663 -- ---------    --------        ------------------------------------------
664 -- MSONTER      21/08/98        Initial creation of function
665 FUNCTION repp_val_course(       p_course_cd     IN OUT NOCOPY  IGS_PS_VER_ALL.course_cd%TYPE,
666                                 p_msg_name       OUT NOCOPY     VARCHAR2)
667 RETURN  BOOLEAN
668 AS
669 --
670 -- Local Cursors
671 CURSOR c_cv(cp_course_cd IGS_PS_VER.course_cd%TYPE)
672 IS
673 SELECT  'x'
674 FROM    IGS_PS_VER  cv,
675         IGS_PS_STAT   cs
676 WHERE   course_cd LIKE cp_course_cd
677 AND     cs.course_status        =       cv.course_status
678 AND     cs.s_course_status      =       'ACTIVE';
679 --
680 -- Local Variables
681 v_cv_exists             VARCHAR2(1) := NULL;
682 BEGIN
683         -- null test
684         IF p_course_cd IS NULL THEN
685                 p_course_cd := '%';
686         END IF;
687         -- upper case test
688         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('COURSE_CD','COURSE')
689         THEN
690                 p_course_cd := UPPER(p_course_cd);
691         END IF;
692         -- start of main loop
693         IF p_course_cd <> '%' THEN
694                 IF c_cv%ISOPEN
695                 THEN
696                         CLOSE c_cv;
697                 END IF;
698                 OPEN c_cv(p_course_cd);
699                 FETCH c_cv INTO v_cv_exists;
700                 IF c_cv%NOTFOUND THEN
701                         CLOSE c_cv;
702                         p_msg_name := 'IGS_GE_INVALID_VALUE';
703                         RETURN FALSE;
704                 END IF; --IF c_cv%NOTFOUND
705                 CLOSE c_cv;
706                 p_msg_name := NULL;
707         END IF; --IF p_course_cd <> '%'
708         RETURN TRUE;
709 EXCEPTION
710         WHEN OTHERS THEN
711                 IF c_cv%ISOPEN
712                 THEN
713                         CLOSE c_cv;
714                 END IF;
715 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
716 		    IGS_GE_MSG_STACK.ADD;
717                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
718                 RETURN FALSE;
719 END; --repp_val_course
720 -- Module:      repp_val_ass
721 -- Purpose:     validation for assessment item
722 --
723 -- MODIFICATION HISTORY
724 -- Person       Date            Comments
725 -- ---------    --------        ------------------------------------------
726 -- MSONTER      21/08/98        Initial creation of function
727 FUNCTION repp_val_ass(  p_ass_id        IN      VARCHAR2,
728                         p_ass_desc      OUT NOCOPY     VARCHAR2,
729                         p_msg_name       OUT NOCOPY    VARCHAR2)
730 RETURN  BOOLEAN
731 AS
732 --
733 -- Local Cursors
734 CURSOR c_ass(cp_ass_id IGS_AS_ASSESSMNT_ITM.ass_id%TYPE)
735 IS
736 SELECT
737         TO_CHAR(asi.ass_id) || ' - ' ||
738         asi.description
739 FROM    IGS_AS_ASSESSMNT_ITM asi
740 WHERE   asi.ass_id      =       cp_ass_id;
741 --
742 -- Local Variables
743 v_ass_desc      VARCHAR2(256)   := NULL;
744 v_ass_id        NUMBER          := 0;
745 --
746 -- Local IGS_GE_EXCEPTIONS
747 begin
748         --
749         -- validation
750         IF p_ass_id <> '%'
751         THEN
752                 IF c_ass%ISOPEN
753                 THEN
754                         CLOSE c_ass;
755                 END IF;
756                 --
757                 -- convert to numeric value - error not expected
758                 v_ass_id := TO_NUMBER(p_ass_id);
759                 OPEN c_ass(v_ass_id);
760                 FETCH c_ass INTO v_ass_desc;
761                 IF c_ass%NOTFOUND
762                 THEN
763                         CLOSE c_ass;
764                         p_msg_name := 'IGS_GE_VAL_DOES_NOT_XS';
765                         RETURN FALSE;
766                 END IF;
767                 CLOSE c_ass;
768                 p_ass_desc := v_ass_desc;
769         ELSE
770                 p_ass_desc := p_ass_id;
771         END IF;
772         return (TRUE);
773 EXCEPTION
774         WHEN INVALID_NUMBER THEN
775 		Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
776 		IGS_GE_MSG_STACK.ADD;
777 		App_Exception.Raise_Exception ;
778                 p_msg_name := 'IGS_GE_INVALID_VALUE';
779                 RETURN FALSE;
780         WHEN OTHERS THEN
781 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
782 		    IGS_GE_MSG_STACK.ADD;
783                 p_msg_name := 'IGS_AS_USER_EXCEPTION_RAISED';
784                 RETURN FALSE;
785 end; --repp_val_ass
786 -- Module:      repp_get_curr_cal
787 -- Purpose:     return of current calendar for given SI_CA_S_CA_CAT
788 --
789 -- MODIFICATION HISTORY
790 -- Person       Date            Comments
791 -- ---------    --------        ------------------------------------------
792 -- MSONTER      27/08/98        Initial creation of function
793  FUNCTION repp_get_curr_cal(     p_s_cal_cat     IN      IGS_CA_TYPE.s_cal_cat%TYPE,
794                         p_cal           OUT NOCOPY     VARCHAR2)
795 RETURN  BOOLEAN
796 AS
797 --
798 -- Local Cursors
799  CURSOR c_cal(cp_s_cal_cat IN IGS_CA_TYPE.s_cal_cat%TYPE)
800 IS
801  SELECT  RPAD(RPAD(NVL(ci.alternate_code, ci.cal_type), 10) || ' ' ||
802         IGS_GE_DATE.igschar(ci.start_dt) || ' - ' ||
803         IGS_GE_DATE.igschar(ci.end_dt) || ' ' || ct.abbreviation, 100) ||
804         RPAD(ci.cal_type, 10) ||
805         TO_CHAR(ci.sequence_number, '999990')   cal_desc
806 FROM    IGS_CA_TYPE        ct,
807         IGS_CA_INST    ci,
808         IGS_CA_STAT      cs
809 WHERE   ct.s_cal_cat    = cp_s_cal_cat  AND
810         ci.cal_type     = ct.cal_type   AND
811         cs.cal_status   = ci.cal_status AND
812         cs.s_cal_status	= 'ACTIVE'	AND
813         ci.start_dt     < SYSDATE       AND
814         ci.end_dt       > SYSDATE;
815 --
816 -- Local Variables
817 v_cal   VARCHAR2(120)   := NULL;
818 BEGIN
819         IF c_cal%ISOPEN THEN
820                 CLOSE c_cal;
821         END IF;
822         OPEN c_cal(p_s_cal_cat);
823         FETCH c_cal INTO v_cal;
824         IF c_cal%NOTFOUND
825         THEN
826                 CLOSE c_cal;
827                 p_cal := v_cal;
828                 RETURN TRUE;
829         END IF;
830         CLOSE c_cal;
831         p_cal := v_cal;
832         RETURN TRUE;
833 EXCEPTION
834    WHEN OTHERS THEN
835     IF c_cal%ISOPEN THEN
836        CLOSE c_cal;
837     END IF;
838         Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
839         IGS_GE_MSG_STACK.ADD;
840          P_cal := v_cal;
841         RETURN TRUE;
842 END; --repp_get_curr_cal
843 -- Module:      repp_get_nomin_cal
844 -- Purpose:     return of nominated calendar for given IGS_CA_TYPE/sequence_number
845 --
846 -- MODIFICATION HISTORY
847  -- Person       Date            Comments
848 -- ---------    --------        ------------------------------------------
849 -- MSONTER      27/08/98        Initial creation of function
850  FUNCTION repp_get_nomin_cal(    p_cal_type      IN      IGS_CA_TYPE.cal_type%TYPE,
851                         p_seq_num       IN      IGS_CA_INST_ALL.sequence_number%TYPE,
852                         p_cal           OUT NOCOPY     VARCHAR2)
853 RETURN  BOOLEAN
854 AS
855 --
856 -- Local Cursors
857  CURSOR c_cal(cp_cal_type IN IGS_CA_TYPE.cal_type%TYPE,
858         cp_seq_num IN IGS_CA_INST.sequence_number%TYPE)
859 IS
860  SELECT  RPAD(RPAD(NVL(ci.alternate_code, ci.cal_type), 10) || ' ' ||
861         IGS_GE_DATE.igschar(ci.start_dt) || ' - ' ||
862         IGS_GE_DATE.igschar(ci.end_dt) || ' ' || ct.abbreviation, 100) ||
863          RPAD(ci.cal_type, 10) ||
864         TO_CHAR(ci.sequence_number, '999990')   cal_desc
865 FROM    IGS_CA_TYPE        ct,
866         IGS_CA_INST    ci
867 WHERE   ct.cal_type             =       cp_cal_type     AND
868         ci.cal_type             =       ct.cal_type     AND
869         ci.sequence_number      =       cp_seq_num;
870 --
871 -- Local Variables
872 v_cal   VARCHAR2(120)   := NULL;
873 BEGIN
874         FOR c_rec IN c_cal(p_cal_type, p_seq_num) LOOP
875             v_cal := c_rec.cal_desc;
876         END LOOP;
877         p_cal := v_cal;
878         RETURN TRUE;
879 EXCEPTION
880    WHEN OTHERS THEN
881 	  Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
882 	  IGS_GE_MSG_STACK.ADD;
883 	  p_cal := v_cal;
884         RETURN TRUE;
885 END; --repp_get_nomin_cal
886 -- Module:      repp_get_cal_str
887 -- Purpose:     return of nominated calendar for given IGS_CA_TYPE/sequence_number
888 --              used in select statements
889 -- MODIFICATION HISTORY
890  -- Person       Date            Comments
891 -- ---------    --------        ------------------------------------------
892 -- MSONTER      27/08/98        Initial creation of function
893  FUNCTION repp_get_cal_str(      p_cal_type      IN      IGS_CA_TYPE.cal_type%TYPE,
894                         p_seq_num       IN      IGS_CA_INST_ALL.sequence_number%TYPE)
895 RETURN  VARCHAR2
896 AS
897 --
898 -- Local Cursors
899  CURSOR c_cal(cp_cal_type IN IGS_CA_TYPE.cal_type%TYPE,
900         cp_seq_num IN IGS_CA_INST.sequence_number%TYPE)
901 IS
902  SELECT  RPAD(RPAD(NVL(ci.alternate_code, ci.cal_type), 10) || ' ' ||
903         IGS_GE_DATE.igschar(ci.start_dt) || ' - ' ||
904         IGS_GE_DATE.igschar(ci.end_dt) || ' ' || ct.abbreviation, 100) ||
905         RPAD(ci.cal_type, 10) ||
906         TO_CHAR(ci.sequence_number, '999990')   cal_desc
907 FROM    IGS_CA_TYPE        ct,
908         IGS_CA_INST    ci
909 WHERE   ct.cal_type             =       cp_cal_type     AND
910         ci.cal_type             =       ct.cal_type     AND
911         ci.sequence_number      =       cp_seq_num;
912 --
913 -- Local Variables
914 v_cal   VARCHAR2(120)   := NULL;
915 BEGIN
916         FOR c_rec IN c_cal(p_cal_type, p_seq_num) LOOP
917             v_cal := c_rec.cal_desc;
918         END LOOP;
919         RETURN v_cal;
920 EXCEPTION
921    WHEN OTHERS THEN
922         RETURN v_cal;
923 END; --repp_get_cal_str
924 -- Module:      repp_val_org_cd
925 -- Purpose:     validation of org units
926 --
927 -- MODIFICATION HISTORY
928 -- Person       Date            Comments
929 -- ---------    --------        ------------------------------------------
930 -- MSONTER      28/08/98        Initial creation of function
931 FUNCTION repp_val_org_cd(p_org_cd       IN OUT NOCOPY  HZ_PARTIES.PARTY_NUMBER%TYPE,
932                         p_msg_name OUT NOCOPY VARCHAR2 )
933 RETURN  BOOLEAN
934 AS
935 --
936 -- Local Cursors
937 CURSOR c_cv(cp_org_cd IGS_OR_UNIT.org_unit_cd%TYPE)
938 IS
939 SELECT  'x'
940 FROM    IGS_OR_UNIT        ou,
941         IGS_OR_STATUS      ous
942 WHERE   org_unit_cd LIKE cp_org_cd
943 AND     ous.org_status  =       ou.org_status
944 AND     ous.s_org_status        =       'ACTIVE';
945 --
946 -- Local Variables
947 v_exists                VARCHAR2(1) := NULL;
948 BEGIN
949         -- null test
950         IF p_org_cd IS NULL THEN
951                 p_org_cd := '%';
952         END IF;
953         -- upper case test
954         IF IGS_GE_GEN_001.GENP_CHK_COL_UPPER('ORG_UNIT_CD','IGS_OR_UNIT')
955         THEN
956                 p_org_cd := UPPER(p_org_cd);
957         END IF;
958         -- start of main loop
959         IF p_org_cd <> '%' THEN
960                 IF c_cv%ISOPEN
961                 THEN
962                         CLOSE c_cv;
963                 END IF;
964                 OPEN c_cv(p_org_cd);
965                 FETCH c_cv INTO v_exists;
966                 IF c_cv%NOTFOUND THEN
967                         CLOSE c_cv;
968                         p_msg_name := 'IGS_GE_INVALID_VALUE';
969                         RETURN FALSE;
970                 END IF; --IF c_cv%NOTFOUND
971                 CLOSE c_cv;
972                 p_msg_name := NULL;
973         END IF; --IF p_org_cd <> '%'
974         RETURN TRUE;
975 EXCEPTION
976         WHEN OTHERS THEN
977                 IF c_cv%ISOPEN
978                 THEN
979                         CLOSE c_cv;
980                 END IF;
981 		    Fnd_Message.Set_Name('IGS' , 'IGS_GE_UNHANDLED_EXCEPTION');
982 		    IGS_GE_MSG_STACK.ADD;
983                 RETURN FALSE;
984 END; --repp_val_org_cd
985 END IGS_GE_VAL_PARAM;