[Home] [Help]
PACKAGE BODY: APPS.XLA_EVENT_TYPES_PKG
Source
1 PACKAGE BODY xla_event_types_pkg AS
2 /* $Header: xlaamdet.pkb 120.5 2005/06/23 20:15:17 ksvenkat ship $ */
3 /*======================================================================+
4 | Copyright (c) 1995-2002 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | All rights reserved. |
7 +=======================================================================+
8 | PACKAGE NAME |
9 | xla_event_types_pkg |
10 | |
11 | DESCRIPTION |
12 | XLA Event Types Package |
13 | |
14 | HISTORY |
15 | 01-May-01 Dimple Shah Created |
16 | 11-Nov-04 Wynne Chan Changed for AAD Enhancements - JLD |
17 | |
18 +======================================================================*/
19
20 /*======================================================================+
21 | |
22 | Public Function |
23 | |
24 | type_details_exist |
25 | |
26 | Returns true if details of the class exist |
27 | |
28 +======================================================================*/
29 FUNCTION type_details_exist
30 (p_event IN VARCHAR2
31 ,p_application_id IN NUMBER
32 ,p_entity_code IN VARCHAR2
33 ,p_event_class_code IN VARCHAR2
34 ,p_event_type_code IN VARCHAR2
35 ,p_accounting_flag IN VARCHAR2
36 ,p_tax_flag IN VARCHAR2
37 ,p_message IN OUT NOCOPY VARCHAR2)
38 RETURN BOOLEAN
39 IS
40
41 --
42 -- Private variables
43 --
44 l_count NUMBER(10) := 0;
45 l_exist varchar2(1);
46 l_return BOOLEAN := FALSE;
47
48 l_application_id NUMBER(38) := p_application_id;
49 l_entity_code VARCHAR2(30) := p_entity_code;
50 l_event_class_code VARCHAR2(30) := p_event_class_code;
51 l_event_type_code VARCHAR2(30) := p_event_type_code;
52 l_message VARCHAR2(30) := null;
53 --
54 -- Cursor declarations
55 --
56
57 CURSOR check_prod_rules
58 IS
59 SELECT 'x'
60 FROM xla_prod_acct_headers
61 WHERE application_id = p_application_id
62 AND entity_code = p_entity_code
63 AND event_class_code = p_event_class_code
64 AND event_type_code = p_event_type_code;
65
66 CURSOR check_jld
67 IS
68 SELECT 'x'
69 FROM xla_line_definitions_b
70 WHERE application_id = p_application_id
71 AND event_class_code = p_event_class_code
72 AND event_type_code = p_event_type_code;
73
74 CURSOR event_type_count
75 IS
76 SELECT count(1)
77 FROM xla_event_types_vl
78 WHERE application_id = p_application_id
79 AND entity_code = p_entity_code
80 AND event_class_code = p_event_class_code
81 AND event_type_code <> p_event_class_code||'_ALL'
82 AND accounting_flag = 'Y'
83 AND enabled_flag = 'Y';
84
85 CURSOR check_class_prod_rules
86 IS
87 SELECT 'x'
88 FROM xla_prod_acct_headers
89 WHERE application_id = p_application_id
90 AND entity_code = p_entity_code
91 AND event_class_code = p_event_class_code
92 AND event_type_code = p_event_class_code||'_ALL';
93
94 CURSOR check_class_jld
95 IS
96 SELECT 'x'
97 FROM xla_line_definitions_b
98 WHERE application_id = p_application_id
99 AND event_class_code = p_event_class_code
100 AND event_type_code = p_event_class_code||'_ALL';
101
102 BEGIN
103 xla_utility_pkg.trace('> xla_event_types_pkg.type_details_exist' , 10);
104
105 xla_utility_pkg.trace('event = '||p_event, 20);
106 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
107 xla_utility_pkg.trace('entity_code = '||p_entity_code , 20);
108 xla_utility_pkg.trace('event_class_code = '||p_event_class_code , 20);
109 xla_utility_pkg.trace('event_type_code = '||p_event_type_code , 20);
110
111 IF p_event in ('DELETE','DISABLE') THEN
112
113 IF p_accounting_flag = 'Y' THEN
114
115 OPEN check_prod_rules;
116 FETCH check_prod_rules
117 INTO l_exist;
118 IF check_prod_rules%found THEN
119 l_message := 'XLA_AB_EVENT_TYPE_IN_USE';
120 l_return := TRUE;
121 ELSE
122 l_message := null;
123 l_return := FALSE;
124 END IF;
125 CLOSE check_prod_rules;
126
127 IF l_return = FALSE THEN
128 OPEN check_jld;
129 FETCH check_jld
130 INTO l_exist;
131
132 IF check_jld%found THEN
133 l_message := 'XLA_AB_EVENT_TYPE_IN_USE';
134 l_return := TRUE;
135 ELSE
136 l_message := null;
137 l_return := FALSE;
138 END IF;
139 CLOSE check_jld;
140 END IF;
141
142 IF l_return = FALSE THEN
143 OPEN event_type_count;
144 FETCH event_type_count
145 INTO l_count;
146 CLOSE event_type_count;
147
148 IF l_count =1 THEN
149 OPEN check_class_prod_rules;
150 FETCH check_class_prod_rules
151 INTO l_exist;
152 IF check_class_prod_rules%found THEN
153 l_message := 'XLA_AB_EVENT_TYPE_IN_USE';
154 l_return := TRUE;
155 ELSE
156 l_message := null;
157 l_return := FALSE;
158 END IF;
159 CLOSE check_class_prod_rules;
160
161 IF l_return = FALSE THEN
162 OPEN check_class_jld;
163 FETCH check_class_jld
164 INTO l_exist;
165 IF check_class_jld%found THEN
166 l_message := 'XLA_AB_EVENT_TYPE_IN_USE';
167 l_return := TRUE;
168 ELSE
169 l_message := null;
170 l_return := FALSE;
171 END IF;
172 CLOSE check_class_jld;
173 END IF;
174 END IF;
175 END IF;
176 END IF;
177
178 IF p_tax_flag = 'Y' THEN
179
180 IF l_return = FALSE THEN
181
182 IF zx_taxevent_pub.is_event_type_valid
183 (p_application_id => l_application_id
184 ,p_entity_code => l_entity_code
185 ,p_event_class_code => l_event_class_code
186 ,p_event_type_code => l_event_type_code) THEN
187
188 l_message := 'XLA_AB_TAX_DETAILS_EXIST';
189 l_return := TRUE;
190 ELSE
191 l_message := null;
192 l_return := FALSE;
193 END IF;
194 END IF;
195 END IF;
196
197 ELSIF p_event = 'DEACCOUNTING' THEN
198
199 OPEN check_prod_rules;
200 FETCH check_prod_rules
201 INTO l_exist;
202 IF check_prod_rules%found THEN
203 l_message := 'XLA_AB_EVENT_TYPE_IN_USE';
204 l_return := TRUE;
205 ELSE
206 l_message := null;
207 l_return := FALSE;
208 END IF;
209 CLOSE check_prod_rules;
210
211 IF l_return = FALSE THEN
212 OPEN check_jld;
213 FETCH check_jld
214 INTO l_exist;
215
216 IF check_jld%found THEN
217 l_message := 'XLA_AB_EVENT_TYPE_IN_USE';
218 l_return := TRUE;
219 ELSE
220 l_message := null;
221 l_return := FALSE;
222 END IF;
223 CLOSE check_jld;
224 END IF;
225
226 IF l_return = FALSE THEN
227 OPEN event_type_count;
228 FETCH event_type_count
229 INTO l_count;
230 CLOSE event_type_count;
231
232 IF l_count =1 THEN
233 OPEN check_class_prod_rules;
234 FETCH check_class_prod_rules
235 INTO l_exist;
236 IF check_class_prod_rules%found THEN
237 l_message := 'XLA_AB_EVENT_TYPE_IN_USE';
238 l_return := TRUE;
239 ELSE
240 l_message := null;
241 l_return := FALSE;
242 END IF;
243 CLOSE check_class_prod_rules;
244
245 IF l_return = FALSE THEN
246 OPEN check_class_jld;
247 FETCH check_class_jld
248 INTO l_exist;
249 IF check_class_jld%found THEN
250 l_message := 'XLA_AB_EVENT_TYPE_IN_USE';
251 l_return := TRUE;
252 ELSE
253 l_message := null;
254 l_return := FALSE;
255 END IF;
256 CLOSE check_class_jld;
257 END IF;
258 END IF;
259 END IF;
260
261 ELSIF p_event = 'DETAX' THEN
262
263 IF zx_taxevent_pub.is_event_type_valid
264 (p_application_id => l_application_id
265 ,p_entity_code => l_entity_code
266 ,p_event_class_code => l_event_class_code
267 ,p_event_type_code => l_event_type_code) THEN
268
269 l_message := 'XLA_AB_TAX_DETAILS_EXIST';
270 l_return := TRUE;
271 ELSE
272 l_message := null;
273 l_return := FALSE;
274 END IF;
275
276 END IF;
277
278 xla_utility_pkg.trace('< xla_event_types_pkg.type_details_exist' , 10);
279 p_message := l_message;
280 RETURN l_return;
281
282 EXCEPTION
283 WHEN xla_exceptions_pkg.application_exception THEN
284 RAISE;
285 WHEN OTHERS THEN
286 xla_exceptions_pkg.raise_message
287 (p_location => 'xla_event_types_pkg.type_details_exist');
288
289 END type_details_exist;
290
291 END xla_event_types_pkg;