DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_EN_VAL_PDI

Source


1 PACKAGE BODY IGS_EN_VAL_PDI AS
2 /* $Header: IGSEN52B.pls 115.3 2002/11/29 00:02:47 nsidana ship $ */
3   --
4   -- To validate disability type of IGS_PE_PERSON disability record
5   FUNCTION ENRP_VAL_PDI_DIT(
6   p_person_id IN NUMBER ,
7   p_message_name OUT NOCOPY VARCHAR2)
8   RETURN BOOLEAN AS
9 
10   BEGIN 	-- enrp_val_pdi_dit
11   DECLARE
12   	cst_none		CONSTANT VARCHAR2(10) := 'NONE';
13   	CURSOR	c_pdi	 IS
14   		SELECT	'x'
15   		FROM	IGS_PE_PERS_DISABLTY pdi,
16   			IGS_AD_DISBL_TYPE dit
17   		WHERE	pdi.person_id	= p_person_id AND
18   			dit.disability_type	= pdi.disability_type AND
19   			dit.govt_disability_type	= cst_NONE AND
20   			EXISTS	(
21   				SELECT	'x'
22   				FROM	IGS_PE_PERS_DISABLTY pdi1,
23   					IGS_AD_DISBL_TYPE dit1
24   				WHERE	pdi1.person_id	= p_person_id AND
25   					dit1.disability_type	= pdi1.disability_type AND
26   					dit1.govt_disability_type	 <>  cst_NONE
27   				);
28   	v_flag	VARCHAR2(1);
29   BEGIN
30   	p_message_name := NULL;
31   	OPEN c_pdi;
32   	FETCH c_pdi INTO v_flag;
33   	IF c_pdi%FOUND THEN
34   		CLOSE c_pdi;
35   		p_message_name := 'IGS_EN_PRSN_NOTHAVE_DIABREC';
36   		RETURN FALSE;
37   	END IF;
38   	CLOSE c_pdi;
39   	RETURN TRUE;
40   EXCEPTION
41   	WHEN OTHERS THEN
42   		IF (c_pdi%ISOPEN) THEN
43   			CLOSE c_pdi;
44   		END IF;
45   		RAISE;
46   END;
47   EXCEPTION
48   	WHEN OTHERS THEN
49 	        FND_MESSAGE.SET_NAME('IGS', 'IGS_GE_UNHANDLED_EXP');
50 		FND_MESSAGE.SET_TOKEN('NAME', 'IGS_EN_VAL_PDI.enrp_val_pdi_dit');
51 		IGS_GE_MSG_STACK.ADD;
52        	        App_Exception.Raise_Exception;
53 
54 
55   END enrp_val_pdi_dit;
56   --
57   -- To validate the IGS_PE_PERSON disability contact indicator
58   FUNCTION ENRP_VAL_PD_CONTACT(
59   p_disability_type IN VARCHAR2 ,
60   p_contact_ind IN VARCHAR2 ,
61   p_message_name OUT NOCOPY VARCHAR2)
62   RETURN BOOLEAN AS
63 
64   BEGIN 	-- enrp_val_pd_contact
65   	-- Validate the IGS_PE_PERSON disability contact indicator
66   	-- against the disability type being recorded.
67   	-- It is not possible for the contact indicator to be
68   	-- set against disability types which have a government disability type of
69   	-- 'NONE'
70   DECLARE
71   	cst_none		CONSTANT VARCHAR2(10) := 'NONE';
72   	v_govt_disability_type	VARCHAR2(30);
73   	CURSOR c_dit IS
74   		SELECT	govt_disability_type
75   		FROM	IGS_AD_DISBL_TYPE	dit
76   		WHERE	dit.disability_type = p_disability_type;
77   BEGIN
78   	p_message_name := NULL;
79   	IF (p_contact_ind = 'N') THEN
80   		RETURN TRUE;
81   	END IF;
82   	OPEN c_dit;
83   	FETCH c_dit INTO v_govt_disability_type;
84   	IF (c_dit%FOUND) THEN
85   		IF (v_govt_disability_type = cst_none) THEN
86   			CLOSE c_dit;
87   			p_message_name := 'IGS_EN_CONIND_NOTSET_NONE';
88   			RETURN FALSE;
89   		END IF;
90   	END IF;
91   	CLOSE c_dit;
92   	RETURN TRUE;
93   EXCEPTION
94   	WHEN OTHERS THEN
95   		IF (c_dit%ISOPEN) THEN
96   			CLOSE c_dit;
97   		END IF;
98   		RAISE;
99   END;
100   EXCEPTION
101   	WHEN OTHERS THEN
102 		FND_MESSAGE.SET_NAME('IGS', 'IGS_GE_UNHANDLED_EXP');
103 		FND_MESSAGE.SET_TOKEN('NAME', 'IGS_EN_VAL_PDI.enrp_val_pd_contact');
104 		IGS_GE_MSG_STACK.ADD;
105 	        App_Exception.Raise_Exception;
106 
107 
108   END enrp_val_pd_contact;
109   --
110   -- Validate the disability type closed indicator
111   FUNCTION enrp_val_dit_closed(
112   p_disability_type IN VARCHAR2 ,
113   p_message_name OUT NOCOPY VARCHAR2)
114   RETURN BOOLEAN AS
115   BEGIN
116   DECLARE
117 
118   	v_closed_ind		VARCHAR2(1);
119   	CURSOR c_disability_type IS
120   		SELECT	closed_ind
121   		FROM	IGS_AD_DISBL_TYPE
122   		WHERE	disability_type = p_disability_type;
123   BEGIN
124   	-- Check if the disability_type is closed
125   	p_message_name := NULL;
126   	OPEN c_disability_type;
127   	FETCH c_disability_type INTO v_closed_ind;
128   	IF (c_disability_type%NOTFOUND) THEN
129   		CLOSE c_disability_type;
130   		RETURN TRUE;
131   	END IF;
132   	IF (v_closed_ind = 'Y') THEN
133   		p_message_name := 'IGS_EN_DISABILITY_TYPE_CLOSED';
134   		CLOSE c_disability_type;
135   		RETURN FALSE;
136   	END IF;
137   	-- record is not closed
138   	CLOSE c_disability_type;
139   	RETURN TRUE;
140   EXCEPTION
141   	WHEN OTHERS THEN
142 		FND_MESSAGE.SET_NAME('IGS', 'IGS_GE_UNHANDLED_EXP');
143 		FND_MESSAGE.SET_TOKEN('NAME', 'IGS_EN_VAL_PDI.enrp_val_dit_closed');
144 		IGS_GE_MSG_STACK.ADD;
145 	        App_Exception.Raise_Exception;
146 
147 
148   END;
149   END enrp_val_dit_closed;
150 END IGS_EN_VAL_PDI;