[Home] [Help]
PACKAGE BODY: APPS.XLA_EVT_CLASS_ACCT_ATTRS_PKG
Source
1 PACKAGE BODY xla_evt_class_acct_attrs_pkg AS
2 /* $Header: xlaamaaa.pkb 120.13 2006/09/29 18:03:35 dcshah ship $ */
3 /*======================================================================+
4 | Copyright (c) 1995-2002 Oracle Corporation |
5 | Redwood Shores, CA, USA |
6 | ALL rights reserved. |
7 +=======================================================================+
8 | PACKAGE NAME |
9 | xla_evt_class_acct_attrs_pkg |
10 | |
11 | DESCRIPTION |
12 | XLA Event CLASS Acct Attrs PACKAGE |
13 | |
14 | HISTORY |
15 | 01-May-01 Dimple Shah Created |
16 | 01-Mar-05 W. Shen CHANGE THE FUNCTION insert_jlt_assignment |
17 | don't insert certain attributes for |
18 | gain/loss line TYPES |
19 | |
20 +======================================================================*/
21
22 -------------------------------------------------------------------------------
23 -- declaring private package variables
24 -------------------------------------------------------------------------------
25 g_creation_date DATE;
26 g_last_update_date DATE;
27 g_created_by INTEGER;
28 g_last_update_login INTEGER;
29 g_last_updated_by INTEGER;
30
31 -------------------------------------------------------------------------------
32 -- Debug constants
33 -------------------------------------------------------------------------------
34 C_LEVEL_STATEMENT CONSTANT NUMBER := FND_LOG.LEVEL_STATEMENT;
35 C_LEVEL_PROCEDURE CONSTANT NUMBER := FND_LOG.LEVEL_PROCEDURE;
36 C_LEVEL_EVENT CONSTANT NUMBER := FND_LOG.LEVEL_EVENT;
37 C_LEVEL_EXCEPTION CONSTANT NUMBER := FND_LOG.LEVEL_EXCEPTION;
38 C_LEVEL_ERROR CONSTANT NUMBER := FND_LOG.LEVEL_ERROR;
39 C_LEVEL_UNEXPECTED CONSTANT NUMBER := FND_LOG.LEVEL_UNEXPECTED;
40 C_LEVEL_LOG_DISABLED CONSTANT NUMBER := 99;
41 C_DEFAULT_MODULE CONSTANT VARCHAR2(240) := 'xla.plsql.xla_evt_class_acct_attrs_pkg';
42
43 -------------------------------------------------------------------------------
44 -- Debug variables
45 -------------------------------------------------------------------------------
46 g_log_level PLS_INTEGER := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
47 g_log_enabled BOOLEAN := fnd_log.test
48 (log_level => g_log_level
49 ,MODULE => C_DEFAULT_MODULE);
50 -------------------------------------------------------------------------------
51 -- declaring private package arrays
52 -------------------------------------------------------------------------------
53 TYPE t_array_codes IS TABLE OF VARCHAR2(30) INDEX BY BINARY_INTEGER;
54 TYPE t_array_type_codes IS TABLE OF VARCHAR2(1) INDEX BY BINARY_INTEGER;
55
56 /*===================================================================
57 print DEBUG messages
58
59 =====================================================================*/
60 PROCEDURE trace (p_msg IN VARCHAR2
61 ,p_level IN NUMBER
62 ,p_module IN VARCHAR2) IS
63 BEGIN
64
65 IF (p_msg IS NULL AND p_level >= g_log_level) THEN
66 fnd_log.message(p_level, p_module);
67 ELSIF p_level >= g_log_level THEN
68 fnd_log.string(p_level, p_module, p_msg);
69 END IF;
70 EXCEPTION
71 WHEN xla_exceptions_pkg.application_exception THEN
72 RAISE;
73 WHEN OTHERS THEN
74 xla_exceptions_pkg.raise_message
75 (p_location => 'xla_evt_class_acct_attrs_pkg.trace');
76 END trace;
77
78 /*======================================================================+
79 | |
80 | PRIVATE FUNCTION |
81 | |
82 | uncompile_defn_with_line |
83 | |
84 | Returns TRUE IF ALL THE application accounting definitions AND |
85 | journal line definitions using ANY JLTare uncompiled |
86 | |
87 +======================================================================*/
88 FUNCTION uncompile_defn_with_line
89 (p_application_id IN NUMBER
90 ,p_event_class_code IN VARCHAR2
91 ,x_product_rule_name IN OUT NOCOPY VARCHAR2
92 ,x_product_rule_type IN OUT NOCOPY VARCHAR2
93 ,x_event_class_name IN OUT NOCOPY VARCHAR2
94 ,x_event_type_name IN OUT NOCOPY VARCHAR2
95 ,x_locking_status_flag IN OUT NOCOPY VARCHAR2)
96 RETURN BOOLEAN
97 IS
98
99 l_return BOOLEAN := TRUE;
100 l_exist VARCHAR2(1);
101
102 l_application_name VARCHAR2(240) := NULL;
103 l_product_rule_name VARCHAR2(80) := NULL;
104 l_product_rule_type VARCHAR2(80) := NULL;
105 l_event_class_name VARCHAR2(80) := NULL;
106 l_event_type_name VARCHAR2(80) := NULL;
107 l_locking_status_flag VARCHAR2(1) := NULL;
108
109 CURSOR c_lock_aads IS
110 SELECT xpa.entity_code
111 ,xpa.event_class_code
112 ,xpa.event_type_code
113 ,xpa.amb_context_code
114 ,xpa.product_rule_type_code
115 ,xpa.product_rule_code
116 , xpa.validation_status_code
117 , xpa.locking_status_flag
118 FROM xla_prod_acct_headers xpa
119 WHERE xpa.application_id = p_application_id
120 AND xpa.event_class_code = p_event_class_code
121 AND EXISTS (SELECT 'x'
122 FROM xla_aad_line_defn_assgns xal
123 , xla_line_defn_jlt_assgns xld
124 WHERE xld.application_id = xal.application_id
125 AND xld.amb_context_code = xal.amb_context_code
126 AND xld.event_class_code = xal.event_class_code
127 AND xld.event_type_code = xal.event_type_code
128 AND xld.line_definition_owner_code = xal.line_definition_owner_code
129 AND xld.line_definition_code = xal.line_definition_code
130 AND xal.application_id = xpa.application_id
131 AND xal.amb_context_code = xpa.amb_context_code
132 AND xal.event_class_code = xpa.event_class_code
133 AND xal.event_type_code = xpa.event_type_code
134 AND xal.product_rule_type_code = xpa.product_rule_type_code
135 AND xal.product_rule_code = xpa.product_rule_code)
136 FOR UPDATE NOWAIT;
137
138 BEGIN
139
140 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.uncompile_defn_with_line' , 10);
141
142 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
143 xla_utility_pkg.trace('event_class_code = '||p_event_class_code , 20);
144
145 l_return := TRUE;
146
147 FOR l_lock_aad IN c_lock_aads LOOP
148 IF (l_lock_aad.validation_status_code NOT IN ('E', 'Y', 'N') OR
149 l_lock_aad.locking_status_flag = 'Y') THEN
150
151 xla_validations_pkg.get_product_rule_info
152 (p_application_id => p_application_id
153 ,p_amb_context_code => l_lock_aad.amb_context_code
154 ,p_product_rule_type_code => l_lock_aad.product_rule_type_code
155 ,p_product_rule_code => l_lock_aad.product_rule_code
156 ,p_application_name => l_application_name
157 ,p_product_rule_name => l_product_rule_name
158 ,p_product_rule_type => l_product_rule_type);
159
160 xla_validations_pkg.get_event_class_info
161 (p_application_id => p_application_id
162 ,p_entity_code => l_lock_aad.entity_code
163 ,p_event_class_code => l_lock_aad.event_class_code
164 ,p_event_class_name => l_event_class_name);
165
166 xla_validations_pkg.get_event_type_info
167 (p_application_id => p_application_id
168 ,p_entity_code => l_lock_aad.entity_code
169 ,p_event_class_code => l_lock_aad.event_class_code
170 ,p_event_type_code => l_lock_aad.event_type_code
171 ,p_event_type_name => l_event_type_name);
172
173 l_locking_status_flag := l_lock_aad.locking_status_flag;
174
175 l_return := FALSE;
176
177 EXIT;
178 END IF;
179 END LOOP;
180
181 IF (l_return) THEN
182
183 UPDATE xla_line_definitions_b xld
184 SET validation_status_code = 'N'
185 WHERE xld.application_id = p_application_id
186 AND xld.event_class_code = p_event_class_code
187 AND xld.validation_status_code <> 'N'
188 AND EXISTS (SELECT 'X'
189 FROM xla_line_defn_jlt_assgns xja
190 WHERE xld.application_id = xja.application_id
191 AND xld.amb_context_code = xja.amb_context_code
192 AND xld.event_class_code = xja.event_class_code
193 AND xld.event_type_code = xja.event_type_code
194 AND xld.line_definition_owner_code = xja.line_definition_owner_code
195 AND xld.line_definition_code = xja.line_definition_code);
196
197 UPDATE xla_prod_acct_headers xpa
198 SET validation_status_code = 'N'
199 WHERE xpa.application_id = p_application_id
200 AND xpa.event_class_code = p_event_class_code
201 AND xpa.validation_status_code <> 'N'
202 AND EXISTS (SELECT 'x'
203 FROM xla_aad_line_defn_assgns xal
204 , xla_line_defn_jlt_assgns xja
205 WHERE xja.application_id = xal.application_id
206 AND xja.amb_context_code = xal.amb_context_code
207 AND xja.event_class_code = xal.event_class_code
208 AND xja.event_type_code = xal.event_type_code
209 AND xja.line_definition_owner_code = xal.line_definition_owner_code
210 AND xja.line_definition_code = xal.line_definition_code
211 AND xal.application_id = xpa.application_id
212 AND xal.amb_context_code = xpa.amb_context_code
213 AND xal.event_class_code = xpa.event_class_code
214 AND xal.event_type_code = xpa.event_type_code
215 AND xal.product_rule_type_code = xpa.product_rule_type_code
216 AND xal.product_rule_code = xpa.product_rule_code);
217
218 UPDATE xla_product_rules_b xpr
219 SET compile_status_code = 'N'
220 WHERE xpr.application_id = p_application_id
221 AND xpr.compile_status_code <> 'N'
222 AND EXISTS (SELECT 'x'
223 FROM xla_aad_line_defn_assgns xal
224 , xla_line_defn_jlt_assgns xja
225 WHERE xja.application_id = xal.application_id
226 AND xja.amb_context_code = xal.amb_context_code
227 AND xja.event_class_code = xal.event_class_code
228 AND xja.event_type_code = xal.event_type_code
229 AND xja.line_definition_owner_code = xal.line_definition_owner_code
230 AND xja.line_definition_code = xal.line_definition_code
231 AND xal.application_id = xpr.application_id
232 AND xal.amb_context_code = xpr.amb_context_code
233 AND xal.product_rule_type_code = xpr.product_rule_type_code
234 AND xal.product_rule_code = xpr.product_rule_code);
235
236 END IF;
237
238 x_product_rule_name := l_product_rule_name;
239 x_product_rule_type := l_product_rule_type;
240 x_event_class_name := l_event_class_name;
241 x_event_type_name := l_event_type_name;
242 x_locking_status_flag := l_locking_status_flag;
243
247
244 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.uncompile_defn_with_line' , 10);
245
246 RETURN l_return;
248 EXCEPTION
249 WHEN xla_exceptions_pkg.application_exception THEN
250 IF c_lock_aads%ISOPEN THEN
251 CLOSE c_lock_aads;
252 END IF;
253
254 RAISE;
255 WHEN OTHERS THEN
256 IF c_lock_aads%ISOPEN THEN
257 CLOSE c_lock_aads;
258 END IF;
259
260 xla_exceptions_pkg.raise_message
261 (p_location => 'xla_evt_class_acct_attrs_pkg.uncompile_defn_with_line');
262
263 END uncompile_defn_with_line;
264
265
266 /*======================================================================+
267 | |
268 | PRIVATE FUNCTION |
269 | |
270 | uncompile_defn_with_line_acct |
271 | |
272 | Returns TRUE IF ALL THE application accounting definitions AND |
273 | journal line definitions using ANY JLTare uncompiled |
274 | |
275 +======================================================================*/
276 FUNCTION uncompile_defn_with_line_acct
277 (p_application_id IN NUMBER
278 ,p_event_class_code IN VARCHAR2
279 ,x_product_rule_name IN OUT NOCOPY VARCHAR2
280 ,x_product_rule_type IN OUT NOCOPY VARCHAR2
281 ,x_event_class_name IN OUT NOCOPY VARCHAR2
282 ,x_event_type_name IN OUT NOCOPY VARCHAR2
283 ,x_locking_status_flag IN OUT NOCOPY VARCHAR2)
284 RETURN BOOLEAN
285 IS
286
287 l_return BOOLEAN := TRUE;
288 l_exist VARCHAR2(1);
289
290 l_application_name VARCHAR2(240) := NULL;
291 l_product_rule_name VARCHAR2(80) := NULL;
292 l_product_rule_type VARCHAR2(80) := NULL;
293 l_event_class_name VARCHAR2(80) := NULL;
294 l_event_type_name VARCHAR2(80) := NULL;
295 l_locking_status_flag VARCHAR2(1) := NULL;
296
297 CURSOR c_lock_aads IS
298 SELECT xpa.entity_code
299 ,xpa.event_class_code
300 ,xpa.event_type_code
301 ,xpa.amb_context_code
302 ,xpa.product_rule_type_code
303 ,xpa.product_rule_code
304 , xpa.validation_status_code
305 , xpa.locking_status_flag
306 FROM xla_prod_acct_headers xpa
307 WHERE xpa.application_id = p_application_id
308 AND xpa.event_class_code = p_event_class_code
309 AND xpa.accounting_required_flag = 'Y'
310 AND EXISTS (SELECT 'x'
311 FROM xla_aad_line_defn_assgns xal
312 , xla_line_defn_jlt_assgns xld
313 WHERE xld.application_id = xal.application_id
314 AND xld.amb_context_code = xal.amb_context_code
315 AND xld.event_class_code = xal.event_class_code
316 AND xld.event_type_code = xal.event_type_code
317 AND xld.line_definition_owner_code = xal.line_definition_owner_code
318 AND xld.line_definition_code = xal.line_definition_code
319 AND xal.application_id = xpa.application_id
320 AND xal.amb_context_code = xpa.amb_context_code
321 AND xal.event_class_code = xpa.event_class_code
322 AND xal.event_type_code = xpa.event_type_code
323 AND xal.product_rule_type_code = xpa.product_rule_type_code
324 AND xal.product_rule_code = xpa.product_rule_code)
325 FOR UPDATE NOWAIT;
326
327 BEGIN
328
329 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.uncompile_defn_with_line_acct' , 10);
330
331 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
332 xla_utility_pkg.trace('event_class_code = '||p_event_class_code , 20);
333
334 l_return := TRUE;
335
336 FOR l_lock_aad IN c_lock_aads LOOP
337 IF (l_lock_aad.validation_status_code NOT IN ('E', 'Y', 'N') OR
338 l_lock_aad.locking_status_flag = 'Y') THEN
339
340 xla_validations_pkg.get_product_rule_info
341 (p_application_id => p_application_id
342 ,p_amb_context_code => l_lock_aad.amb_context_code
343 ,p_product_rule_type_code => l_lock_aad.product_rule_type_code
344 ,p_product_rule_code => l_lock_aad.product_rule_code
345 ,p_application_name => l_application_name
346 ,p_product_rule_name => l_product_rule_name
347 ,p_product_rule_type => l_product_rule_type);
348
349 xla_validations_pkg.get_event_class_info
350 (p_application_id => p_application_id
351 ,p_entity_code => l_lock_aad.entity_code
352 ,p_event_class_code => l_lock_aad.event_class_code
353 ,p_event_class_name => l_event_class_name);
354
355 xla_validations_pkg.get_event_type_info
356 (p_application_id => p_application_id
357 ,p_entity_code => l_lock_aad.entity_code
358 ,p_event_class_code => l_lock_aad.event_class_code
359 ,p_event_type_code => l_lock_aad.event_type_code
360 ,p_event_type_name => l_event_type_name);
361
362 l_locking_status_flag := l_lock_aad.locking_status_flag;
363
364 l_return := FALSE;
368 END LOOP;
365
366 EXIT;
367 END IF;
369
370 IF (l_return) THEN
371
372 UPDATE xla_line_definitions_b xld
373 SET validation_status_code = 'N'
374 WHERE xld.application_id = p_application_id
375 AND xld.event_class_code = p_event_class_code
376 AND xld.validation_status_code <> 'N'
377 AND EXISTS (SELECT 'x'
378 FROM xla_prod_acct_headers xpa
379 , xla_aad_line_defn_assgns xal
380 , xla_line_defn_jlt_assgns xja
381 WHERE xld.application_id = xja.application_id
382 AND xld.amb_context_code = xja.amb_context_code
383 AND xld.event_class_code = xja.event_class_code
384 AND xld.event_type_code = xja.event_type_code
385 AND xld.line_definition_owner_code = xja.line_definition_owner_code
386 AND xld.line_definition_code = xja.line_definition_code
387 AND xld.application_id = xal.application_id
388 AND xld.amb_context_code = xal.amb_context_code
389 AND xld.event_class_code = xal.event_class_code
390 AND xld.event_type_code = xal.event_type_code
391 AND xld.line_definition_owner_code = xal.line_definition_owner_code
392 AND xld.line_definition_code = xal.line_definition_code
393 AND xal.application_id = xpa.application_id
394 AND xal.amb_context_code = xpa.amb_context_code
395 AND xal.event_class_code = xpa.event_class_code
396 AND xal.event_type_code = xpa.event_type_code
397 AND xal.product_rule_type_code = xpa.product_rule_type_code
398 AND xal.product_rule_code = xpa.product_rule_code
399 AND xpa.accounting_required_flag = 'Y');
400
401 UPDATE xla_prod_acct_headers xpa
402 SET validation_status_code = 'N'
403 WHERE xpa.application_id = p_application_id
404 AND xpa.event_class_code = p_event_class_code
405 AND xpa.accounting_required_flag = 'Y'
406 AND xpa.validation_status_code <> 'N'
407 AND EXISTS (SELECT 'x'
408 FROM xla_aad_line_defn_assgns xal
409 , xla_line_defn_jlt_assgns xld
410 WHERE xld.application_id = xal.application_id
411 AND xld.amb_context_code = xal.amb_context_code
412 AND xld.event_class_code = xal.event_class_code
413 AND xld.event_type_code = xal.event_type_code
414 AND xld.line_definition_owner_code = xal.line_definition_owner_code
415 AND xld.line_definition_code = xal.line_definition_code
416 AND xal.application_id = xpa.application_id
417 AND xal.amb_context_code = xpa.amb_context_code
418 AND xal.event_class_code = xpa.event_class_code
419 AND xal.event_type_code = xpa.event_type_code
420 AND xal.product_rule_type_code = xpa.product_rule_type_code
421 AND xal.product_rule_code = xpa.product_rule_code);
422
423 UPDATE xla_product_rules_b xpr
424 SET compile_status_code = 'N'
425 WHERE xpr.application_id = p_application_id
426 AND xpr.compile_status_code <> 'N'
427 AND EXISTS (SELECT 'x'
428 FROM xla_prod_acct_headers xpa
429 , xla_aad_line_defn_assgns xal
430 , xla_line_defn_jlt_assgns xja
431 WHERE xja.application_id = xal.application_id
432 AND xja.amb_context_code = xal.amb_context_code
433 AND xja.event_class_code = xal.event_class_code
434 AND xja.event_type_code = xal.event_type_code
435 AND xja.line_definition_owner_code = xal.line_definition_owner_code
436 AND xja.line_definition_code = xal.line_definition_code
437 AND xal.application_id = xpa.application_id
438 AND xal.amb_context_code = xpa.amb_context_code
439 AND xal.event_class_code = xpa.event_class_code
440 AND xal.event_type_code = xpa.event_type_code
441 AND xal.product_rule_type_code = xpa.product_rule_type_code
442 AND xal.product_rule_code = xpa.product_rule_code
443 AND xpa.accounting_required_flag = 'Y'
444 AND xal.application_id = xpr.application_id
445 AND xal.amb_context_code = xpr.amb_context_code
446 AND xal.product_rule_type_code = xpr.product_rule_type_code
447 AND xal.product_rule_code = xpr.product_rule_code);
448
449 END IF;
450
451 x_product_rule_name := l_product_rule_name;
452 x_product_rule_type := l_product_rule_type;
453 x_event_class_name := l_event_class_name;
454 x_event_type_name := l_event_type_name;
455 x_locking_status_flag := l_locking_status_flag;
456
457 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.uncompile_defn_with_line_acct' , 10);
458
459 RETURN l_return;
460
461 EXCEPTION
462 WHEN xla_exceptions_pkg.application_exception THEN
466
463 IF c_lock_aads%ISOPEN THEN
464 CLOSE c_lock_aads;
465 END IF;
467 RAISE;
468 WHEN OTHERS THEN
469 IF c_lock_aads%ISOPEN THEN
470 CLOSE c_lock_aads;
471 END IF;
472
473 xla_exceptions_pkg.raise_message
474 (p_location => 'xla_evt_class_acct_attrs_pkg.uncompile_defn_with_line_acct');
475
476 END uncompile_defn_with_line_acct;
477
478
479 /*======================================================================+
480 | |
481 | PRIVATE FUNCTION |
482 | |
483 | uncompile_defn_with_jlt |
484 | |
485 | Returns TRUE IF ALL THE application accounting definitions AND |
486 | journal line definitions using ANY JLTare uncompiled |
487 | |
488 +======================================================================*/
489 FUNCTION uncompile_defn_with_jlt
490 (p_application_id IN NUMBER
491 ,p_event_class_code IN VARCHAR2
492 ,p_accounting_attribute_code IN VARCHAR2
493 ,x_product_rule_name IN OUT NOCOPY VARCHAR2
494 ,x_product_rule_type IN OUT NOCOPY VARCHAR2
495 ,x_event_class_name IN OUT NOCOPY VARCHAR2
496 ,x_event_type_name IN OUT NOCOPY VARCHAR2
497 ,x_locking_status_flag IN OUT NOCOPY VARCHAR2)
498 RETURN BOOLEAN
499 IS
500
501 l_return BOOLEAN := TRUE;
502 l_exist VARCHAR2(1);
503
504 l_application_name VARCHAR2(240) := NULL;
505 l_product_rule_name VARCHAR2(80) := NULL;
506 l_product_rule_type VARCHAR2(80) := NULL;
507 l_event_class_name VARCHAR2(80) := NULL;
508 l_event_type_name VARCHAR2(80) := NULL;
509 l_locking_status_flag VARCHAR2(1) := NULL;
510
511 CURSOR c_lock_aads IS
512 SELECT xpa.entity_code
513 ,xpa.event_class_code
514 ,xpa.event_type_code
515 ,xpa.amb_context_code
516 ,xpa.product_rule_type_code
517 ,xpa.product_rule_code
518 , xpa.validation_status_code
519 , xpa.locking_status_flag
520 FROM xla_prod_acct_headers xpa
521 WHERE xpa.application_id = p_application_id
522 AND xpa.event_class_code = p_event_class_code
523 AND EXISTS (SELECT 'x'
524 FROM xla_aad_line_defn_assgns xal
525 , xla_line_defn_jlt_assgns xld
526 , xla_jlt_acct_attrs xja
527 WHERE xja.application_id = p_application_id
528 AND xja.event_class_code = p_event_class_code
529 AND xja.accounting_attribute_code = p_accounting_attribute_code
530 AND xja.event_class_default_flag = 'Y'
531 AND xja.application_id = xld.application_id
532 AND xja.amb_context_code = xld.amb_context_code
533 AND xja.event_class_code = xld.event_class_code
534 AND xja.accounting_line_type_code = xld.accounting_line_type_code
535 AND xja.accounting_line_code = xld.accounting_line_code
536 AND xld.application_id = xal.application_id
537 AND xld.amb_context_code = xal.amb_context_code
538 AND xld.event_class_code = xal.event_class_code
539 AND xld.event_type_code = xal.event_type_code
540 AND xld.line_definition_owner_code = xal.line_definition_owner_code
541 AND xld.line_definition_code = xal.line_definition_code
542 AND xal.application_id = xpa.application_id
543 AND xal.amb_context_code = xpa.amb_context_code
544 AND xal.event_class_code = xpa.event_class_code
545 AND xal.event_type_code = xpa.event_type_code
546 AND xal.product_rule_type_code = xpa.product_rule_type_code
547 AND xal.product_rule_code = xpa.product_rule_code)
548 FOR UPDATE NOWAIT;
549
550 BEGIN
551
552 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.uncompile_defn_with_jlt' , 10);
553
554 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
555 xla_utility_pkg.trace('event_class_code = '||p_event_class_code , 20);
556 xla_utility_pkg.trace('accounting_attribute_code = '||p_accounting_attribute_code , 20);
557
558 l_return := TRUE;
559
560 FOR l_lock_aad IN c_lock_aads LOOP
561 IF (l_lock_aad.validation_status_code NOT IN ('E', 'Y', 'N') OR
562 l_lock_aad.locking_status_flag = 'Y') THEN
563
564 xla_validations_pkg.get_product_rule_info
565 (p_application_id => p_application_id
566 ,p_amb_context_code => l_lock_aad.amb_context_code
567 ,p_product_rule_type_code => l_lock_aad.product_rule_type_code
568 ,p_product_rule_code => l_lock_aad.product_rule_code
569 ,p_application_name => l_application_name
570 ,p_product_rule_name => l_product_rule_name
571 ,p_product_rule_type => l_product_rule_type);
572
573 xla_validations_pkg.get_event_class_info
574 (p_application_id => p_application_id
575 ,p_entity_code => l_lock_aad.entity_code
579 xla_validations_pkg.get_event_type_info
576 ,p_event_class_code => l_lock_aad.event_class_code
577 ,p_event_class_name => l_event_class_name);
578
580 (p_application_id => p_application_id
581 ,p_entity_code => l_lock_aad.entity_code
582 ,p_event_class_code => l_lock_aad.event_class_code
583 ,p_event_type_code => l_lock_aad.event_type_code
584 ,p_event_type_name => l_event_type_name);
585
586 l_locking_status_flag := l_lock_aad.locking_status_flag;
587
588 l_return := FALSE;
589
590 EXIT;
591 END IF;
592 END LOOP;
593
594 IF (l_return) THEN
595
596 UPDATE xla_line_definitions_b xpa
597 SET validation_status_code = 'N'
598 WHERE xpa.application_id = p_application_id
599 AND xpa.event_class_code = p_event_class_code
600 AND xpa.validation_status_code <> 'N'
601 AND EXISTS (SELECT 'X'
602 FROM xla_line_defn_jlt_assgns xld
603 , xla_jlt_acct_attrs xja
604 WHERE xja.application_id = p_application_id
605 AND xja.event_class_code = p_event_class_code
606 AND xja.accounting_attribute_code = p_accounting_attribute_code
607 AND xja.event_class_default_flag = 'Y'
608 AND xja.application_id = xld.application_id
609 AND xja.amb_context_code = xld.amb_context_code
610 AND xja.event_class_code = xld.event_class_code
611 AND xja.accounting_line_type_code = xld.accounting_line_type_code
612 AND xja.accounting_line_code = xld.accounting_line_code
613 AND xld.application_id = xpa.application_id
614 AND xld.amb_context_code = xpa.amb_context_code
615 AND xld.event_class_code = xpa.event_class_code
616 AND xld.event_type_code = xpa.event_type_code
617 AND xld.line_definition_owner_code = xpa.line_definition_owner_code
618 AND xld.line_definition_code = xpa.line_definition_code);
619
620 UPDATE xla_prod_acct_headers xpa
621 SET validation_status_code = 'N'
622 WHERE xpa.application_id = p_application_id
623 AND xpa.event_class_code = p_event_class_code
624 AND xpa.validation_status_code <> 'N'
625 AND EXISTS (SELECT 'X'
626 FROM xla_aad_line_defn_assgns xal
627 , xla_line_defn_jlt_assgns xld
628 , xla_jlt_acct_attrs xja
629 WHERE xja.application_id = p_application_id
630 AND xja.event_class_code = p_event_class_code
631 AND xja.accounting_attribute_code = p_accounting_attribute_code
632 AND xja.event_class_default_flag = 'Y'
633 AND xja.application_id = xld.application_id
634 AND xja.amb_context_code = xld.amb_context_code
635 AND xja.event_class_code = xld.event_class_code
636 AND xja.accounting_line_type_code = xld.accounting_line_type_code
637 AND xja.accounting_line_code = xld.accounting_line_code
638 AND xld.application_id = xal.application_id
639 AND xld.amb_context_code = xal.amb_context_code
640 AND xld.event_class_code = xal.event_class_code
641 AND xld.event_type_code = xal.event_type_code
642 AND xld.line_definition_owner_code = xal.line_definition_owner_code
643 AND xld.line_definition_code = xal.line_definition_code
644 AND xal.application_id = xpa.application_id
645 AND xal.amb_context_code = xpa.amb_context_code
646 AND xal.event_class_code = xpa.event_class_code
647 AND xal.event_type_code = xpa.event_type_code
648 AND xal.product_rule_type_code = xpa.product_rule_type_code
649 AND xal.product_rule_code = xpa.product_rule_code);
650
651 UPDATE xla_product_rules_b xpr
652 SET compile_status_code = 'N'
653 WHERE xpr.application_id = p_application_id
654 AND xpr.compile_status_code <> 'N'
655 AND EXISTS (SELECT 'X'
656 FROM xla_aad_line_defn_assgns xal
657 , xla_line_defn_jlt_assgns xld
658 , xla_jlt_acct_attrs xja
659 WHERE xja.application_id = p_application_id
660 AND xja.event_class_code = p_event_class_code
661 AND xja.accounting_attribute_code = p_accounting_attribute_code
662 AND xja.event_class_default_flag = 'Y'
663 AND xja.application_id = xld.application_id
664 AND xja.amb_context_code = xld.amb_context_code
665 AND xja.event_class_code = xld.event_class_code
666 AND xja.accounting_line_type_code = xld.accounting_line_type_code
667 AND xja.accounting_line_code = xld.accounting_line_code
668 AND xld.application_id = xal.application_id
669 AND xld.amb_context_code = xal.amb_context_code
673 AND xld.line_definition_code = xal.line_definition_code
670 AND xld.event_class_code = xal.event_class_code
671 AND xld.event_type_code = xal.event_type_code
672 AND xld.line_definition_owner_code = xal.line_definition_owner_code
674 AND xal.application_id = xpr.application_id
675 AND xal.amb_context_code = xpr.amb_context_code
676 AND xal.product_rule_type_code = xpr.product_rule_type_code
677 AND xal.product_rule_code = xpr.product_rule_code);
678 END IF;
679
680 x_product_rule_name := l_product_rule_name;
681 x_product_rule_type := l_product_rule_type;
682 x_event_class_name := l_event_class_name;
683 x_event_type_name := l_event_type_name;
684 x_locking_status_flag := l_locking_status_flag;
685
686 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.uncompile_defn_with_jlt' , 10);
687
688 RETURN l_return;
689
690 EXCEPTION
691 WHEN xla_exceptions_pkg.application_exception THEN
692 IF c_lock_aads%ISOPEN THEN
693 CLOSE c_lock_aads;
694 END IF;
695
696 RAISE;
697 WHEN OTHERS THEN
698 IF c_lock_aads%ISOPEN THEN
699 CLOSE c_lock_aads;
700 END IF;
701
702 xla_exceptions_pkg.raise_message
703 (p_location => 'xla_evt_class_acct_attrs_pkg.uncompile_defn_with_jlt');
704
705 END uncompile_defn_with_jlt;
706
707 /*======================================================================+
708 | |
709 | PRIVATE FUNCTION |
710 | |
711 | uncompile_defn_with_default |
712 | |
713 | Returns TRUE IF ALL THE application accounting definitions AND |
714 | journal line definitions using ANY JLTare uncompiled |
715 | |
716 +======================================================================*/
717 FUNCTION uncompile_defn_with_default
718 (x_product_rule_name IN OUT NOCOPY VARCHAR2
719 ,x_product_rule_type IN OUT NOCOPY VARCHAR2
720 ,x_event_class_name IN OUT NOCOPY VARCHAR2
721 ,x_event_type_name IN OUT NOCOPY VARCHAR2
722 ,x_locking_status_flag IN OUT NOCOPY VARCHAR2)
723 RETURN BOOLEAN
724 IS
725
726 l_return BOOLEAN := TRUE;
727 l_exist VARCHAR2(1);
728
729 l_application_name VARCHAR2(240) := NULL;
730 l_product_rule_name VARCHAR2(80) := NULL;
731 l_product_rule_type VARCHAR2(80) := NULL;
732 l_event_class_name VARCHAR2(80) := NULL;
733 l_event_type_name VARCHAR2(80) := NULL;
734 l_locking_status_flag VARCHAR2(1) := NULL;
735
736 CURSOR c_lock_aads IS
737 SELECT xpa.application_id
738 ,xpa.entity_code
739 ,xpa.event_class_code
740 ,xpa.event_type_code
741 ,xpa.amb_context_code
742 ,xpa.product_rule_type_code
743 ,xpa.product_rule_code
744 , xpa.validation_status_code
745 , xpa.locking_status_flag
746 FROM xla_prod_acct_headers xpa
747 , xla_aad_hdr_acct_attrs xah
748 WHERE xpa.application_id = xah.application_id
749 AND xpa.amb_context_code = xah.amb_context_code
750 AND xpa.event_class_code = xah.event_class_code
751 AND xpa.event_type_code = xah.event_type_code
752 AND xpa.product_rule_type_code = xah.product_rule_type_code
753 AND xpa.product_rule_code = xah.product_rule_code
754 AND xah.event_class_default_flag = 'Y'
755 AND xpa.accounting_required_flag = 'Y'
756 FOR UPDATE NOWAIT;
757
758 BEGIN
759
760 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.uncompile_defn_with_default' , 10);
761
762 l_return := TRUE;
763
764 FOR l_lock_aad IN c_lock_aads LOOP
765 IF (l_lock_aad.validation_status_code NOT IN ('E', 'Y', 'N') OR
766 l_lock_aad.locking_status_flag = 'Y') THEN
767
768 xla_validations_pkg.get_product_rule_info
769 (p_application_id => l_lock_aad.application_id
770 ,p_amb_context_code => l_lock_aad.amb_context_code
771 ,p_product_rule_type_code => l_lock_aad.product_rule_type_code
772 ,p_product_rule_code => l_lock_aad.product_rule_code
773 ,p_application_name => l_application_name
774 ,p_product_rule_name => l_product_rule_name
775 ,p_product_rule_type => l_product_rule_type);
776
777 xla_validations_pkg.get_event_class_info
778 (p_application_id => l_lock_aad.application_id
779 ,p_entity_code => l_lock_aad.entity_code
780 ,p_event_class_code => l_lock_aad.event_class_code
781 ,p_event_class_name => l_event_class_name);
782
783 xla_validations_pkg.get_event_type_info
784 (p_application_id => l_lock_aad.application_id
785 ,p_entity_code => l_lock_aad.entity_code
786 ,p_event_class_code => l_lock_aad.event_class_code
787 ,p_event_type_code => l_lock_aad.event_type_code
788 ,p_event_type_name => l_event_type_name);
789
790 l_locking_status_flag := l_lock_aad.locking_status_flag;
791
792 l_return := FALSE;
796 END LOOP;
793
794 EXIT;
795 END IF;
797
798 IF (l_return) THEN
799
800 UPDATE xla_prod_acct_headers xpa
801 SET validation_status_code = 'N'
802 WHERE xpa.accounting_required_flag = 'Y'
803 AND EXISTS (SELECT 'x'
804 FROM xla_aad_hdr_acct_attrs xah
805 WHERE xpa.application_id = xah.application_id
806 AND xpa.amb_context_code = xah.amb_context_code
807 AND xpa.event_class_code = xah.event_class_code
808 AND xpa.event_type_code = xah.event_type_code
809 AND xpa.product_rule_type_code = xah.product_rule_type_code
810 AND xpa.product_rule_code = xah.product_rule_code
811 AND xah.event_class_default_flag = 'Y');
812
813 UPDATE xla_product_rules_b xpr
814 SET compile_status_code = 'N'
815 WHERE xpr.compile_status_code <> 'N'
816 AND EXISTS (SELECT 'x'
817 FROM xla_prod_acct_headers xpa
818 , xla_aad_hdr_acct_attrs xah
819 WHERE xpa.application_id = xah.application_id
820 AND xpa.amb_context_code = xah.amb_context_code
821 AND xpa.event_class_code = xah.event_class_code
822 AND xpa.event_type_code = xah.event_type_code
823 AND xpa.product_rule_type_code = xah.product_rule_type_code
824 AND xpa.product_rule_code = xah.product_rule_code
825 AND xah.event_class_default_flag = 'Y'
826 AND xpr.application_id = xpa.application_id
827 AND xpr.amb_context_code = xpa.amb_context_code
828 AND xpr.product_rule_type_code = xpa.product_rule_type_code
829 AND xpr.product_rule_code = xpa.product_rule_code
830 AND xpa.accounting_required_flag = 'Y');
831
832 END IF;
833
834 x_product_rule_name := l_product_rule_name;
835 x_product_rule_type := l_product_rule_type;
836 x_event_class_name := l_event_class_name;
837 x_event_type_name := l_event_type_name;
838 x_locking_status_flag := l_locking_status_flag;
839
840 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.uncompile_defn_with_default' , 10);
841
842 RETURN l_return;
843
844 EXCEPTION
845 WHEN xla_exceptions_pkg.application_exception THEN
846 IF c_lock_aads%ISOPEN THEN
847 CLOSE c_lock_aads;
848 END IF;
849
850 RAISE;
851 WHEN OTHERS THEN
852 IF c_lock_aads%ISOPEN THEN
853 CLOSE c_lock_aads;
854 END IF;
855
856 xla_exceptions_pkg.raise_message
857 (p_location => 'xla_evt_class_acct_attrs_pkg.uncompile_defn_with_default');
858
859 END uncompile_defn_with_default;
860
861
862 /*======================================================================+
863 | |
864 | PRIVATE FUNCTION |
865 | |
866 | uncompile_defn_with_jlt_source |
867 | |
868 | Returns TRUE IF ALL THE application accounting definitions AND |
869 | journal line definitions using ANY JLTare uncompiled |
870 | |
871 +======================================================================*/
872 FUNCTION uncompile_defn_with_jlt_source
873 (p_application_id IN NUMBER
874 ,p_event_class_code IN VARCHAR2
875 ,p_accounting_attribute_code IN VARCHAR2
876 ,p_source_application_id IN NUMBER
877 ,p_source_code IN VARCHAR2
878 ,p_source_type_code IN VARCHAR2
879 ,p_event_class_default_flag IN VARCHAR2
880 ,x_product_rule_name IN OUT NOCOPY VARCHAR2
881 ,x_product_rule_type IN OUT NOCOPY VARCHAR2
882 ,x_event_class_name IN OUT NOCOPY VARCHAR2
883 ,x_event_type_name IN OUT NOCOPY VARCHAR2
884 ,x_locking_status_flag IN OUT NOCOPY VARCHAR2)
885 RETURN BOOLEAN
886 IS
887
888 l_return BOOLEAN := TRUE;
889 l_exist VARCHAR2(1);
890
891 l_application_name VARCHAR2(240) := NULL;
892 l_product_rule_name VARCHAR2(80) := NULL;
893 l_product_rule_type VARCHAR2(80) := NULL;
894 l_event_class_name VARCHAR2(80) := NULL;
895 l_event_type_name VARCHAR2(80) := NULL;
896 l_locking_status_flag VARCHAR2(1) := NULL;
897
898 CURSOR c_lock_aads IS
899 SELECT xpa.entity_code
900 ,xpa.event_class_code
901 ,xpa.event_type_code
902 ,xpa.amb_context_code
903 ,xpa.product_rule_type_code
904 ,xpa.product_rule_code
905 , xpa.validation_status_code
906 , xpa.locking_status_flag
907 FROM xla_prod_acct_headers xpa
908 WHERE xpa.application_id = p_application_id
909 AND xpa.event_class_code = p_event_class_code
910 AND EXISTS (SELECT 'x'
911 FROM xla_aad_line_defn_assgns xal
912 , xla_line_defn_jlt_assgns xja
913 , xla_jlt_acct_attrs xaa
914 WHERE xaa.application_id = p_application_id
918 xaa.event_class_default_flag)
915 AND xaa.event_class_code = p_event_class_code
916 AND xaa.accounting_attribute_code = p_accounting_attribute_code
917 AND xaa.event_class_default_flag = NVL(p_event_class_default_flag,
919 AND xaa.source_application_id = p_source_application_id
920 AND xaa.source_type_code = p_source_type_code
921 AND xaa.source_code = p_source_code
922 AND xja.application_id = xaa.application_id
923 AND xja.amb_context_code = xaa.amb_context_code
924 AND xja.event_class_code = xaa.event_class_code
925 AND xja.accounting_line_type_code = xaa.accounting_line_type_code
926 AND xja.accounting_line_code = xaa.accounting_line_code
927 AND xal.application_id = xja.application_id
928 AND xal.amb_context_code = xja.amb_context_code
929 AND xal.event_class_code = xja.event_class_code
930 AND xal.event_type_code = xja.event_type_code
931 AND xal.line_definition_owner_code = xja.line_definition_owner_code
932 AND xal.line_definition_code = xja.line_definition_code
933 AND xal.application_id = xpa.application_id
934 AND xal.amb_context_code = xpa.amb_context_code
935 AND xal.event_class_code = xpa.event_class_code
936 AND xal.event_type_code = xpa.event_type_code
937 AND xal.product_rule_type_code = xpa.product_rule_type_code
938 AND xal.product_rule_code = xpa.product_rule_code)
939 FOR UPDATE NOWAIT;
940
941 BEGIN
942
943 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.uncompile_defn_with_jlt_source' , 10);
944
945 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
946 xla_utility_pkg.trace('event_class_code = '||p_event_class_code , 20);
947
948 l_return := TRUE;
949
950 FOR l_lock_aad IN c_lock_aads LOOP
951 IF (l_lock_aad.validation_status_code NOT IN ('E', 'Y', 'N') OR
952 l_lock_aad.locking_status_flag = 'Y') THEN
953
954 xla_validations_pkg.get_product_rule_info
955 (p_application_id => p_application_id
956 ,p_amb_context_code => l_lock_aad.amb_context_code
957 ,p_product_rule_type_code => l_lock_aad.product_rule_type_code
958 ,p_product_rule_code => l_lock_aad.product_rule_code
959 ,p_application_name => l_application_name
960 ,p_product_rule_name => l_product_rule_name
961 ,p_product_rule_type => l_product_rule_type);
962
963 xla_validations_pkg.get_event_class_info
964 (p_application_id => p_application_id
965 ,p_entity_code => l_lock_aad.entity_code
966 ,p_event_class_code => l_lock_aad.event_class_code
967 ,p_event_class_name => l_event_class_name);
968
969 xla_validations_pkg.get_event_type_info
970 (p_application_id => p_application_id
971 ,p_entity_code => l_lock_aad.entity_code
972 ,p_event_class_code => l_lock_aad.event_class_code
973 ,p_event_type_code => l_lock_aad.event_type_code
974 ,p_event_type_name => l_event_type_name);
975
976 l_locking_status_flag := l_lock_aad.locking_status_flag;
977
978 l_return := FALSE;
979
980 EXIT;
981 END IF;
982 END LOOP;
983
984 IF (l_return) THEN
985
986 UPDATE xla_line_definitions_b xld
987 SET validation_status_code = 'N'
988 WHERE xld.application_id = p_application_id
989 AND xld.event_class_code = p_event_class_code
990 AND xld.validation_status_code <> 'N'
991 AND EXISTS (SELECT 'X'
992 FROM xla_line_defn_jlt_assgns xja
993 , xla_jlt_acct_attrs xaa
994 WHERE xaa.application_id = p_application_id
995 AND xaa.event_class_code = p_event_class_code
996 AND xaa.accounting_attribute_code = p_accounting_attribute_code
997 AND xaa.event_class_default_flag = NVL(p_event_class_default_flag,
998 xaa.event_class_default_flag)
999 AND xaa.source_application_id = p_source_application_id
1000 AND xaa.source_type_code = p_source_type_code
1001 AND xaa.source_code = p_source_code
1002 AND xja.application_id = xaa.application_id
1003 AND xja.amb_context_code = xaa.amb_context_code
1004 AND xja.event_class_code = xaa.event_class_code
1005 AND xja.accounting_line_type_code = xaa.accounting_line_type_code
1006 AND xja.accounting_line_code = xaa.accounting_line_code
1007 AND xld.application_id = xja.application_id
1008 AND xld.amb_context_code = xja.amb_context_code
1009 AND xld.event_class_code = xja.event_class_code
1010 AND xld.event_type_code = xja.event_type_code
1011 AND xld.line_definition_owner_code = xja.line_definition_owner_code
1012 AND xld.line_definition_code = xja.line_definition_code);
1013
1017 AND xpa.event_class_code = p_event_class_code
1014 UPDATE xla_prod_acct_headers xpa
1015 SET validation_status_code = 'N'
1016 WHERE xpa.application_id = p_application_id
1018 AND xpa.validation_status_code <> 'N'
1019 AND EXISTS (SELECT 'x'
1020 FROM xla_aad_line_defn_assgns xal
1021 , xla_line_defn_jlt_assgns xja
1022 , xla_jlt_acct_attrs xaa
1023 WHERE xaa.application_id = p_application_id
1024 AND xaa.event_class_code = p_event_class_code
1025 AND xaa.accounting_attribute_code = p_accounting_attribute_code
1026 AND xaa.event_class_default_flag = NVL(p_event_class_default_flag,
1027 xaa.event_class_default_flag)
1028 AND xaa.source_application_id = p_source_application_id
1029 AND xaa.source_type_code = p_source_type_code
1030 AND xaa.source_code = p_source_code
1031 AND xja.application_id = xaa.application_id
1032 AND xja.amb_context_code = xaa.amb_context_code
1033 AND xja.event_class_code = xaa.event_class_code
1034 AND xja.accounting_line_type_code = xaa.accounting_line_type_code
1035 AND xja.accounting_line_code = xaa.accounting_line_code
1036 AND xal.application_id = xja.application_id
1037 AND xal.amb_context_code = xja.amb_context_code
1038 AND xal.event_class_code = xja.event_class_code
1039 AND xal.event_type_code = xja.event_type_code
1040 AND xal.line_definition_owner_code = xja.line_definition_owner_code
1041 AND xal.line_definition_code = xja.line_definition_code
1042 AND xal.application_id = xpa.application_id
1043 AND xal.amb_context_code = xpa.amb_context_code
1044 AND xal.event_class_code = xpa.event_class_code
1045 AND xal.event_type_code = xpa.event_type_code
1046 AND xal.product_rule_type_code = xpa.product_rule_type_code
1047 AND xal.product_rule_code = xpa.product_rule_code);
1048
1049 UPDATE xla_product_rules_b xpr
1050 SET compile_status_code = 'N'
1051 WHERE xpr.application_id = p_application_id
1052 AND xpr.compile_status_code <> 'N'
1053 AND EXISTS (SELECT 'x'
1054 FROM xla_aad_line_defn_assgns xal
1055 , xla_line_defn_jlt_assgns xja
1056 , xla_jlt_acct_attrs xaa
1057 WHERE xaa.application_id = p_application_id
1058 AND xaa.event_class_code = p_event_class_code
1059 AND xaa.accounting_attribute_code = p_accounting_attribute_code
1060 AND xaa.event_class_default_flag = NVL(p_event_class_default_flag,
1061 xaa.event_class_default_flag)
1062 AND xaa.source_application_id = p_source_application_id
1063 AND xaa.source_type_code = p_source_type_code
1064 AND xaa.source_code = p_source_code
1065 AND xja.application_id = xaa.application_id
1066 AND xja.amb_context_code = xaa.amb_context_code
1067 AND xja.event_class_code = xaa.event_class_code
1068 AND xja.accounting_line_type_code = xaa.accounting_line_type_code
1069 AND xja.accounting_line_code = xaa.accounting_line_code
1070 AND xal.application_id = xja.application_id
1071 AND xal.amb_context_code = xja.amb_context_code
1072 AND xal.event_class_code = xja.event_class_code
1073 AND xal.event_type_code = xja.event_type_code
1074 AND xal.line_definition_owner_code = xja.line_definition_owner_code
1075 AND xal.line_definition_code = xja.line_definition_code
1076 AND xal.application_id = xpr.application_id
1077 AND xal.amb_context_code = xpr.amb_context_code
1078 AND xal.product_rule_type_code = xpr.product_rule_type_code
1079 AND xal.product_rule_code = xpr.product_rule_code);
1080
1081 END IF;
1082
1083 x_product_rule_name := l_product_rule_name;
1084 x_product_rule_type := l_product_rule_type;
1085 x_event_class_name := l_event_class_name;
1086 x_event_type_name := l_event_type_name;
1087 x_locking_status_flag := l_locking_status_flag;
1088
1089 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.uncompile_defn_with_jlt_source' , 10);
1090
1091 RETURN l_return;
1092
1093 EXCEPTION
1094 WHEN xla_exceptions_pkg.application_exception THEN
1095 IF c_lock_aads%ISOPEN THEN
1096 CLOSE c_lock_aads;
1097 END IF;
1098
1099 RAISE;
1100 WHEN OTHERS THEN
1101 IF c_lock_aads%ISOPEN THEN
1102 CLOSE c_lock_aads;
1103 END IF;
1104
1105 xla_exceptions_pkg.raise_message
1106 (p_location => 'xla_evt_class_acct_attrs_pkg.uncompile_defn_with_jlt_source');
1107
1108 END uncompile_defn_with_jlt_source;
1109 /*======================================================================+
1110 | |
1111 | PRIVATE FUNCTION |
1112 | |
1113 | uncompile_evt_class_aads |
1114 | |
1115 | Uncompile AADs using event CLASS. |
1116 | |
1117 +======================================================================*/
1118 FUNCTION uncompile_evt_class_aads
1119 (p_application_id IN NUMBER
1120 ,p_event_class_code IN VARCHAR2
1121 ,x_product_rule_name IN OUT NOCOPY VARCHAR2
1122 ,x_product_rule_type IN OUT NOCOPY VARCHAR2
1123 ,x_event_class_name IN OUT NOCOPY VARCHAR2
1124 ,x_event_type_name IN OUT NOCOPY VARCHAR2
1125 ,x_locking_status_flag IN OUT NOCOPY VARCHAR2
1126 ,x_validation_status_code IN OUT NOCOPY VARCHAR2
1127 )
1128 RETURN BOOLEAN
1129 IS
1130 l_log_module VARCHAR2(240);
1131 l_return BOOLEAN;
1132 l_application_name VARCHAR2(240);
1133 l_product_rule_name VARCHAR2(80);
1134 l_product_rule_type VARCHAR2(80);
1135 l_event_class_name VARCHAR2(80);
1136 l_event_type_name VARCHAR2(80);
1137 l_locking_status_flag VARCHAR2(1);
1138 l_validation_status_code VARCHAR2(30);
1139
1140
1141 CURSOR c_lock_aads IS
1142 SELECT xpa.entity_code
1143 ,xpa.event_class_code
1144 ,xpa.event_type_code
1145 ,xpa.amb_context_code
1146 ,xpa.product_rule_type_code
1147 ,xpa.product_rule_code
1148 , xpa.validation_status_code
1149 , xpa.locking_status_flag
1153 AND (xpa.locking_status_flag = 'Y'
1150 FROM xla_prod_acct_headers xpa
1151 WHERE xpa.application_id = p_application_id
1152 AND xpa.event_class_code = p_event_class_code
1154 OR xpa.validation_status_code NOT IN ('E', 'Y', 'N'))
1155 AND ROWNUM = 1;
1156
1157 BEGIN
1158 IF g_log_enabled THEN
1159 l_log_module := C_DEFAULT_MODULE||'.uncompile_evt_class_aads';
1160 END IF;
1161
1162 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1163 trace('uncompile_evt_class_aads.Begin',C_LEVEL_PROCEDURE,l_log_module);
1164 END IF;
1165
1166
1167 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1168 -- Print all input parameters
1169 trace('---------------------------------------------------',C_LEVEL_STATEMENT,l_log_module);
1170 trace('p_application_id = ' || p_application_id ,C_LEVEL_STATEMENT,l_log_module);
1171 trace('p_event_class_code = ' || p_event_class_code ,C_LEVEL_STATEMENT,l_log_module);
1172 trace('---------------------------------------------------',C_LEVEL_STATEMENT,l_log_module);
1173 END IF;
1174
1175 -- Check if any AAD for the event class is locked.
1176 FOR l_lock_aad IN c_lock_aads LOOP
1177 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1178 trace('inside loop',C_LEVEL_STATEMENT,l_log_module);
1179 END IF;
1180 xla_validations_pkg.get_product_rule_info
1181 (p_application_id => p_application_id
1182 ,p_amb_context_code => l_lock_aad.amb_context_code
1183 ,p_product_rule_type_code => l_lock_aad.product_rule_type_code
1184 ,p_product_rule_code => l_lock_aad.product_rule_code
1185 ,p_application_name => l_application_name
1186 ,p_product_rule_name => l_product_rule_name
1187 ,p_product_rule_type => l_product_rule_type);
1188
1189 xla_validations_pkg.get_event_class_info
1190 (p_application_id => p_application_id
1191 ,p_entity_code => l_lock_aad.entity_code
1192 ,p_event_class_code => l_lock_aad.event_class_code
1193 ,p_event_class_name => l_event_class_name);
1194
1195 xla_validations_pkg.get_event_type_info
1196 (p_application_id => p_application_id
1197 ,p_entity_code => l_lock_aad.entity_code
1198 ,p_event_class_code => l_lock_aad.event_class_code
1199 ,p_event_type_code => l_lock_aad.event_type_code
1200 ,p_event_type_name => l_event_type_name);
1201
1202 x_validation_status_code := l_lock_aad.validation_status_code;
1203 x_locking_status_flag := l_lock_aad.locking_status_flag;
1204 x_product_rule_name := l_product_rule_name;
1205 x_product_rule_type := l_product_rule_type;
1206 x_event_class_name := l_event_class_name;
1207 x_event_type_name := l_event_type_name;
1208 l_return := FALSE;
1209 RETURN(l_return);
1210 END LOOP;
1211
1212 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1213 trace('Updating AAD status.',C_LEVEL_STATEMENT,l_log_module);
1214 END IF;
1215
1216 UPDATE xla_prod_acct_headers pah
1217 SET validation_status_code = 'N'
1218 WHERE pah.application_id = p_application_id
1219 AND pah.event_class_code = p_event_class_code
1220 AND pah.validation_status_code <> 'N';
1221
1222 l_return := TRUE;
1223
1224 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
1225 trace('Number of Application Accounting Defintion Headers updated = ' || SQL%ROWCOUNT,C_LEVEL_STATEMENT,l_Log_module);
1226 END IF;
1227
1228
1229 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1230 trace('uncompile_evt_class_aads.End',C_LEVEL_PROCEDURE,l_Log_module);
1231 END IF;
1232
1233 RETURN(l_return);
1234 EXCEPTION
1235 WHEN xla_exceptions_pkg.application_exception THEN
1236 RAISE;
1237 WHEN OTHERS THEN
1238 xla_exceptions_pkg.raise_message
1239 (p_location => 'xla_evt_class_acct_attrs_pkg.uncompile_evt_class_aads');
1240 END uncompile_evt_class_aads;
1241
1242 /*======================================================================+
1243 | |
1244 | PRIVATE FUNCTION |
1245 | |
1246 | uncompile_aads |
1247 | |
1248 | Returns TRUE IF ALL THE application accounting definitions AND |
1249 | journal line definitions using ANY JLTare uncompiled |
1250 | |
1251 +======================================================================*/
1252 FUNCTION uncompile_aads
1253 (x_product_rule_name IN OUT NOCOPY VARCHAR2
1254 ,x_product_rule_type IN OUT NOCOPY VARCHAR2
1255 ,x_event_class_name IN OUT NOCOPY VARCHAR2
1256 ,x_event_type_name IN OUT NOCOPY VARCHAR2
1257 ,x_locking_status_flag IN OUT NOCOPY VARCHAR2)
1258 RETURN BOOLEAN
1259 IS
1260
1261 l_return BOOLEAN := TRUE;
1262 l_exist VARCHAR2(1);
1263
1264 l_application_name VARCHAR2(240) := NULL;
1265 l_product_rule_name VARCHAR2(80) := NULL;
1266 l_product_rule_type VARCHAR2(80) := NULL;
1267 l_event_class_name VARCHAR2(80) := NULL;
1268 l_event_type_name VARCHAR2(80) := NULL;
1269 l_locking_status_flag VARCHAR2(1) := NULL;
1270
1271 CURSOR c_lock_aads IS
1272 SELECT xpa.application_id
1273 ,xpa.amb_context_code
1274 ,xpa.entity_code
1275 ,xpa.event_class_code
1281 FROM xla_prod_acct_headers xpa
1276 ,xpa.event_type_code
1277 ,xpa.product_rule_type_code
1278 ,xpa.product_rule_code
1279 , xpa.validation_status_code
1280 , xpa.locking_status_flag
1282 WHERE xpa.accounting_required_flag = 'Y'
1283 FOR UPDATE NOWAIT;
1284
1285 BEGIN
1286
1287 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.uncompile_aads' , 10);
1288
1289 l_return := TRUE;
1290
1291 FOR l_lock_aad IN c_lock_aads LOOP
1292 IF (l_lock_aad.validation_status_code NOT IN ('E', 'Y', 'N') OR
1293 l_lock_aad.locking_status_flag = 'Y') THEN
1294
1295 xla_validations_pkg.get_product_rule_info
1296 (p_application_id => l_lock_aad.application_id
1297 ,p_amb_context_code => l_lock_aad.amb_context_code
1298 ,p_product_rule_type_code => l_lock_aad.product_rule_type_code
1299 ,p_product_rule_code => l_lock_aad.product_rule_code
1300 ,p_application_name => l_application_name
1301 ,p_product_rule_name => l_product_rule_name
1302 ,p_product_rule_type => l_product_rule_type);
1303
1304 xla_validations_pkg.get_event_class_info
1305 (p_application_id => l_lock_aad.application_id
1306 ,p_entity_code => l_lock_aad.entity_code
1307 ,p_event_class_code => l_lock_aad.event_class_code
1308 ,p_event_class_name => l_event_class_name);
1309
1310 xla_validations_pkg.get_event_type_info
1311 (p_application_id => l_lock_aad.application_id
1312 ,p_entity_code => l_lock_aad.entity_code
1313 ,p_event_class_code => l_lock_aad.event_class_code
1314 ,p_event_type_code => l_lock_aad.event_type_code
1315 ,p_event_type_name => l_event_type_name);
1316
1317 l_locking_status_flag := l_lock_aad.locking_status_flag;
1318
1319 l_return := FALSE;
1320
1321 EXIT;
1322 END IF;
1323 END LOOP;
1324
1325 IF (l_return) THEN
1326
1327 UPDATE xla_prod_acct_headers xpa
1328 SET validation_status_code = 'N'
1329 WHERE xpa.accounting_required_flag = 'Y';
1330
1331 UPDATE xla_product_rules_b xpr
1332 SET compile_status_code = 'N'
1333 WHERE xpr.compile_status_code <> 'N'
1334 AND EXISTS (SELECT 'x'
1335 FROM xla_prod_acct_headers xal
1336 WHERE xal.application_id = xpr.application_id
1337 AND xal.amb_context_code = xpr.amb_context_code
1338 AND xal.product_rule_type_code = xpr.product_rule_type_code
1339 AND xal.product_rule_code = xpr.product_rule_code
1340 AND xal.accounting_required_flag = 'Y');
1341
1342 END IF;
1343
1344 x_product_rule_name := l_product_rule_name;
1345 x_product_rule_type := l_product_rule_type;
1346 x_event_class_name := l_event_class_name;
1347 x_event_type_name := l_event_type_name;
1348 x_locking_status_flag := l_locking_status_flag;
1349
1350 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.uncompile_aads' , 10);
1351
1352 RETURN l_return;
1353
1354 EXCEPTION
1355 WHEN xla_exceptions_pkg.application_exception THEN
1356 IF c_lock_aads%ISOPEN THEN
1357 CLOSE c_lock_aads;
1358 END IF;
1359
1360 RAISE;
1361 WHEN OTHERS THEN
1362 IF c_lock_aads%ISOPEN THEN
1363 CLOSE c_lock_aads;
1364 END IF;
1365
1366 xla_exceptions_pkg.raise_message
1367 (p_location => 'xla_evt_class_acct_attrs_pkg.uncompile_aads');
1368
1369 END uncompile_aads;
1370
1371
1372
1373
1374 /*======================================================================+
1375 | |
1376 | PRIVATE FUNCTION |
1377 | |
1378 | uncompile_aads_with_source |
1379 | |
1380 | Returns TRUE IF ALL THE application accounting definitions AND |
1381 | journal line definitions using ANY JLTare uncompiled |
1382 | |
1383 +======================================================================*/
1384 FUNCTION uncompile_aads_with_source
1385 (p_source_application_id IN NUMBER
1386 ,p_source_code IN VARCHAR2
1390 ,x_product_rule_type IN OUT NOCOPY VARCHAR2
1387 ,p_source_type_code IN VARCHAR2
1388 ,p_event_class_default_flag IN VARCHAR2
1389 ,x_product_rule_name IN OUT NOCOPY VARCHAR2
1391 ,x_event_class_name IN OUT NOCOPY VARCHAR2
1392 ,x_event_type_name IN OUT NOCOPY VARCHAR2
1393 ,x_locking_status_flag IN OUT NOCOPY VARCHAR2)
1394 RETURN BOOLEAN
1395 IS
1396
1397 l_return BOOLEAN := TRUE;
1398 l_exist VARCHAR2(1);
1399
1400 l_application_name VARCHAR2(240) := NULL;
1401 l_product_rule_name VARCHAR2(80) := NULL;
1402 l_product_rule_type VARCHAR2(80) := NULL;
1403 l_event_class_name VARCHAR2(80) := NULL;
1404 l_event_type_name VARCHAR2(80) := NULL;
1405 l_locking_status_flag VARCHAR2(1) := NULL;
1406
1407 CURSOR c_lock_aads IS
1408 SELECT xpa.entity_code
1409 ,xpa.event_class_code
1410 ,xpa.event_type_code
1411 ,xpa.application_id
1412 ,xpa.amb_context_code
1413 ,xpa.product_rule_type_code
1414 ,xpa.product_rule_code
1415 , xpa.validation_status_code
1416 , xpa.locking_status_flag
1417 FROM xla_prod_acct_headers xpa
1418 , xla_aad_hdr_acct_attrs xah
1419 WHERE xpa.application_id = xah.application_id
1420 AND xpa.amb_context_code = xah.amb_context_code
1421 AND xpa.product_rule_type_code = xah.product_rule_type_code
1422 AND xpa.product_rule_code = xah.product_rule_code
1423 AND xpa.event_class_code = xah.event_class_code
1424 AND xpa.event_type_code = xah.event_type_code
1425 AND xpa.accounting_required_flag = 'Y'
1426 AND xah.event_class_default_flag = NVL(p_event_class_default_flag,
1427 xah.event_class_default_flag)
1428 AND xah.source_application_id = p_source_application_id
1432
1429 AND xah.source_type_code = p_source_type_code
1430 AND xah.source_code = p_source_code
1431 FOR UPDATE NOWAIT;
1433 BEGIN
1434
1435 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.uncompile_aads_with_source' , 10);
1436
1437 l_return := TRUE;
1438
1439 FOR l_lock_aad IN c_lock_aads LOOP
1440 IF (l_lock_aad.validation_status_code NOT IN ('E', 'Y', 'N') OR
1441 l_lock_aad.locking_status_flag = 'Y') THEN
1442
1443 xla_validations_pkg.get_product_rule_info
1444 (p_application_id => l_lock_aad.application_id
1445 ,p_amb_context_code => l_lock_aad.amb_context_code
1446 ,p_product_rule_type_code => l_lock_aad.product_rule_type_code
1450 ,p_product_rule_type => l_product_rule_type);
1447 ,p_product_rule_code => l_lock_aad.product_rule_code
1448 ,p_application_name => l_application_name
1449 ,p_product_rule_name => l_product_rule_name
1451
1452 xla_validations_pkg.get_event_class_info
1453 (p_application_id => l_lock_aad.application_id
1454 ,p_entity_code => l_lock_aad.entity_code
1455 ,p_event_class_code => l_lock_aad.event_class_code
1456 ,p_event_class_name => l_event_class_name);
1457
1458 xla_validations_pkg.get_event_type_info
1459 (p_application_id => l_lock_aad.application_id
1460 ,p_entity_code => l_lock_aad.entity_code
1461 ,p_event_class_code => l_lock_aad.event_class_code
1462 ,p_event_type_code => l_lock_aad.event_type_code
1463 ,p_event_type_name => l_event_type_name);
1464
1465 l_locking_status_flag := l_lock_aad.locking_status_flag;
1466
1467 l_return := FALSE;
1468
1469 EXIT;
1470 END IF;
1471 END LOOP;
1472
1473 IF (l_return) THEN
1474
1475 UPDATE xla_prod_acct_headers xpa
1476 SET validation_status_code = 'N'
1477 WHERE xpa.accounting_required_flag = 'Y'
1478 AND EXISTS (SELECT 'X'
1479 FROM xla_aad_hdr_acct_attrs xah
1480 WHERE xpa.application_id = xah.application_id
1481 AND xpa.amb_context_code = xah.amb_context_code
1482 AND xpa.product_rule_type_code = xah.product_rule_type_code
1483 AND xpa.product_rule_code = xah.product_rule_code
1484 AND xpa.event_class_code = xah.event_class_code
1485 AND xpa.event_type_code = xah.event_type_code
1486 AND xah.event_class_default_flag = NVL(p_event_class_default_flag,
1487 xah.event_class_default_flag)
1488 AND xah.source_application_id = p_source_application_id
1489 AND xah.source_type_code = p_source_type_code
1490 AND xah.source_code = p_source_code);
1491
1492 UPDATE xla_product_rules_b xpr
1493 SET compile_status_code = 'N'
1494 WHERE xpr.compile_status_code <> 'N'
1495 AND EXISTS (SELECT 'x'
1496 FROM xla_prod_acct_headers xpa
1497 , xla_aad_hdr_acct_attrs xah
1498 WHERE xpa.application_id = xpr.application_id
1499 AND xpa.amb_context_code = xpr.amb_context_code
1500 AND xpa.product_rule_type_code = xpr.product_rule_type_code
1501 AND xpa.product_rule_code = xpr.product_rule_code
1502 AND xpa.accounting_required_flag = 'Y'
1503 AND xpa.application_id = xah.application_id
1504 AND xpa.amb_context_code = xah.amb_context_code
1505 AND xpa.product_rule_type_code = xah.product_rule_type_code
1506 AND xpa.product_rule_code = xah.product_rule_code
1507 AND xpa.event_class_code = xah.event_class_code
1508 AND xpa.event_type_code = xah.event_type_code
1509 AND xah.event_class_default_flag = NVL(p_event_class_default_flag,
1510 xah.event_class_default_flag)
1511 AND xah.source_application_id = p_source_application_id
1512 AND xah.source_type_code = p_source_type_code
1513 AND xah.source_code = p_source_code);
1514
1515 END IF;
1516
1517 x_product_rule_name := l_product_rule_name;
1518 x_product_rule_type := l_product_rule_type;
1519 x_event_class_name := l_event_class_name;
1520 x_event_type_name := l_event_type_name;
1521 x_locking_status_flag := l_locking_status_flag;
1522
1523 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.uncompile_aads_with_source' , 10);
1524
1525 RETURN l_return;
1526
1527 EXCEPTION
1528 WHEN xla_exceptions_pkg.application_exception THEN
1529 IF c_lock_aads%ISOPEN THEN
1530 CLOSE c_lock_aads;
1531 END IF;
1532
1533 RAISE;
1534 WHEN OTHERS THEN
1535 IF c_lock_aads%ISOPEN THEN
1536 CLOSE c_lock_aads;
1537 END IF;
1538
1539 xla_exceptions_pkg.raise_message
1540 (p_location => 'xla_evt_class_acct_attrs_pkg.uncompile_aads_with_source');
1541
1542 END uncompile_aads_with_source;
1543
1544
1545
1546 /*======================================================================+
1547 | |
1548 | PUBLIC FUNCTION |
1549 | |
1550 | insert_jlt_assignments |
1551 | |
1552 | Inserts accounting accounting ATTRIBUTES |
1553 | IN THE line TYPES FOR THE event CLASS |
1554 | |
1555 +======================================================================*/
1556 FUNCTION insert_jlt_assignments
1557 (p_application_id IN NUMBER
1558 ,p_event_class_code IN VARCHAR2
1559 ,p_accounting_attribute_code IN VARCHAR2
1563 ,p_default_flag IN VARCHAR2
1560 ,p_source_application_id IN NUMBER
1561 ,p_source_code IN VARCHAR2
1562 ,p_source_type_code IN VARCHAR2
1564 ,p_product_rule_name IN OUT NOCOPY VARCHAR2
1565 ,p_product_rule_type IN OUT NOCOPY VARCHAR2
1566 ,p_event_class_name IN OUT NOCOPY VARCHAR2
1567 ,p_event_type_name IN OUT NOCOPY VARCHAR2)
1568 RETURN BOOLEAN
1569
1570 IS
1571
1572 -- Array Declaration
1573 l_arr_amb_context_code t_array_codes;
1574 l_arr_acct_line_type_code t_array_type_codes;
1575 l_arr_acct_line_code t_array_codes;
1576
1577 l_arr_p_amb_context_code t_array_codes;
1578 l_arr_p_acct_line_type_code t_array_type_codes;
1579 l_arr_p_acct_line_code t_array_codes;
1580
1581 --
1582 -- Private variables
1583 --
1584 l_exist VARCHAR2(1);
1585 l_return BOOLEAN := TRUE;
1586 l_application_name VARCHAR2(240);
1587 l_product_rule_name VARCHAR2(80);
1588 l_product_rule_type VARCHAR2(80);
1589 l_event_class_name VARCHAR2(80);
1590 l_event_type_name VARCHAR2(80);
1591 l_locking_status_flag VARCHAR2(80);
1592 l_inherited_flag VARCHAR2(1);
1593
1594 --
1595 -- Cursor declarations
1596 --
1597
1598 CURSOR c_inherited_acct_attr
1599 IS
1600 SELECT inherited_flag
1601 FROM xla_acct_attributes_b
1602 WHERE accounting_attribute_code = p_accounting_attribute_code;
1603
1604 CURSOR c_jlt_assgn_exist
1605 IS
1606 SELECT 'x'
1607 FROM xla_jlt_acct_attrs
1608 WHERE application_id = p_application_id
1609 AND event_class_code = p_event_class_code
1610 AND accounting_attribute_code = p_accounting_attribute_code;
1611
1612 CURSOR c_class_line_types
1613 IS
1614 SELECT amb_context_code, accounting_line_type_code, accounting_line_code
1615 FROM xla_acct_line_types_b
1616 WHERE application_id = p_application_id
1617 AND event_class_code = p_event_class_code;
1618
1619 CURSOR c_class_line_types_nogain
1620 IS
1621 SELECT amb_context_code, accounting_line_type_code, accounting_line_code
1622 FROM xla_acct_line_types_b
1623 WHERE application_id = p_application_id
1624 AND event_class_code = p_event_class_code
1625 AND natural_side_code <> 'G';
1626
1627
1628 CURSOR c_prior_entry_line_types
1629 IS
1630 SELECT amb_context_code, accounting_line_type_code, accounting_line_code
1631 FROM xla_acct_line_types_b b
1632 WHERE application_id = p_application_id
1633 AND event_class_code = p_event_class_code
1634 AND business_method_code = 'PRIOR_ENTRY'
1635 AND EXISTS (SELECT 'x'
1636 FROM xla_jlt_acct_attrs a
1637 WHERE a.application_id = b.application_id
1638 AND a.event_class_code = b.event_class_code
1639 AND a.amb_context_code = b.amb_context_code
1640 AND a.accounting_line_type_code = b.accounting_line_type_code
1641 AND a.accounting_line_code = b.accounting_line_code
1642 AND a.accounting_attribute_code = p_accounting_attribute_code
1643 AND a.source_code IS NOT NULL);
1644
1645 l_prior_entry_line_types c_prior_entry_line_types%ROWTYPE;
1646
1647 BEGIN
1648 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.insert_jlt_assignments' , 10);
1649
1650 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
1651 xla_utility_pkg.trace('entity_code = '||p_event_class_code , 20);
1652
1653
1654 IF p_default_flag = 'Y' THEN
1655
1656 OPEN c_jlt_assgn_exist;
1657 FETCH c_jlt_assgn_exist INTO l_exist;
1658
1659 IF c_jlt_assgn_exist%NOTFOUND THEN
1660
1661 IF p_accounting_attribute_code IN
1662 ('ENTERED_CURRENCY_AMOUNT'
1663 ,'ENTERED_CURRENCY_CODE'
1664 ,'EXCHANGE_RATE_TYPE'
1665 ,'EXCHANGE_DATE'
1666 ,'EXCHANGE_RATE'
1667 ) THEN
1668 -- Insert assignments for All JLTs for the event class
1669 -- with default source mapping and natural side code is not
1670 -- gain or loss
1671 OPEN c_class_line_types_nogain;
1672 FETCH c_class_line_types_nogain
1673 BULK COLLECT INTO l_arr_amb_context_code
1674 , l_arr_acct_line_type_code
1675 , l_arr_acct_line_code;
1676 CLOSE c_class_line_types_nogain;
1677 ELSE
1678 -- Insert assignments for All JLTs for the event class
1679 -- with default source mapping
1680 OPEN c_class_line_types;
1681 FETCH c_class_line_types
1682 BULK COLLECT INTO l_arr_amb_context_code
1683 , l_arr_acct_line_type_code
1684 , l_arr_acct_line_code;
1685 CLOSE c_class_line_types;
1686 END IF;
1687
1688 IF l_arr_acct_line_code.COUNT > 0 THEN
1689 FORALL i IN l_arr_acct_line_code.FIRST..l_arr_acct_line_code.LAST
1690 INSERT INTO xla_jlt_acct_attrs
1691 (application_id
1692 ,amb_context_code
1693 ,event_class_code
1694 ,accounting_line_type_code
1695 ,accounting_line_code
1696 ,accounting_attribute_code
1697 ,source_application_id
1698 ,source_code
1699 ,source_type_code
1700 ,event_class_default_flag
1701 ,creation_date
1702 ,created_by
1703 ,last_update_date
1704 ,last_updated_by
1705 ,last_update_login)
1706 VALUES
1707 (p_application_id
1708 ,l_arr_amb_context_code(i)
1709 ,p_event_class_code
1710 ,l_arr_acct_line_type_code(i)
1711 ,l_arr_acct_line_code(i)
1712 ,p_accounting_attribute_code
1713 ,p_source_application_id
1714 ,p_source_code
1715 ,p_source_type_code
1716 ,'Y'
1717 ,g_creation_date
1718 ,g_created_by
1719 ,g_last_update_date
1720 ,g_last_updated_by
1721 ,g_last_update_login);
1722
1723 END IF;
1724
1725 -- Uncompile all AADs having atleast one line assignment
1729 ,x_product_rule_type => l_product_rule_type
1726 l_return := uncompile_defn_with_line
1727 (p_application_id => p_application_id
1728 ,p_event_class_code => p_event_class_code
1730 ,x_product_rule_name => l_product_rule_name
1731 ,x_event_class_name => l_event_class_name
1732 ,x_event_type_name => l_event_type_name
1733 ,x_locking_status_flag => l_locking_status_flag);
1734
1735 ELSE
1736
1737 -- Update default assignments for JLTs
1738 UPDATE xla_jlt_acct_attrs
1739 SET source_application_id = p_source_application_id
1740 ,source_type_code = p_source_type_code
1741 ,source_code = p_source_code
1742 WHERE application_id = p_application_id
1743 AND event_class_code = p_event_class_code
1744 AND accounting_attribute_code = p_accounting_attribute_code
1745 AND event_class_default_flag = 'Y';
1746
1747 -- Uncompile all AADs having atleast one jlt assignment
1748 l_return := uncompile_defn_with_jlt
1749 (p_application_id => p_application_id
1750 ,p_event_class_code => p_event_class_code
1751 ,p_accounting_attribute_code => p_accounting_attribute_code
1752 ,x_product_rule_type => l_product_rule_type
1753 ,x_product_rule_name => l_product_rule_name
1754 ,x_event_class_name => l_event_class_name
1755 ,x_event_type_name => l_event_type_name
1756 ,x_locking_status_flag => l_locking_status_flag);
1757 END IF;
1758
1759 ELSIF p_default_flag = 'N' THEN
1760
1761 OPEN c_jlt_assgn_exist;
1762 FETCH c_jlt_assgn_exist
1763 INTO l_exist;
1764
1765 IF c_jlt_assgn_exist%NOTFOUND THEN
1766
1767 IF p_accounting_attribute_code IN
1768 ('ENTERED_CURRENCY_AMOUNT'
1769 ,'ENTERED_CURRENCY_CODE'
1770 ,'EXCHANGE_RATE_TYPE'
1771 ,'EXCHANGE_DATE'
1772 ,'EXCHANGE_RATE'
1773 ) THEN
1774 -- Insert assignments for All JLTs for the event class
1775 -- with null source mapping and natural side code is not
1776 -- gain or loss
1777 OPEN c_class_line_types_nogain;
1778 FETCH c_class_line_types_nogain
1779 BULK COLLECT INTO l_arr_amb_context_code
1780 , l_arr_acct_line_type_code
1781 , l_arr_acct_line_code;
1782 CLOSE c_class_line_types_nogain;
1783 ELSE
1784 -- Insert assignments for All JLTs for the event class
1785 -- with null source mapping
1786 OPEN c_class_line_types;
1787 FETCH c_class_line_types
1788 BULK COLLECT INTO l_arr_amb_context_code
1789 , l_arr_acct_line_type_code
1790 , l_arr_acct_line_code;
1791 CLOSE c_class_line_types;
1792 END IF;
1793
1794 IF l_arr_acct_line_code.COUNT > 0 THEN
1795 FORALL i IN l_arr_acct_line_code.FIRST..l_arr_acct_line_code.LAST
1796 INSERT INTO xla_jlt_acct_attrs
1797 (application_id
1798 ,amb_context_code
1799 ,event_class_code
1803 ,source_application_id
1800 ,accounting_line_type_code
1801 ,accounting_line_code
1802 ,accounting_attribute_code
1804 ,source_code
1805 ,source_type_code
1806 ,event_class_default_flag
1807 ,creation_date
1808 ,created_by
1809 ,last_update_date
1810 ,last_updated_by
1811 ,last_update_login)
1812 VALUES
1813 (p_application_id
1814 ,l_arr_amb_context_code(i)
1815 ,p_event_class_code
1816 ,l_arr_acct_line_type_code(i)
1817 ,l_arr_acct_line_code(i)
1818 ,p_accounting_attribute_code
1819 ,NULL
1820 ,NULL
1821 ,NULL
1822 ,'Y'
1823 ,g_creation_date
1824 ,g_created_by
1825 ,g_last_update_date
1826 ,g_last_updated_by
1827 ,g_last_update_login);
1828
1829 END IF;
1830
1831 END IF;
1832 CLOSE c_jlt_assgn_exist;
1833
1834 END IF;
1835
1836 OPEN c_inherited_acct_attr;
1837 FETCH c_inherited_acct_attr
1838 INTO l_inherited_flag;
1839 CLOSE c_inherited_acct_attr;
1840
1841 IF l_inherited_flag = 'Y' THEN
1842 OPEN c_prior_entry_line_types;
1843 LOOP
1844 FETCH c_prior_entry_line_types
1845 INTO l_prior_entry_line_types;
1846 EXIT WHEN c_prior_entry_line_types%NOTFOUND;
1847
1848 -- Update default assignments for JLTs to null for the prior entry JLTs
1849 UPDATE xla_jlt_acct_attrs
1850 SET source_application_id = NULL
1851 ,source_type_code = NULL
1852 ,source_code = NULL
1853 WHERE application_id = p_application_id
1854 AND event_class_code = p_event_class_code
1855 AND accounting_attribute_code = p_accounting_attribute_code
1856 AND amb_context_code = l_prior_entry_line_types.amb_context_code
1857 AND accounting_line_type_code = l_prior_entry_line_types.accounting_line_type_code
1858 AND accounting_line_code = l_prior_entry_line_types.accounting_line_code;
1859 END LOOP;
1860 CLOSE c_prior_entry_line_types;
1861
1862 END IF;
1863
1864 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.insert_jlt_assignments' , 10);
1865
1866 p_product_rule_name := l_product_rule_name;
1867 p_product_rule_type := l_product_rule_type;
1868 p_event_class_name := l_event_class_name;
1869 p_event_type_name := l_event_type_name;
1870
1871 RETURN l_return;
1872
1873 EXCEPTION
1874 WHEN xla_exceptions_pkg.application_exception THEN
1875 RAISE;
1876 WHEN OTHERS THEN
1877 xla_exceptions_pkg.raise_message
1878 (p_location => 'xla_evt_class_acct_attrs_pkg.insert_jlt_assignments');
1879
1880 END insert_jlt_assignments;
1881
1882 /*======================================================================+
1883 | |
1884 | PUBLIC FUNCTION |
1885 | |
1886 | update_jlt_assignments |
1887 | |
1888 | Updates accounting accounting ATTRIBUTES |
1889 | IN THE line TYPES FOR THE event CLASS |
1890 | |
1891 +======================================================================*/
1892 FUNCTION update_jlt_assignments
1893 (p_application_id IN NUMBER
1894 ,p_event_class_code IN VARCHAR2
1895 ,p_accounting_attribute_code IN VARCHAR2
1896 ,p_source_application_id IN NUMBER
1897 ,p_source_code IN VARCHAR2
1898 ,p_source_type_code IN VARCHAR2
1899 ,p_default_flag IN VARCHAR2
1900 ,p_product_rule_name IN OUT NOCOPY VARCHAR2
1901 ,p_product_rule_type IN OUT NOCOPY VARCHAR2
1902 ,p_event_class_name IN OUT NOCOPY VARCHAR2
1903 ,p_event_type_name IN OUT NOCOPY VARCHAR2)
1904 RETURN BOOLEAN
1905
1906 IS
1907
1908 --
1909 -- Private variables
1910 --
1911 l_exist VARCHAR2(1);
1912 l_return BOOLEAN := TRUE;
1913 l_application_name VARCHAR2(240);
1914 l_product_rule_name VARCHAR2(80);
1915 l_product_rule_type VARCHAR2(80);
1916 l_event_class_name VARCHAR2(80) := NULL;
1917 l_event_type_name VARCHAR2(80) := NULL;
1918 l_locking_status_flag VARCHAR2(1) := NULL;
1919 l_inherited_flag VARCHAR2(1);
1920
1921 CURSOR c_inherited_acct_attr
1922 IS
1923 SELECT inherited_flag
1924 FROM xla_acct_attributes_b
1925 WHERE accounting_attribute_code = p_accounting_attribute_code;
1926
1927 CURSOR c_line_types
1928 IS
1929 SELECT amb_context_code, accounting_line_type_code, accounting_line_code
1930 FROM xla_acct_line_types_b b
1931 WHERE application_id = p_application_id
1932 AND event_class_code = p_event_class_code
1933 AND EXISTS (SELECT 'x'
1934 FROM xla_jlt_acct_attrs a
1935 WHERE a.application_id = b.application_id
1936 AND a.event_class_code = b.event_class_code
1940 AND a.accounting_attribute_code = p_accounting_attribute_code);
1937 AND a.amb_context_code = b.amb_context_code
1938 AND a.accounting_line_type_code = b.accounting_line_type_code
1939 AND a.accounting_line_code = b.accounting_line_code
1941
1942 l_line_types c_line_types%ROWTYPE;
1943
1944 CURSOR c_non_pe_line_types
1945 IS
1946 SELECT amb_context_code, accounting_line_type_code, accounting_line_code
1947 FROM xla_acct_line_types_b b
1948 WHERE application_id = p_application_id
1949 AND event_class_code = p_event_class_code
1950 AND business_method_code <> 'PRIOR_ENTRY'
1951 AND EXISTS (SELECT 'x'
1952 FROM xla_jlt_acct_attrs a
1953 WHERE a.application_id = b.application_id
1954 AND a.event_class_code = b.event_class_code
1955 AND a.amb_context_code = b.amb_context_code
1956 AND a.accounting_line_type_code = b.accounting_line_type_code
1957 AND a.accounting_line_code = b.accounting_line_code
1958 AND a.accounting_attribute_code = p_accounting_attribute_code);
1959
1960 l_non_pe_line_types c_non_pe_line_types%ROWTYPE;
1961
1962 BEGIN
1963 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.update_jlt_assignments' , 10);
1964
1965 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
1966 xla_utility_pkg.trace('entity_code = '||p_event_class_code , 20);
1967
1968 IF p_default_flag = 'Y' THEN
1969
1970 -- Check if accounting attribute is inherited
1971 OPEN c_inherited_acct_attr;
1972 FETCH c_inherited_acct_attr
1973 INTO l_inherited_flag;
1974 CLOSE c_inherited_acct_attr;
1975
1976 IF l_inherited_flag = 'Y' THEN
1977 OPEN c_non_pe_line_types;
1978 LOOP
1979 FETCH c_non_pe_line_types
1980 INTO l_non_pe_line_types;
1981 EXIT WHEN c_non_pe_line_types%NOTFOUND;
1982
1983 -- Update default assignments for JLTs which are not prior entry JLTs
1984 UPDATE xla_jlt_acct_attrs
1985 SET source_application_id = p_source_application_id
1986 ,source_type_code = p_source_type_code
1987 ,source_code = p_source_code
1988 WHERE application_id = p_application_id
1989 AND event_class_code = p_event_class_code
1990 AND accounting_attribute_code = p_accounting_attribute_code
1991 AND event_class_default_flag = 'Y'
1992 AND amb_context_code = l_non_pe_line_types.amb_context_code
1993 AND accounting_line_type_code = l_non_pe_line_types.accounting_line_type_code
1994 AND accounting_line_code = l_non_pe_line_types.accounting_line_code;
1995 END LOOP;
1996 CLOSE c_non_pe_line_types;
1997
1998 ELSE
1999 OPEN c_line_types;
2000 LOOP
2001 FETCH c_line_types
2002 INTO l_line_types;
2003 EXIT WHEN c_line_types%NOTFOUND;
2004
2005 -- Update default assignments for JLTs which are not prior entry JLTs
2006 UPDATE xla_jlt_acct_attrs
2007 SET source_application_id = p_source_application_id
2008 ,source_type_code = p_source_type_code
2009 ,source_code = p_source_code
2010 WHERE application_id = p_application_id
2011 AND event_class_code = p_event_class_code
2012 AND accounting_attribute_code = p_accounting_attribute_code
2013 AND event_class_default_flag = 'Y'
2014 AND amb_context_code = l_line_types.amb_context_code
2015 AND accounting_line_type_code = l_line_types.accounting_line_type_code
2016 AND accounting_line_code = l_line_types.accounting_line_code;
2017 END LOOP;
2018 CLOSE c_line_types;
2019 END IF;
2020
2021 -- Uncompile all AADs using the JLT
2022
2023 l_return := uncompile_defn_with_jlt
2024 (p_application_id => p_application_id
2025 ,p_event_class_code => p_event_class_code
2026 ,p_accounting_attribute_code => p_accounting_attribute_code
2027 ,x_product_rule_type => l_product_rule_type
2028 ,x_product_rule_name => l_product_rule_name
2029 ,x_event_class_name => l_event_class_name
2030 ,x_event_type_name => l_event_type_name
2031 ,x_locking_status_flag => l_locking_status_flag);
2032
2033 ELSIF p_default_flag = 'N' THEN
2034
2035 -- Uncompile all AADs using the JLT
2036
2037 l_return := uncompile_defn_with_jlt_source
2038 (p_application_id => p_application_id
2039 ,p_event_class_code => p_event_class_code
2040 ,p_accounting_attribute_code => p_accounting_attribute_code
2041 ,p_source_application_id => p_source_application_id
2042 ,p_source_code => p_source_code
2043 ,p_source_type_code => p_source_type_code
2044 ,p_event_class_default_flag => 'Y'
2045 ,x_product_rule_type => l_product_rule_type
2046 ,x_product_rule_name => l_product_rule_name
2047 ,x_event_class_name => l_event_class_name
2048 ,x_event_type_name => l_event_type_name
2049 ,x_locking_status_flag => l_locking_status_flag);
2050
2054 ,source_type_code = NULL
2051 -- Update default assignments for JLTs with the null source mapping
2052 UPDATE xla_jlt_acct_attrs
2053 SET source_application_id = NULL
2055 ,source_code = NULL
2056 WHERE application_id = p_application_id
2057 AND event_class_code = p_event_class_code
2058 AND accounting_attribute_code = p_accounting_attribute_code
2059 AND event_class_default_flag = 'Y'
2060 AND source_application_id = p_source_application_id
2061 AND source_type_code = p_source_type_code
2062 AND source_code = p_source_code;
2063
2064 END IF;
2065
2066 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.update_jlt_assignments' , 10);
2067
2068 p_product_rule_name := l_product_rule_name;
2069 p_product_rule_type := l_product_rule_type;
2070 p_event_class_name := l_event_class_name;
2071 p_event_type_name := l_event_type_name;
2072
2073 RETURN l_return;
2074
2075 EXCEPTION
2076 WHEN xla_exceptions_pkg.application_exception THEN
2077 RAISE;
2078 WHEN OTHERS THEN
2079 xla_exceptions_pkg.raise_message
2080 (p_location => 'xla_evt_class_acct_attrs_pkg.update_jlt_assignments');
2081
2082 END update_jlt_assignments;
2083
2084 /*======================================================================+
2085 | |
2086 | PUBLIC FUNCTION |
2087 | |
2088 | delete_jlt_assignments |
2089 | |
2090 | Deletes accounting accounting ATTRIBUTES |
2091 | IN THE line TYPES FOR THE event CLASS |
2092 | |
2093 +======================================================================*/
2094 FUNCTION delete_jlt_assignments
2095 (p_application_id IN NUMBER
2096 ,p_event_class_code IN VARCHAR2
2097 ,p_accounting_attribute_code IN VARCHAR2
2098 ,p_source_application_id IN NUMBER
2099 ,p_source_code IN VARCHAR2
2100 ,p_source_type_code IN VARCHAR2
2101 ,p_product_rule_name IN OUT NOCOPY VARCHAR2
2102 ,p_product_rule_type IN OUT NOCOPY VARCHAR2
2103 ,p_event_class_name IN OUT NOCOPY VARCHAR2
2104 ,p_event_type_name IN OUT NOCOPY VARCHAR2)
2105 RETURN BOOLEAN
2106
2107 IS
2108
2109 --
2110 -- Private variables
2111 --
2112 l_exist VARCHAR2(1);
2113 l_return BOOLEAN := TRUE;
2114 l_application_name VARCHAR2(240);
2115 l_product_rule_name VARCHAR2(80);
2116 l_product_rule_type VARCHAR2(80);
2117 l_event_class_name VARCHAR2(80) := NULL;
2118 l_event_type_name VARCHAR2(80) := NULL;
2119 l_locking_status_flag VARCHAR2(1) := NULL;
2120 l_count NUMBER(10);
2121
2122 --
2123 -- Cursor declarations
2124 --
2125
2126 CURSOR c_last_assignment
2127 IS
2128 SELECT count(1)
2129 FROM xla_evt_class_acct_attrs
2130 WHERE application_id = p_application_id
2131 AND event_class_code = p_event_class_code
2132 AND accounting_attribute_code = p_accounting_attribute_code;
2133
2134 BEGIN
2135 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.delete_jlt_assignments' , 10);
2136
2137 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
2138 xla_utility_pkg.trace('entity_code = '||p_event_class_code , 20);
2139
2140 OPEN c_last_assignment;
2141 FETCH c_last_assignment
2142 INTO l_count;
2143
2144 IF l_count = 1 THEN
2145 -- it is the last assignment, so delete from JLT
2146
2147 DELETE
2148 FROM xla_jlt_acct_attrs
2149 WHERE application_id = p_application_id
2150 AND event_class_code = p_event_class_code
2151 AND accounting_attribute_code = p_accounting_attribute_code;
2152
2153 -- Uncompile all AADs having atleast one line assignment
2154 l_return := uncompile_defn_with_line
2155 (p_application_id => p_application_id
2156 ,p_event_class_code => p_event_class_code
2157 ,x_product_rule_type => l_product_rule_type
2158 ,x_product_rule_name => l_product_rule_name
2159 ,x_event_class_name => l_event_class_name
2160 ,x_event_type_name => l_event_type_name
2164
2161 ,x_locking_status_flag => l_locking_status_flag);
2162 ELSE
2163 -- it is not the last assignment
2165 -- Uncompile all AADs using the JLT
2166
2167 l_return := uncompile_defn_with_jlt_source
2168 (p_application_id => p_application_id
2169 ,p_event_class_code => p_event_class_code
2170 ,p_accounting_attribute_code => p_accounting_attribute_code
2171 ,p_source_application_id => p_source_application_id
2172 ,p_source_code => p_source_code
2173 ,p_source_type_code => p_source_type_code
2174 ,p_event_class_default_flag => NULL
2175 ,x_product_rule_type => l_product_rule_type
2176 ,x_product_rule_name => l_product_rule_name
2177 ,x_event_class_name => l_event_class_name
2178 ,x_event_type_name => l_event_type_name
2179 ,x_locking_status_flag => l_locking_status_flag);
2180
2181 -- Update default assignments for JLTs with the null source mapping
2182 UPDATE xla_jlt_acct_attrs
2183 SET source_application_id = NULL
2184 ,source_type_code = NULL
2185 ,source_code = NULL
2186 WHERE application_id = p_application_id
2187 AND event_class_code = p_event_class_code
2188 AND accounting_attribute_code = p_accounting_attribute_code
2189 AND source_application_id = p_source_application_id
2190 AND source_type_code = p_source_type_code
2191 AND source_code = p_source_code;
2192
2193 END IF;
2194 CLOSE c_last_assignment;
2195 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.delete_jlt_assignments' , 10);
2196
2197 p_product_rule_name := l_product_rule_name;
2198 p_product_rule_type := l_product_rule_type;
2199 p_event_class_name := l_event_class_name;
2200 p_event_type_name := l_event_type_name;
2201 RETURN l_return;
2202
2203 EXCEPTION
2204 WHEN xla_exceptions_pkg.application_exception THEN
2205 RAISE;
2206 WHEN OTHERS THEN
2207 xla_exceptions_pkg.raise_message
2208 (p_location => 'xla_evt_class_acct_attrs_pkg.delete_jlt_assignments');
2209
2210 END delete_jlt_assignments;
2211
2212 /*======================================================================+
2213 | |
2214 | PUBLIC FUNCTION |
2215 | |
2216 | insert_aad_assignments |
2217 | |
2218 | Inserts accounting accounting ATTRIBUTES |
2219 | IN THE AADs FOR THE event CLASS |
2220 | |
2221 +======================================================================*/
2222 FUNCTION insert_aad_assignments
2223 (p_application_id IN NUMBER
2224 ,p_event_class_code IN VARCHAR2
2225 ,p_accounting_attribute_code IN VARCHAR2
2226 ,p_source_application_id IN NUMBER
2227 ,p_source_code IN VARCHAR2
2228 ,p_source_type_code IN VARCHAR2
2229 ,p_default_flag IN VARCHAR2
2230 ,p_product_rule_name IN OUT NOCOPY VARCHAR2
2231 ,p_product_rule_type IN OUT NOCOPY VARCHAR2
2232 ,p_event_class_name IN OUT NOCOPY VARCHAR2
2233 ,p_event_type_name IN OUT NOCOPY VARCHAR2)
2234 RETURN BOOLEAN
2235
2236 IS
2237 -- Array Declaration
2238 l_arr_amb_context_code t_array_codes;
2239 l_arr_product_rule_type_code t_array_type_codes;
2240 l_arr_product_rule_code t_array_codes;
2241 l_arr_event_type_code t_array_codes;
2242 l_application_id NUMBER(15);
2243 l_event_class_code VARCHAR2(30);
2244 l_validation_status_code VARCHAR2(30);
2245
2246 --
2247 -- Private variables
2248 --
2249 l_exist VARCHAR2(1);
2250 l_return BOOLEAN := TRUE;
2251 l_application_name VARCHAR2(240);
2252 l_product_rule_name VARCHAR2(80);
2253 l_product_rule_type VARCHAR2(80);
2254 l_event_class_name VARCHAR2(80) := NULL;
2255 l_event_type_name VARCHAR2(80) := NULL;
2256 l_locking_status_flag VARCHAR2(1) := NULL;
2257
2258
2259 --
2260 -- Cursor declarations
2261 --
2262
2263 CURSOR c_aad_assgn_exist
2264 IS
2265 SELECT 'x'
2266 FROM xla_aad_hdr_acct_attrs
2267 WHERE application_id = p_application_id
2268 AND event_class_code = p_event_class_code
2269 AND accounting_attribute_code = p_accounting_attribute_code;
2270
2271 CURSOR c_class_aad
2272 IS
2273 SELECT amb_context_code, product_rule_type_code, product_rule_code,
2274 event_type_code
2275 FROM xla_prod_acct_headers
2276 WHERE application_id = p_application_id
2277 AND event_class_code = p_event_class_code;
2278
2279 BEGIN
2280 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.insert_aad_assignments' , 10);
2281
2282 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
2283 xla_utility_pkg.trace('entity_code = '||p_event_class_code , 20);
2284
2285 l_application_id := p_application_id;
2289
2286 l_event_class_code := p_event_class_code;
2287
2288 IF p_default_flag = 'Y' THEN
2290 OPEN c_aad_assgn_exist;
2291 FETCH c_aad_assgn_exist
2292 INTO l_exist;
2293
2294 IF c_aad_assgn_exist%NOTFOUND THEN
2295
2296 -- Insert assignments for All AADs for the event class
2297 -- with a source mapping
2298 OPEN c_class_aad;
2299 FETCH c_class_aad
2300 BULK COLLECT INTO l_arr_amb_context_code, l_arr_product_rule_type_code,
2301 l_arr_product_rule_code, l_arr_event_type_code;
2302
2303 IF l_arr_product_rule_code.COUNT > 0 THEN
2304 FORALL i IN l_arr_product_rule_code.FIRST..l_arr_product_rule_code.LAST
2305 INSERT INTO xla_aad_hdr_acct_attrs
2306 (application_id
2307 ,amb_context_code
2308 ,product_rule_type_code
2309 ,product_rule_code
2310 ,event_class_code
2311 ,event_type_code
2312 ,accounting_attribute_code
2313 ,source_application_id
2314 ,source_code
2315 ,source_type_code
2316 ,event_class_default_flag
2317 ,creation_date
2318 ,created_by
2319 ,last_update_date
2320 ,last_updated_by
2321 ,last_update_login)
2322 VALUES
2323 (p_application_id
2324 ,l_arr_amb_context_code(i)
2325 ,l_arr_product_rule_type_code(i)
2326 ,l_arr_product_rule_code(i)
2327 ,p_event_class_code
2328 ,l_arr_event_type_code(i)
2329 ,p_accounting_attribute_code
2330 ,p_source_application_id
2331 ,p_source_code
2332 ,p_source_type_code
2333 ,'Y'
2334 ,g_creation_date
2335 ,g_created_by
2336 ,g_last_update_date
2337 ,g_last_updated_by
2338 ,g_last_update_login);
2339
2340 END IF;
2341 CLOSE c_class_aad;
2342
2343 -- Uncompile all AADs for that event class.
2344 l_return := uncompile_evt_class_aads
2345 (p_application_id => l_application_id
2346 ,p_event_class_code => l_event_class_code
2347 ,x_product_rule_type => l_product_rule_type
2348 ,x_product_rule_name => l_product_rule_name
2349 ,x_event_class_name => l_event_class_name
2350 ,x_event_type_name => l_event_type_name
2351 ,x_locking_status_flag => l_locking_status_flag
2352 ,x_validation_status_code => l_validation_status_code);
2353
2354 ELSE
2355
2356 -- Update default assignments for AADs
2357 UPDATE xla_aad_hdr_acct_attrs
2358 SET source_application_id = p_source_application_id
2359 ,source_type_code = p_source_type_code
2360 ,source_code = p_source_code
2361 WHERE application_id = p_application_id
2362 AND event_class_code = p_event_class_code
2363 AND accounting_attribute_code = p_accounting_attribute_code
2364 AND event_class_default_flag = 'Y';
2365
2366 -- Uncompile all AADs that have been updated
2367 l_return := uncompile_evt_class_aads
2368 (p_application_id => l_application_id
2369 ,p_event_class_code => l_event_class_code
2370 ,x_product_rule_type => l_product_rule_type
2371 ,x_product_rule_name => l_product_rule_name
2372 ,x_event_class_name => l_event_class_name
2373 ,x_event_type_name => l_event_type_name
2374 ,x_locking_status_flag => l_locking_status_flag
2375 ,x_validation_status_code => l_validation_status_code);
2376
2377 /* l_return := uncompile_defn_with_default
2378 (x_product_rule_type => l_product_rule_type
2379 ,x_product_rule_name => l_product_rule_name
2380 ,x_event_class_name => l_event_class_name
2381 ,x_event_type_name => l_event_type_name
2382 ,x_locking_status_flag => l_locking_status_flag); */
2383
2384 END IF;
2385 CLOSE c_aad_assgn_exist;
2386
2387 ELSIF p_default_flag = 'N' THEN
2388
2389 OPEN c_aad_assgn_exist;
2390 FETCH c_aad_assgn_exist
2391 INTO l_exist;
2392
2393 IF c_aad_assgn_exist%NOTFOUND THEN
2394
2395 -- Insert assignments for All AADs for the event class
2396 -- with null source mapping
2397 OPEN c_class_aad;
2398 FETCH c_class_aad
2399 BULK COLLECT INTO l_arr_amb_context_code, l_arr_product_rule_type_code,
2400 l_arr_product_rule_code, l_arr_event_type_code;
2401
2402 IF l_arr_product_rule_code.COUNT > 0 THEN
2403 FORALL i IN l_arr_product_rule_code.FIRST..l_arr_product_rule_code.LAST
2404 INSERT INTO xla_aad_hdr_acct_attrs
2405 (application_id
2406 ,amb_context_code
2407 ,product_rule_type_code
2408 ,product_rule_code
2409 ,event_class_code
2410 ,event_type_code
2411 ,accounting_attribute_code
2415 ,event_class_default_flag
2412 ,source_application_id
2413 ,source_code
2414 ,source_type_code
2416 ,creation_date
2417 ,created_by
2418 ,last_update_date
2419 ,last_updated_by
2420 ,last_update_login)
2421 VALUES
2422 (p_application_id
2423 ,l_arr_amb_context_code(i)
2424 ,l_arr_product_rule_type_code(i)
2425 ,l_arr_product_rule_code(i)
2426 ,p_event_class_code
2427 ,l_arr_event_type_code(i)
2428 ,p_accounting_attribute_code
2429 ,NULL
2430 ,NULL
2431 ,NULL
2432 ,'Y'
2433 ,g_creation_date
2434 ,g_created_by
2435 ,g_last_update_date
2436 ,g_last_updated_by
2437 ,g_last_update_login);
2438
2439 END IF;
2440 CLOSE c_class_aad;
2441
2442 END IF;
2443 CLOSE c_aad_assgn_exist;
2444
2445 END IF;
2446
2447 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.insert_aad_assignments' , 10);
2448
2449 p_product_rule_name := l_product_rule_name;
2450 p_product_rule_type := l_product_rule_type;
2451 p_event_class_name := l_event_class_name;
2452 p_event_type_name := l_event_type_name;
2453
2454 RETURN l_return;
2455
2456 EXCEPTION
2457 WHEN xla_exceptions_pkg.application_exception THEN
2458 RAISE;
2459 WHEN OTHERS THEN
2460 xla_exceptions_pkg.raise_message
2461 (p_location => 'xla_evt_class_acct_attrs_pkg.insert_aad_assignments');
2462
2463 END insert_aad_assignments;
2464
2465 /*======================================================================+
2466 | |
2467 | PUBLIC FUNCTION |
2468 | |
2469 | update_aad_assignments |
2470 | |
2471 | Updates accounting accounting ATTRIBUTES |
2472 | IN THE AADs FOR THE event CLASS |
2473 | |
2474 +======================================================================*/
2475 FUNCTION update_aad_assignments
2476 (p_application_id IN NUMBER
2477 ,p_event_class_code IN VARCHAR2
2478 ,p_accounting_attribute_code IN VARCHAR2
2479 ,p_source_application_id IN NUMBER
2480 ,p_source_code IN VARCHAR2
2481 ,p_source_type_code IN VARCHAR2
2482 ,p_default_flag IN VARCHAR2
2483 ,p_product_rule_name IN OUT NOCOPY VARCHAR2
2484 ,p_product_rule_type IN OUT NOCOPY VARCHAR2
2485 ,p_event_class_name IN OUT NOCOPY VARCHAR2
2486 ,p_event_type_name IN OUT NOCOPY VARCHAR2)
2487 RETURN BOOLEAN
2488
2489 IS
2490 --
2491 -- Private variables
2492 --
2493 l_exist VARCHAR2(1);
2494 l_return BOOLEAN := TRUE;
2495 l_application_name VARCHAR2(240);
2496 l_product_rule_name VARCHAR2(80);
2497 l_product_rule_type VARCHAR2(80);
2498 l_event_class_name VARCHAR2(80) := NULL;
2499 l_event_type_name VARCHAR2(80) := NULL;
2500 l_locking_status_flag VARCHAR2(1) := NULL;
2501
2502 l_application_id NUMBER(15);
2503 l_event_class_code VARCHAR2(30);
2504 l_validation_status_code VARCHAR2(30);
2505
2506 BEGIN
2507 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.update_aad_assignments' , 10);
2508
2509 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
2510 xla_utility_pkg.trace('entity_code = '||p_event_class_code , 20);
2511
2512 l_application_id := p_application_id;
2513 l_event_class_code := p_event_class_code;
2514
2515 IF p_default_flag = 'Y' THEN
2516
2517 -- Update default assignments for AADs with the new source mapping
2518 UPDATE xla_aad_hdr_acct_attrs
2519 SET source_application_id = p_source_application_id
2520 ,source_type_code = p_source_type_code
2521 ,source_code = p_source_code
2522 WHERE application_id = p_application_id
2523 AND event_class_code = p_event_class_code
2524 AND accounting_attribute_code = p_accounting_attribute_code
2525 AND event_class_default_flag = 'Y';
2526
2527
2528 -- Uncompile all AADs that have been updated
2529 l_return := uncompile_evt_class_aads
2530 (p_application_id => l_application_id
2531 ,p_event_class_code => l_event_class_code
2532 ,x_product_rule_type => l_product_rule_type
2533 ,x_product_rule_name => l_product_rule_name
2534 ,x_event_class_name => l_event_class_name
2535 ,x_event_type_name => l_event_type_name
2536 ,x_locking_status_flag => l_locking_status_flag
2537 ,x_validation_status_code => l_validation_status_code);
2538
2539 ELSIF p_default_flag = 'N' THEN
2540
2541 -- Uncompile all AADs with default assignment and same source mapping
2542
2546 ,p_event_class_code => l_event_class_code
2543 -- Uncompile all AADs that have been updated
2544 l_return := uncompile_evt_class_aads
2545 (p_application_id => l_application_id
2547 ,x_product_rule_type => l_product_rule_type
2548 ,x_product_rule_name => l_product_rule_name
2549 ,x_event_class_name => l_event_class_name
2550 ,x_event_type_name => l_event_type_name
2551 ,x_locking_status_flag => l_locking_status_flag
2552 ,x_validation_status_code => l_validation_status_code);
2553
2554 -- Update default assignments for AADs with the null source mapping
2555 UPDATE xla_aad_hdr_acct_attrs
2556 SET source_application_id = NULL
2557 ,source_type_code = NULL
2558 ,source_code = NULL
2559 WHERE application_id = p_application_id
2560 AND event_class_code = p_event_class_code
2561 AND accounting_attribute_code = p_accounting_attribute_code
2562 AND event_class_default_flag = 'Y'
2563 AND source_application_id = p_source_application_id
2564 AND source_type_code = p_source_type_code
2565 AND source_code = p_source_code;
2566
2567 END IF;
2568
2569 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.update_aad_assignments' , 10);
2570
2571 p_product_rule_name := l_product_rule_name;
2572 p_product_rule_type := l_product_rule_type;
2573 p_event_class_name := l_event_class_name;
2574 p_event_type_name := l_event_type_name;
2575
2576 RETURN l_return;
2577
2578 EXCEPTION
2579 WHEN xla_exceptions_pkg.application_exception THEN
2580 RAISE;
2581 WHEN OTHERS THEN
2582 xla_exceptions_pkg.raise_message
2583 (p_location => 'xla_evt_class_acct_attrs_pkg.update_aad_assignments');
2584
2585 END update_aad_assignments;
2586
2587 /*======================================================================+
2588 | |
2589 | PUBLIC FUNCTION |
2590 | |
2591 | delete_aad_assignments |
2592 | |
2593 | Deletes accounting accounting ATTRIBUTES |
2594 | IN THE AADs FOR THE event CLASS |
2595 | |
2596 +======================================================================*/
2597 FUNCTION delete_aad_assignments
2598 (p_application_id IN NUMBER
2599 ,p_event_class_code IN VARCHAR2
2600 ,p_accounting_attribute_code IN VARCHAR2
2601 ,p_source_application_id IN NUMBER
2602 ,p_source_code IN VARCHAR2
2603 ,p_source_type_code IN VARCHAR2
2604 ,p_product_rule_name IN OUT NOCOPY VARCHAR2
2605 ,p_product_rule_type IN OUT NOCOPY VARCHAR2
2606 ,p_event_class_name IN OUT NOCOPY VARCHAR2
2607 ,p_event_type_name IN OUT NOCOPY VARCHAR2)
2608 RETURN BOOLEAN
2609
2610 IS
2611 --
2612 -- Private variables
2613 --
2614 l_exist VARCHAR2(1);
2615 l_return BOOLEAN := TRUE;
2616 l_application_name VARCHAR2(240);
2617 l_product_rule_name VARCHAR2(80);
2618 l_product_rule_type VARCHAR2(80);
2619 l_event_class_name VARCHAR2(80) := NULL;
2620 l_event_type_name VARCHAR2(80) := NULL;
2621 l_locking_status_flag VARCHAR2(1) := NULL;
2622 l_count NUMBER(10);
2623
2624 --
2625 -- Cursor declarations
2626 --
2627
2628 CURSOR c_last_assignment
2629 IS
2630 SELECT count(1)
2631 FROM xla_evt_class_acct_attrs
2632 WHERE application_id = p_application_id
2633 AND event_class_code = p_event_class_code
2634 AND accounting_attribute_code = p_accounting_attribute_code;
2635
2636 BEGIN
2637 xla_utility_pkg.trace('> xla_evt_class_acct_attrs_pkg.delete_aad_assignments' , 10);
2638
2639 xla_utility_pkg.trace('application_id = '||p_application_id , 20);
2640 xla_utility_pkg.trace('entity_code = '||p_event_class_code , 20);
2641
2642 OPEN c_last_assignment;
2643 FETCH c_last_assignment
2644 INTO l_count;
2645
2649 DELETE
2646 IF l_count = 1 THEN
2647 -- it is the last assignment, so delete from AAD
2648
2650 FROM xla_aad_hdr_acct_attrs
2651 WHERE application_id = p_application_id
2652 AND event_class_code = p_event_class_code
2653 AND accounting_attribute_code = p_accounting_attribute_code;
2654
2655 -- Uncompile all AADs having create accounting flag 'Y'
2656 l_return := uncompile_defn_with_line_acct
2657 (p_application_id => p_application_id
2658 ,p_event_class_code => p_event_class_code
2659 ,x_product_rule_type => l_product_rule_type
2660 ,x_product_rule_name => l_product_rule_name
2661 ,x_event_class_name => l_event_class_name
2662 ,x_event_type_name => l_event_type_name
2663 ,x_locking_status_flag => l_locking_status_flag);
2664
2665 ELSE
2666 -- it is not the last assignment
2667
2668 -- Uncompile all AADs having the same source mapping for the
2669 -- accounting attribute
2670
2671 l_return := uncompile_aads_with_source
2672 (p_source_application_id => p_source_application_id
2673 ,p_source_code => p_source_code
2674 ,p_source_type_code => p_source_type_code
2675 ,p_event_class_default_flag => NULL
2676 ,x_product_rule_type => l_product_rule_type
2677 ,x_product_rule_name => l_product_rule_name
2678 ,x_event_class_name => l_event_class_name
2679 ,x_event_type_name => l_event_type_name
2680 ,x_locking_status_flag => l_locking_status_flag);
2681
2682 -- Update assignments for AADs with the null source mapping
2683 UPDATE xla_aad_hdr_acct_attrs
2684 SET source_application_id = NULL
2685 ,source_type_code = NULL
2686 ,source_code = NULL
2687 WHERE application_id = p_application_id
2688 AND event_class_code = p_event_class_code
2689 AND accounting_attribute_code = p_accounting_attribute_code
2690 AND source_application_id = p_source_application_id
2691 AND source_type_code = p_source_type_code
2692 AND source_code = p_source_code;
2693
2694 END IF;
2695 CLOSE c_last_assignment;
2696 xla_utility_pkg.trace('< xla_evt_class_acct_attrs_pkg.delete_aad_assignments' , 10);
2697
2698 p_product_rule_name := l_product_rule_name;
2699 p_product_rule_type := l_product_rule_type;
2700 p_event_class_name := l_event_class_name;
2701 p_event_type_name := l_event_type_name;
2702 RETURN l_return;
2703
2704 EXCEPTION
2705 WHEN xla_exceptions_pkg.application_exception THEN
2706 RAISE;
2707 WHEN OTHERS THEN
2708 xla_exceptions_pkg.raise_message
2709 (p_location => 'xla_evt_class_acct_attrs_pkg.delete_aad_assignments');
2710
2711 END delete_aad_assignments;
2712 --=============================================================================
2713 --
2714 -- Following code is executed when the package body is referenced for the first
2715 -- time
2716 --
2717 --=============================================================================
2718 BEGIN
2719
2720 g_creation_date := sysdate;
2721 g_last_update_date := sysdate;
2722 g_created_by := xla_environment_pkg.g_usr_id;
2723 g_last_update_login := xla_environment_pkg.g_login_id;
2724 g_last_updated_by := xla_environment_pkg.g_usr_id;
2725
2726
2727 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
2728 g_log_enabled := fnd_log.test
2729 (log_level => g_log_level
2730 ,MODULE => C_DEFAULT_MODULE);
2731
2732 IF NOT g_log_enabled THEN
2733 g_log_level := C_LEVEL_LOG_DISABLED;
2734 END IF;
2735 END xla_evt_class_acct_attrs_pkg;