DBA Data[Home] [Help]

PACKAGE BODY: APPS.IGS_AS_VAL_VEA

Source


1 PACKAGE BODY IGS_AS_VAL_VEA AS
2 /* $Header: IGSAS38B.pls 115.7 2002/11/28 22:48:44 nsidana ship $ */
3 
4 --
5 -- bug id : 1956374
6 -- sjadhav ,29-aug-2001
7 -- removed function enrp_val_pc_closed
8 --
9   -------------------------------------------------------------------------------------------
10   --Change History:
11   --Who         When            What
12   --smadathi    29-AUG-2001     Bug No. 1956374 . The function genp_val_strt_end_dt removed
13   --smadathi    27-AUG-2001     Bug No. 1956374 .The function orgp_val_addr_type removed
14   -------------------------------------------------------------------------------------------
15   -- Retrofitted
16   FUNCTION assp_val_vea_coraddr(
17   p_venue_cd  IGS_AD_LOCVENUE_ADDR.LOCATION_venue_cd%TYPE ,
18   p_addr_type  FND_LOOKUP_VALUES.LOOKUP_CODE%TYPE ,
19   p_start_dt  HZ_LOCATIONS.ADDRESS_EFFECTIVE_DATE%TYPE ,
20   p_end_dt  HZ_LOCATIONS.ADDRESS_EXPIRATION_DATE%TYPE ,
21   p_message_name OUT NOCOPY VARCHAR2)
22   RETURN BOOLEAN IS
23   	gv_other_detail		VARCHAR2(255);
24   	return_val		BOOLEAN;
25   BEGIN	--assp_val_vea_coraddr
26   	--This module validates that a IGS_GR_VENUE has only one active correspondence
27   	--address in any parent or future time frame
28   DECLARE
29   	v_adt_rec		VARCHAR2(1);
30   	CURSOR c_adt IS
31   		SELECT 	'X'
32   		FROM	IGS_CO_ADDR_TYPE
33   		WHERE	addr_type			= p_addr_type;
34   	CURSOR c_vea IS
35   		SELECT	vea.start_dt,
36   			vea.end_dt
37   		FROM	IGS_GR_VENUE_ADDR	vea
38   		WHERE	vea.correspondence_ind	= 'Y'		AND
39   			vea.addr_type		<> p_addr_type	AND
40   			vea.venue_cd		= p_venue_cd;
41   BEGIN
42   	--- Set the default message number
43   	 p_message_name := null;
44   	-- Set the default return value
45   	return_val := TRUE;
46   	--Check if the parameter address type has the correpondence indicator set to
47   	--'TRUE'
48   	OPEN c_adt;
49   	FETCH c_adt INTO v_adt_rec;
50   	IF (c_adt%NOTFOUND) THEN
51   		CLOSE c_adt;
52   		RETURN return_val;
53   	END IF;
54   	CLOSE c_adt;
55   	--The IGS_CO_ADDR_TYPE passed in as a parameter has the correspondence_ind set.
56   	--Now loop through the IGS_GR_VENUE_ADDR records for the IGS_GR_VENUE to determine if they
57   	--have any other active records with an IGS_CO_ADDR_TYPE
58   	--(apart from the IGS_CO_ADDR_TYPE passed in as a parameter)
59   	--which also has the correspondence_ind set. If so, set the error message.
60   	FOR v_vea_rec IN c_vea LOOP
61   		IF (v_vea_rec.end_dt >= SYSDATE  OR
62   				v_vea_rec.end_dt IS NULL) THEN
63   			--Validate for date overlaps against the parameter details passed in
64   			--Validation will fail if any of the following numbered points are true
65   			IF (v_vea_rec.end_dt IS NOT NULL) THEN
66   				--1. The parameter start date is between the fetched record date range
67   				IF (p_start_dt BETWEEN v_vea_rec.start_dt AND v_vea_rec.end_dt) THEN
68   					p_message_name := 'IGS_AS_ADDTYPE_USED_COR_PURPO';
69   					return_val := FALSE;
70   					EXIT;
71   				END IF;
72   				IF (p_end_dt IS NOT NULL) THEN
73   					--2. The parameter end date is between the fetched record date range
74   					IF (p_end_dt BETWEEN v_vea_rec.start_dt AND v_vea_rec.end_dt) THEN
75   						p_message_name := 'IGS_AS_ADDTYPE_USED_COR_PURPO';
76   						return_val := FALSE;
77   						EXIT;
78   					END IF;
79   					--3. The parameter dates overlap the entire fetched record date range
80   					IF (p_start_dt <= v_vea_rec.start_dt	AND
81   							p_end_dt >= v_vea_rec.end_dt) THEN
82   						p_message_name := 'IGS_AS_ADDTYPE_USED_COR_PURPO';
83   						return_val := FALSE;
84   						EXIT;
85   					END IF;
86   				END IF;
87   				IF (p_end_dt IS NULL) THEN
88   					--4. The parameter date range overlaps the fetched record open-ended date
89   					--range
90   					IF (p_start_dt <= v_vea_rec.start_dt) THEN
91   						p_message_name := 'IGS_AS_ADDTYPE_USED_COR_PURPO';
92   						return_val := FALSE;
93   						EXIT;
94   					END IF;
95   				END IF;
96   			END IF;
97   			IF (v_vea_rec.end_dt IS NULL) THEN
98   				IF (p_end_dt IS NOT NULL) THEN
99   					--5. The parameter dates overlap the fetched record start date
100   					IF (v_vea_rec.start_dt BETWEEN p_start_dt AND p_end_dt) THEN
101   						p_message_name := 'IGS_AS_ADDTYPE_USED_COR_PURPO';
102   						return_val := FALSE;
103   						EXIT;
104   					END IF;
105   					--6 The parameter dates overlap the fetched record open-ended start date
106   					IF (v_vea_rec.start_dt <= p_start_dt) THEN
107   						p_message_name := 'IGS_AS_ADDTYPE_USED_COR_PURPO';
108   						return_val := FALSE;
109   						EXIT;
110   					END IF;
111   				END IF;
112   				IF ( p_end_dt IS NULL) THEN
113   					p_message_name := 'IGS_AS_ADDTYPE_USED_COR_PURPO';
114   					return_val := FALSE;
115   					EXIT;
116   				END IF;
117   			END IF;
118   		END IF;
119   	END LOOP;
120   	RETURN return_val;
121   END;
122   EXCEPTION
123   	WHEN OTHERS THEN
124   	 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
125          Fnd_Message.Set_Token('NAME','IGS_AS_VAL_VEA.ASSP_VAL_VEA_CORADDR');
126          Igs_Ge_Msg_stack.Add;
127        App_Exception.Raise_Exception;
128   END assp_val_vea_coraddr;
129   --
130   -- Retrofitted
131   FUNCTION ASSP_VAL_VEA_OVRLP(
132   p_venue_cd  IGS_AD_LOCVENUE_ADDR.location_venue_cd%TYPE ,
133   p_addr_type  FND_LOOKUP_VALUES.LOOKUP_CODE%TYPE ,
134   p_start_dt  HZ_LOCATIONs.ADDRESS_EFFECTIVE_DATE%TYPE ,
135   p_end_dt  HZ_LOCATIONS.ADDRESS_EXPIRATION_DATE%TYPE ,
136   p_message_name OUT NOCOPY VARCHAR2)
137   RETURN BOOLEAN IS
138   	gv_other_detail		VARCHAR2(255);
139   BEGIN	-- assp_val_vea_ovrlp
140   	-- Validate that the IGS_GR_VENUE_ADDR record being created or updated does not
141   	-- overlap with an existing address record of the same type for the IGS_GR_VENUE.
142   DECLARE
143   	v_start_dt	IGS_GR_VENUE_ADDR.start_dt%TYPE;
144   	v_end_dt	IGS_GR_VENUE_ADDR.end_dt%TYPE;
145   	v_p_end_dt	IGS_GR_VENUE_ADDR.end_dt%TYPE;
146   	CURSOR c_va IS
147   		SELECT  IGS_GR_VENUE_ADDR.start_dt,
148                 NVL(IGS_GR_VENUE_ADDR.end_dt,IGS_GE_DATE.IGSDATE('1900/01/01'))
149   		FROM	IGS_GR_VENUE_ADDR
150   		WHERE	venue_cd	= p_venue_cd  AND
151   			addr_type	= p_addr_type AND
152   			start_dt	<> p_start_dt;
153   BEGIN
154   	 p_message_name := null;
155   	-- set p_end_dt to a high date if null
156 
157       v_p_end_dt := NVL(p_end_dt,IGS_GE_DATE.IGSDATE('YYYY/MM/DD'));
158 --  	v_p_end_dt := NVL(p_end_dt, TO_DATE('01/01/9999','DD/MM/YYYY'));
159   	OPEN c_va;
160   	-- Validation will fail if any of the following are true
161   	LOOP
162   		EXIT WHEN (c_va%NOTFOUND);
163   		FETCH c_va INTO v_start_dt,
164   				v_end_dt;
165   		-- (a)  The current start date is between an existing date range.
166   		IF (p_start_dt >= v_start_dt AND
167   				p_start_dt <= v_end_dt) THEN
168   			CLOSE c_va;
169   			p_message_name := 'IGS_EN_ADO_STDT_BTWN_STDT';
170   			RETURN FALSE;
171   		END IF;
172   		-- (b)  The current end date is between an existing date range.
173   		IF (v_p_end_dt >= v_start_dt AND
174   				v_p_end_dt <= v_end_dt) THEN
175   			CLOSE c_va;
176   			p_message_name := 'IGS_EN_ADO_ENDDT_BTWN_ENDDT';
177   			RETURN FALSE;
178   		END IF;
179   		-- (c)  The current dates overlap an entire existing date range.
180   		IF (p_start_dt <= v_start_dt AND
181   				v_p_end_dt >= v_end_dt) THEN
182   			CLOSE c_va;
183   			p_message_name := 'IGS_EN_ADO_DT_OVERLAP';
184   			Return FALSE;
185   		END IF;
186   	END LOOP;
187   	CLOSE c_va;
188   	RETURN TRUE;
189   END;
190   EXCEPTION
191   	WHEN OTHERS THEN
192   	 Fnd_Message.Set_Name('IGS', 'IGS_GE_UNHANDLED_EXP');
193          Fnd_Message.Set_Token('NAME','IGS_AS_VAL_VEA.ASSP_VAL_VEA_OVRLP');
194          Igs_Ge_Msg_stack.Add;
195        App_Exception.Raise_Exception;
196   END assp_val_vea_ovrlp;
197   --
198   --
199   --
200   PROCEDURE Validate_Address
201   (
202     p_city IN VARCHAR2,
203     p_state IN VARCHAR2,
204     p_province IN VARCHAR2,
205     p_county IN VARCHAR2,
206     p_country IN VARCHAR2,
207     p_postcode IN VARCHAR2,
208     p_valid_address OUT NOCOPY BOOLEAN,
209     p_error_msg OUT NOCOPY VARCHAR2
210   ) IS
211   BEGIN
212 
213     -- Custom Validation Logic Implemented by the user.
214     -- After Validation, if the user finds this address is valid, do the following.
215     -- p_valid_address := TRUE;
216     -- p_error_msg := NULL;
217 
218     -- If the address is not valid, the do the following.
219     -- p_valid_address := FALSE;
220     -- p_error_msg := p_city; -- The Parameter which is not valid. (e.g., p_city)
221 
222     p_valid_address := TRUE;
223     p_error_msg := NULL;
224 
225   END Validate_Address;
226 
227 END IGS_AS_VAL_VEA;