1 PACKAGE BODY igs_pr_val_poc AS
2 /* $Header: IGSPR16B.pls 115.5 2002/11/29 02:47:57 nsidana ship $ */
3 --
4 -- Warn if the course does not have an active course version
5 FUNCTION prgp_val_crv_active(
6 p_course_cd IN CHAR ,
7 p_message_name OUT NOCOPY VARCHAR2 )
8 RETURN BOOLEAN IS
9 gv_other_detail VARCHAR2(255);
10 BEGIN -- PRGP_VAL_CRV_ACTIVE
11 -- Purpose: Warn the user is the supplied course_cd has no ACTIVE
12 -- course_version records.
13 DECLARE
14 v_exists VARCHAR2(1);
15 CURSOR c_crv_cst IS
16 SELECT 'x'
17 FROM IGS_PS_VER crv,
18 IGS_PS_STAT cst
19 WHERE crv.course_cd = p_course_cd AND
20 crv.course_status = cst.course_status AND
21 cst.s_course_status = 'ACTIVE';
22 BEGIN
23 -- Set the default message number
24 p_message_name := null;
25 IF p_course_cd IS NULL THEN
26 RETURN TRUE;
27 END IF;
28 OPEN c_crv_cst;
29 FETCH c_crv_cst INTO v_exists;
30 IF c_crv_cst%NOTFOUND THEN
31 CLOSE c_crv_cst;
32 p_message_name := 'IGS_PR_WA_CRS_CON_NOACT_VER';
33 RETURN TRUE;
34 END IF;
35 CLOSE c_crv_cst;
36 -- Return the default value
37 RETURN TRUE;
38 EXCEPTION
39 WHEN OTHERS THEN
40 IF c_crv_cst %ISOPEN THEN
41 CLOSE c_crv_cst;
42 END IF;
43 RAISE;
44 END;
45 EXCEPTION
46 WHEN OTHERS THEN
47 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
48 IGS_GE_MSG_STACK.ADD;
49 App_Exception.Raise_Exception;
50 END; -- Function PRGP_VAL_CRV_ACTIVE
51 --
52 -- Validate that a prg_outcome_course record can be created
53 FUNCTION prgp_val_poc_pro(
54 p_progression_rule_cat IN VARCHAR2 ,
55 p_pra_sequence_number IN NUMBER ,
56 p_sequence_number IN NUMBER ,
57 p_message_name OUT NOCOPY VARCHAR2 )
58 RETURN BOOLEAN IS
59 gv_other_detail VARCHAR2(255);
60 BEGIN -- prgp_val_poc_pro
61 -- When creating a Progression Outcome Course record validate that the record
62 -- is related to a progression_rule_outcome with a progression_outcome_type
63 -- that relates to a s_encmb_effect_type of EXC_COURSE or SUS_COURSE
64 DECLARE
65 cst_exc_course CONSTANT VARCHAR(10) := 'EXC_COURSE';
66 cst_sus_course CONSTANT VARCHAR(10) := 'SUS_COURSE';
67 v_dummy VARCHAR2(1);
68 CURSOR c_pro_pot_etde IS
69 SELECT 'X'
70 FROM IGS_PR_RU_OU pro,
71 IGS_PR_OU_TYPE pot,
72 IGS_FI_ENC_DFLT_EFT etde
73 WHERE pro.progression_rule_cat = p_progression_rule_cat AND
74 pro.pra_sequence_number = p_pra_sequence_number AND
75 pro.sequence_number = p_sequence_number AND
76 pro.progression_outcome_type = pot.progression_outcome_type AND
77 pot. encumbrance_type = etde.encumbrance_type AND
78 etde.s_encmb_effect_type IN (
79 cst_exc_course,
80 cst_sus_course);
81 BEGIN
82 -- Set the default message number
83 p_message_name := null;
84 IF p_progression_rule_cat IS NULL OR
85 p_pra_sequence_number IS NULL OR
86 p_sequence_number IS NULL THEN
87 RETURN TRUE;
88 END IF;
89 OPEN c_pro_pot_etde;
90 FETCH c_pro_pot_etde INTO v_dummy;
91 IF c_pro_pot_etde%NOTFOUND THEN
92 CLOSE c_pro_pot_etde;
93 --
94 -- kdande; 19-Jul-2002; Bug#2462120
95 -- Created a new message IGS_PR_OUT_ENCTY_EXC_SUS_PR for message number 5102.
96 --
97 p_message_name := 'IGS_PR_OUT_ENCTY_EXC_SUS_PR';
98 RETURN FALSE;
99 END IF;
100 CLOSE c_pro_pot_etde;
101 RETURN TRUE;
102 EXCEPTION
103 WHEN OTHERS THEN
104 IF c_pro_pot_etde%ISOPEN THEN
105 CLOSE c_pro_pot_etde;
106 END IF;
107 RAISE;
108 END;
109 EXCEPTION
110 WHEN OTHERS THEN
111 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
112 IGS_GE_MSG_STACK.ADD;
113 App_Exception.Raise_Exception;
114 END prgp_val_poc_pro;
115 END igs_pr_val_poc;