1 PACKAGE BODY IGS_PS_VAL_TRo AS
2 /* $Header: IGSPS58B.pls 115.4 2002/11/29 03:08:10 nsidana ship $ */
3 --
4 -- Validate teaching responsibility override percentages = 100%
5 FUNCTION CRSP_VAL_TRO_PERC(
6 p_unit_cd IN VARCHAR2 ,
7 p_version_number IN NUMBER ,
8 p_cal_type IN VARCHAR2 ,
9 p_ci_sequence_number IN NUMBER ,
10 p_location_cd IN VARCHAR2 ,
11 p_unit_class IN VARCHAR2 ,
12 p_message_name OUT NOCOPY VARCHAR2 )
13 RETURN BOOLEAN AS
14 BEGIN -- crsp_val_tro_perc
15 -- This module validates the IGS_PS_TCH_RESP_OVRD table such that
16 -- the sum of percentages for a IGS_PS_UNIT offering option total 100%.
17 DECLARE
18 v_sum_percentages IGS_PS_TCH_RESP_OVRD.percentage%TYPE;
19 CURSOR c_tro IS
20 SELECT SUM(tro.percentage)
21 FROM IGS_PS_TCH_RESP_OVRD tro
22 WHERE tro.unit_cd = p_unit_cd AND
23 tro.version_number = p_version_number AND
24 tro.cal_type = p_cal_type AND
25 tro.ci_sequence_number = p_ci_sequence_number AND
26 tro.location_cd = p_location_cd AND
27 tro.unit_class = p_unit_class;
28 BEGIN
29 p_message_name := NULL;
30 OPEN c_tro;
31 FETCH c_tro INTO v_sum_percentages;
32 IF (c_tro%FOUND) THEN
33 IF v_sum_percentages <> 100.00 THEN
34 CLOSE c_tro;
35 p_message_name := 'IGS_PS_PRCALLOC_TEACH_RESP';
36 RETURN FALSE;
37 END IF;
38 END IF;
39 CLOSE c_tro;
40 RETURN TRUE;
41 EXCEPTION
42 WHEN OTHERS THEN
43 IF (c_tro%ISOPEN) THEN
44 CLOSE c_tro;
45 END IF;
46 App_Exception.Raise_Exception;
47 END;
48 EXCEPTION
49 WHEN OTHERS THEN
50 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXCEPTION');
51 Fnd_Message.Set_Token('NAME','IGS_PS_VAL_TRo.crsp_val_tro_perc');
52 IGS_GE_MSG_STACK.ADD;
53 App_Exception.Raise_Exception;
54 END crsp_val_tro_perc;
55 END IGS_PS_VAL_TRo;