1 PACKAGE BODY IGS_FI_VAL_CTFT AS
2 /* $Header: IGSFI16B.pls 115.5 2002/11/29 00:18:09 nsidana ship $ */
3 -------------------------------------------------------------------------------------------
4 --Change History:
5 --Who When What
6 --avenkatr 29-AUG-2001 Bug Id : 1956374. Removed procedure "crsp_val_cty_closed"
7 -------------------------------------------------------------------------------------------
8
9 -- Ensure IGS_PS_COURSE group fee triggers can be created.
10 FUNCTION finp_val_ctft_ins(
11 p_fee_type IN VARCHAR2 ,
12 p_message_name OUT NOCOPY VARCHAR2 )
13 RETURN BOOLEAN AS
14 gv_other_detail VARCHAR2(255);
15 BEGIN -- finp_val_ctft_ins
16 -- Validate IGS_PS_TYPE_FEE_TRG.IGS_FI_FEE_TYPE.
17 -- If IGS_FI_FEE_TYPE.s_fee_trigger_cat <> 'COURSE'
18 -- then IGS_PS_COURSE type fee triggers cannot be defined.
19 DECLARE
20 CURSOR c_ft(
21 cp_fee_type IGS_FI_FEE_TYPE.fee_type %TYPE) IS
22 SELECT s_fee_trigger_cat
23 FROM IGS_FI_FEE_TYPE
24 WHERE fee_type = cp_fee_type;
25 v_ft_rec c_ft%ROWTYPE;
26 cst_course CONSTANT VARCHAR2(10) := 'COURSE';
27 BEGIN
28 -- Set the default message number
29 p_message_name := Null;
30 -- Check parameters
31 IF p_fee_type IS NULL THEN
32 RETURN TRUE;
33 END IF;
34 -- Get the system fee trigger category of the IGS_FI_FEE_TYPE.
35 OPEN c_ft (p_fee_type);
36 FETCH c_ft INTO v_ft_rec;
37 IF c_ft%NOTFOUND THEN
38 CLOSE c_ft;
39 RETURN TRUE;
40 END IF;
41 CLOSE c_ft;
42 IF v_ft_rec.s_fee_trigger_cat <> cst_course THEN
43 p_message_name := 'IGS_FI_PRGTYPE_TRG_COURSE';
44 RETURN FALSE;
45 END IF;
46 -- Return the default value
47 RETURN TRUE;
48 END;
49 END finp_val_ctft_ins;
50 --
51 -- Ensure only one open IGS_PS_TYPE_FEE_TRG record exists..
52 FUNCTION finp_val_ctft_open(
53 p_fee_cat IN VARCHAR2 ,
54 p_fee_cal_type IN VARCHAR2 ,
55 p_fee_ci_sequence_number IN NUMBER ,
56 p_fee_type IN VARCHAR2 ,
57 p_course_type IN VARCHAR2 ,
58 p_create_dt IN DATE ,
59 p_message_name OUT NOCOPY VARCHAR2 )
60 RETURN BOOLEAN AS
61 gv_other_detail VARCHAR2(255);
62 BEGIN -- finp_val_ctft_open
63 -- validate that there no other 'open-ended' IGS_PS_GRP_FEE_TRG records for
64 -- the nominated IGS_PS_TYPE and the same parent IGS_FI_F_CAT_FEE_LBL
65 DECLARE
66 CURSOR c_ctft IS
67 SELECT ctft.course_type
68 FROM IGS_PS_TYPE_FEE_TRG ctft
69 WHERE ctft.fee_cat = p_fee_cat AND
70 ctft.fee_cal_type = p_fee_cal_type AND
71 ctft.fee_ci_sequence_number = p_fee_ci_sequence_number AND
72 ctft.fee_type = p_fee_type AND
73 ctft.course_type = p_course_type AND
74 ctft.create_dt <> p_create_dt AND
75 ctft.logical_delete_dt IS NULL;
76 v_course_type IGS_PS_TYPE_FEE_TRG.course_type%TYPE;
77 BEGIN
78 --- Set the default message number
79 p_message_name := Null;
80 IF p_fee_cat IS NULL OR
81 p_fee_cal_type IS NULL OR
82 p_fee_ci_sequence_number IS NULL OR
83 p_fee_type IS NULL OR
84 p_course_type IS NULL OR
85 p_create_dt IS NULL THEN
86 RETURN TRUE;
87 END IF;
88 OPEN c_ctft;
89 FETCH c_ctft INTO v_course_type;
90 IF (c_ctft%FOUND) THEN
91 p_message_name := 'IGS_FI_PRGTYPE_FEETRG_OPEN';
92 CLOSE c_ctft;
93 RETURN FALSE;
94 END IF;
95 CLOSE c_ctft;
96 RETURN TRUE;
97 END;
98 END finp_val_ctft_open;
99
100
101 --
102 END IGS_FI_VAL_CTFT;