DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_RE_VAL_SCH

Source


1 PACKAGE BODY IGS_RE_VAL_SCH AS
2 /* $Header: IGSRE12B.pls 115.4 2002/11/29 03:29:30 nsidana ship $ */
3   -------------------------------------------------------------------------------------------
4   --Change History:
5   --Who         When            What
6   --smadathi    28-AUG-2001     Bug No. 1956374 .The function genp_val_strt_end_dt removed
7   --smadathi    25-AUG-2001     Bug No. 1956374 .The function GENP_VAL_SDTT_SESS removed
8   -------------------------------------------------------------------------------------------
9 
10   -- To validate scholarship_type closed indicator
11   FUNCTION RESP_VAL_SCHT_CLOSED(
12   p_scholarship_type IN VARCHAR2 ,
13   p_message_name OUT NOCOPY VARCHAR2 )
14   RETURN BOOLEAN AS
15   BEGIN	-- resp_val_scht_closed
16   	-- Validate the IGS_RE_SCHOLARSHIP type closed indicator
17   DECLARE
18   	v_scht_found		VARCHAR2(1);
19   	CURSOR	c_scht IS
20   		SELECT	'x'
21   		FROM	IGS_RE_SCHL_TYPE
22   		WHERE	scholarship_type	= p_scholarship_type AND
23   			closed_ind		= 'Y';
24   BEGIN
25   	-- initialse the message_nameber
26   	p_message_name := NULL;
27   	OPEN c_scht;
28   	FETCH c_scht INTO v_scht_found;
29   	IF (c_scht%FOUND) THEN
30   		CLOSE c_scht;
31   		p_message_name := 'IGS_RE_SCHOLAR_TYPE_CLOSED';
32   		RETURN FALSE;
33   	END IF;
34   	CLOSE c_scht;
35   	RETURN TRUE;
36   EXCEPTION
37   	WHEN OTHERS THEN
38   		IF c_scht%ISOPEN THEN
39   			CLOSE c_scht;
40   		END IF;
41   		RAISE;
42   END;
43   EXCEPTION
44 	WHEN OTHERS THEN
45 		Fnd_Message.Set_Name ('IGS', 'IGS_GE_UNHANDLED_EXCEPTION');
46 		IGS_GE_MSG_STACK.ADD;
47 		App_Exception.Raise_Exception;
48   END resp_val_scht_closed;
49   --
50   -- To validate IGS_RE_SCHOLARSHIP date overlaps
51   FUNCTION RESP_VAL_SCH_OVRLP(
52   p_person_id IN NUMBER ,
53   p_ca_sequence_number IN NUMBER ,
54   p_scholarship_type IN VARCHAR2 ,
55   p_start_dt IN DATE ,
56   p_end_dt IN DATE ,
57   p_message_name OUT NOCOPY VARCHAR2 )
58   RETURN BOOLEAN AS
59   BEGIN	-- resp_val_sch_ovrlp
60   	-- Validate that the scolarship record being created or updated
61   	-- does not overlap with an existing scolarship record of the
62   	-- same scolarship_type.
63   DECLARE
64   	v_end_dt	IGS_RE_SCHOLARSHIP.end_dt%TYPE;
65   	v_high_dt	IGS_RE_SCHOLARSHIP.end_dt%TYPE;
66   	v_exit_loop	BOOLEAN DEFAULT FALSE;
67   	CURSOR	c_sch IS
68   		SELECT	sch.start_dt,
69   			sch.end_dt
70   		FROM	IGS_RE_SCHOLARSHIP	sch
71   		WHERE	sch.person_id		= p_person_id AND
72   			sch.ca_sequence_number	= p_ca_sequence_number AND
73   			sch.scholarship_type	= p_scholarship_type AND
74   			sch.start_dt		<> p_start_dt;
75   BEGIN
76   	p_message_name := NULL;
77   	-- set_v_high_dt
78   	v_high_dt := IGS_GE_DATE.IGSDATE('9999/01/01');
79   	-- set v_end_dt to v_high_dt when p_end_dt is null
80   	v_end_dt := NVL(p_end_dt, v_high_dt);
81   	FOR v_sch_rec IN c_sch LOOP
82   		-- check that the current date is between an existing date range.
83   		IF p_start_dt > v_sch_rec.start_dt AND
84   				p_start_dt <= NVL(v_sch_rec.end_dt, v_high_dt) THEN
85   			v_exit_loop := TRUE;
86   			p_message_name := 'IGS_RE_ST_DT_BET_EXIST_DT_RNG';
87   			EXIT;
88   		END IF;
89   		-- check that the current end date is between an existing date range.
90   		IF v_end_dt >= v_sch_rec.start_dt AND
91   				v_end_dt <= NVL(v_sch_rec.end_dt, v_high_dt) THEN
92   			v_exit_loop := TRUE;
93   			p_message_name := 'IGS_RE_EN_DT_BET_EXIST_DT_RNG';
94   			EXIT;
95   		END IF;
96   		-- check whether the current dates overlap an entire existing date range.
97   		IF p_start_dt < v_sch_rec.start_dt AND
98   				v_end_dt >= NVL(v_sch_rec.end_dt, v_high_dt) THEN
99   			v_exit_loop := TRUE;
100   			p_message_name := 'IGS_RE_DT_OVERLAP_WITH_DT_RNG';
101   			EXIT;
102   		END IF;
103   	END LOOP;
104   	IF v_exit_loop THEN
105   		RETURN FALSE;
106   	END IF;
107   	RETURN TRUE;
108   EXCEPTION
109   	WHEN OTHERS THEN
110   		IF c_sch%ISOPEN THEN
111   			CLOSE c_sch;
112   		END IF;
113   		RAISE;
114   END;
115   EXCEPTION
116 	WHEN OTHERS THEN
117 		Fnd_Message.Set_Name ('IGS', 'IGS_GE_UNHANDLED_EXCEPTION');
118 		IGS_GE_MSG_STACK.ADD;
119 		App_Exception.Raise_Exception;
120   END resp_val_sch_ovrlp;
121 
122 END IGS_RE_VAL_SCH;