DBA Data[Home] [Help]

PACKAGE BODY: APPS.XLA_EVENT_TYPES_PKG

Source


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