DBA Data[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;