DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AS_VAL_NESO

Source


1 PACKAGE BODY IGS_AS_VAL_NESO AS
2 /* $Header: IGSAS26B.pls 115.6 2002/11/28 22:45:58 nsidana ship $ */
3   -------------------------------------------------------------------------------------------
4   --Change History:
5   --Who         When            What
6   --smadathi    26-AUG-2001     Bug No. 1956374 .The function orgp_val_loc_closed removed
7   -------------------------------------------------------------------------------------------
8 
9   -- Validate the insert of a IGS_AS_NON_ENR_STDOT record
10   FUNCTION ASSP_VAL_NESO_INS(
11   p_person_id IN NUMBER ,
12   p_course_cd IN VARCHAR2 ,
13   p_unit_cd IN VARCHAR2 ,
14   p_version_number IN NUMBER ,
15   p_mark IN NUMBER ,
16   p_grade IN VARCHAR2 ,
17   p_grading_schema_cd IN VARCHAR2,
18   p_gs_version_number IN NUMBER,
19   p_s_grade_creation_method_type IN VARCHAR2 ,
20   p_message_name OUT NOCOPY VARCHAR2 )
21   RETURN boolean IS
22   	gv_other_detail		VARCHAR2(255);
23   BEGIN
24   DECLARE
25   	v_closed_ind		IGS_LOOKUPS_VIEW.closed_ind%type;
26   	s_unit_status		IGS_PS_UNIT_STAT.s_unit_status%type;
27   	v_person_id		IGS_EN_STDNT_PS_ATT.person_id%TYPE;
28   	CURSOR c_sgcmt IS
29   		SELECT	sgcmt.closed_ind
30   		FROM	IGS_LOOKUPS_VIEW sgcmt
31   		WHERE	sgcmt.LOOKUP_TYPE = p_s_grade_creation_method_type;
32   	CURSOR c_uv IS
33   		SELECT	us.s_unit_status
34   		FROM	IGS_PS_UNIT_VER uv,
35   			IGS_PS_UNIT_STAT us
36   		WHERE	uv.unit_cd = p_unit_cd AND
37   			uv.version_number = p_version_number AND
38   			us.UNIT_STATUS = uv.UNIT_STATUS;
39   	CURSOR c_sca IS
40   		SELECT	sca.person_id
41   		FROM 	IGS_EN_STDNT_PS_ATT	sca
42   		WHERE	sca.person_id = p_person_id;
43   	CURSOR c_sca2 IS
44   		SELECT	sca.person_id
45   		FROM 	IGS_EN_STDNT_PS_ATT	sca
46   		WHERE	sca.person_id = p_person_id AND
47   			sca.course_cd = p_course_cd;
48   BEGIN
49   	-- Validate the insert of a IGS_AS_NON_ENR_STDOT record.
50   	-- Checks for:
51   	-- cannot be added against a closed s_grade_creation_method_type
52   	-- one of mark or grade must be set
53   	-- cannot be added against IGS_PS_UNIT_VER with a system status of
54   	-- other than 'ACTIVE'.
55   	-- Person id must have at least one student course attempt of any status.
56   	--- Set the default message number
57   	p_message_name := null;
58   	IF (p_mark IS NULL) AND (p_grade IS NULL) THEN
59   		p_message_name := 'IGS_AS_MARK_OR_GRD_MUSTBE_SET';
60   		RETURN FALSE;
61   	END IF;
62   	OPEN c_sgcmt;
63   	FETCH c_sgcmt INTO v_closed_ind;
64   	IF (c_sgcmt%FOUND) THEN
65   		IF (v_closed_ind = 'Y') THEN
66   			p_message_name := 'IGS_AS_CANNOT_ADD_OUTCOME';
67   			CLOSE c_sgcmt;
68   			RETURN FALSE;
69   		END IF;
70   	END IF;
71   	CLOSE c_sgcmt;
72   	OPEN c_uv;
73   	FETCH c_uv INTO s_unit_status;
74   	IF (c_uv%NOTFOUND) THEN
75   		CLOSE c_uv;
76   		RETURN TRUE;
77   	ELSE
78   		IF (s_unit_status <> 'ACTIVE') THEN
79   			p_message_name := 'IGS_AS_CANNOT_ADD_NONENR';
80   			CLOSE c_uv;
81   			RETURN FALSE;
82   		ELSE
83   			CLOSE c_uv;
84   		END IF;
85   	END IF;
86   	-- 4. Check that Person has a course attempt
87   	OPEN c_sca;
88   	FETCH c_sca INTO v_person_id;
89   	IF (c_sca%NOTFOUND) THEN
90   		CLOSE c_sca;
91   		p_message_name := 'IGS_AS_PRSN_ONE_PRG_ATTEMPT';
92   		RETURN FALSE;
93   	END IF;
94   	CLOSE c_sca;
95   	-- 5. If the course code has been specified, check that
96   	-- the student actually has a course attempt for the course.
97   	IF (p_course_cd IS NOT NULL) THEN
98   		OPEN c_sca2;
99   		FETCH c_sca2 INTO v_person_id;
100   		IF (c_sca2%NOTFOUND) THEN
101   			CLOSE c_sca2;
102   			p_message_name := 'IGS_AS_STUD_PRG_ATTEMPT';
103   			RETURN FALSE;
104   		END IF;
105   		CLOSE c_sca2;
106   	END IF;
107         -- 6. validate that the marks and grade are as per grd sch
108         IF NOT (IGS_AS_VAL_SUAO.ASSP_VAL_MARK_GRADE(
109                            p_mark => p_mark,
110                            p_grade => p_grade,
111                            p_grading_schema_cd => p_grading_schema_cd,
112                            p_version_number => p_gs_version_number,
113                            p_message_name => p_message_name)) THEN
114                RETURN FALSE;
115         END IF;
116   	RETURN TRUE;
117   END;
118   EXCEPTION
119   	WHEN OTHERS THEN
120 	       Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
121 	       FND_MESSAGE.SET_TOKEN('NAME','IGS_AS_VAL_NESO.assp_val_neso_ins');
122 	       IGS_GE_MSG_STACK.ADD;
123        		App_Exception.Raise_Exception;
124   END assp_val_neso_ins;
125 END IGS_AS_VAL_NESO;