DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_FI_VAL_FC

Source


1 PACKAGE BODY IGS_FI_VAL_FC AS
2 /* $Header: IGSFI24B.pls 115.7 2002/11/29 11:13:48 vvutukur ship $ */
3   --
4   /*----------------------------------------------------------------------------
5   ||  Created By :
6   ||  Created On :
7   ||  Purpose :
8   ||  Known limitations, enhancements or remarks :
9   ||  Change History :
10   ||  Who             When            What
11   ||  (reverse chronological order - newest change first)
12   ||  vvutukur        29-Nov-2002  Enh#2584986.Obsoleted finp_val_fc_cur_upd.
13   ||  vvutukur        26-Aug-2002  Bug#2531390.Modified function finp_val_fc_cur_upd.Removed DEFAULT clause
14   ||                               in this package body to avoid gscc warning.
15   ----------------------------------------------------------------------------*/
16   /* Removed reference to IGS_FI_FEE_ENCMB_TYPE_V as part of bug 2126091 - sykrishn 29112001 */
17   -- Validate update of fee category closed indicator.
18   FUNCTION finp_val_fc_clsd_upd(
19   p_fee_cat IN VARCHAR2 ,
20   p_closed_ind IN VARCHAR2,
21   p_message_name OUT NOCOPY VARCHAR2 )
22   RETURN BOOLEAN AS
23   /*----------------------------------------------------------------------------
24   ||  Created By :
25   ||  Created On :
26   ||  Purpose :
27   ||  Known limitations, enhancements or remarks :
28   ||  Change History :
29   ||  Who             When            What
30   ||  (reverse chronological order - newest change first)
31   ||  vvutukur     02-Sep-2002     Bug#2531390.Removed DEFAULT clause to avoid gscc warning, and replaced
32   ||                               with assignment operator for defaulting variable v_ret_val.
33   ----------------------------------------------------------------------------*/
34   	gv_other_detail		VARCHAR2(255);
35   BEGIN	-- finp_val_fc_clsd_upd
36   	-- Validate update of the IGS_FI_FEE_CAT.closed_ind.
37   DECLARE
38   	v_check		CHAR;
39   	v_ret_val	BOOLEAN	:= TRUE;
40   	CURSOR c_fcm IS
41   		SELECT	'x'
42   		FROM	IGS_FI_FEE_CAT_MAP
43   		WHERE	fee_cat  = p_fee_cat AND
44   			dflt_cat_ind = 'Y';
45   BEGIN
46   	p_message_name := NULL;
47   	IF (p_closed_ind = 'Y') THEN
48   		-- Validate if the fee category is the default for an admission category.
49   		OPEN c_fcm;
50   		FETCH c_fcm INTO v_check;
51   		IF (c_fcm%FOUND) THEN
52   			p_message_name := 'IGS_FI_FEECAT_NC_DFLT_ADMCAT';
53   			v_ret_val := FALSE;
54   		END IF;
55   		CLOSE c_fcm;
56   	END IF;
57   	RETURN v_ret_val;
58   END;
59   END finp_val_fc_clsd_upd;
60   --
61   -- Warn if IGS_FI_FEE_CAT.currency_cd change effects child records.
62   FUNCTION finp_chk_rates_exist(
63   p_fee_cat IN VARCHAR2 ,
64   p_message_name OUT NOCOPY VARCHAR2 )
65   RETURN BOOLEAN AS
66   	gv_other_detail		VARCHAR2(255);
67   BEGIN	-- finp_chk_rates_exist
68   	-- Check if IGS_FI_F_CAT_FEE_LBL records exist for the IGS_FI_FEE_CAT,
69   	-- which have associated IGS_FI_FEE_AS_RATE records.
70   DECLARE
71   	cst_fcfl		CONSTANT VARCHAR2(5) := 'FCFL';
72   	CURSOR c_fcfl(
73   			cp_fee_cat			IGS_FI_FEE_CAT.fee_cat%TYPE)    IS
74   		SELECT	fee_cal_type,
75   			fee_ci_sequence_number,
76   			FEE_TYPE
77   		FROM	IGS_FI_F_CAT_FEE_LBL
78   		WHERE	fee_cat = cp_fee_cat;
79   	CURSOR c_far(
80   			cp_fee_type		IGS_FI_F_CAT_FEE_LBL.fee_type%TYPE,
81   			cp_fee_cal_type		IGS_FI_F_CAT_FEE_LBL.fee_cal_type%TYPE,
82   			cp_fee_ci_sequence_number	IGS_FI_F_CAT_FEE_LBL.fee_ci_sequence_number%TYPE,
83   			cp_fee_cat			IGS_FI_FEE_CAT.fee_cat%TYPE) IS
84   		SELECT	rate_number
85   		FROM	IGS_FI_FEE_AS_RATE
86   		WHERE	fee_type= cp_fee_type AND
87   			fee_cal_type = cp_fee_cal_type AND
88   			fee_ci_sequence_number = cp_fee_ci_sequence_number AND
89   			s_relation_type = cst_fcfl AND
90   			fee_cat = cp_fee_cat;
91   	CURSOR c_err(
92   			cp_fee_type		IGS_FI_F_CAT_FEE_LBL.fee_type%TYPE,
93   			cp_fee_cal_type		IGS_FI_F_CAT_FEE_LBL.fee_cal_type%TYPE,
94   			cp_fee_ci_sequence_number	IGS_FI_F_CAT_FEE_LBL.fee_ci_sequence_number%TYPE,
95   			cp_fee_cat			IGS_FI_FEE_CAT.fee_cat%TYPE)IS
96             SELECT range_number
97   		FROM	IGS_FI_ELM_RANGE_RT
98   		WHERE	FEE_TYPE = cp_fee_type AND
99   			fee_cal_type = cp_fee_cal_type AND
100   			fee_ci_sequence_number = cp_fee_ci_sequence_number AND
101   			s_relation_type = cst_fcfl AND
102   			fee_cat = cp_fee_cat AND
103   			logical_delete_dt IS NULL;
104   	v_err_rec		c_err%ROWTYPE;
105   	v_far_rec		c_far%ROWTYPE;
106   BEGIN
107   	-- Set the default message number
108   	p_message_name := NULL;
109   	-- Check parameter
110   	IF p_fee_cat IS NULL THEN
111   		RETURN FALSE;
112   	END IF;
113   	-- Use a loop to find any IGS_FI_F_CAT_FEE_LBL records based on the IGS_FI_FEE_CAT.
114   	FOR v_fcfl_rec IN c_fcfl(p_fee_cat) LOOP
115   		-- Check if any associated IGS_FI_FEE_AS_RATE records exist for the
116   		-- IGS_FI_F_CAT_FEE_LBL record. If so, return a warning.
117   		OPEN c_far(
118   			v_fcfl_rec.fee_type,
119   			v_fcfl_rec.fee_cal_type,
120   			v_fcfl_rec.fee_ci_sequence_number,
121   			p_fee_cat);
122   		FETCH c_far INTO v_far_rec;
123   		IF c_far%NOTFOUND THEN
124   			CLOSE c_far;
125   		ELSE
126   			CLOSE c_far;
127   			p_message_name := 'IGS_FI_FEECATFEELIAB_EXIST';
128   			RETURN TRUE;
129   		END IF;
130   		-- Check if any associated IGS_FI_ELM_RANGE_RT records exist for the
131   		-- IGS_FI_F_CAT_FEE_LBL record. If so, return a warning.
132   		OPEN c_err(
133   			v_fcfl_rec.FEE_TYPE,
134   			v_fcfl_rec.fee_cal_type,
135   			v_fcfl_rec.fee_ci_sequence_number,
136   			p_fee_cat);
137   		FETCH c_err INTO v_err_rec;
138   		IF c_err%NOTFOUND THEN
139   			CLOSE c_err;
140   		ELSE
141   			CLOSE c_err;
142   			p_message_name := 'IGS_FI_FEECATFEELIAB_EXIST';
143   			RETURN TRUE;
144   		END IF;
145   	END LOOP;
146   	-- Return the default value
147   	RETURN FALSE;
148   END;
149   END finp_chk_rates_exist;
150 END IGS_FI_VAL_FC;