1 PACKAGE BODY IGS_AV_VAL_ASAU AS
2 /* $Header: IGSAV03B.pls 115.4 2002/11/28 22:52:45 nsidana ship $ */
3
4 -- To validate the advanced standing alternate units.
5 FUNCTION advp_val_alt_unit(
6 p_person_id IN NUMBER ,
7 p_course_cd IN VARCHAR2 ,
8 p_course_version IN NUMBER ,
9 p_adv_stnd_type IN VARCHAR2 ,
10 p_unit_cd IN VARCHAR2 ,
11 p_unit_version IN NUMBER ,
12 p_message_name OUT NOCOPY VARCHAR2)
13 RETURN BOOLEAN IS
14 gv_other_detail VARCHAR2(255);
15 BEGIN
16 -- advp_val_alt_unit
17 -- Validate that alternate units can only be specified if the
18 -- s_adv_stnd_recognition_type of the parent IGS_AV_STND_UNIT record is 'PRECLUDE'
19 DECLARE
20 v_ret_val BOOLEAN DEFAULT TRUE;
21 v_check CHAR;
22 CURSOR c_chk_adv_stnd_recog_type IS
23 SELECT 'x'
24 FROM IGS_AV_STND_UNIT
25 WHERE person_id = p_person_id AND
26 as_course_cd = p_course_cd AND
27 as_version_number = p_course_version AND
28 s_adv_stnd_type = p_adv_stnd_type AND
29 unit_cd = p_unit_cd AND
30 version_number = p_unit_version AND
31 s_adv_stnd_recognition_type = 'PRECLUSION';
32 BEGIN
33 p_message_name := null;
34 -- Validate input parameters
35 IF (p_person_id IS NULL OR
36 p_course_cd IS NULL OR
37 p_course_version IS NULL OR
38 p_adv_stnd_type IS NULL OR
39 p_unit_cd IS NULL OR
40 p_unit_version IS NULL) THEN
41 RETURN TRUE;
42 END IF;
43 -- Determine the recognition type of the appropriate IGS_AV_STND_UNIT record
44 OPEN c_chk_adv_stnd_recog_type;
45 FETCH c_chk_adv_stnd_recog_type INTO v_check;
46 IF (c_chk_adv_stnd_recog_type%NOTFOUND) THEN
47 -- Alternate units cannot be recorded, report an error
48 p_message_name := 'IGS_AV_CANREC_TYPE_PRECLUDE';
49 v_ret_val := FALSE;
50 END IF;
51 CLOSE c_chk_adv_stnd_recog_type;
52 RETURN v_ret_val;
53 END;
54 EXCEPTION
55 WHEN OTHERS THEN
56 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
57 Fnd_Message.Set_Token('NAME','IGS_AV_VAL_AS.ADVP_VAL_ALT_UNIT');
58 Igs_Ge_Msg_Stack.Add;
59 App_Exception.Raise_Exception;
60 END advp_val_alt_unit;
61 --
62 -- To validate the precluded and alternate units.
63 FUNCTION advp_val_prclde_unit(
64 p_precluded_unit_cd IN VARCHAR2 ,
65 p_alternate_unit_cd IN VARCHAR2 ,
66 p_message_name OUT NOCOPY VARCHAR2)
67 RETURN BOOLEAN IS
68 gv_other_detail VARCHAR2(255);
69 BEGIN -- advp_val_preclude_unit1
70 -- Validate that the alternate units are different from the precluded
71 -- IGS_PS_UNIT they are associated with
72 DECLARE
73 BEGIN
74 p_message_name := null;
75 -- Validate input parameters
76 IF (p_precluded_unit_cd IS NULL OR
77 p_alternate_unit_cd IS NULL) THEN
78 RETURN TRUE;
79 END IF;
80 -- Validate that the precluded and alternate units are different
81 IF (p_precluded_unit_cd = p_alternate_unit_cd) THEN
82 p_message_name := 'IGS_AV_ALTUNIT_DIFF_UNITASSOC';
83 RETURN FALSE;
84 END IF;
85 RETURN TRUE;
86 END;
87 EXCEPTION
88 WHEN OTHERS THEN
89 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
90 Fnd_Message.Set_Token('NAME','IGS_AV_VAL_AS.ADVP_VAL_PRCLDE_UNIT');
91 Igs_Ge_Msg_Stack.Add;
92 App_Exception.Raise_Exception;
93 END advp_val_prclde_unit;
94 END IGS_AV_VAL_ASAU;