1 PACKAGE BODY IGS_PR_VAL_SCAAE AS
2 /* $Header: IGSPR09B.pls 115.5 2002/11/29 02:45:53 nsidana ship $ */
3 -------------------------------------------------------------------------------------------
4 --Change History:
5 --Who When What
6 --smadathi 25-AUG-2001 Bug No. 1956374 .The function GENP_VAL_SDTT_SESS removed.
7 --avenkatr 29-AUG-2001 Bug Id : 1956374. Removed procedure "crsp_val_crv_exists"
8 --avenkatr 29-AUG-2001 Bug Id : 1956374. Removed procedure "crsp_val_crv_active"
9 -------------------------------------------------------------------------------------------
10 -- Validate the Student IGS_PS_COURSE Attempt Status for completion purposes.
11 FUNCTION prgp_val_sca_cmplt(
12 p_person_id IN NUMBER ,
13 p_course_cd IN VARCHAR2 ,
14 p_message_name OUT NOCOPY VARCHAR2 )
15 RETURN BOOLEAN AS
16 gv_other_detail VARCHAR2(255);
17 BEGIN -- prgp_val_sca_cmplt
18 -- Validate IGS_EN_STDNT_PS_ATT.course_attempt_status when setting the
19 --student_course_attepmt.course_rqrmnt_complete_ind or the
20 --IGS_PS_STDNT_APV_ALT.rqrmnts_complete_ind.
21 -- Cannot be set if course_attempt_status is 'DISCONTIN', 'INTERMIT' or
22 -- 'UNCONFIRM'.
23 DECLARE
24 cst_discontinued CONSTANT
25 IGS_EN_STDNT_PS_ATT.course_attempt_status%TYPE := 'DISCONTIN';
26 cst_intermit CONSTANT
27 IGS_EN_STDNT_PS_ATT.course_attempt_status%TYPE := 'INTERMIT';
28 cst_lapsed CONSTANT
29 IGS_EN_STDNT_PS_ATT.course_attempt_status%TYPE := 'LAPSED';
30 v_sca_course_attempt_status
31 IGS_EN_STDNT_PS_ATT.course_attempt_status%TYPE;
32 CURSOR c_sca IS
33 SELECT sca.course_attempt_status
34 FROM IGS_EN_STDNT_PS_ATT sca
35 WHERE sca.person_id = p_person_id And
36 sca.course_cd = p_course_cd And
37 sca.course_attempt_status IN (
38 cst_discontinued,
39 cst_intermit,
40 cst_lapsed);
41 BEGIN
42 -- Set the default message name
43 p_message_name := Null;
44 --1. Check parameters :
45 IF p_person_id IS NULL OR
46 p_course_cd IS NULL THEN
47 RETURN TRUE;
48 END IF;
49 --2. Get the IGS_PS_COURSE attempt status.
50 OPEN c_sca;
51 FETCH c_sca INTO v_sca_course_attempt_status;
52 IF c_sca%FOUND THEN
53 CLOSE c_sca;
54 IF v_sca_course_attempt_status = cst_discontinued THEN
55 p_message_name := 'IGS_PR_DISCON_DT_BE_LIFTED';
56 ELSIF v_sca_course_attempt_status = cst_intermit THEN
57 p_message_name := 'IGS_PR_INTERMISSION_BE_LIFTED';
58 ELSE
59 p_message_name := 'IGS_PR_LAPSED_DT_BE_LIFTED';
60 END IF;
61 RETURN FALSE;
62 END IF;
63 CLOSE c_sca;
64 -- Return the default value
65 RETURN TRUE;
66 EXCEPTION
67 WHEN OTHERS THEN
68 IF c_sca%ISOPEN THEN
69 CLOSE c_sca;
70 END IF;
71 RAISE;
72 END;
73 END prgp_val_sca_cmplt;
74 --
75 -- Validate the Student Crs Attempt Approved Alt Exit complete indicator.
76 FUNCTION prgp_val_scaae_cmplt(
77 p_rqrmnts_complete_ind IN VARCHAR2 DEFAULT 'N',
78 p_rqrmnts_complete_dt IN DATE ,
79 p_message_name OUT NOCOPY VARCHAR2 )
80 RETURN BOOLEAN AS
81 gv_other_detail VARCHAR2(255);
82 BEGIN -- prgp_val_scaae_cmplt
83 -- Validate IGS_PS_STDNT_APV_ALT.rqrmnts_complete_dt
84 -- * Cannot be set if IGS_PS_STDNT_APV_ALT.rqrmnts_complete_ind
85 -- is not also set.
86 -- * Must be set if IGS_PS_STDNT_APV_ALT.rqrmnts_complete_ind is set.
87 -- * If required, IGS_PS_STDNT_APV_ALT.rqrmnts_complete_dt cannot
88 -- be futre dated.
89 BEGIN
90 p_message_name := Null;
91 -- Check parameters.
92 IF p_rqrmnts_complete_ind IS NULL THEN
93 RETURN TRUE;
94 END IF;
95 IF p_rqrmnts_complete_ind = 'Y' AND
96 p_rqrmnts_complete_dt IS NULL THEN
97 p_message_name := 'IGS_PR_SPECIFY_REQR_COMPL_DT';
98 RETURN FALSE;
99 END IF;
100 IF p_rqrmnts_complete_ind = 'N' AND
101 p_rqrmnts_complete_dt IS NOT NULL THEN
102 p_message_name := 'IGS_PR_CANT_SPECIFY_REQR_COMP';
103 RETURN FALSE;
104 END IF;
105 -- rqrmnts_complete_dt cannot be future dated;
106 IF p_rqrmnts_complete_dt IS NOT NULL AND
107 p_rqrmnts_complete_dt > TRUNC(SYSDATE) THEN
108 p_message_name := 'IGS_PR_REQR_DT_LE_CURR_DT';
109 RETURN FALSE;
110 END IF;
111 -- No error.
112 RETURN TRUE;
113 END;
114 EXCEPTION
115 WHEN OTHERS THEN
116 Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXCEPTION');
117 FND_MESSAGE.SET_TOKEN ('NAME', 'IGS_PR_VAL_SCAAE.PRGP_VAL_SCAAE_CMPLT');
118 IGS_GE_MSG_STACK.ADD;
119 App_Exception.Raise_Exception;
120 END prgp_val_scaae_cmplt;
121 END IGS_PR_VAL_SCAAE;