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