DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AD_VAL_SIT

Source


1 PACKAGE BODY IGS_AD_VAL_SIT AS
2 /* $Header: IGSAD70B.pls 115.3 2002/11/28 21:39:46 nsidana ship $ */
3 
4   --
5   -- Validate override amount type <> amount type
6   FUNCTION admp_val_trgt_amttyp(
7   p_s_amount_type IN VARCHAR2 ,
8   p_overrride_s_amount_type IN VARCHAR2 ,
9   p_message_name OUT NOCOPY VARCHAR2 )
10   RETURN BOOLEAN AS
11   BEGIN	-- admp_val_trgt_amttyp
12   	-- Description: This module validates that an intake target override
13   	-- amount type is not equal to the intake target type
14   DECLARE
15   BEGIN
16   	p_message_name := null;
17   	IF p_overrride_s_amount_type IS NOT NULL THEN
18   		IF p_s_amount_type = p_overrride_s_amount_type THEN
19 			p_message_name := 'IGS_AD_AMT_CANNOTBE_EQUAL';
20   			RETURN FALSE;
21   		END IF;
22   	END IF;
23   	RETURN TRUE;
24   END;
25   EXCEPTION
26   	WHEN OTHERS THEN
27 	    Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
28 	    FND_MESSAGE.SET_TOKEN('NAME','IGS_AD_VAL_SIT.admp_val_trgt_amttyp');
29 	    IGS_GE_MSG_STACK.ADD;
30 		App_Exception.Raise_Exception;
31   END admp_val_trgt_amttyp;
32   --
33   -- Validate if intake target type is closed.
34   FUNCTION admp_val_itt_closed(
35   p_intake_target_type IN VARCHAR2 ,
36   p_message_name OUT NOCOPY VARCHAR2 )
37   RETURN BOOLEAN AS
38   BEGIN	-- admp_val_itt_closed
39   	-- Description: This module checks if an IGS_AD_INTAK_TRG_TYP is closed.
40   DECLARE
41   	v_itt_rec	IGS_AD_INTAK_TRG_TYP.intake_target_type%TYPE;
42   	CURSOR	c_itt IS
43   		SELECT	itt.closed_ind
44   		FROM 	IGS_AD_INTAK_TRG_TYP	itt
45   		WHERE	itt.intake_target_type 	= p_intake_target_type;
46   BEGIN
47   	p_message_name := null;
48   	OPEN c_itt;
49   	FETCH c_itt INTO v_itt_rec;
50   	IF (c_itt%FOUND) THEN
51   		IF (v_itt_rec = 'Y') THEN
52   			CLOSE c_itt;
53 			p_message_name := 'IGS_AD_INTAKE_TRGTTYPE_CLOSED';
54   			RETURN FALSE;
55   		END IF;
56   	END IF;
57   	CLOSE c_itt;
58   	RETURN TRUE;
59   END;
60   EXCEPTION
61   	WHEN OTHERS THEN
62 	    Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
63 	    FND_MESSAGE.SET_TOKEN('NAME','IGS_AD_VAL_SIT.admp_val_itt_closed');
64 	    IGS_GE_MSG_STACK.ADD;
65 		App_Exception.Raise_Exception;
66   END admp_val_itt_closed;
67   --
68   -- Validate target type amounts are in correct ranges.
69   FUNCTION admp_val_trgt_amt(
70   p_s_amount_type IN VARCHAR2 ,
71   p_target IN NUMBER ,
72   p_max_target IN NUMBER ,
73   p_message_name OUT NOCOPY VARCHAR2 )
74   RETURN BOOLEAN AS
75   BEGIN	-- admp_val_trgt_amt
76   	-- Description: This module performs several validations between
77   	-- the amount type and the values of the target and max target fields.
78   DECLARE
79   BEGIN
80   	p_message_name := null;
81   	IF p_max_target IS NOT NULL THEN
82   		IF p_s_amount_type = 'PERSON' AND
83   			((MOD (p_target, 0.5) <> 0) OR
84   	   				(MOD (p_max_target, 0.5) <> 0)) THEN
85 				p_message_name := 'IGS_AD_AMTTYPE_PRSN_INCR_0.5';
86   				RETURN FALSE;
87   		END IF;
88   		IF p_s_amount_type = 'PERCENTAGE' AND
89   			(p_target > 100 OR p_max_target > 100) THEN
90 				p_message_name := 'IGS_AD_AMTTYPE_PRC_TRGT_LE100';
91   				RETURN FALSE;
92   		END IF;
93   		IF p_max_target <= p_target THEN
94 			p_message_name := 'IGS_AD_MAXIMUM_GT_TARGET';
95   			RETURN FALSE;
96   		END IF;
97   	ELSE
98   		IF p_s_amount_type = 'PERSON' AND
99   			MOD (p_target, 0.5) <> 0 THEN
100 		p_message_name := 'IGS_AD_AMTTYPE_PRSN_INCR_0.5';
101   				RETURN FALSE;
102   		END IF;
103   		IF p_s_amount_type = 'PERCENTAGE' AND
104   			p_target > 100 THEN
105 				p_message_name := 'IGS_AD_AMTTYPE_PRC_TRGT_LE100';
106   				RETURN FALSE;
107   		END IF;
108   	END IF;
109   	RETURN TRUE;
110   END;
111   EXCEPTION
112   	WHEN OTHERS THEN
113 	    Fnd_Message.Set_Name('IGS','IGS_GE_UNHANDLED_EXP');
114 	    FND_MESSAGE.SET_TOKEN('NAME','IGS_AD_VAL_SIT.admp_val_trgt_amt');
115 	    IGS_GE_MSG_STACK.ADD;
116 		App_Exception.Raise_Exception;
117   END admp_val_trgt_amt;
118 END IGS_AD_VAL_SIT;