DBA Data[Home] [Help]

PACKAGE BODY: APPS.ZX_VALID_INIT_PARAMS_PKG

Source


1 PACKAGE BODY zx_valid_init_params_pkg AS
2 /* $Header: zxifvaldinitpkgb.pls 120.153.12010000.2 2008/11/20 05:35:22 tsen ship $ */
3 
4 
5 /* ======================================================================*
6  | Global Data Types                                                     |
7  * ======================================================================*/
8 
9 G_PKG_NAME                CONSTANT VARCHAR2(30) := 'ZX_VALID_INIT_PARAMS_PKG';
10 G_CURRENT_RUNTIME_LEVEL   CONSTANT NUMBER       := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
11 G_LEVEL_UNEXPECTED        CONSTANT NUMBER       := FND_LOG.LEVEL_UNEXPECTED;
12 G_LEVEL_ERROR             CONSTANT NUMBER       := FND_LOG.LEVEL_ERROR;
13 G_LEVEL_EXCEPTION         CONSTANT NUMBER       := FND_LOG.LEVEL_EXCEPTION;
14 G_LEVEL_EVENT             CONSTANT NUMBER       := FND_LOG.LEVEL_EVENT;
15 G_LEVEL_PROCEDURE         CONSTANT NUMBER       := FND_LOG.LEVEL_PROCEDURE;
16 G_LEVEL_STATEMENT         CONSTANT NUMBER       := FND_LOG.LEVEL_STATEMENT;
17 G_MODULE_NAME             CONSTANT VARCHAR2(80) := 'ZX.PLSQL.ZX_VALID_INIT_PARAMS_PKG.';
18 NULL_EVENT_CLASS_REC      ZX_API_PUB.event_class_rec_type;
19 
20 /*----------------------------------------------------------------------------*
21  |   PRIVATE FUNCTIONS/PROCEDURES                                             |
22  *----------------------------------------------------------------------------*/
23 
24  PROCEDURE get_event_class_info(
25      P_ENTITY_CODE         IN         ZX_EVNT_CLS_MAPPINGS.entity_code%TYPE,
26      P_EVENT_CLASS_CODE    IN         ZX_EVNT_CLS_MAPPINGS.event_class_code%TYPE,
27      P_APPLICATION_ID      IN         ZX_EVNT_CLS_MAPPINGS.application_id%TYPE,
28      X_TBL_INDEX           OUT NOCOPY BINARY_INTEGER,
29      X_RETURN_STATUS       OUT NOCOPY VARCHAR2);
30 
31  PROCEDURE get_event_typ_mappings_info(
32      P_ENTITY_CODE         IN         ZX_EVNT_TYP_MAPPINGS.entity_code%TYPE,
33      P_EVENT_CLASS_CODE    IN         ZX_EVNT_TYP_MAPPINGS.event_class_code%TYPE,
34      P_APPLICATION_ID      IN         ZX_EVNT_TYP_MAPPINGS.application_id%TYPE,
35      P_EVENT_TYPE_CODE     IN         ZX_EVNT_TYP_MAPPINGS.event_type_code%TYPE,
36      X_TBL_INDEX           OUT NOCOPY BINARY_INTEGER,
37      X_RETURN_STATUS       OUT NOCOPY VARCHAR2);
38 
39  PROCEDURE populate_event_cls_typs;
40  PROCEDURE populate_tax_event_class_info;
41 
42 -----------------------------------------------------------------------
43 --  PRIVATE PROCEDURE
44 --  get_locations
45 --
46 --  DESCRIPTION
47 --  Returns the location passed into input structures
48 --
49 --  CALLED BY
50 --    Private procedure get_loc_id_and_ptp_ids
51 -----------------------------------------------------------------------
52   PROCEDURE get_locations
53   ( p_event_class_rec        IN zx_api_pub.event_class_rec_type,
54     p_trx_line_index         IN  NUMBER,
55     x_ship_from_location_id  OUT NOCOPY NUMBER,
56     x_bill_from_location_id  OUT NOCOPY NUMBER,
57     x_ship_to_location_id    OUT NOCOPY NUMBER,
58     x_bill_to_location_id    OUT NOCOPY NUMBER,
59     x_return_status          OUT NOCOPY VARCHAR2
60   )IS
61   l_api_name           CONSTANT VARCHAR2(30) := 'GET_LOCATIONS';
62   l_return_status      VARCHAR2(30);
63   l_index              NUMBER;
64 
65   BEGIN
66     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
67       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
68     END IF;
69 
70     x_return_status := FND_API.G_RET_STS_SUCCESS;
71 
72     IF ZX_API_PUB.G_DATA_TRANSFER_MODE IN ('TAB','WIN') THEN
73 
74        l_index := p_trx_line_index;
75 
76      ELSIF ZX_API_PUB.G_DATA_TRANSFER_MODE = 'PLS' THEN
77 
78        l_index := nvl(ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.internal_organization_id.first,0);
79 
80      END IF;
81 
82      IF l_index <> 0 then
83         x_ship_to_location_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_to_location_id(l_index);
84         x_ship_from_location_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.ship_from_location_id(l_index);
85         x_bill_to_location_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_to_location_id(l_index);
86         x_bill_from_location_id := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.bill_from_location_id(l_index);
87      END IF;
88 
89 
90     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
91       FND_LOG.STRING(
92         G_LEVEL_STATEMENT,
93         G_MODULE_NAME||l_api_name||'.END',
94         G_PKG_NAME||': '||l_api_name||'()-'||
95         ' Ship from Location = ' || to_char(x_ship_from_location_id)||
96         ', Ship To Location = ' || to_char(x_ship_to_location_id)||
97         ', Bill From Location = ' || to_char(x_bill_from_location_id)||
98         ', Bill To Location = ' || to_char(x_bill_to_location_id)||
99         ', RETURN_STATUS = ' || x_return_status);
100     END IF;
101 
102   EXCEPTION
103     WHEN OTHERS THEN
104       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
105       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
106          FND_LOG.STRING(
107            G_LEVEL_UNEXPECTED,
108            G_MODULE_NAME||l_api_name,
109            'No lines exist in zx_transaction_lines_gt which '||
110            'is incorrect or the event information in headers and lines is incorrect.' ||
111            SQLERRM);
112       END IF;
113   END get_locations;
114 
115 -----------------------------------------------------------------------
116 --  PRIVATE PROCEDURE
117 --  get_loc_id_and_ptp_ids
118 --
119 --  DESCRIPTION
120 --  Returns the location and ptp ids for parties passed into input structures
121 --
122 --  CALLED BY
123 --    calculate_tax
124 --    import_document_with_tax
125 --    insupd_line_det_factors
126 -----------------------------------------------------------------------
127 PROCEDURE get_loc_id_and_ptp_ids(
128  p_event_class_rec  IN OUT NOCOPY ZX_API_PUB.event_class_rec_type,
129  p_trx_line_index   IN NUMBER,
130  x_return_status    OUT    NOCOPY VARCHAR2
131  ) IS
132  l_api_name    CONSTANT  VARCHAR2(30) := 'GET_LOC_ID_AND_PTP_IDS';
133  l_return_status         VARCHAR2(1);
134  l_ship_from_location_id NUMBER;
135  l_ship_to_location_id   NUMBER;
136  l_bill_from_location_id NUMBER;
137  l_bill_to_location_id   NUMBER;
138  l_context_info_rec      ZX_API_PUB.context_info_rec_type;
139 
140  BEGIN
141     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
142       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
143     END IF;
144 
145     x_return_status := FND_API.G_RET_STS_SUCCESS;
146 
147     get_locations (p_event_class_rec,
148                    nvl(p_trx_line_index,0),
149                    l_ship_from_location_id,
150                    l_bill_from_location_id,
151                    l_ship_to_location_id,
152                    l_bill_to_location_id,
153                    l_return_status
154                    );
155 
156     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
157       x_return_status := l_return_status;
158       RETURN;
159     END IF;
160 
161     IF p_event_class_rec.rounding_ship_to_party_id is NOT NULL THEN
162        ZX_TCM_PTP_PKG.get_ptp(p_event_class_rec.rounding_ship_to_party_id
163                              ,source_rec.ship_to_party_type
164                              ,p_event_class_rec.legal_entity_id
165                              ,l_ship_to_location_id
166                              ,p_event_class_rec.rdng_ship_to_pty_tx_prof_id
167                              ,l_return_status
168                              );
169         IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
170           IF l_return_status = FND_API.G_RET_STS_ERROR THEN
171             IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
172               FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
173                'Error: Unable to return rdng_ship_to_pty_tx_prof_id for  rounding_ship_to_party_id : ' || to_char(p_event_class_rec.rounding_ship_to_party_id));
174             END IF;
175             l_context_info_rec.APPLICATION_ID   := p_event_class_rec.APPLICATION_ID;
176             l_context_info_rec.ENTITY_CODE      := p_event_class_rec.ENTITY_CODE;
177             l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
178             l_context_info_rec.TRX_ID           := p_event_class_rec.TRX_ID;
179             ZX_API_PUB.add_msg(p_context_info_rec  =>  l_context_info_rec);
180           END IF;
181           x_return_status := l_return_status;
182           RETURN;
183         END IF;
184     END IF;
185 
186     IF p_event_class_rec.rounding_ship_from_party_id is NOT NULL THEN
187        ZX_TCM_PTP_PKG.get_ptp(p_event_class_rec.rounding_ship_from_party_id
188                              ,source_rec.ship_from_party_type
189                              ,p_event_class_rec.legal_entity_id
190                              ,l_ship_from_location_id
191                              ,p_event_class_rec.rdng_ship_from_pty_tx_prof_id
192                              ,l_return_status
193                              );
194 
195        IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
196          IF l_return_status = FND_API.G_RET_STS_ERROR THEN
197             IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
198               FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
199                 'Error: Unable to return rdng_ship_from_pty_tx_prof_id for  rounding_ship_from_party_id : ' || to_char(p_event_class_rec.rounding_ship_from_party_id));
200             END IF;
201             l_context_info_rec.APPLICATION_ID   := p_event_class_rec.APPLICATION_ID;
202             l_context_info_rec.ENTITY_CODE      := p_event_class_rec.ENTITY_CODE;
203             l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
204             l_context_info_rec.TRX_ID           := p_event_class_rec.TRX_ID;
205             ZX_API_PUB.add_msg(p_context_info_rec  =>  l_context_info_rec);
206           END IF;
207           x_return_status := l_return_status;
208           RETURN;
209         END IF;
210     END IF;
211 
212     IF p_event_class_rec.rndg_ship_to_party_site_id is NOT NULL THEN
213        ZX_TCM_PTP_PKG.get_ptp( p_event_class_rec.rndg_ship_to_party_site_id
214                               ,source_rec.ship_to_pty_site_type
215                               ,p_event_class_rec.legal_entity_id
216                               ,null
217                               ,p_event_class_rec.rdng_ship_to_pty_tx_p_st_id
218                               ,l_return_status
219                               );
220 
221        IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
222          IF l_return_status = FND_API.G_RET_STS_ERROR THEN
223             IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
224               FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
225                'Error: Unable to return rdng_ship_to_pty_tx_p_st_id for rndg_ship_to_party_site_id : ' || to_char(p_event_class_rec.rndg_ship_to_party_site_id));
226             END IF;
227             l_context_info_rec.APPLICATION_ID   := p_event_class_rec.APPLICATION_ID;
228             l_context_info_rec.ENTITY_CODE      := p_event_class_rec.ENTITY_CODE;
229             l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
230             l_context_info_rec.TRX_ID           := p_event_class_rec.TRX_ID;
231             ZX_API_PUB.add_msg(p_context_info_rec  =>  l_context_info_rec);
232           END IF;
233           x_return_status := l_return_status;
234           RETURN;
235         END IF;
236     END IF;
237 
238     IF p_event_class_rec.rndg_ship_from_party_site_id is NOT NULL THEN
239        ZX_TCM_PTP_PKG.get_ptp( p_event_class_rec.rndg_ship_from_party_site_id
240                               ,source_rec.ship_from_pty_site_type
241                               ,p_event_class_rec.legal_entity_id
242                               ,null
243                               ,p_event_class_rec.rdng_ship_from_pty_tx_p_st_id
244                               ,l_return_status
245                               );
246        IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
247          IF l_return_status = FND_API.G_RET_STS_ERROR THEN
248            IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
249              FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
250                'Error: Unable to return rdng_ship_from_pty_tx_p_st_id for  rndg_ship_from_party_site_id : ' || to_char(p_event_class_rec.rndg_ship_from_party_site_id));
251            END IF;
252            l_context_info_rec.APPLICATION_ID   := p_event_class_rec.APPLICATION_ID;
253            l_context_info_rec.ENTITY_CODE      := p_event_class_rec.ENTITY_CODE;
254            l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
255            l_context_info_rec.TRX_ID           := p_event_class_rec.TRX_ID;
256            ZX_API_PUB.add_msg(p_context_info_rec  =>  l_context_info_rec);
257          END IF;
258          x_return_status := l_return_status;
259          RETURN;
260        END IF;
261     END IF;
262 
263     IF p_event_class_rec.rounding_bill_to_party_id is NOT NULL THEN
264        IF (p_event_class_rec.rounding_bill_to_party_id <> p_event_class_rec.rounding_ship_to_party_id)
265            OR (source_rec.ship_to_party_type <> source_rec.bill_to_party_type)
266            OR p_event_class_rec.rounding_ship_to_party_id is null THEN
267            ZX_TCM_PTP_PKG.get_ptp(p_event_class_rec.rounding_bill_to_party_id
268                                  ,source_rec.bill_to_party_type
269                                  ,p_event_class_rec.legal_entity_id
270                                  ,l_bill_to_location_id
271                                  ,p_event_class_rec.rdng_bill_to_pty_tx_prof_id
272                                  ,l_return_status
273                                  );
274 
275            IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
276              IF l_return_status = FND_API.G_RET_STS_ERROR THEN
277                IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
278                  FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
279                    'Error: Unable to return rdng_bill_to_pty_tx_prof_id for  rounding_bill_to_party_id : ' || to_char(p_event_class_rec.rounding_bill_to_party_id));
280                END IF;
281                l_context_info_rec.APPLICATION_ID   := p_event_class_rec.APPLICATION_ID;
282                l_context_info_rec.ENTITY_CODE      := p_event_class_rec.ENTITY_CODE;
283                l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
284                l_context_info_rec.TRX_ID           := p_event_class_rec.TRX_ID;
285                ZX_API_PUB.add_msg(p_context_info_rec  =>  l_context_info_rec);
286              END IF;
287              x_return_status := l_return_status;
288              RETURN;
289            END IF;
290        ELSE
291           p_event_class_rec.rdng_bill_to_pty_tx_prof_id := p_event_class_rec.rdng_ship_to_pty_tx_prof_id;
292        END IF;
293     END IF;
294 
295     IF p_event_class_rec.rounding_bill_from_party_id is NOT NULL THEN
296        IF (p_event_class_rec.rounding_bill_from_party_id <> p_event_class_rec.rounding_ship_from_party_id)
297            OR (source_rec.ship_from_party_type <> source_rec.bill_from_party_type)
298            OR p_event_class_rec.rounding_ship_from_party_id is null THEN
299            ZX_TCM_PTP_PKG.get_ptp(p_event_class_rec.rounding_bill_from_party_id
300                                  ,source_rec.bill_from_party_type
301                                  ,p_event_class_rec.legal_entity_id
302                                  ,l_bill_from_location_id
303                                  ,p_event_class_rec.rdng_bill_from_pty_tx_prof_id
304                                  ,l_return_status
305                                  );
306 
307            IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
308              IF l_return_status = FND_API.G_RET_STS_ERROR THEN
309                IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
310                  FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
311                    'Error: Unable to return rdng_bill_from_pty_tx_prof_id for  rounding_bill_from_party_id : ' || to_char(p_event_class_rec.rounding_bill_from_party_id));
312                END IF;
313                l_context_info_rec.APPLICATION_ID   := p_event_class_rec.APPLICATION_ID;
314                l_context_info_rec.ENTITY_CODE      := p_event_class_rec.ENTITY_CODE;
315                l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
316                l_context_info_rec.TRX_ID           := p_event_class_rec.TRX_ID;
317                ZX_API_PUB.add_msg(p_context_info_rec =>  l_context_info_rec);
318              END IF;
319              x_return_status := l_return_status;
320              RETURN;
321            END IF;
322        ELSE
323           p_event_class_rec.rdng_bill_from_pty_tx_prof_id := p_event_class_rec.rdng_ship_from_pty_tx_prof_id;
324        END IF;
325     END IF;
326 
327     IF p_event_class_rec.rndg_bill_to_party_site_id is NOT NULL THEN
328        IF (p_event_class_rec.rndg_bill_to_party_site_id <> p_event_class_rec.rndg_ship_to_party_site_id)
329            OR (source_rec.ship_to_pty_site_type <> source_rec.bill_to_pty_site_type)
330            OR p_event_class_rec.rndg_ship_to_party_site_id is null THEN
331            ZX_TCM_PTP_PKG.get_ptp(p_event_class_rec.rndg_bill_to_party_site_id
332                                  ,source_rec.bill_to_pty_site_type
333                                  ,p_event_class_rec.legal_entity_id
334                                  ,null
335                                  ,p_event_class_rec.rdng_bill_to_pty_tx_p_st_id
336                                  ,l_return_status
337                                 );
338 
339            IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
340              IF l_return_status = FND_API.G_RET_STS_ERROR THEN
341                IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
342                  FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
343                    'Error: Unable to return rdng_bill_to_pty_tx_p_st_id for  rndg_bill_to_party_site_id : ' || to_char(p_event_class_rec.rndg_bill_to_party_site_id));
344                END IF;
345                l_context_info_rec.APPLICATION_ID   := p_event_class_rec.APPLICATION_ID;
346                l_context_info_rec.ENTITY_CODE      := p_event_class_rec.ENTITY_CODE;
347                l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
348                l_context_info_rec.TRX_ID           := p_event_class_rec.TRX_ID;
349                ZX_API_PUB.add_msg(p_context_info_rec  =>  l_context_info_rec);
350              END IF;
351              x_return_status := l_return_status;
352              RETURN;
353            END IF;
354        ELSE
355           p_event_class_rec.rdng_bill_to_pty_tx_p_st_id := p_event_class_rec.rdng_ship_to_pty_tx_p_st_id;
356        END IF;
357     END IF;
358 
359     IF p_event_class_rec.rndg_bill_from_party_site_id is NOT NULL THEN
360        IF p_event_class_rec.rndg_bill_from_party_site_id <> p_event_class_rec.rndg_ship_from_party_site_id
361            OR (source_rec.ship_from_pty_site_type <> source_rec.bill_from_pty_site_type)
362            OR p_event_class_rec.rndg_ship_from_party_site_id is null THEN
363            ZX_TCM_PTP_PKG.get_ptp(p_event_class_rec.rndg_bill_from_party_site_id
364                                  ,source_rec.bill_from_pty_site_type
365                                  ,p_event_class_rec.legal_entity_id
366                                  ,null
367                                  ,p_event_class_rec.rdng_bill_from_pty_tx_p_st_id
368                                  ,l_return_status
369                                  );
370 
371            IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
372              IF l_return_status = FND_API.G_RET_STS_ERROR THEN
373                IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
374                  FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
375                    'Error: Unable to return rdng_bill_from_pty_tx_p_st_id for  rndg_bill_from_party_site_id : ' || to_char(p_event_class_rec.rndg_bill_from_party_site_id));
376                END IF;
377                l_context_info_rec.APPLICATION_ID   := p_event_class_rec.APPLICATION_ID;
378                l_context_info_rec.ENTITY_CODE      := p_event_class_rec.ENTITY_CODE;
379                l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
380                l_context_info_rec.TRX_ID           := p_event_class_rec.TRX_ID;
381                ZX_API_PUB.add_msg(p_context_info_rec  =>  l_context_info_rec);
382              END IF;
383              x_return_status := l_return_status;
384              RETURN;
385            END IF;
386        ELSE
387           p_event_class_rec.rdng_bill_from_pty_tx_p_st_id := p_event_class_rec.rdng_ship_from_pty_tx_p_st_id;
388        END IF;
389     END IF;
390 
391     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
392       FND_LOG.STRING(G_LEVEL_STATEMENT,
393                    G_MODULE_NAME||l_api_name||'.END',
394                    G_PKG_NAME||': '||l_api_name||'()-' ||
395                    ', RETURN_STATUS = ' || x_return_status);
396     END IF;
397  END GET_LOC_ID_AND_PTP_IDS;
398 
399 -----------------------------------------------------------------------
400 --  PRIVATE PROCEDURE
401 --  get_effective_date
402 --
403 --  DESCRIPTION
404 --  Logic to get the effective dates
405 --
406 --  CALLED BY
407 --    determine_effective_date
408 --    get_tax_subscriber
409 --    set_security_context
410 -----------------------------------------------------------------------
411   FUNCTION get_effective_date
412   ( p_related_doc_date   IN DATE,
413     p_prov_tax_det_date  IN DATE,
414     p_adjusted_doc_date  IN DATE,
415     p_trx_date           IN DATE
416   ) RETURN DATE IS
417   l_api_name         CONSTANT VARCHAR2(30) := 'GET_EFFECTIVE_DATE';
418   l_effective_date   DATE;
419 
420   BEGIN
421     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
422       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
423     END IF;
424 
425     IF p_related_doc_date is NOT NULL THEN
426        l_effective_date := p_related_doc_date;
427     ELSIF p_prov_tax_det_date is NOT NULL THEN
428        l_effective_date := p_prov_tax_det_date;
429     ELSIF p_adjusted_doc_date is NOT NULL THEN
430        l_effective_date := p_adjusted_doc_date;
431     ELSE
432        l_effective_date := p_trx_date;
433     END IF;
434 
435     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
436       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
437     END IF;
438 
439     RETURN l_effective_date;
440   END get_effective_date;
441 
442 -----------------------------------------------------------------------
443 --  PRIVATE PROCEDURE
444 --  determine_effective_date
445 --
446 --  DESCRIPTION
447 --  Logic for determining effective_date
448 --
449 --  CALLED BY
450 --    calculate_tax
451 --    import_document_with_tax
452 --    get_default_tax_det_attrs
453 --    override_tax
454 --    validate_document_for_tax
455 --    insupd_line_det_factors
456 -----------------------------------------------------------------------
457   PROCEDURE determine_effective_date
458   ( p_event_class_rec IN         ZX_API_PUB.event_class_rec_type,
459     x_effective_date  OUT NOCOPY DATE,
460     x_return_status   OUT NOCOPY VARCHAR2
461   )IS
462   l_api_name            CONSTANT VARCHAR2(30):= 'DETERMINE_EFFECTIVE_DATE';
463   l_adj_doc_date        DATE;
464 
465   BEGIN
466     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
467       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
468     END IF;
469 
470     x_return_status := FND_API.G_RET_STS_SUCCESS;
471 
472     IF  ZX_API_PUB.G_PUB_SRVC in ('CALCULATE_TAX','IMPORT_DOCUMENT_WITH_TAX','OVERRIDE_TAX',
473                                   'GET_DEFAULT_TAX_DET_ATTRS','VALIDATE_DOCUMENT_FOR_TAX') THEN
474       IF  ZX_API_PUB.G_DATA_TRANSFER_MODE = 'TAB' THEN
475         SELECT /*+ INDEX (ZX_TRANSACTION_LINES_GT ZX_TRANSACTION_LINES_GT_U1)*/
476                adjusted_doc_date
477           INTO l_adj_doc_date
478          FROM  ZX_TRANSACTION_LINES_GT
479          WHERE application_id   = p_event_class_rec.application_id
480            AND entity_code      = p_event_class_rec.entity_code
481            AND event_class_code = p_event_class_rec.event_class_code
482            AND trx_id           = p_event_class_rec.trx_id
483            AND rownum           = 1;
484       ELSIF ZX_API_PUB.G_DATA_TRANSFER_MODE = 'WIN' OR
485             ZX_API_PUB.G_PUB_SRVC in ('VALIDATE_DOCUMENT_FOR_TAX','OVERRIDE_TAX') THEN
486         SELECT adjusted_doc_date
487           INTO l_adj_doc_date
488          FROM  ZX_LINES_DET_FACTORS
489          WHERE application_id   = p_event_class_rec.application_id
490            AND entity_code      = p_event_class_rec.entity_code
491            AND event_class_code = p_event_class_rec.event_class_code
492            AND trx_id           = p_event_class_rec.trx_id
493            AND rownum           = 1;
494       ELSIF ZX_API_PUB.G_DATA_TRANSFER_MODE = 'PLS' THEN
495         l_adj_doc_date := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_date(1);
496       END IF;
497     ELSE --for calls from products via global structures eg. update_line_det_factors/insert_line_det_factors
498       l_adj_doc_date := ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl.adjusted_doc_date(1);
499     END IF;
500 
501     x_effective_date := get_effective_date (p_event_class_rec.rel_doc_date,
502                                             p_event_class_rec.provnl_tax_determination_date,
503                                             l_adj_doc_date,
504                                             p_event_class_rec.trx_date
505                                             );
506 
507     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
508       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||
509                    '.END',G_PKG_NAME||': '||l_api_name||'()-'||
510                    ', Adjusted doc date = ' || l_adj_doc_date||
511                    ', x_effective_date = ' || x_effective_date||
512                    ', RETURN_STATUS = ' || x_return_status);
513     END IF;
514 
515   EXCEPTION
516     WHEN NO_DATA_FOUND THEN
517       null;
518     WHEN OTHERS THEN
519       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
520       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
521          FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,
522            'No lines exist in zx_transaction_lines_gt/zx_lines_det_factors'||
523            ' which is incorrect or the event information in headers and lines is incorrect.'||
524            SQLERRM);
525       END IF;
526   END determine_effective_date;
527 
528 -----------------------------------------------------------------------
529 --  PRIVATE PROCEDURE
530 --  Populate_event_class_options
531 --
532 --  DESCRIPTION
533 --  For the specified subscriber this procedure identifies and fetches
534 --  the event class options setup for the specified event class into
535 --  the event class record
536 --
537 --  CALLED BY
538 --    calculate_tax
539 --    import_document_with_tax
540 --    override_tax
541 --    validate_document_for_tax
542 --    insupd_line_det_factors
543 --    get_default_tax_det_attrs
544 -----------------------------------------------------------------------
545   PROCEDURE populate_event_class_options
546   ( x_return_status   OUT NOCOPY    VARCHAR2,
547     p_trx_date        IN            DATE,
548     p_event_class_rec IN OUT NOCOPY ZX_API_PUB.event_class_rec_type
549   )IS
550   l_api_name          CONSTANT VARCHAR2(30) := 'POPULATE_EVENT_CLASS_OPTIONS';
551 
552   BEGIN
553     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
554       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
555     END IF;
556 
557     x_return_status := FND_API.G_RET_STS_SUCCESS;
558     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
559 
560     BEGIN
561     IF p_event_class_rec.event_class_code = 'SALES_TRANSACTION_TAX_QUOTE' THEN
562       SELECT det_factor_templ_code,
563              default_rounding_level_code,
564              rounding_level_hier_1_code,
565              rounding_level_hier_2_code,
566              rounding_level_hier_3_code,
567              rounding_level_hier_4_code,
568              process_for_applicability_flag,
569              def_intrcmp_trx_biz_category,
570              exmptn_pty_basis_hier_1_code,
571              exmptn_pty_basis_hier_2_code,
572              allow_exemptions_flag
573       INTO   p_event_class_rec.det_factor_templ_code,
574              p_event_class_rec.default_rounding_level_code,
575              p_event_class_rec.rounding_level_hier_1_code,
576              p_event_class_rec.rounding_level_hier_2_code,
577              p_event_class_rec.rounding_level_hier_3_code,
578              p_event_class_rec.rounding_level_hier_4_code,
579              p_event_class_rec.process_for_applicability_flag,
580              p_event_class_rec.DEF_INTRCMP_TRX_BIZ_CATEGORY,
581              p_event_class_rec.exmptn_pty_basis_hier_1_code,
582              p_event_class_rec.exmptn_pty_basis_hier_2_code,
583              p_event_class_rec.ALLOW_EXEMPTIONS_FLAG
584       FROM   ZX_EVNT_CLS_OPTIONS
585       WHERE  application_id = 222
586       AND    entity_code = 'TRANSACTIONS'
587       AND    event_class_code = 'INVOICE'
588       AND    first_pty_org_id = p_event_class_rec.first_pty_org_id
589       AND    p_trx_date >= EFFECTIVE_FROM and p_trx_date <= nvl(EFFECTIVE_TO,p_trx_date)
590       AND    enabled_flag = 'Y';
591     ELSIF p_event_class_rec.event_class_code = 'PURCHASE_TRANSACTION_TAX_QUOTE' THEN
592       SELECT det_factor_templ_code,
593              default_rounding_level_code,
594              rounding_level_hier_1_code,
595              rounding_level_hier_2_code,
596              rounding_level_hier_3_code,
597              rounding_level_hier_4_code,
598              process_for_applicability_flag,
599              def_intrcmp_trx_biz_category,
600              exmptn_pty_basis_hier_1_code,
601              exmptn_pty_basis_hier_2_code,
602              allow_exemptions_flag
603       INTO   p_event_class_rec.det_factor_templ_code,
604              p_event_class_rec.default_rounding_level_code,
605              p_event_class_rec.rounding_level_hier_1_code,
606              p_event_class_rec.rounding_level_hier_2_code,
607              p_event_class_rec.rounding_level_hier_3_code,
608              p_event_class_rec.rounding_level_hier_4_code,
609              p_event_class_rec.process_for_applicability_flag,
610              p_event_class_rec.DEF_INTRCMP_TRX_BIZ_CATEGORY,
611              p_event_class_rec.exmptn_pty_basis_hier_1_code,
612              p_event_class_rec.exmptn_pty_basis_hier_2_code,
613              p_event_class_rec.ALLOW_EXEMPTIONS_FLAG
614       FROM   ZX_EVNT_CLS_OPTIONS
615       WHERE  application_id = 200
616       AND    entity_code = 'AP_INVOICES'
617       AND    event_class_code = 'STANDARD INVOICES'
618       AND    first_pty_org_id = p_event_class_rec.first_pty_org_id
619       AND    p_trx_date >= EFFECTIVE_FROM and p_trx_date <= nvl(EFFECTIVE_TO,p_trx_date)
620       AND    enabled_flag = 'Y';
621     ELSE
622       SELECT det_factor_templ_code,
623              default_rounding_level_code,
624              rounding_level_hier_1_code,
625              rounding_level_hier_2_code,
626              rounding_level_hier_3_code,
627              rounding_level_hier_4_code,
628              allow_manual_lin_recalc_flag,
629              allow_override_flag,
630              allow_manual_lines_flag,
631              perf_addnl_appl_for_imprt_flag,
632              enforce_tax_from_acct_flag,
633              offset_tax_basis_code,
634              tax_tolerance,
635              tax_tol_amt_range,
636              'N',
637              allow_offset_tax_calc_flag,
638              enter_ovrd_incl_tax_lines_flag ,
639              ctrl_eff_ovrd_calc_lines_flag,
640              enforce_tax_from_ref_doc_flag,
641              process_for_applicability_flag,
642              allow_exemptions_flag,
643              exmptn_pty_basis_hier_1_code,
644              exmptn_pty_basis_hier_2_code,
645              def_intrcmp_trx_biz_category
646       INTO   p_event_class_rec.DET_FACTOR_TEMPL_CODE,
647              p_event_class_rec.DEFAULT_ROUNDING_LEVEL_CODE,
648              p_event_class_rec.ROUNDING_LEVEL_HIER_1_CODE,
649              p_event_class_rec.ROUNDING_LEVEL_HIER_2_CODE,
650              p_event_class_rec.ROUNDING_LEVEL_HIER_3_CODE,
651              p_event_class_rec.ROUNDING_LEVEL_HIER_4_CODE,
652              p_event_class_rec.ALLOW_MANUAL_LIN_RECALC_FLAG,
653              p_event_class_rec.ALLOW_OVERRIDE_FLAG,
654              p_event_class_rec.ALLOW_MANUAL_LINES_FLAG,
655              p_event_class_rec.PERF_ADDNL_APPL_FOR_IMPRT_FLAG,
656              p_event_class_rec.ENFORCE_TAX_FROM_ACCT_FLAG,
657              p_event_class_rec.OFFSET_TAX_BASIS_CODE,
658              p_event_class_rec.TAX_TOLERANCE,
659              p_event_class_rec.TAX_TOL_AMT_RANGE,
660              p_event_class_rec.CTRL_TOTAL_LINE_TX_AMT_FLG,
661              p_event_class_rec.ALLOW_OFFSET_TAX_CALC_FLAG,
662              p_event_class_rec.ENTER_OVRD_INCL_TAX_LINES_FLAG ,
663              p_event_class_rec.CTRL_EFF_OVRD_CALC_LINES_FLAG,
664              p_event_class_rec.ENFORCE_TAX_FROM_REF_DOC_FLAG,
665              p_event_class_rec.PROCESS_FOR_APPLICABILITY_FLAG,
666              p_event_class_rec.ALLOW_EXEMPTIONS_FLAG,
667              p_event_class_rec.EXMPTN_PTY_BASIS_HIER_1_CODE,
668              p_event_class_rec.EXMPTN_PTY_BASIS_HIER_2_CODE,
669              p_event_class_rec.DEF_INTRCMP_TRX_BIZ_CATEGORY
670       FROM   ZX_EVNT_CLS_OPTIONS
671       WHERE  application_id = p_event_class_rec.application_id
672       AND    entity_code = p_event_class_rec.entity_code
673       AND    event_class_code = p_event_class_rec.event_class_code
674       AND    first_pty_org_id = p_event_class_rec.first_pty_org_id
675       AND    p_trx_date >= EFFECTIVE_FROM and p_trx_date <= nvl(EFFECTIVE_TO,p_trx_date)
676       AND    enabled_flag = 'Y';
677     END IF;
678     EXCEPTION
679         WHEN OTHERS THEN
680           null;
681     END;
682     --Bugfix 4765758 - Populate the process_for_applicability_flag in case the
683     --source_event_class_code in ('TRADE_MGT_PAYABLES','TRADE_MGT_RECEIVABLES')
684     --If 'N' then tax processing will not be done for such docs.
685     BEGIN
686       IF (ZX_API_PUB.G_DATA_TRANSFER_MODE =  'WIN' AND ZX_API_PUB.G_PUB_SRVC ='CALCULATE_TAX')
687          OR (ZX_API_PUB.G_PUB_SRVC ='DETERMINE_RECOVERY') THEN
688         SELECT opt.process_for_applicability_flag
689           INTO p_event_class_rec.source_process_for_appl_flag
690           FROM zx_evnt_cls_options opt,
691                zx_lines_det_factors det
692          WHERE opt.application_id    = det.source_application_id
693            AND opt.entity_code       = det.source_entity_code
694            AND opt.event_class_code  = det.source_event_class_code
695            AND opt.first_pty_org_id  = p_event_class_rec.first_pty_org_id
696            AND p_trx_date >= opt.EFFECTIVE_FROM and p_trx_date <= nvl(opt.EFFECTIVE_TO,p_trx_date)
697            AND opt.enabled_flag      = 'Y'
698            AND det.trx_id            = p_event_class_rec.trx_id
699            AND det.application_id    = p_event_class_rec.application_id
700            AND det.entity_code       = p_event_class_rec.entity_code
701            AND det.event_class_code  = p_event_class_rec.event_class_code
702            AND det.source_event_class_code in ('TRADE_MGT_PAYABLES','TRADE_MGT_RECEIVABLES')
703            AND rownum=1;
704       ELSIF ZX_API_PUB.G_DATA_TRANSFER_MODE =  'PLS' AND ZX_API_PUB.G_PUB_SRVC ='CALCULATE_TAX' THEN
705         IF zx_global_structures_pkg.trx_line_dist_tbl.SOURCE_EVENT_CLASS_CODE(1) = 'TRADE_MGT_PAYABLES' OR
706 	   zx_global_structures_pkg.trx_line_dist_tbl.SOURCE_EVENT_CLASS_CODE(1) = 'TRADE_MGT_RECEIVABLES' THEN
707           SELECT opt.process_for_applicability_flag
708             INTO p_event_class_rec.source_process_for_appl_flag
709             FROM zx_evnt_cls_options opt
710            WHERE opt.application_id   = zx_global_structures_pkg.trx_line_dist_tbl.SOURCE_APPLICATION_ID(1)
711              AND opt.entity_code      = zx_global_structures_pkg.trx_line_dist_tbl.SOURCE_ENTITY_CODE(1)
712              AND opt.event_class_code = zx_global_structures_pkg.trx_line_dist_tbl.SOURCE_EVENT_CLASS_CODE(1)
713              AND opt.first_pty_org_id = p_event_class_rec.first_pty_org_id
714              AND p_trx_date >= opt.EFFECTIVE_FROM and p_trx_date <= nvl(opt.EFFECTIVE_TO,p_trx_date)
715              AND opt.enabled_flag = 'Y';
716         END IF;
717       ELSIF ZX_API_PUB.G_DATA_TRANSFER_MODE =  'TAB' THEN --import/calculate_tax
718         SELECT opt.process_for_applicability_flag
719           INTO p_event_class_rec.source_process_for_appl_flag
720           FROM zx_evnt_cls_options opt,
721                zx_transaction_lines_gt lines
722          WHERE opt.application_id      = lines.source_application_id
723            AND opt.entity_code         = lines.source_entity_code
724            AND opt.event_class_code    = lines.source_event_class_code
725            AND opt.first_pty_org_id    = p_event_class_rec.first_pty_org_id
726            AND p_trx_date >= opt.EFFECTIVE_FROM and p_trx_date <= nvl(opt.EFFECTIVE_TO,p_trx_date)
727            AND opt.enabled_flag        = 'Y'
728            AND lines.trx_id            = p_event_class_rec.trx_id
729            AND lines.application_id    = p_event_class_rec.application_id
730            AND lines .entity_code      = p_event_class_rec.entity_code
731            AND lines.event_class_code  = p_event_class_rec.event_class_code
732            AND lines.source_event_class_code in ('TRADE_MGT_PAYABLES','TRADE_MGT_RECEIVABLES')
733            AND rownum=1;
734       END IF;
735       EXCEPTION
736         WHEN OTHERS THEN
737           null;
738     END;
739 
740     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
741       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.END',
742                    G_PKG_NAME||': '||l_api_name||'()-'||
743                    ' RETURN_STATUS = ' || x_return_status);
744     END IF;
745 
746   EXCEPTION
747     WHEN NO_DATA_FOUND THEN
748       NULL;
749     WHEN OTHERS THEN
750       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
751       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
752          FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
753       END IF;
754       RETURN;
755   END populate_event_class_options;
756 
757 -----------------------------------------------------------------------
758 --  PRIVATE PROCEDURE
759 --  populate_appl_product_options
760 --
761 --  DESCRIPTION
762 --  For the specified subscriber the procedure identifies and fetches
763 --  the product options set for the specified application into event class record
764 --
765 --  CALLED BY
766 --    calculate_tax
767 --    import_document_with_tax
768 --    insupd_line_det_factors
769 --    get_default_tax_det_attrs
770 -----------------------------------------------------------------------
771   PROCEDURE populate_appl_product_options
772   ( x_return_status    OUT    NOCOPY VARCHAR2,
773     p_event_class_rec  IN OUT NOCOPY ZX_API_PUB.event_class_rec_type
774   )IS
775   l_api_name                CONSTANT VARCHAR2(30):= 'POPULATE_APPL_PRODUCT_OPTIONS';
776   l_zx_product_options_rec  ZX_GLOBAL_STRUCTURES_PKG.zx_product_options_rec_type;
777   l_application_id          NUMBER;
778 
779   BEGIN
780     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
781       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
782     END IF;
783 
784     x_return_status := FND_API.G_RET_STS_SUCCESS;
785 
786     IF p_event_class_rec.event_class_code = 'SALES_TRANSACTION_TAX_QUOTE' THEN
787       l_application_id := 222;
788     ELSIF p_event_class_rec.event_class_code = 'PURCHASE_TRANSACTION_TAX_QUOTE' THEN
789       IF p_event_class_rec.application_id = 8407 THEN -- Bug 6510307
790         l_application_id := p_event_class_rec.application_id;
791       ELSE
792         l_application_id := 200;
793       END IF;
794     ELSE
795       l_application_id := p_event_class_rec.application_id;
796     END IF;
797 
798    /* replaced the select from zx_product_options with cached structure
799          SELECT nvl(tax_method_code,'EBTAX'),
800                 inclusive_tax_used_flag,
801                 tax_use_customer_exempt_flag,
802                 tax_use_product_exempt_flag,
803                 tax_use_loc_exc_rate_flag,
804                 tax_allow_compound_flag,
805                 use_tax_classification_flag,
806                 allow_tax_rounding_ovrd_flag,
807                 home_country_default_flag
808          INTO   p_event_class_rec.TAX_METHOD_CODE,
809                 p_event_class_rec.INCLUSIVE_TAX_USED_FLAG,
810                 p_event_class_rec.TAX_USE_CUSTOMER_EXEMPT_FLAG,
811                 p_event_class_rec.TAX_USE_PRODUCT_EXEMPT_FLAG,
812                 p_event_class_rec.TAX_USE_LOC_EXC_RATE_FLAG,
813                 p_event_class_rec.TAX_ALLOW_COMPOUND_FLAG,
814                 p_event_class_rec.USE_TAX_CLASSIFICATION_FLAG,
815                 p_event_class_rec.ALLOW_TAX_ROUNDING_OVRD_FLAG,
816                 p_event_class_rec.HOME_COUNTRY_DEFAULT_FLAG
817          FROM   ZX_PRODUCT_OPTIONS_ALL
818          WHERE  application_id = l_application_id
819            AND  org_id = p_event_class_rec.internal_organization_id
820            AND  rownum = 1;
821     */
822 
823     ZX_GLOBAL_STRUCTURES_PKG.get_product_options_info
824                    (p_application_id      => l_application_id,
825                     p_org_id              => p_event_class_rec.internal_organization_id,
826                     x_product_options_rec => l_zx_product_options_rec,
827                     x_return_status       => x_return_status);
828 
829     IF x_return_status = FND_API.G_RET_STS_ERROR then
830 
831         IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
832            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Incorrect return status after calling '||
833                           'ZX_GLOBAL_STRUCTURES_PKG.get_product_options_info');
834         END IF;
835 
836     ELSE
837         p_event_class_rec.TAX_METHOD_CODE   :=                l_zx_product_options_rec.tax_method_code;
838         p_event_class_rec.INCLUSIVE_TAX_USED_FLAG   :=        l_zx_product_options_rec.inclusive_tax_used_flag;
839         p_event_class_rec.TAX_USE_CUSTOMER_EXEMPT_FLAG   :=   l_zx_product_options_rec.tax_use_customer_exempt_flag;
840         p_event_class_rec.TAX_USE_PRODUCT_EXEMPT_FLAG   :=    l_zx_product_options_rec.tax_use_product_exempt_flag;
841         p_event_class_rec.TAX_USE_LOC_EXC_RATE_FLAG   :=      l_zx_product_options_rec.tax_use_loc_exc_rate_flag;
842         p_event_class_rec.TAX_ALLOW_COMPOUND_FLAG   :=        l_zx_product_options_rec.tax_allow_compound_flag;
843         p_event_class_rec.USE_TAX_CLASSIFICATION_FLAG   :=    l_zx_product_options_rec.use_tax_classification_flag;
844         p_event_class_rec.ALLOW_TAX_ROUNDING_OVRD_FLAG   :=   l_zx_product_options_rec.allow_tax_rounding_ovrd_flag;
845         p_event_class_rec.HOME_COUNTRY_DEFAULT_FLAG    :=     l_zx_product_options_rec.home_country_default_flag;
846     END IF;
847 
848     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
849       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.END',
850                    G_PKG_NAME||': '||l_api_name||'()-'||
851                    ', RETURN_STATUS = ' || x_return_status);
852     END IF;
853 
854   EXCEPTION
855       WHEN NO_DATA_FOUND THEN
856         NULL;
857       WHEN OTHERS THEN
858         x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
859         IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
860            FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
861         END IF;
862   END populate_appl_product_options;
863 
864 ----------------------------------------------------------------------
865 --  PRIVATE PROCEDURE
866 --  Get_Tax_Event_Class
867 --
868 --  DESCRIPTION
869 --  Fetch the tax event class code and reference application id
870 --
871 --  CALLED BY
872 --   reverse_document
873 --   reverse_distributions
874 --   override_recovery
875 --   freeze_distribution_lines
876 --   validate_document_for_tax
877 -----------------------------------------------------------------------
878   PROCEDURE get_tax_event_class
879   ( x_return_status             OUT  NOCOPY  VARCHAR2 ,
880     p_appln_id                  IN           NUMBER,
881     p_entity_code               IN           VARCHAR2,
882     p_evnt_cls_code             IN           VARCHAR2,
883     x_tx_evnt_cls_code          OUT  NOCOPY  VARCHAR2,
884     x_ref_appln_id              OUT  NOCOPY  NUMBER,
885     x_record_flag               OUT  NOCOPY  VARCHAR2,   -- Bug 5200373
886     x_record_for_partners_flag  OUT  NOCOPY  VARCHAR2,   -- Bug 5200373
887     x_prod_family_grp_code      OUT  NOCOPY  VARCHAR2,   -- Bug 5200373
888     x_event_class_mapping_id    OUT  NOCOPY  NUMBER ,     -- Bug 5200373
889     x_summarization_flag        OUT NOCOPY   VARCHAR2
890   )IS
891   l_api_name            CONSTANT VARCHAR2(30) := 'GET_TAX_EVENT_CLASS';
892   l_index   binary_integer;
893 
894   BEGIN
895     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
896       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
897     END IF;
898 
899     x_return_status := FND_API.G_RET_STS_SUCCESS;
900 
901    /*
902     SELECT tax_event_class_code,
903            reference_application_id,
904            record_flag,                 -- Bug 5200373
905            record_for_partners_flag,    -- Bug 5200373
906            prod_family_grp_code,        -- Bug 5200373
907            event_class_mapping_id,
908            summarization_flag        -- Bug 5200373
909       INTO x_tx_evnt_cls_code,
910            x_ref_appln_id,
911            x_record_flag,               -- Bug 5200373
912            x_record_for_partners_flag,  -- Bug 5200373
913            x_prod_family_grp_code,      -- Bug 5200373
914            x_event_class_mapping_id,     -- Bug 5200373
915            x_summarization_flag
916       FROM ZX_EVNT_CLS_MAPPINGS
917      WHERE event_class_code = p_evnt_cls_code
918        AND application_id   = p_appln_id
919        AND entity_code      = p_entity_code;
920    */
921 
922    get_event_class_info(
923      P_ENTITY_CODE         =>  p_entity_code,
924      P_EVENT_CLASS_CODE    =>  p_evnt_cls_code,
925      P_APPLICATION_ID      =>  p_appln_id,
926      X_TBL_INDEX           =>  l_index,
927      X_RETURN_STATUS       =>  x_return_status);
928 
929     IF L_INDEX IS NULL THEN
930 
931       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
932       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
933          FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,
934            'The event class information passed is incorrect. Please CHECK! '||SQLERRM);
935       END IF;
936 
937     ELSE
938 
939       x_tx_evnt_cls_code         :=  ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).tax_event_class_code;
940       x_ref_appln_id             :=  ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).reference_application_id;
941       x_record_flag              :=  ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).record_flag;
942       x_record_for_partners_flag :=  ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).record_for_partners_flag;
943       x_prod_family_grp_code     :=  ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).prod_family_grp_code;
944       x_event_class_mapping_id   :=  ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).event_class_mapping_id;
945       x_summarization_flag       :=  ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).summarization_flag;
946 
947     END IF;
948 
949 
950     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
951       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||
952                    '.END',G_PKG_NAME||': '||l_api_name||'()-' ||
953                    ', RETURN_STATUS = ' || x_return_status);
954     END IF;
955 
956   EXCEPTION
957     WHEN OTHERS THEN
958       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
959       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
960          FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,
961            'The event class information passed is incorrect. Please CHECK! '||SQLERRM);
962       END IF;
963   END get_tax_event_class;
964 
965 ----------------------------------------------------------------------
966 --  PRIVATE PROCEDURE
967 --  Get_Tax_Event_Class
968 --
969 --  DESCRIPTION
970 --  Fetch the relevant events information from zx_evnt_cls_mappings
971 --
972 --  CALLED BY
973 --   calculate_tax
974 --   import_document_with_tax
975 --   override_tax
976 --   determine_recovery
977 --   insupd_line_det_factors
978 -----------------------------------------------------------------------
979   PROCEDURE get_tax_event_class
980   ( x_return_status 	OUT    NOCOPY  VARCHAR2,
981     p_event_class_rec   IN OUT NOCOPY  ZX_API_PUB.event_class_rec_type
982   )IS
983   l_api_name          CONSTANT VARCHAR2(30):= 'GET_TAX_EVENT_CLASS';
984   l_index             BINARY_INTEGER;
985 
986   BEGIN
987     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
988       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
989     END IF;
990 
991     x_return_status := FND_API.G_RET_STS_SUCCESS;
992 
993     IF p_event_class_rec.event_class_code = 'SALES_TRANSACTION_TAX_QUOTE' THEN
994       SELECT 0,
995        	     zxevntclsmap.tax_event_class_code,
996              zxevntclsmap.det_factor_templ_code,
997              zxevntclsmap.default_rounding_level_code,
998              zxevntclsmap.rounding_level_hier_1_code,
999              zxevntclsmap.rounding_level_hier_2_code,
1000              zxevntclsmap.rounding_level_hier_3_code,
1001              zxevntclsmap.rounding_level_hier_4_code,
1002              'N',                                        --allow_manual_lin_recalc_flag
1003              'N',                                        --allow_override_flag,
1004              'N',                                        --allow_manual_lines_flag,
1005              'N',                                        --perf_addnl_appl_for_imprt_flag,
1006              'N',                                        --record_flag
1007              'THIRD_PARTY',                              --ship_to_party_type
1008              'LEGAL_ESTABLISHMENT',                      --ship_from_party_type
1009              'THIRD_PARTY',                              --bill_to_party_type
1010              'LEGAL_ESTABLISHMENT',                      --bill_from_party_type
1011              'THIRD_PARTY_SITE',                         --ship_to_pty_site_type
1012              'THIRD_PARTY_SITE',                         --bill_to_pty_site_type
1013              'N',                                        --enforce_tax_from_acct_flag,
1014               null,                                      --offset_tax_basis_code
1015              'N',                                        --allow_offset_tax_calc_flag
1016              'N',                                        --self_assess_tax_lines_flag
1017              'N',                                        --tax_recovery_flag
1018              'N',                                        --allow_cancel_tax_lines_flag
1019              'N',                                        --allow_man_tax_only_lines_flag
1020              'N',                                        --enable_mrc_flag
1021              'N',                                        --tax_reporting_flag,
1022              'N',                                        --enter_ovrd_incl_tax_lines_flag
1023              'N',                                        --ctrl_eff_ovrd_calc_lines_flag
1024              'N',                                        --summarization_flag
1025              'N',                                        --retain_summ_tax_line_id_flag
1026              'N',                                        --tax_variance_calc_flag
1027              'O2C',                                      --prod_family_grp_code
1028              'N',                                        --record_for_partners_flag
1029              'N',                                        --manual_lines_for_partner_flag
1030              'N',                                        --man_tax_only_lin_for_ptnr_flag
1031              'N',                                        --always_use_ebtax_for_calc_flag
1032              'N',                                        --enforce_tax_from_ref_doc_flag
1033              zxevntclsmap.process_for_applicability_flag,
1034              zxevntclsmap.allow_exemptions_flag,         --allow_exemptions_flag
1035              zxevntclsmap.sup_cust_acct_type_code,
1036              'N',                                        --intgrtn_det_factors_ui_flag
1037              'N',                                         --display_tax_classif_flag
1038              zxcls.asc_intrcmp_tx_evnt_cls_code,
1039              zxevntclsmap.intrcmp_tx_evnt_cls_code,
1040              zxevntclsmap.intrcmp_src_appln_id,
1041              zxevntclsmap.intrcmp_src_entity_code,
1042              zxevntclsmap.intrcmp_src_evnt_cls_code
1043       INTO   p_event_class_rec.event_class_mapping_id,
1044              p_event_class_rec.tax_event_class_code,
1045              p_event_class_rec.det_factor_templ_code,
1046              p_event_class_rec.default_rounding_level_code,
1047              p_event_class_rec.rounding_level_hier_1_code,
1048              p_event_class_rec.rounding_level_hier_2_code,
1049              p_event_class_rec.rounding_level_hier_3_code,
1050              p_event_class_rec.rounding_level_hier_4_code,
1051              p_event_class_rec.allow_manual_lin_recalc_flag,
1052              p_event_class_rec.allow_override_flag,
1053              p_event_class_rec.allow_manual_lines_flag,
1054              p_event_class_rec.perf_addnl_appl_for_imprt_flag,
1055              p_event_class_rec.record_flag,
1056              source_rec.ship_to_party_type,
1057              source_rec.ship_from_party_type,
1058              source_rec.bill_to_party_type,
1059              source_rec.bill_from_party_type,
1060              source_rec.ship_to_pty_site_type,
1061              source_rec.bill_to_pty_site_type,
1062              p_event_class_rec.enforce_tax_from_acct_flag,
1063              p_event_class_rec.offset_tax_basis_code ,
1064              p_event_class_rec.allow_offset_tax_calc_flag,
1065              p_event_class_rec.self_assess_tax_lines_flag,
1066              p_event_class_rec.tax_recovery_flag,
1067              p_event_class_rec.allow_cancel_tax_lines_flag,
1068              p_event_class_rec.allow_man_tax_only_lines_flag,
1069              p_event_class_rec.enable_mrc_flag,
1070              p_event_class_rec.tax_reporting_flag,
1071              p_event_class_rec.enter_ovrd_incl_tax_lines_flag,
1072              p_event_class_rec.ctrl_eff_ovrd_calc_lines_flag,
1073              p_event_class_rec.summarization_flag,
1074              p_event_class_rec.retain_summ_tax_line_id_flag,
1075              p_event_class_rec.tax_variance_calc_flag,
1076              p_event_class_rec.prod_family_grp_code,
1077              p_event_class_rec.record_for_partners_flag,
1078              p_event_class_rec.manual_lines_for_partner_flag,
1079              p_event_class_rec.man_tax_only_lin_for_ptnr_flag,
1080              p_event_class_rec.always_use_ebtax_for_calc_flag,
1081              p_event_class_rec.enforce_tax_from_ref_doc_flag,
1082              p_event_class_rec.process_for_applicability_flag,
1083              p_event_class_rec.allow_exemptions_flag,
1084              p_event_class_rec.sup_cust_acct_type,
1085              p_event_class_rec.intgrtn_det_factors_ui_flag,
1086              p_event_class_rec.display_tax_classif_flag,
1087              p_event_class_rec.asc_intrcmp_tx_evnt_cls_code,
1088              p_event_class_rec.intrcmp_tx_evnt_cls_code,
1089              p_event_class_rec.intrcmp_src_appln_id,
1090              p_event_class_rec.intrcmp_src_entity_code,
1091              p_event_class_rec.intrcmp_src_evnt_cls_code
1092       FROM   ZX_EVNT_CLS_MAPPINGS zxevntclsmap,
1093              ZX_EVENT_CLASSES_B zxcls
1094       WHERE  zxevntclsmap.event_class_code = 'INVOICE'
1095       AND    zxevntclsmap.application_id = 222
1096       AND    zxevntclsmap.entity_code = 'TRANSACTIONS'
1097       AND    zxevntclsmap.tax_event_class_code = zxcls.tax_event_class_code ;
1098     ELSIF p_event_class_rec.event_class_code = 'PURCHASE_TRANSACTION_TAX_QUOTE' THEN
1099       SELECT -1,
1100        	     zxevntclsmap.tax_event_class_code,
1101              zxevntclsmap.det_factor_templ_code,
1102              zxevntclsmap.default_rounding_level_code,
1103              zxevntclsmap.rounding_level_hier_1_code,
1104              zxevntclsmap.rounding_level_hier_2_code,
1105              zxevntclsmap.rounding_level_hier_3_code,
1106              zxevntclsmap.rounding_level_hier_4_code,
1107              'N',                                        --allow_manual_lin_recalc_flag
1108              'N',                                        --allow_override_flag,
1109              'N',                                        --allow_manual_lines_flag,
1110              'N',                                        --perf_addnl_appl_for_imprt_flag,
1111              'N',                                        --record_flag
1112              'LEGAL_ESTABLISHMENT',                      --ship_to_party_type
1113              'THIRD_PARTY',                              --ship_from_party_type
1114              'LEGAL_ESTABLISHMENT',                      --bill_to_party_type
1115              'THIRD_PARTY',                              --bill_from_party_type
1116              'THIRD_PARTY_SITE',                         --ship_from_pty_site_type
1117              'THIRD_PARTY_SITE',                         --bill_from_pty_site_type
1118              'N',                                        --enforce_tax_from_acct_flag,
1119               null,                                      --offset_tax_basis_code
1120              'N',                                        --allow_offset_tax_calc_flag
1121              'N',                                        --self_assess_tax_lines_flag
1122              DECODE(p_event_class_rec.application_id,'8407','Y','N'),                                        --tax_recovery_flag //Added decode logic for bug 6751638
1123              'N',                                        --allow_cancel_tax_lines_flag
1124              'N',                                        --allow_man_tax_only_lines_flag
1125              'N',                                        --enable_mrc_flag
1126              'N',                                        --tax_reporting_flag,
1127              'N',                                        --enter_ovrd_incl_tax_lines_flag
1128              'N',                                        --ctrl_eff_ovrd_calc_lines_flag
1129              'N',                                        --summarization_flag
1130              'N',                                        --retain_summ_tax_line_id_flag
1131              'N',                                        --tax_variance_calc_flag
1132              'P2P',                                      --prod_family_grp_code
1133              'N',                                        --record_for_partners_flag
1134              'N',                                        --manual_lines_for_partner_flag
1135              'N',                                        --man_tax_only_lin_for_ptnr_flag
1136              'N',                                        --always_use_ebtax_for_calc_flag
1137              'N',                                        --enforce_tax_from_ref_doc_flag
1138              zxevntclsmap.process_for_applicability_flag,
1139              zxevntclsmap.allow_exemptions_flag,         --allow_exemptions_flag
1140              zxevntclsmap.sup_cust_acct_type_code,
1141              'N',                                        --intgrtn_det_factors_ui_flag
1142              'N',                                        --display_tax_classif_flag
1143              zxcls.asc_intrcmp_tx_evnt_cls_code,
1144              zxevntclsmap.intrcmp_tx_evnt_cls_code,
1145              zxevntclsmap.intrcmp_src_appln_id,
1146              zxevntclsmap.intrcmp_src_entity_code,
1147              zxevntclsmap.intrcmp_src_evnt_cls_code
1148       INTO   p_event_class_rec.event_class_mapping_id,
1149              p_event_class_rec.tax_event_class_code,
1150              p_event_class_rec.det_factor_templ_code,
1151              p_event_class_rec.default_rounding_level_code,
1152              p_event_class_rec.rounding_level_hier_1_code,
1153              p_event_class_rec.rounding_level_hier_2_code,
1154              p_event_class_rec.rounding_level_hier_3_code,
1155              p_event_class_rec.rounding_level_hier_4_code,
1156              p_event_class_rec.allow_manual_lin_recalc_flag,
1157              p_event_class_rec.allow_override_flag,
1158              p_event_class_rec.allow_manual_lines_flag,
1159              p_event_class_rec.perf_addnl_appl_for_imprt_flag,
1160              p_event_class_rec.record_flag,
1161              source_rec.ship_to_party_type,
1162              source_rec.ship_from_party_type,
1163              source_rec.bill_to_party_type,
1164              source_rec.bill_from_party_type,
1165              source_rec.ship_from_pty_site_type,
1166              source_rec.bill_from_pty_site_type,
1167              p_event_class_rec.enforce_tax_from_acct_flag,
1168              p_event_class_rec.offset_tax_basis_code ,
1169              p_event_class_rec.allow_offset_tax_calc_flag,
1170              p_event_class_rec.self_assess_tax_lines_flag,
1171              p_event_class_rec.tax_recovery_flag,
1172              p_event_class_rec.allow_cancel_tax_lines_flag,
1173              p_event_class_rec.allow_man_tax_only_lines_flag,
1174              p_event_class_rec.enable_mrc_flag,
1175              p_event_class_rec.tax_reporting_flag,
1176              p_event_class_rec.enter_ovrd_incl_tax_lines_flag,
1177              p_event_class_rec.ctrl_eff_ovrd_calc_lines_flag,
1178              p_event_class_rec.summarization_flag,
1179              p_event_class_rec.retain_summ_tax_line_id_flag,
1180              p_event_class_rec.tax_variance_calc_flag,
1181              p_event_class_rec.prod_family_grp_code,
1182              p_event_class_rec.record_for_partners_flag,
1183              p_event_class_rec.manual_lines_for_partner_flag,
1184              p_event_class_rec.man_tax_only_lin_for_ptnr_flag,
1185              p_event_class_rec.always_use_ebtax_for_calc_flag,
1186              p_event_class_rec.enforce_tax_from_ref_doc_flag,
1187              p_event_class_rec.process_for_applicability_flag,
1188              p_event_class_rec.allow_exemptions_flag,
1189              p_event_class_rec.sup_cust_acct_type,
1190              p_event_class_rec.intgrtn_det_factors_ui_flag,
1191              p_event_class_rec.display_tax_classif_flag,
1192              p_event_class_rec.asc_intrcmp_tx_evnt_cls_code,
1193              p_event_class_rec.intrcmp_tx_evnt_cls_code,
1194              p_event_class_rec.intrcmp_src_appln_id,
1195              p_event_class_rec.intrcmp_src_entity_code,
1196              p_event_class_rec.intrcmp_src_evnt_cls_code
1197       FROM   ZX_EVNT_CLS_MAPPINGS zxevntclsmap,
1198              ZX_EVENT_CLASSES_B zxcls
1199       WHERE  zxevntclsmap.entity_code = 'AP_INVOICES'
1200       AND    zxevntclsmap.application_id = 200
1201       AND    zxevntclsmap.event_class_code = 'STANDARD INVOICES'
1202       AND    zxevntclsmap.tax_event_class_code = zxcls.tax_event_class_code ;
1203   ELSE
1204    /*
1205      get_event_class_info(
1206         P_ENTITY_CODE         =>  p_event_class_rec.entity_code,
1207         P_EVENT_CLASS_CODE    =>  p_event_class_rec.event_class_code,
1208         P_APPLICATION_ID      =>  p_event_class_rec.application_id,
1209         X_TBL_INDEX           =>  l_index,
1210         X_RETURN_STATUS       =>  x_return_status);
1211 
1212      IF L_INDEX IS NULL THEN
1213 
1214       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1215       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
1216          FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,
1217            'The event class information passed is incorrect. Please CHECK! '||SQLERRM);
1218       END IF;
1219 
1220      ELSE
1221 
1222        p_event_class_rec.event_class_mapping_id  :=            ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).event_class_mapping_id;
1223        p_event_class_rec.tax_event_class_code  :=              ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).tax_event_class_code;
1224        p_event_class_rec.det_factor_templ_code  :=             ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).det_factor_templ_code;
1225        p_event_class_rec.default_rounding_level_code  :=       ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).default_rounding_level_code;
1226        p_event_class_rec.rounding_level_hier_1_code  :=        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).rounding_level_hier_1_code;
1227        p_event_class_rec.rounding_level_hier_2_code  :=        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).rounding_level_hier_2_code;
1228        p_event_class_rec.rounding_level_hier_3_code  :=        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).rounding_level_hier_3_code;
1229        p_event_class_rec.rounding_level_hier_4_code  :=        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).rounding_level_hier_4_code;
1230        p_event_class_rec.allow_manual_lin_recalc_flag  :=      ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).allow_manual_lin_recalc_flag;
1231        p_event_class_rec.allow_override_flag  :=               ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).allow_override_flag;
1232        p_event_class_rec.allow_manual_lines_flag  :=           ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).allow_manual_lines_flag;
1233        p_event_class_rec.perf_addnl_appl_for_imprt_flag  :=    ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).perf_addnl_appl_for_imprt_flag;
1234        p_event_class_rec.record_flag  :=                       ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).record_flag;
1235        source_rec.ship_to_party_type  :=                       ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ship_to_party_type;
1236        source_rec.ship_from_party_type  :=                     ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ship_from_party_type;
1237        source_rec.poa_party_type  :=                           ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).poa_party_type;
1238        source_rec.poo_party_type  :=                           ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).poo_party_type;
1239        source_rec.paying_party_type  :=                        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).paying_party_type;
1240        source_rec.own_hq_party_type  :=                        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).own_hq_party_type;
1241        source_rec.trad_hq_party_type  :=                       ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).trad_hq_party_type;
1242        source_rec.poi_party_type  :=                           ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).poi_party_type;
1243        source_rec.pod_party_type  :=                           ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).pod_party_type;
1244        source_rec.bill_to_party_type  :=                       ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).bill_to_party_type;
1245        source_rec.bill_from_party_type  :=                     ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).bill_from_party_type;
1246        source_rec.ttl_trns_party_type  :=                      ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ttl_trns_party_type;
1247        source_rec.ship_to_pty_site_type  :=                    ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ship_to_pty_site_type;
1248        source_rec.ship_from_pty_site_type  :=                  ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ship_from_pty_site_type;
1249        source_rec.poa_pty_site_type  :=                        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).poa_pty_site_type;
1250        source_rec.poo_pty_site_type  :=                        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).poo_pty_site_type;
1251        source_rec.paying_pty_site_type  :=                     ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).paying_pty_site_type;
1252        source_rec.own_hq_pty_site_type  :=                     ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).own_hq_pty_site_type;
1253        source_rec.trad_hq_pty_site_type  :=                    ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).trad_hq_pty_site_type;
1254        source_rec.poi_pty_site_type  :=                        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).poi_pty_site_type;
1255        source_rec.pod_pty_site_type  :=                        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).pod_pty_site_type;
1256        source_rec.bill_to_pty_site_type  :=                    ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).bill_to_pty_site_type;
1257        source_rec.bill_from_pty_site_type  :=                  ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).bill_from_pty_site_type;
1258        source_rec.ttl_trns_pty_site_type  :=                   ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ttl_trns_pty_site_type;
1259        source_rec.merchant_party_type  :=                      ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).merchant_party_type;
1260        p_event_class_rec.reference_application_id  :=          ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).reference_application_id;
1261        p_event_class_rec.enforce_tax_from_acct_flag  :=        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).enforce_tax_from_acct_flag;
1262        p_event_class_rec.offset_tax_basis_code   :=            ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).offset_tax_basis_code ;
1263        p_event_class_rec.allow_offset_tax_calc_flag  :=        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).allow_offset_tax_calc_flag;
1264        p_event_class_rec.self_assess_tax_lines_flag  :=        ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).self_assess_tax_lines_flag;
1265        p_event_class_rec.tax_recovery_flag  :=                 ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).tax_recovery_flag;
1266        p_event_class_rec.allow_cancel_tax_lines_flag  :=       ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).allow_cancel_tax_lines_flag;
1267        p_event_class_rec.allow_man_tax_only_lines_flag  :=     ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).allow_man_tax_only_lines_flag;
1268        --p_event_class_rec.enable_mrc_flag  :=                   ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).enable_mrc_flag;
1269        p_event_class_rec.tax_reporting_flag  :=                ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).tax_reporting_flag;
1270        p_event_class_rec.enter_ovrd_incl_tax_lines_flag  :=    ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).enter_ovrd_incl_tax_lines_flag;
1271        p_event_class_rec.ctrl_eff_ovrd_calc_lines_flag  :=     ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ctrl_eff_ovrd_calc_lines_flag;
1272        p_event_class_rec.summarization_flag  :=                ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).summarization_flag;
1273        p_event_class_rec.retain_summ_tax_line_id_flag  :=      ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).retain_summ_tax_line_id_flag;
1274        p_event_class_rec.tax_variance_calc_flag  :=            ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).tax_variance_calc_flag;
1275        p_event_class_rec.prod_family_grp_code  :=              ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).prod_family_grp_code;
1276        p_event_class_rec.record_for_partners_flag  :=          ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).record_for_partners_flag;
1277        p_event_class_rec.manual_lines_for_partner_flag  :=     ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).manual_lines_for_partner_flag;
1278        p_event_class_rec.man_tax_only_lin_for_ptnr_flag  :=    ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).man_tax_only_lin_for_ptnr_flag;
1279        p_event_class_rec.always_use_ebtax_for_calc_flag  :=    ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).always_use_ebtax_for_calc_flag;
1280        p_event_class_rec.enforce_tax_from_ref_doc_flag  :=     ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).enforce_tax_from_ref_doc_flag;
1281        p_event_class_rec.process_for_applicability_flag  :=    ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).process_for_applicability_flag;
1282        p_event_class_rec.allow_exemptions_flag  :=             ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).allow_exemptions_flag;
1283        p_event_class_rec.sup_cust_acct_type  :=                ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).sup_cust_acct_type_code;
1284        p_event_class_rec.intgrtn_det_factors_ui_flag  :=       ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).intgrtn_det_factors_ui_flag;
1285        p_event_class_rec.display_tax_classif_flag  :=          ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).display_tax_classif_flag;
1286        p_event_class_rec.intrcmp_tx_evnt_cls_code  :=          ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).intrcmp_tx_evnt_cls_code;
1287        p_event_class_rec.intrcmp_src_appln_id  :=              ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).intrcmp_src_appln_id;
1288        p_event_class_rec.intrcmp_src_entity_code  :=           ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).intrcmp_src_entity_code;
1289        p_event_class_rec.intrcmp_src_evnt_cls_code :=          ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).intrcmp_src_evnt_cls_code;
1290 
1291        IF  ZX_GLOBAL_STRUCTURES_PKG.g_zx_tax_evnt_cls_tbl.exists(p_event_class_rec.tax_event_class_code) THEN
1292           p_event_class_rec.normal_sign_flag  :=
1293                     ZX_GLOBAL_STRUCTURES_PKG.g_zx_tax_evnt_cls_tbl(p_event_class_rec.tax_event_class_code).normal_sign_flag;
1294           p_event_class_rec.asc_intrcmp_tx_evnt_cls_code  :=
1295                     ZX_GLOBAL_STRUCTURES_PKG.g_zx_tax_evnt_cls_tbl(p_event_class_rec.tax_event_class_code).asc_intrcmp_tx_evnt_cls_code;
1296        ELSE
1297           populate_tax_event_class_info;
1298           p_event_class_rec.normal_sign_flag  :=
1299                     ZX_GLOBAL_STRUCTURES_PKG.g_zx_tax_evnt_cls_tbl(p_event_class_rec.tax_event_class_code).normal_sign_flag;
1300           p_event_class_rec.asc_intrcmp_tx_evnt_cls_code  :=
1301                     ZX_GLOBAL_STRUCTURES_PKG.g_zx_tax_evnt_cls_tbl(p_event_class_rec.tax_event_class_code).asc_intrcmp_tx_evnt_cls_code;
1302        END IF;
1303     END IF; -- l_index is NULL
1304     */
1305         SELECT zxevntclsmap.event_class_mapping_id,
1306        	     zxevntclsmap.tax_event_class_code,
1307              zxevntclsmap.det_factor_templ_code,
1308              zxevntclsmap.default_rounding_level_code,
1309              zxevntclsmap.rounding_level_hier_1_code,
1310              zxevntclsmap.rounding_level_hier_2_code,
1311              zxevntclsmap.rounding_level_hier_3_code,
1312              zxevntclsmap.rounding_level_hier_4_code,
1313              zxevntclsmap.allow_manual_lin_recalc_flag,
1314              zxevntclsmap.allow_override_flag,
1315              zxevntclsmap.allow_manual_lines_flag,
1316              zxevntclsmap.perf_addnl_appl_for_imprt_flag,
1317              zxcls.normal_sign_flag,
1318              zxevntclsmap.record_flag,
1319              zxevntclsmap.ship_to_party_type,
1320              zxevntclsmap.ship_from_party_type,
1321              zxevntclsmap.poa_party_type,
1322              zxevntclsmap.poo_party_type,
1323              zxevntclsmap.paying_party_type,
1324              zxevntclsmap.own_hq_party_type,
1325              zxevntclsmap.trad_hq_party_type,
1326              zxevntclsmap.poi_party_type,
1327              zxevntclsmap.pod_party_type,
1328              zxevntclsmap.bill_to_party_type,
1329              zxevntclsmap.bill_from_party_type,
1330              zxevntclsmap.ttl_trns_party_type,
1331              zxevntclsmap.ship_to_pty_site_type,
1332              zxevntclsmap.ship_from_pty_site_type,
1333              zxevntclsmap.poa_pty_site_type,
1334              zxevntclsmap.poo_pty_site_type,
1335              zxevntclsmap.paying_pty_site_type,
1336              zxevntclsmap.own_hq_pty_site_type,
1337              zxevntclsmap.trad_hq_pty_site_type,
1338              zxevntclsmap.poi_pty_site_type,
1339              zxevntclsmap.pod_pty_site_type,
1340              zxevntclsmap.bill_to_pty_site_type,
1341              zxevntclsmap.bill_from_pty_site_type,
1342              zxevntclsmap.ttl_trns_pty_site_type,
1343              zxevntclsmap.merchant_party_type,
1344              zxevntclsmap.reference_application_id,
1345              zxevntclsmap.enforce_tax_from_acct_flag,
1346              zxevntclsmap.offset_tax_basis_code ,
1347              zxevntclsmap.allow_offset_tax_calc_flag,
1348              zxevntclsmap.self_assess_tax_lines_flag,
1349              zxevntclsmap.tax_recovery_flag,
1350              zxevntclsmap.allow_cancel_tax_lines_flag,
1351              zxevntclsmap.allow_man_tax_only_lines_flag,
1352              zxevntclsmap.enable_mrc_flag,
1353              zxevntclsmap.tax_reporting_flag,
1354              zxevntclsmap.enter_ovrd_incl_tax_lines_flag,
1355              zxevntclsmap.ctrl_eff_ovrd_calc_lines_flag,
1356              zxevntclsmap.summarization_flag,
1357              zxevntclsmap.retain_summ_tax_line_id_flag,
1358              zxevntclsmap.tax_variance_calc_flag,
1359              zxevntclsmap.prod_family_grp_code,
1360              zxevntclsmap.record_for_partners_flag,
1361              zxevntclsmap.manual_lines_for_partner_flag,
1362              zxevntclsmap.man_tax_only_lin_for_ptnr_flag,
1363              zxevntclsmap.always_use_ebtax_for_calc_flag,
1364              zxevntclsmap.enforce_tax_from_ref_doc_flag,
1365              zxevntclsmap.process_for_applicability_flag,
1366              zxevntclsmap.allow_exemptions_flag,
1367              zxevntclsmap.sup_cust_acct_type_code,
1368              zxevntclsmap.intgrtn_det_factors_ui_flag,
1369              zxevntclsmap.display_tax_classif_flag,
1370              zxcls.asc_intrcmp_tx_evnt_cls_code,
1371              zxevntclsmap.intrcmp_tx_evnt_cls_code,
1372              zxevntclsmap.intrcmp_src_appln_id,
1373              zxevntclsmap.intrcmp_src_entity_code,
1374              zxevntclsmap.intrcmp_src_evnt_cls_code
1375       INTO   p_event_class_rec.event_class_mapping_id,
1376              p_event_class_rec.tax_event_class_code,
1377              p_event_class_rec.det_factor_templ_code,
1378              p_event_class_rec.default_rounding_level_code,
1379              p_event_class_rec.rounding_level_hier_1_code,
1380              p_event_class_rec.rounding_level_hier_2_code,
1381              p_event_class_rec.rounding_level_hier_3_code,
1382              p_event_class_rec.rounding_level_hier_4_code,
1383              p_event_class_rec.allow_manual_lin_recalc_flag,
1384              p_event_class_rec.allow_override_flag,
1385              p_event_class_rec.allow_manual_lines_flag,
1386              p_event_class_rec.perf_addnl_appl_for_imprt_flag,
1387              p_event_class_rec.normal_sign_flag,
1388              p_event_class_rec.record_flag,
1389              source_rec.ship_to_party_type,
1390              source_rec.ship_from_party_type,
1391              source_rec.poa_party_type,
1392              source_rec.poo_party_type,
1393              source_rec.paying_party_type,
1394              source_rec.own_hq_party_type,
1395              source_rec.trad_hq_party_type,
1396              source_rec.poi_party_type,
1397              source_rec.pod_party_type,
1398              source_rec.bill_to_party_type,
1399              source_rec.bill_from_party_type,
1400              source_rec.ttl_trns_party_type,
1401              source_rec.ship_to_pty_site_type,
1402              source_rec.ship_from_pty_site_type,
1403              source_rec.poa_pty_site_type,
1404              source_rec.poo_pty_site_type,
1405              source_rec.paying_pty_site_type,
1406              source_rec.own_hq_pty_site_type,
1407              source_rec.trad_hq_pty_site_type,
1408              source_rec.poi_pty_site_type,
1409              source_rec.pod_pty_site_type,
1410              source_rec.bill_to_pty_site_type,
1411              source_rec.bill_from_pty_site_type,
1412              source_rec.ttl_trns_pty_site_type,
1413              source_rec.merchant_party_type,
1414              p_event_class_rec.reference_application_id,
1415              p_event_class_rec.enforce_tax_from_acct_flag,
1416              p_event_class_rec.offset_tax_basis_code ,
1417              p_event_class_rec.allow_offset_tax_calc_flag,
1418              p_event_class_rec.self_assess_tax_lines_flag,
1419              p_event_class_rec.tax_recovery_flag,
1420              p_event_class_rec.allow_cancel_tax_lines_flag,
1421              p_event_class_rec.allow_man_tax_only_lines_flag,
1422              p_event_class_rec.enable_mrc_flag,
1423              p_event_class_rec.tax_reporting_flag,
1424              p_event_class_rec.enter_ovrd_incl_tax_lines_flag,
1425              p_event_class_rec.ctrl_eff_ovrd_calc_lines_flag,
1426              p_event_class_rec.summarization_flag,
1427              p_event_class_rec.retain_summ_tax_line_id_flag,
1428              p_event_class_rec.tax_variance_calc_flag,
1429              p_event_class_rec.prod_family_grp_code,
1430              p_event_class_rec.record_for_partners_flag,
1431              p_event_class_rec.manual_lines_for_partner_flag,
1432              p_event_class_rec.man_tax_only_lin_for_ptnr_flag,
1433              p_event_class_rec.always_use_ebtax_for_calc_flag,
1434              p_event_class_rec.enforce_tax_from_ref_doc_flag,
1435              p_event_class_rec.process_for_applicability_flag,
1436              p_event_class_rec.allow_exemptions_flag,
1437              p_event_class_rec.sup_cust_acct_type,
1438              p_event_class_rec.intgrtn_det_factors_ui_flag,
1439              p_event_class_rec.display_tax_classif_flag,
1440              p_event_class_rec.asc_intrcmp_tx_evnt_cls_code,
1441              p_event_class_rec.intrcmp_tx_evnt_cls_code,
1442              p_event_class_rec.intrcmp_src_appln_id,
1443              p_event_class_rec.intrcmp_src_entity_code,
1444              p_event_class_rec.intrcmp_src_evnt_cls_code
1445       FROM   ZX_EVNT_CLS_MAPPINGS zxevntclsmap,
1446              ZX_EVENT_CLASSES_B zxcls
1447       WHERE  zxevntclsmap.event_class_code = p_event_class_rec.event_class_code
1448       AND    zxevntclsmap.application_id = p_event_class_rec.application_id
1449       AND    zxevntclsmap.entity_code = p_event_class_rec.entity_code
1450       AND    zxevntclsmap.tax_event_class_code = zxcls.tax_event_class_code ;
1451 
1452 
1453   END IF;  -- p_event_class_rec.event_class_code = 'SALES_TRANSACTION_TAX_QUOTE
1454 
1455     --Bug 4670938:populate the source_event_class_mapping_id for rules engine processing
1456     BEGIN
1457       IF (ZX_API_PUB.G_DATA_TRANSFER_MODE =  'WIN' AND ZX_API_PUB.G_PUB_SRVC ='CALCULATE_TAX')
1458  -- for recovery determination this logic is not needed
1459  --                OR (ZX_API_PUB.G_PUB_SRVC ='DETERMINE_RECOVERY')
1460       THEN
1461         SELECT mapp.event_class_mapping_id,
1462                mapp.tax_event_class_code,
1463                mapp.process_for_applicability_flag
1464           INTO p_event_class_rec.source_event_class_mapping_id,
1465                p_event_class_rec.source_tax_event_class_code,
1466                p_event_class_rec.source_process_for_appl_flag
1467           FROM zx_evnt_cls_mappings mapp,
1468                zx_lines_det_factors det
1469          WHERE mapp.application_id   = det.source_application_id
1470            AND mapp.entity_code      = det.source_entity_code
1471            AND mapp.event_class_code = det.source_event_class_code
1472            AND det.trx_id            = p_event_class_rec.trx_id
1473            AND det.application_id    = p_event_class_rec.application_id
1474            AND det.entity_code       = p_event_class_rec.entity_code
1475            AND det.event_class_code  = p_event_class_rec.event_class_code
1476            AND rownum=1;
1477       ELSIF ZX_API_PUB.G_DATA_TRANSFER_MODE =  'PLS' AND ZX_API_PUB.G_PUB_SRVC ='CALCULATE_TAX' THEN
1478         SELECT mapp.event_class_mapping_id,
1479                mapp.tax_event_class_code,
1480                mapp.process_for_applicability_flag
1481           INTO p_event_class_rec.source_event_class_mapping_id,
1482                p_event_class_rec.source_tax_event_class_code,
1483                p_event_class_rec.source_process_for_appl_flag
1484           FROM zx_evnt_cls_mappings mapp
1485          WHERE mapp.application_id   = zx_global_structures_pkg.trx_line_dist_tbl.SOURCE_APPLICATION_ID(1)
1486            AND mapp.entity_code      = zx_global_structures_pkg.trx_line_dist_tbl.SOURCE_ENTITY_CODE(1)
1487            AND mapp.event_class_code = zx_global_structures_pkg.trx_line_dist_tbl.SOURCE_EVENT_CLASS_CODE(1);
1488 
1489      -- When the data transfer mode is TAB, the logic
1490      -- to populate  p_event_class_rec.source* columns
1491      -- is moved to service types pkg as it requires trx_id
1492 
1493       END IF;
1494       EXCEPTION
1495         WHEN OTHERS THEN
1496           null;
1497     END;
1498 
1499     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1500       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||
1501                    '.END',G_PKG_NAME||': '||l_api_name||'()-'||
1502                    ', RETURN_STATUS = ' || x_return_status);
1503     END IF;
1504 
1505   EXCEPTION
1506     WHEN OTHERS THEN
1507       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1508       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
1509          FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,
1510            'The event class information passed is incorrect. Please CHECK! ' ||
1511            SQLERRM);
1512       END IF;
1513   END get_tax_event_class;
1514 
1515 ----------------------------------------------------------------------
1516 --  PRIVATE PROCEDURE
1517 --  Get_Tax_Event_Type
1518 --
1519 --  DESCRIPTION
1520 --  Fetch the tax event type information
1521 --
1522 --  CALLED BY
1523 --   calculate_tax
1524 --   import_document_with_tax
1525 --   override_tax
1526 --   determine_recovery
1527 --   global_document_update
1528 --   override_recovery
1529 --   freeze_distribution_lines
1530 --   validate_document_for_tax
1531 -----------------------------------------------------------------------
1532   PROCEDURE Get_Tax_Event_Type
1533   ( x_return_status    OUT NOCOPY VARCHAR2,
1534     p_evnt_cls_code    IN         VARCHAR2,
1535     p_appln_id         IN         NUMBER,
1536     p_entity_code      IN         VARCHAR2,
1537     p_evnt_typ_code    IN         VARCHAR2,
1538     p_tx_evnt_cls_code IN         VARCHAR2,
1539     x_tx_evnt_typ_code OUT NOCOPY VARCHAR2,
1540     x_doc_status       OUT NOCOPY VARCHAR2
1541   )IS
1542   l_api_name              CONSTANT VARCHAR2(30) := 'GET_TAX_EVENT_TYPE';
1543   l_index    BINARY_INTEGER;
1544   l_index2   BINARY_INTEGER;
1545 
1546   l_tax_event_type_code   ZX_EVNT_TYP_MAPPINGS.TAX_EVENT_CLASS_CODE%TYPE;
1547 
1548   BEGIN
1549     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1550       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
1551     END IF;
1552 
1553     x_return_status := FND_API.G_RET_STS_SUCCESS;
1554 
1555 
1556        get_event_typ_mappings_info(
1557         P_ENTITY_CODE         =>  p_entity_code,
1558         P_EVENT_CLASS_CODE    =>  p_evnt_cls_code,
1559         P_APPLICATION_ID      =>  p_appln_id,
1560         P_EVENT_TYPE_CODE     =>  p_evnt_typ_code,
1561         X_TBL_INDEX           =>  l_index,
1562         X_RETURN_STATUS       =>  x_return_status);
1563 
1564         IF  l_index is NULL then
1565 
1566               IF p_evnt_cls_code in ('SALES_TRANSACTION_TAX_QUOTE','PURCHASE_TRANSACTION_TAX_QUOTE') THEN
1567                  x_tx_evnt_typ_code:='CREATE';
1568               ELSE
1569                 x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1570                 IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1571                    FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1572                      ' Incorrect event information passed in for event type :' ||p_evnt_typ_code ||' Please Check!');
1573                 END IF;
1574               END IF;
1575 
1576         ELSE
1577               x_tx_evnt_typ_code := ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl(l_index).tax_event_type_code;
1578               l_tax_event_type_code  := ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl(l_index).tax_event_type_code;
1579 
1580               l_index2 :=  dbms_utility.get_hash_value(p_tx_evnt_cls_code ||l_tax_event_type_code,
1581                                                    1,8192);
1582 
1583               IF ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_cls_typs_tbl.exists(l_index2) THEN
1584 
1585                   x_doc_status := ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_cls_typs_tbl(l_index2);
1586 
1587               ELSE
1588                    populate_event_cls_typs;
1589 
1590                    IF ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_cls_typs_tbl.exists(l_index2) THEN
1591                         x_doc_status := ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_cls_typs_tbl(l_index2);
1592                    ELSE
1593                         IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
1594                               FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,
1595                               ' Unable to derive doc_event_status. Please Check!');
1596                         END IF;
1597                    END IF;
1598               END IF;
1599 
1600          END IF;
1601 
1602     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1603       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||
1604             '.END',G_PKG_NAME||': '||l_api_name||'()-'||
1605             ', Tax Event Type = ' || x_tx_evnt_typ_code ||
1606             ', Doc Event Status = ' || x_doc_status ||
1607             ', RETURN_STATUS = ' || x_return_status);
1608 
1609     END IF;
1610 
1611   EXCEPTION
1612     WHEN OTHERS THEN
1613       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1614       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
1615          FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
1616       END IF;
1617   END get_tax_event_type;
1618 
1619 
1620 ----------------------------------------------------------------------
1621 --  PRIVATE PROCEDURE
1622 --  get_tax_subscriber
1623 --
1624 --  DESCRIPTION
1625 --  Determine the first party org id
1626 --
1627 --  CALLED BY
1628 --   calculate_tax
1629 --   import_document_with_tax
1630 --   inspud_line_det_factors
1631 --   get_default_tax_det_attribs(GTT version)
1632 -----------------------------------------------------------------------
1633   PROCEDURE get_tax_subscriber
1634   ( p_event_class_rec      IN OUT NOCOPY      ZX_API_PUB.event_class_rec_type,
1635     p_effective_date       IN                 DATE,
1636     x_return_status        OUT    NOCOPY      VARCHAR2
1637   )IS
1638   l_api_name             CONSTANT VARCHAR2(30):= 'GET_TAX_SUBSCRIBER';
1639   l_return_status        VARCHAR2(30);
1640   l_context_info_rec     ZX_API_PUB.context_info_rec_type;
1641   l_first_pty_org_id     NUMBER;
1642 
1643   BEGIN
1644     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1645       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
1646     END IF;
1647 
1648     l_first_pty_org_id := ZX_SECURITY.G_FIRST_PARTY_ORG_ID ;
1649 
1650     x_return_status := FND_API.G_RET_STS_SUCCESS;
1651     ZX_SECURITY.set_security_context(p_event_class_rec.legal_entity_id,
1652                                      p_event_class_rec.internal_organization_id,
1653                                      p_effective_date,
1654                                      l_return_status
1655                                      );
1656 
1657     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1658       x_return_status := l_return_status;
1659       IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1660         l_context_info_rec.APPLICATION_ID   := p_event_class_rec.APPLICATION_ID;
1661         l_context_info_rec.ENTITY_CODE      := p_event_class_rec.ENTITY_CODE;
1662         l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
1663         l_context_info_rec.TRX_ID           := p_event_class_rec.TRX_ID;
1664         ZX_API_PUB.add_msg(p_context_info_rec  =>  l_context_info_rec);
1665       END IF;
1666       RETURN;
1667     END IF;
1668 
1669     IF nvl(l_first_pty_org_id,-1087) <> nvl(ZX_SECURITY.G_FIRST_PARTY_ORG_ID,-1087) THEN
1670         IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1671                FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1672                 'First Party org_id has changed. Old first_pty_org_id = '||to_char(l_first_pty_org_id)||
1673                 ', New first_pty_org_id = '||to_char(ZX_SECURITY.G_FIRST_PARTY_ORG_ID)||
1674                 '. Initializing Tax, Status and Rate cache..');
1675         END IF;
1676          ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl.delete;
1677          ZX_TDS_UTILITIES_PKG.g_tax_status_info_tbl.delete;
1678          ZX_TDS_UTILITIES_PKG.g_tax_rate_info_tbl.delete;
1679          ZX_TDS_UTILITIES_PKG.g_tax_rate_info_ind_by_hash.delete;
1680 
1681     END IF;
1682 
1683     p_event_class_rec.first_pty_org_id := ZX_SECURITY.G_FIRST_PARTY_ORG_ID ;
1684 
1685     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1686       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||
1687          '.END',G_PKG_NAME||': '||l_api_name||'()-'||
1688          ', RETURN_STATUS = ' || l_return_status);
1689     END IF;
1690   END get_tax_subscriber;
1691 
1692 
1693 ----------------------------------------------------------------------
1694 --  PRIVATE PROCEDURE
1695 --  get_tax_subscriber
1696 --
1697 --  DESCRIPTION
1698 --  Overloaded version to determine the first party org id
1699 --
1700 --  CALLED BY
1701 --   override_tax
1702 --   global_document_update
1703 --   determine_recovery
1704 --   override_recovery
1705 --   freeze_distribution_lines
1706 --   validate_document_for_tax
1707 -----------------------------------------------------------------------
1708   PROCEDURE get_tax_subscriber
1709   ( p_event_class_rec  IN OUT NOCOPY ZX_API_PUB.event_class_rec_type,
1710     x_return_status    OUT    NOCOPY VARCHAR2
1711   )IS
1712   l_api_name            CONSTANT  VARCHAR2(30) := 'GET_TAX_SUBSCRIBER';
1713   l_effective_date                DATE;
1714   l_related_doc_date              DATE;
1715   l_adjusted_doc_date             DATE;
1716   l_trx_date                      DATE;
1717   l_prov_tax_det_date             DATE;
1718   l_return_status                 VARCHAR2(30);
1719   l_upg_trx_info_rec              ZX_ON_FLY_TRX_UPGRADE_PKG.zx_upg_trx_info_rec_type;
1720   l_context_info_rec              ZX_API_PUB.context_info_rec_type;
1721 
1722   BEGIN
1723     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1724       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
1725     END IF;
1726 
1727     x_return_status := FND_API.G_RET_STS_SUCCESS;
1728 
1729     BEGIN
1730       SELECT first_pty_org_id ,
1731              related_doc_date,
1732              adjusted_doc_date,
1733              trx_date,
1734              provnl_tax_determination_date
1735       INTO   p_event_class_rec.first_pty_org_id,
1736              l_related_doc_date,
1737              l_adjusted_doc_date,
1738              l_trx_date,
1739              l_prov_tax_det_date
1740       FROM   ZX_LINES_DET_FACTORS
1741       WHERE  application_id   = p_event_class_rec.application_id
1742         AND  entity_code      = p_event_class_rec.entity_code
1743         AND  event_class_code = p_event_class_rec.event_class_code
1744         AND  trx_id           = p_event_class_rec.trx_id
1745         AND  rownum           = 1;
1746 
1747     --Bugfix 4486946 -Call on the fly upgrade if the transaction if not found
1748     EXCEPTION
1749         WHEN NO_DATA_FOUND THEN
1750           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1751              FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1752                'Call on-the-fly upgrade since transaction does not exist in repository for trx id: '||to_char(p_event_class_rec.trx_id));
1753           END IF;
1754           l_upg_trx_info_rec.application_id   := p_event_class_rec.application_id;
1755           l_upg_trx_info_rec.entity_code      := p_event_class_rec.entity_code;
1756           l_upg_trx_info_rec.event_class_code := p_event_class_rec.event_class_code;
1757           l_upg_trx_info_rec.trx_id           := p_event_class_rec.trx_id;
1758           ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly(p_upg_trx_info_rec   =>  l_upg_trx_info_rec,
1759                                                        x_return_status      =>  l_return_status
1760                                                       );
1761           IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1762             IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1763               FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly returned errors');
1764             END IF;
1765             IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1766               RAISE FND_API.G_EXC_ERROR;
1767             ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1768               RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1769             END IF;
1770           END IF;
1771           SELECT first_pty_org_id ,
1772                  related_doc_date,
1773                  adjusted_doc_date,
1774                  trx_date,
1775                  provnl_tax_determination_date
1776           INTO   p_event_class_rec.first_pty_org_id,
1777                  l_related_doc_date,
1778                  l_adjusted_doc_date,
1779                  l_trx_date,
1780                  l_prov_tax_det_date
1781            FROM  ZX_LINES_DET_FACTORS
1782           WHERE  application_id   = p_event_class_rec.application_id
1783             AND  entity_code      = p_event_class_rec.entity_code
1784             AND  event_class_code = p_event_class_rec.event_class_code
1785             AND  trx_id           = p_event_class_rec.trx_id
1786             AND  rownum           = 1;
1787     END;
1788     --Bugfix 4486946; on-the-fly upgrade end
1789 
1790     l_effective_date := get_effective_date (l_related_doc_date,
1791                                             l_prov_tax_det_date,
1792                                             l_adjusted_doc_date,
1793                                             l_trx_date
1794                                            );
1795 
1796     IF nvl(p_event_class_rec.first_pty_org_id,-1087) <> nvl(ZX_SECURITY.G_FIRST_PARTY_ORG_ID,-1087) THEN
1797          IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1798                 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1799                  'First Party org_id has changed. Old first_pty_org_id = '||to_char(ZX_SECURITY.G_FIRST_PARTY_ORG_ID)||
1800                  ', New first_pty_org_id = '||to_char(p_event_class_rec.first_pty_org_id)||
1801                  '. Initializing Tax, Status and Rate cache..');
1802          END IF;
1803           ZX_TDS_UTILITIES_PKG.g_tax_rec_tbl.delete;
1804           ZX_TDS_UTILITIES_PKG.g_tax_status_info_tbl.delete;
1805           ZX_TDS_UTILITIES_PKG.g_tax_rate_info_tbl.delete;
1806           ZX_TDS_UTILITIES_PKG.g_tax_rate_info_ind_by_hash.delete;
1807 
1808     END IF;
1809 
1810 
1811 
1812     ZX_SECURITY.set_security_context(p_event_class_rec.first_pty_org_id,
1813                                      l_effective_date,
1814                                      l_return_status
1815                                     );
1816 
1817 
1818     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1819       x_return_status := l_return_status;
1820       IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1821         l_context_info_rec.APPLICATION_ID   := p_event_class_rec.APPLICATION_ID;
1822         l_context_info_rec.ENTITY_CODE      := p_event_class_rec.ENTITY_CODE;
1823         l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
1824         l_context_info_rec.TRX_ID           := p_event_class_rec.TRX_ID;
1825         ZX_API_PUB.add_msg(p_context_info_rec  =>  l_context_info_rec);
1826       END IF;
1827       RETURN;
1828     END IF;
1829 
1830     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1831       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||
1832            '.END',G_PKG_NAME||': '||l_api_name||'()-' ||
1833            ', RETURN_STATUS = ' || l_return_status);
1834     END IF;
1835 
1836   EXCEPTION
1837     WHEN OTHERS THEN
1838       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1839       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
1840          FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,
1841          'Data is expected to be in eBTax repository for this call. Please CHECK your sequence of calls to eBTax' ||
1842          SQLERRM);
1843       END IF;
1844   END get_tax_subscriber;
1845 
1846 ----------------------------------------------------------------------
1847 --  PRIVATE PROCEDURE
1848 --  set_security_context
1849 --
1850 --  DESCRIPTION
1851 --  Call set security context directlyl; need not return to event class rec
1852 --
1853 --  CALLED BY
1854 --   discard_tax_only_lines
1855 --   mark_tax_lines_deleted
1856 --   reverse_distributions
1857 -----------------------------------------------------------------------
1858   PROCEDURE set_security_context
1859   ( p_application_id   IN         NUMBER,
1860     p_entity_code      IN         VARCHAR2,
1861     p_event_class_code IN         VARCHAR2,
1862     p_trx_id           IN         NUMBER,
1863     x_return_status    OUT NOCOPY VARCHAR2
1864   )IS
1865   l_api_name          CONSTANT    VARCHAR2(30) := 'SET_SECURITY_CONTEXT';
1866   l_effective_date                DATE;
1867   l_related_doc_date              DATE;
1868   l_trx_date                      DATE;
1869   l_prov_tax_det_date             DATE;
1870   l_adjusted_doc_date             DATE;
1871   l_first_pty_org_id              NUMBER;
1872   l_return_status                 VARCHAR2(30);
1873   l_upg_trx_info_rec              ZX_ON_FLY_TRX_UPGRADE_PKG.zx_upg_trx_info_rec_type;
1874   l_context_info_rec              ZX_API_PUB.context_info_rec_type;
1875 
1876   BEGIN
1877     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1878       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
1879     END IF;
1880 
1881     x_return_status := FND_API.G_RET_STS_SUCCESS;
1882     BEGIN
1883       SELECT first_pty_org_id ,
1884              related_doc_date,
1885              adjusted_doc_date,
1886              trx_date,
1887              provnl_tax_determination_date
1888        INTO  l_first_pty_org_id,
1889              l_related_doc_date,
1890              l_adjusted_doc_date,
1891              l_trx_date,
1892              l_prov_tax_det_date
1893        FROM  ZX_LINES_DET_FACTORS
1894       WHERE  application_id = p_application_id
1895         AND  entity_code    = p_entity_code
1896         AND  event_class_code = p_event_class_code
1897         AND  trx_id = p_trx_id
1898         AND  rownum = 1;
1899 
1900     --Bugfix 4486946 -Call on the fly upgrade if the transaction if not found
1901     EXCEPTION
1902         WHEN NO_DATA_FOUND THEN
1903           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1904              FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1905                'Call on-the-fly upgrade since transaction does not exist in repository for trx id: '||to_char(p_trx_id));
1906           END IF;
1907           l_upg_trx_info_rec.application_id   := p_application_id;
1908           l_upg_trx_info_rec.entity_code      := p_entity_code;
1909           l_upg_trx_info_rec.event_class_code := p_event_class_code;
1910           l_upg_trx_info_rec.trx_id           := p_trx_id;
1911           ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly(p_upg_trx_info_rec   =>  l_upg_trx_info_rec,
1912                                                        x_return_status      =>  l_return_status
1913                                                       );
1914           IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1915             IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1916               FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly returned errors');
1917             END IF;
1918             IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1919               RAISE FND_API.G_EXC_ERROR;
1920             ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
1921               RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
1922             END IF;
1923           END IF;
1924           SELECT first_pty_org_id ,
1925                  related_doc_date,
1926                  adjusted_doc_date,
1927                  trx_date,
1928                  provnl_tax_determination_date
1929           INTO   l_first_pty_org_id,
1930                  l_related_doc_date,
1931                  l_adjusted_doc_date,
1932                  l_trx_date,
1933                  l_prov_tax_det_date
1934            FROM  ZX_LINES_DET_FACTORS
1935           WHERE  application_id   = p_application_id
1936             AND  entity_code      = p_entity_code
1937             AND  event_class_code = p_event_class_code
1938             AND  trx_id           = p_trx_id
1939             AND  rownum           = 1;
1940     END;
1941     --Bugfix 4486946; on-the-fly upgrade end
1942 
1943     l_effective_date := get_effective_date (l_related_doc_date,
1944                                             l_prov_tax_det_date,
1945                                             l_adjusted_doc_date,
1946                                             l_trx_date
1947                                            );
1948 
1949 
1950     ZX_SECURITY.set_security_context(l_first_pty_org_id,
1951                                      l_effective_date,
1952                                      l_return_status
1953                                     );
1954 
1955     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1956       x_return_status := l_return_status;
1957       IF l_return_status = FND_API.G_RET_STS_ERROR THEN
1958         l_context_info_rec.APPLICATION_ID   := p_application_id;
1959         l_context_info_rec.ENTITY_CODE      := p_entity_code;
1960         l_context_info_rec.EVENT_CLASS_CODE := p_event_class_code;
1961         l_context_info_rec.TRX_ID           := p_trx_id;
1962         ZX_API_PUB.add_msg(p_context_info_rec  =>  l_context_info_rec);
1963       END IF;
1964       RETURN;
1965     END IF;
1966 
1967     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1968       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||
1969           '.END',G_PKG_NAME||': '||l_api_name||'()-'||
1970           ', RETURN_STATUS = ' || l_return_status);
1971     END IF;
1972 
1973   EXCEPTION
1974     WHEN OTHERS THEN
1975       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1976       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
1977          FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,
1978            'Data is expected to be in eBTax repository for this call. Please CHECK your sequence of calls to eBTax '||
1979            SQLERRM);
1980       END IF;
1981   END set_security_context;
1982 
1983 ----------------------------------------------------------------------
1984 --  PRIVATE PROCEDURE
1985 --  set_security_context
1986 --
1987 --  DESCRIPTION
1988 --  Call set security context directly; need not return to event class rec
1989 --
1990 --  CALLED BY
1991 --   reverse_document
1992 -----------------------------------------------------------------------
1993   PROCEDURE set_security_context
1994   ( x_return_status   OUT NOCOPY VARCHAR2,
1995     p_event_class_rec IN         ZX_API_PUB.event_class_rec_type
1996   )IS
1997   l_api_name          CONSTANT    VARCHAR2(30):= 'SET_SECURITY_CONTEXT';
1998   l_effective_date                DATE;
1999   l_related_doc_date              DATE;
2000   l_trx_date                      DATE;
2001   l_prov_tax_det_date             DATE;
2002   l_adjusted_doc_date             DATE;
2003   l_legal_entity_id               NUMBER;
2004   l_ou_id                         NUMBER;
2005   l_application_id                NUMBER;
2006   l_entity_code                   VARCHAR2(30);
2007   l_event_class_code              VARCHAR2(30);
2008   l_trx_id                        NUMBER;
2009   l_return_status                 VARCHAR2(1);
2010   l_upg_trx_info_rec              ZX_ON_FLY_TRX_UPGRADE_PKG.zx_upg_trx_info_rec_type;
2011   l_context_info_rec              ZX_API_PUB.context_info_rec_type;
2012 
2013   BEGIN
2014     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2015       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
2016     END IF;
2017 
2018     x_return_status := FND_API.G_RET_STS_SUCCESS;
2019 
2020     BEGIN
2021       SELECT /*+ INDEX(ZX_REV_TRX_HEADERS_GT ZX_REV_TRX_HEADERS_GT_U1) INDEX(ZX_REVERSE_TRX_LINES_GT ZX_REVERSE_TRX_LINES_GT_U1) */
2022            hdrgt.legal_entity_id ,
2023            hdrgt.internal_organization_id,
2024            zl.related_doc_date,
2025            zl.adjusted_doc_date,
2026            zl.trx_date,
2027            zl.provnl_tax_determination_date,
2028            hdrgt.reversing_appln_id ,
2029            hdrgt.reversing_entity_code,
2030            hdrgt.reversing_evnt_cls_code,
2031            hdrgt.reversing_trx_id
2032       INTO l_legal_entity_id,
2033            l_ou_id,
2034            l_related_doc_date,
2035            l_adjusted_doc_date,
2036            l_trx_date,
2037            l_prov_tax_det_date,
2038            l_application_id,
2039            l_entity_code,
2040            l_event_class_code,
2041            l_trx_id
2042       FROM ZX_REV_TRX_HEADERS_GT hdrgt,
2043            ZX_REVERSE_TRX_LINES_GT lngt,
2044            ZX_LINES_DET_FACTORS zl
2045      WHERE hdrgt.reversing_appln_id      = p_event_class_rec.application_id
2046        AND hdrgt.reversing_entity_code   = p_event_class_rec.entity_code
2047        AND hdrgt.reversing_evnt_cls_code = p_event_class_rec.event_class_code
2048        AND hdrgt.reversing_trx_id        = p_event_class_rec.trx_id
2049        AND lngt.reversing_trx_id         = hdrgt.reversing_trx_id
2050        AND lngt.reversing_appln_id       = hdrgt.reversing_appln_id
2051        AND lngt.reversing_entity_code    = hdrgt.reversing_entity_code
2052        AND lngt.reversing_evnt_cls_code  = hdrgt.reversing_evnt_cls_code
2053        AND zl.application_id             = lngt.reversed_appln_id
2054        AND zl.entity_code                = lngt.reversed_entity_code
2055        AND zl.event_class_code           = lngt.reversed_evnt_cls_code
2056        AND zl.trx_id                     = lngt.reversed_trx_id
2057        AND zl.trx_line_id                = lngt.reversed_trx_line_id
2058        AND zl.trx_level_type             = lngt.reversed_trx_level_type
2059        AND rownum = 1; --bug6083282
2060 
2061 
2062     --Bugfix 4486946 -Call on the fly upgrade if the transaction if not found
2063     EXCEPTION
2064         WHEN NO_DATA_FOUND THEN
2065           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2066              FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2067                'Call on-the-fly upgrade since transaction does not exist in repository for trx id: '||to_char(p_event_class_rec.trx_id));
2068           END IF;
2069           l_upg_trx_info_rec.application_id   := p_event_class_rec.application_id;
2070           l_upg_trx_info_rec.entity_code      := p_event_class_rec.entity_code;
2071           l_upg_trx_info_rec.event_class_code := p_event_class_rec.event_class_code;
2072           l_upg_trx_info_rec.trx_id           := p_event_class_rec.trx_id;
2073           ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly(p_upg_trx_info_rec   =>  l_upg_trx_info_rec,
2074                                                        x_return_status      =>  l_return_status
2075                                                       );
2076           IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2077             IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2078               FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,G_PKG_NAME||': '||l_api_name||':ZX_ON_FLY_TRX_UPGRADE_PKG.upgrade_trx_on_fly returned errors');
2079             END IF;
2080             IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2081               RAISE FND_API.G_EXC_ERROR;
2082             ELSIF l_return_status = FND_API.G_RET_STS_UNEXP_ERROR THEN
2083               RAISE FND_API.G_EXC_UNEXPECTED_ERROR;
2084             END IF;
2085           END IF;
2086           SELECT /*+ INDEX(ZX_REV_TRX_HEADERS_GT ZX_REV_TRX_HEADERS_GT_U1) INDEX(ZX_REVERSE_TRX_LINES_GT ZX_REVERSE_TRX_LINES_GT_U1) */
2087              hdrgt.legal_entity_id ,
2088              hdrgt .internal_organization_id,
2089              zl.related_doc_date,
2090              zl.adjusted_doc_date,
2091              zl.trx_date,
2092              zl.provnl_tax_determination_date,
2093              hdrgt.reversing_appln_id ,
2094              hdrgt.reversing_entity_code,
2095              hdrgt.reversing_evnt_cls_code,
2096              hdrgt.reversing_trx_id
2097         INTO l_legal_entity_id,
2098              l_ou_id,
2099              l_related_doc_date,
2100              l_adjusted_doc_date,
2101              l_trx_date,
2102              l_prov_tax_det_date,
2103              l_application_id,
2104              l_entity_code,
2105              l_event_class_code,
2106              l_trx_id
2107         FROM ZX_REV_TRX_HEADERS_GT hdrgt,
2108              ZX_REVERSE_TRX_LINES_GT lngt,
2109              ZX_LINES_DET_FACTORS zl
2110        WHERE hdrgt.reversing_appln_id      = p_event_class_rec.application_id
2111          AND hdrgt.reversing_entity_code   = p_event_class_rec.entity_code
2112          AND hdrgt.reversing_evnt_cls_code = p_event_class_rec.event_class_code
2113          AND hdrgt.reversing_trx_id        = p_event_class_rec.trx_id
2114          AND lngt.reversing_trx_id         = hdrgt.reversing_trx_id
2115          AND lngt.reversing_appln_id       = hdrgt.reversing_appln_id
2116          AND lngt.reversing_entity_code    = hdrgt.reversing_entity_code
2117          AND lngt.reversing_evnt_cls_code  = hdrgt.reversing_evnt_cls_code
2118          AND zl.application_id             = lngt.reversed_appln_id
2119          AND zl.entity_code                = lngt.reversed_entity_code
2120          AND zl.event_class_code           = lngt.reversed_evnt_cls_code
2121          AND zl.trx_id                     = lngt.reversed_trx_id
2122          AND zl.trx_line_id                = lngt.reversed_trx_line_id
2123          AND zl.trx_level_type             = lngt.reversed_trx_level_type;
2124     END;
2125     --Bugfix 4486946; on-the-fly upgrade end
2126 
2127     l_effective_date := get_effective_date(l_related_doc_date,
2128                                            l_prov_tax_det_date,
2129                                            l_adjusted_doc_date,
2130                                            l_trx_date
2131                                           );
2132 
2133     ZX_SECURITY.set_security_context(l_legal_entity_id,
2134                                      l_ou_id,
2135                                      l_effective_date,
2136                                      l_return_status
2137                                     );
2138 
2139     IF x_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2140       x_return_status := l_return_status;
2141       IF l_return_status = FND_API.G_RET_STS_ERROR THEN
2142         l_context_info_rec.APPLICATION_ID   := p_event_class_rec.APPLICATION_ID;
2143         l_context_info_rec.ENTITY_CODE      := p_event_class_rec.ENTITY_CODE;
2144         l_context_info_rec.EVENT_CLASS_CODE := p_event_class_rec.EVENT_CLASS_CODE;
2145         l_context_info_rec.TRX_ID           := p_event_class_rec.TRX_ID;
2146         ZX_API_PUB.add_msg(p_context_info_rec  =>  l_context_info_rec);
2147       END IF;
2148       RETURN;
2149     END IF;
2150 
2151     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2152       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||
2153          '.END',G_PKG_NAME||': '||l_api_name||'()-' ||
2154          ', RETURN_STATUS = ' || l_return_status);
2155     END IF;
2156 
2157    EXCEPTION
2158      WHEN OTHERS THEN
2159       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2160       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
2161          FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,
2162            'Data is expected to be in eBTax repository for this call. Please CHECK your sequence of calls to eBTax '||
2163            SQLERRM);
2164       END IF;
2165   END set_security_context;
2166 
2167 /*----------------------------------------------------------------------------*
2168  |   PUBLIC  FUNCTIONS/PROCEDURES                                             |
2169  *----------------------------------------------------------------------------*/
2170 
2171 -----------------------------------------------------------------------
2172 --  PUBLIC FUNCTION
2173 --  is_doc_to_be_recorded
2174 --
2175 --  DESCRIPTION
2176 --  Determine if document should be recorded
2177 --
2178 --  CALLED BY
2179 --
2180 -----------------------------------------------------------------------
2181 Function is_doc_to_be_recorded
2182   ( p_application_id    IN NUMBER,
2183     p_entity_code       IN VARCHAR2,
2184     p_event_class_code  IN VARCHAR2,
2185     p_quote_flag        IN VARCHAR2,
2186     x_return_status     OUT NOCOPY VARCHAR2
2187    )RETURN VARCHAR2 IS
2188    l_api_name           CONSTANT VARCHAR2(30) := 'IS_DOC_TO_BE_RECORDED';
2189    l_record_flag        VARCHAR2(1);
2190 
2191   BEGIN
2192     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2193       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
2194     END IF;
2195 
2196     x_return_status := FND_API.G_RET_STS_SUCCESS;
2197 
2198     SELECT record_flag
2199      INTO l_record_flag
2200      FROM ZX_EVNT_CLS_MAPPINGS
2201     WHERE application_id = p_application_id
2202       AND entity_code = p_entity_code
2203       AND event_class_code = p_event_class_code;
2204 
2205     IF l_record_flag = 'Y' THEN
2206       IF p_quote_Flag = 'Y' THEN
2207         l_record_flag := 'N';
2208       END IF;
2209     END IF;
2210 
2211     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2212       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||
2213          '.END',G_PKG_NAME||': '||l_api_name||'()-' ||
2214          ', Record Flag = ' || l_record_flag ||
2215          ', RETURN_STATUS = ' || x_return_status);
2216 
2217     END IF;
2218 
2219     RETURN l_record_flag;
2220 
2221     EXCEPTION
2222       WHEN OTHERS THEN
2223       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2224       IF ( G_LEVEL_UNEXPECTED >= G_CURRENT_RUNTIME_LEVEL) THEN
2225          FND_LOG.STRING(G_LEVEL_UNEXPECTED,G_MODULE_NAME||l_api_name,SQLERRM);
2226       END IF;
2227       RETURN l_record_flag;
2228 END is_doc_to_be_recorded;
2229 
2230 
2231 -----------------------------------------------------------------------
2232 --  PUBLIC PROCEDURE
2233 --  Calculate_Tax
2234 --
2235 --  DESCRIPTION
2236 --  Validates and initializes parameters for calculate_tax published service
2237 --
2238 --  CALLED BY
2239 --    ZX_API_PUB.calculate_tax
2240 -----------------------------------------------------------------------
2241   PROCEDURE Calculate_Tax
2242   ( x_return_status    OUT    NOCOPY VARCHAR2,
2243     p_event_class_rec  IN OUT NOCOPY ZX_API_PUB.event_class_rec_type
2244   )IS
2245   l_api_name            CONSTANT  VARCHAR2(30):= 'CALCULATE_TAX';
2246   l_return_status                 VARCHAR2(30);
2247   l_effective_date                DATE;
2248   l_ship_from_location_id         NUMBER;
2249   l_bill_from_location_id         NUMBER;
2250   l_ship_to_location_id           NUMBER;
2251   l_bill_to_location_id           NUMBER;
2252 
2253   BEGIN
2254     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2255       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
2256     END IF;
2257 
2258     x_return_status := FND_API.G_RET_STS_SUCCESS;
2259     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
2260 
2261     /* ----------------------------------------------------------------------+
2262      |      Initializing the tax regime dtl procedures                       |
2263      + ----------------------------------------------------------------------*/
2264      ZX_GLOBAL_STRUCTURES_PKG.Init_Tax_Regime_Tbl;
2265 
2266      ZX_GLOBAL_STRUCTURES_PKG.Init_Detail_Tax_Regime_Tbl;
2267 
2268     /* ----------------------------------------------------------------------+
2269      |      Get Tax Event Class                                              |
2270      + ----------------------------------------------------------------------*/
2271      get_tax_event_class (l_return_status
2272                           ,p_event_class_rec
2273                          );
2274 
2275      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2276        x_return_status := l_return_status;
2277        RETURN;
2278      END IF;
2279 
2280     IF ZX_API_PUB.G_DATA_TRANSFER_MODE <> 'TAB' THEN
2281 
2282      /* ----------------------------------------------------------------------+
2283       |  Determine effective date                                             |
2284       + ----------------------------------------------------------------------*/
2285      determine_effective_date(p_event_class_rec,
2286                               l_effective_date,
2287                               l_return_status
2288                              );
2289 
2290      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2291         x_return_status := l_return_status;
2292         RETURN;
2293      END IF;
2294 
2295     /* ----------------------------------------------------------------------+
2296      | Bug 3129063 -      Setting the Security Context for Subscription      |
2297      + ----------------------------------------------------------------------*/
2298      get_tax_subscriber(p_event_class_rec,
2299 	                l_effective_date,
2300                         l_return_status
2301                        );
2302 
2303      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2304        x_return_status := l_return_status;
2305        RETURN;
2306      END IF;
2307 
2308     /* ----------------------------------------------------------------------+
2309      |      Get Tax Event Type                                               |
2310      + ----------------------------------------------------------------------*/
2311      get_tax_event_type (l_return_status
2312                          ,p_event_class_rec.event_class_code
2313                          ,p_event_class_rec.application_id
2314                          ,p_event_class_rec.entity_code
2315                          ,p_event_class_rec.event_type_code
2316                          ,p_event_class_rec.tax_event_class_code
2317                          ,p_event_class_rec.tax_event_type_code
2318                          ,p_event_class_rec.doc_status_code
2319                          );
2320 
2321      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2322        x_return_status := l_return_status;
2323        RETURN;
2324      END IF;
2325 
2326     /* ----------------------------------------------------------------------+
2327      |      Populate Event Class Options                                     |
2328      + ----------------------------------------------------------------------*/
2329      populate_event_class_options(l_return_status,
2330                                   l_effective_date,
2331                                   p_event_class_rec
2332                                  );
2333 
2334      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2335        x_return_status := l_return_status;
2336        RETURN;
2337      END IF;
2338 
2339    END IF; -- ZX_API_PUB.g_data_tranfer_mode <> 'TAB'
2340 
2341      /* ----------------------------------------------------------------------+
2342       |      Populate Application Product Options                             |
2343       +----------------------------------------------------------------------*/
2344      populate_appl_product_options(l_return_status,
2345                                    p_event_class_rec
2346                                    );
2347 
2348      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2349        x_return_status := l_return_status;
2350        RETURN;
2351      END IF;
2352 
2353     -- populate global event class record structure
2354     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := p_event_class_rec;
2355 
2356     /* ----------------------------------------------------------------------+
2357      | The below logic needs not be executed for calculate tax called by     |
2358      | products uptaking the determining factors UI since the values of      |
2359 	 | rounding parties are already available in zx_lines_det_factors.       |
2360 	 + ----------------------------------------------------------------------*/
2361 
2362     /* ----------------------------------------------------------------------+
2363      |      Get the locations for parties and their ptp ids                  |
2364      + ----------------------------------------------------------------------*/
2365      IF ZX_API_PUB.G_DATA_TRANSFER_MODE = 'PLS' THEN
2366         get_loc_id_and_ptp_ids( p_event_class_rec  => p_event_class_rec,
2367                                 p_trx_line_index   => NULL,
2368                                 x_return_status    => l_return_status
2369                               );
2370 
2371         IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2372           x_return_status := l_return_status;
2373           RETURN;
2374         END IF;
2375      END IF;
2376      /* ----------------------------------------------------------------------+
2377       |      Check Required parameters - Header and Line level                |
2378       + ----------------------------------------------------------------------*/
2379       IF ZX_API_PUB.G_DATA_TRANSFER_MODE = 'TAB' THEN
2380          ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_headers_tbl(l_return_status,
2381                                                             p_event_class_rec
2382                                                            );
2383 
2384          IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2385            x_return_status := l_return_status;
2386            RETURN;
2387          END IF;
2388 
2389          ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_line_tbl(l_return_status,
2390                                                          p_event_class_rec
2391                                                          );
2392          IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2393            x_return_status := l_return_status;
2394            RETURN;
2395          END IF;
2396       ELSIF ZX_API_PUB.G_DATA_TRANSFER_MODE = 'PLS' THEN
2397           ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_lines(l_return_status,
2398                                                        p_event_class_rec
2399                                                       );
2400 
2401           IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2402             x_return_status := l_return_status;
2403             RETURN;
2404           END IF;
2405       END IF;
2406 
2407     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2408       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2409           '  application_id: '||p_event_class_rec.application_id||
2410           ', entity_code: '||p_event_class_rec.entity_code||
2411           ', event_class_code: '||p_event_class_rec.event_class_code||
2412           ', internal_organization_id: '||p_event_class_rec.internal_organization_id||
2413           ', legal_entity_id: '||p_event_class_rec.legal_entity_id||
2414           ', first_pty_org_id: '||p_event_class_rec.first_pty_org_id||
2415           ', ledger_id: '||p_event_class_rec.ledger_id||
2416           ', reference_application_id: '||p_event_class_rec.reference_application_id||
2417           ', event_type_code: '||p_event_class_rec.event_type_code||
2418           ', trx_id: '||p_event_class_rec.trx_id||
2419           ', trx_date: '||p_event_class_rec.trx_date||
2420           ', rel_doc_date: '||p_event_class_rec.rel_doc_date||
2421           ', trx_currency_code: '||p_event_class_rec.trx_currency_code||
2422           ', currency_conversion_type: '||p_event_class_rec.currency_conversion_type||
2423           ', currency_conversion_rate: '||p_event_class_rec.currency_conversion_rate||
2424           ', currency_conversion_date: '||p_event_class_rec.currency_conversion_date||
2425           ', rounding_ship_to_party_id: '||p_event_class_rec.rounding_ship_to_party_id||
2426           ', rounding_ship_from_party_id: '||p_event_class_rec.rounding_ship_from_party_id||
2427           ', rounding_bill_to_party_id: '||p_event_class_rec.rounding_bill_to_party_id||
2428           ', rounding_bill_from_party_id: '||p_event_class_rec.rounding_bill_from_party_id||
2429           ', rndg_ship_to_party_site_id: '||p_event_class_rec.rndg_ship_to_party_site_id||
2430           ', rndg_ship_from_party_site_id: '||p_event_class_rec.rndg_ship_from_party_site_id||
2431           ', rndg_bill_to_party_site_id: '||p_event_class_rec.rndg_bill_to_party_site_id||
2432           ', rndg_bill_from_party_site_id: '||p_event_class_rec.rndg_bill_from_party_site_id||
2433           ', tax_event_class_code: '||p_event_class_rec.tax_event_class_code||
2434           ', tax_event_type_code: '||p_event_class_rec.tax_event_type_code||
2435           ', doc_status_code: '||p_event_class_rec.doc_status_code||
2436           ', det_factor_templ_code: '||p_event_class_rec.det_factor_templ_code||
2437           ', default_rounding_level_code: '||p_event_class_rec.default_rounding_level_code||
2438           ', rounding_level_hier1: '||p_event_class_rec.rounding_level_hier_1_code||
2439           ', rounding_level_hier2: '||p_event_class_rec.rounding_level_hier_2_code||
2440           ', rounding_level_hier3: '||p_event_class_rec.rounding_level_hier_3_code||
2441           ', rounding_level_hier4: '||p_event_class_rec.rounding_level_hier_4_code||
2442           ', rdng_ship_to_pty_tx_prof_id: '||p_event_class_rec.rdng_ship_to_pty_tx_prof_id||
2443           ', rdng_ship_from_pty_tx_prof_id: '||p_event_class_rec.rdng_ship_from_pty_tx_prof_id||
2444           ', rdng_bill_to_pty_tx_prof_id: '||p_event_class_rec.rdng_bill_to_pty_tx_prof_id||
2445           ', rdng_bill_from_pty_tx_prof_id: '||p_event_class_rec.rdng_bill_from_pty_tx_prof_id||
2446           ', rdng_ship_to_pty_tx_p_st_id: '||p_event_class_rec.rdng_ship_to_pty_tx_p_st_id||
2447           ', rdng_ship_from_pty_tx_p_st_id: '||p_event_class_rec.rdng_ship_from_pty_tx_p_st_id||
2448           ', rdng_bill_to_pty_tx_p_st_id: '||p_event_class_rec.rdng_bill_to_pty_tx_p_st_id||
2449           ', rdng_bill_from_pty_tx_p_st_id: '||p_event_class_rec.rdng_bill_from_pty_tx_p_st_id||
2450           ', allow_manual_lin_recalc_flag: '||p_event_class_rec.allow_manual_lin_recalc_flag||
2451           ', allow_manual_lines_flag: '||p_event_class_rec.allow_manual_lines_flag||
2452           ', allow_override_flag: '||p_event_class_rec.allow_override_flag||
2453           ', enforce_tax_from_acct_flag: '||p_event_class_rec.enforce_tax_from_acct_flag||
2454           ', perform_additional_applicability_for_import_flag: '||p_event_class_rec.perf_addnl_appl_for_imprt_flag||
2455           ', record_flag: '||p_event_class_rec.record_flag||
2456           ', quote_flag: '||p_event_class_rec.quote_flag||
2457           ', normal_sign_flag: '||p_event_class_rec.normal_sign_flag||
2458           ', offset_tax_basis_code: '||p_event_class_rec.offset_tax_basis_code||
2459           ', tax_tolerance: '||p_event_class_rec.tax_tolerance||
2460           ', tax_tol_amt_range: '||p_event_class_rec.tax_tol_amt_range ||
2461           ', allow_offset_tax_calc_flag: '||p_event_class_rec.allow_offset_tax_calc_flag||
2462           ', self_assess_tax_lines_flag: '||p_event_class_rec.self_assess_tax_lines_flag||
2463           ', tax_recovery_flag: '||p_event_class_rec.tax_recovery_flag||
2464           ', allow_cancel_tax_lines_flag: '||p_event_class_rec.allow_cancel_tax_lines_flag||
2465           ', allow_man_tax_only_lines_flag: '||p_event_class_rec.allow_man_tax_only_lines_flag||
2466           ', enable_mrc_flag: '||p_event_class_rec.enable_mrc_flag||
2467           ', tax_reporting_flag: '||p_event_class_rec.tax_reporting_flag||
2468           ', enter_ovrd_incl_tax_lines_flag: '||p_event_class_rec.enter_ovrd_incl_tax_lines_flag||
2469           ', ctrl_eff_ovrd_calc_lines_flag: '||p_event_class_rec.ctrl_eff_ovrd_calc_lines_flag||
2470           ', summarization_flag: '||p_event_class_rec.summarization_flag||
2471           ', retain_summ_tax_line_id_flag: '||p_event_class_rec.retain_summ_tax_line_id_flag||
2472           ', tax_variance_calc_flag: '||p_event_class_rec.tax_variance_calc_flag||
2473           ', prod_family_grp_code: '||p_event_class_rec.prod_family_grp_code||
2474           ', record_for_partners_flag: '||p_event_class_rec.record_for_partners_flag||
2475           ', manual_lines_for_partner_flag: '||p_event_class_rec.manual_lines_for_partner_flag||
2476           ', man_tax_only_lin_for_ptnr_flag: '||p_event_class_rec.man_tax_only_lin_for_ptnr_flag||
2477           ', always_use_ebtax_for_calc_flag: '||p_event_class_rec.always_use_ebtax_for_calc_flag||
2478           ', enforce_tax_from_ref_doc_flag: '||p_event_class_rec.enforce_tax_from_ref_doc_flag||
2479           ', process_for_applicability_flag: '||p_event_class_rec.process_for_applicability_flag||
2480           ', allow_exemptions_flag: '||p_event_class_rec.allow_exemptions_flag||
2481           ', sup_cust_acct_type: '||p_event_class_rec.sup_cust_acct_type||
2482           ', intgrtn_det_factors_ui_flag: '||p_event_class_rec.intgrtn_det_factors_ui_flag||
2483           ', exmptn_pty_basis_hier_1_code: '||p_event_class_rec.exmptn_pty_basis_hier_1_code||
2484           ', exmptn_pty_basis_hier_2_code: '||p_event_class_rec.exmptn_pty_basis_hier_2_code||
2485           ', tax_method_code: '||p_event_class_rec.tax_method_code||
2486           ', inclusive_tax_used_flag: '||p_event_class_rec.inclusive_tax_used_flag||
2487           ', tax_use_customer_exempt_flag: '||p_event_class_rec.tax_use_customer_exempt_flag||
2488           ', tax_use_product_exempt_flag: '||p_event_class_rec.tax_use_product_exempt_flag||
2489           ', tax_use_loc_exc_rate_flag: '||p_event_class_rec.tax_use_loc_exc_rate_flag||
2490           ', tax_allow_compound_flag: '||p_event_class_rec.tax_allow_compound_flag||
2491           ', use_tax_classification_flag: '||p_event_class_rec.use_tax_classification_flag||
2492           ', allow_tax_rounding_ovrd_flag: '||p_event_class_rec.allow_tax_rounding_ovrd_flag||
2493           ', home_country_default_flag: '||p_event_class_rec.home_country_default_flag ||
2494           ', header_level_currency_flag: '||p_event_class_rec.header_level_currency_flag||
2495           ', source_process_for_applicability_flag: '||p_event_class_rec.source_process_for_appl_flag||
2496           ', RETURN_STATUS = ' || x_return_status);
2497     END IF;
2498 
2499     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2500       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
2501     END IF;
2502   END calculate_tax;
2503 
2504 -----------------------------------------------------------------------
2505 --  PUBLIC PROCEDURE
2506 --  import_document_with_tax
2507 --
2508 --  DESCRIPTION
2509 --  Validates and initializes parameters for import_document_with_tax published service
2510 --
2511 --  CALLED BY
2512 --    ZX_API_PUB.import_document_with_tax
2513 -----------------------------------------------------------------------
2514   PROCEDURE import_document_with_tax
2515   ( x_return_status    OUT    NOCOPY   VARCHAR2,
2516     p_event_class_rec  IN OUT NOCOPY   ZX_API_PUB.event_class_rec_type
2517   )IS
2518   l_api_name                      CONSTANT VARCHAR2(30) := 'IMPORT_DOCUMENT_WITH_TAX';
2519   l_return_status                 VARCHAR2(30);
2520   l_effective_date                DATE;
2521   l_ship_from_location_id         NUMBER;
2522   l_bill_from_location_id         NUMBER;
2523   l_ship_to_location_id           NUMBER;
2524   l_bill_to_location_id           NUMBER;
2525 
2526   BEGIN
2527     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2528       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
2529     END IF;
2530 
2531     x_return_status := FND_API.G_RET_STS_SUCCESS;
2532     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
2533 
2534    /* ----------------------------------------------------------------------+
2535     |      Initializing the tax regime dtl procedures                       |
2536     + ----------------------------------------------------------------------*/
2537     ZX_GLOBAL_STRUCTURES_PKG.init_tax_regime_tbl;
2538 
2539     ZX_GLOBAL_STRUCTURES_PKG.init_detail_tax_regime_tbl;
2540 
2541    /* ----------------------------------------------------------------------+
2542     |      Get Tax Event Class                                              |
2543     + ----------------------------------------------------------------------*/
2544     get_tax_event_class (l_return_status
2545                          ,p_event_class_rec
2546                         );
2547 
2548     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2549       x_return_status := l_return_status;
2550       RETURN;
2551     END IF;
2552 
2553 
2554     /* ----------------------------------------------------------------------+
2555      |      Populate Application Product Options                             |
2556      + ----------------------------------------------------------------------*/
2557      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2558        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' Populate Application product options');
2559      END IF;
2560 
2561      populate_appl_product_options(l_return_status,
2562                                    p_event_class_rec
2563                                   );
2564 
2565      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2566        x_return_status := l_return_status;
2567        RETURN;
2568      END IF;
2569 
2570      -- populate global event class record structure
2571      ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := p_event_class_rec;
2572 
2573      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2574           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2575           'application_id: '||p_event_class_rec.application_id||
2576           ', entity_code: '||p_event_class_rec.entity_code||
2577           ', event_class_code: '||p_event_class_rec.event_class_code||
2578           ', internal_organization_id: '||p_event_class_rec.internal_organization_id||
2579           ', tax_event_class_code: '||p_event_class_rec.tax_event_class_code||
2580           ', Det_Factor_Templ_Code: '||p_event_class_rec.det_factor_templ_code||
2581           ', Default_Rounding_Level_Code: '||p_event_class_rec.default_rounding_level_code||
2582           ', rounding_level_hier1: '||p_event_class_rec.rounding_level_hier_1_code||
2583           ', rounding_level_hier2: '||p_event_class_rec.rounding_level_hier_2_code||
2584           ', rounding_level_hier3: '||p_event_class_rec.rounding_level_hier_3_code||
2585           ', rounding_level_hier4: '||p_event_class_rec.rounding_level_hier_4_code||
2586           ', allow_manual_lin_recalc_flag: '||p_event_class_rec.allow_manual_lin_recalc_flag||
2587           ', allow_manual_lines_flag: '||p_event_class_rec.allow_manual_lines_flag||
2588           ', allow_override_flag: '||p_event_class_rec.allow_override_flag||
2589           ', enforce_tax_from_acct_flag: '||p_event_class_rec.enforce_tax_from_acct_flag||
2590           ', perform_additional_applicability_for_import_flag: '||p_event_class_rec.perf_addnl_appl_for_imprt_flag||
2591           ', record_flag: '||p_event_class_rec.record_flag||
2592           ', quote_flag: '||p_event_class_rec.quote_flag||
2593           ', normal_sign_flag: '||p_event_class_rec.normal_sign_flag||
2594           ', offset_tax_basis_code: '||p_event_class_rec.offset_tax_basis_code||
2595           ', allow_offset_tax_calc_flag: '||p_event_class_rec.allow_offset_tax_calc_flag||
2596           ', self_assess_tax_lines_flag: '||p_event_class_rec.self_assess_tax_lines_flag||
2597           ', tax_recovery_flag: '||p_event_class_rec.tax_recovery_flag||
2598           ', allow_cancel_tax_lines_flag: '||p_event_class_rec.allow_cancel_tax_lines_flag||
2599           ', allow_man_tax_only_lines_flag: '||p_event_class_rec.allow_man_tax_only_lines_flag||
2600           ', enable_mrc_flag: '||p_event_class_rec.enable_mrc_flag||
2601           ', tax_reporting_flag: '||p_event_class_rec.tax_reporting_flag||
2602           ', enter_ovrd_incl_tax_lines_flag: '||p_event_class_rec.enter_ovrd_incl_tax_lines_flag||
2603           ', ctrl_eff_ovrd_calc_lines_flag: '||p_event_class_rec.ctrl_eff_ovrd_calc_lines_flag||
2604           ', summarization_flag: '||p_event_class_rec.summarization_flag||
2605           ', retain_summ_tax_line_id_flag: '||p_event_class_rec.retain_summ_tax_line_id_flag||
2606           ', tax_variance_calc_flag: '||p_event_class_rec.tax_variance_calc_flag||
2607           ', prod_family_grp_code: '||p_event_class_rec.prod_family_grp_code||
2608           ', record_for_partners_flag: '||p_event_class_rec.record_for_partners_flag||
2609           ', manual_lines_for_partner_flag: '||p_event_class_rec.manual_lines_for_partner_flag||
2610           ', man_tax_only_lin_for_ptnr_flag: '||p_event_class_rec.man_tax_only_lin_for_ptnr_flag||
2611           ', always_use_ebtax_for_calc_flag: '||p_event_class_rec.always_use_ebtax_for_calc_flag||
2612           ', enforce_tax_from_ref_doc_flag: '||p_event_class_rec.enforce_tax_from_ref_doc_flag||
2613           ', process_for_applicability_flag: '||p_event_class_rec.process_for_applicability_flag||
2614           ', allow_exemptions_flag: '||p_event_class_rec.allow_exemptions_flag||
2615           ', sup_cust_acct_type: '||p_event_class_rec.sup_cust_acct_type||
2616           ', intgrtn_det_factors_ui_flag: '||p_event_class_rec.intgrtn_det_factors_ui_flag||
2617           ', exmptn_pty_basis_hier_1_code: '||p_event_class_rec.exmptn_pty_basis_hier_1_code||
2618           ', exmptn_pty_basis_hier_2_code: '||p_event_class_rec.exmptn_pty_basis_hier_2_code||
2619           ', tax_method_code: '||p_event_class_rec.tax_method_code||
2620           ', inclusive_tax_used_flag: '||p_event_class_rec.inclusive_tax_used_flag||
2621           ', tax_use_customer_exempt_flag: '||p_event_class_rec.tax_use_customer_exempt_flag||
2622           ', tax_use_product_exempt_flag: '||p_event_class_rec.tax_use_product_exempt_flag||
2623           ', tax_use_loc_exc_rate_flag: '||p_event_class_rec.tax_use_loc_exc_rate_flag||
2624           ', tax_allow_compound_flag: '||p_event_class_rec.tax_allow_compound_flag||
2625           ', use_tax_classification_flag: '||p_event_class_rec.use_tax_classification_flag||
2626           ', allow_tax_rounding_ovrd_flag: '||p_event_class_rec.allow_tax_rounding_ovrd_flag||
2627           ', home_country_default_flag: '||p_event_class_rec.home_country_default_flag ||
2628           ', header_level_currency_flag: '||p_event_class_rec.header_level_currency_flag||
2629           ', RETURN_STATUS = ' || x_return_status);
2630     END IF;
2631     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2632       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
2633     END IF;
2634   END import_document_with_tax;
2635 
2636 -----------------------------------------------------------------------
2637 --  PUBLIC PROCEDURE
2638 --  Override_Tax
2639 --
2640 --  DESCRIPTION
2641 --  Validates and initializes parameters for Override_Tax published service
2642 --
2643 --  CALLED BY
2644 --    ZX_API_PUB.Override_Tax
2645 -----------------------------------------------------------------------
2646   PROCEDURE Override_Tax
2647   ( x_return_status    OUT    NOCOPY VARCHAR2,
2648     p_override         IN     	     VARCHAR2,
2649     p_event_class_rec  IN OUT NOCOPY ZX_API_PUB.event_class_rec_type,
2650     p_trx_rec          IN            ZX_API_PUB.transaction_rec_type
2651   ) IS
2652   l_api_name                      CONSTANT VARCHAR2(30):= 'OVERRIDE_TAX';
2653   l_return_status                 VARCHAR2(30);
2654   l_effective_date                DATE;
2655   l_ship_from_location_id         NUMBER;
2656   l_bill_from_location_id         NUMBER;
2657   l_ship_to_location_id           NUMBER;
2658   l_bill_to_location_id           NUMBER;
2659 
2660   BEGIN
2661     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2662       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
2663     END IF;
2664 
2665     x_return_status := FND_API.G_RET_STS_SUCCESS;
2666     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
2667 
2668    /* ----------------------------------------------------------------------+
2669     |      Get Tax Event Class                                              |
2670     + ----------------------------------------------------------------------*/
2671     get_tax_event_class (l_return_status
2672                          ,p_event_class_rec
2673                          );
2674 
2675     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2676       x_return_status := l_return_status;
2677       RETURN;
2678     END IF;
2679 
2680 
2681    /* ----------------------------------------------------------------------+
2682     | Bug 3129063 - Setting the Security Context for Subscription           |
2683     + ----------------------------------------------------------------------*/
2684 
2685     get_tax_subscriber(p_event_class_rec,
2686                        l_return_status
2687                        );
2688 
2689     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2690       x_return_status := l_return_status;
2691       RETURN;
2692     END IF;
2693 
2694 
2695 
2696    /* ----------------------------------------------------------------------+
2697     |      Get Tax Event Type                                               |
2698     + ----------------------------------------------------------------------*/
2699     get_tax_event_type (l_return_status
2700                         ,p_event_class_rec.event_class_code
2701                         ,p_event_class_rec.application_id
2702                         ,p_event_class_rec.entity_code
2703                         ,p_event_class_rec.event_type_code
2704                         ,p_event_class_rec.tax_event_class_code
2705                         ,p_event_class_rec.tax_event_type_code
2706                         ,p_event_class_rec.doc_status_code
2707                        );
2708 
2709 
2710     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2711       x_return_status := l_return_status;
2712       RETURN;
2713     END IF;
2714 
2715 
2716    /* ----------------------------------------------------------------------+
2717     |      Check Trx Rec                                                    |
2718     + ----------------------------------------------------------------------*/
2719     ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_rec(l_return_status,
2720                                                p_trx_rec
2721                                               );
2722 
2723     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2724       x_return_status := l_return_status;
2725       RETURN;
2726     END IF;
2727 
2728 
2729    /* ----------------------------------------------------------------------+
2730     |  Determine effective date                                             |
2731     + ----------------------------------------------------------------------*/
2732     determine_effective_date(p_event_class_rec,
2733                              l_effective_date,
2734                              l_return_status
2735                             );
2736 
2737     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2738       x_return_status := l_return_status;
2739       RETURN;
2740     END IF;
2741 
2742 
2743     /* ----------------------------------------------------------------------+
2744      |      Populate Event Class Options                                     |
2745      + ----------------------------------------------------------------------*/
2746     populate_event_class_options(l_return_status,
2747                                  l_effective_date,
2748                                  p_event_class_rec
2749                                  );
2750 
2751     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2752       x_return_status := l_return_status;
2753       RETURN;
2754     END IF;
2755 
2756    /* Bug 5382069 */
2757    -- populate global event class record structure
2758       p_event_class_rec.quote_flag := 'N';
2759 
2760     /* ----------------------------------------------------------------------+
2761      |      Override Flag                                                    |
2762      + ----------------------------------------------------------------------*/
2763      IF p_override is NULL THEN
2764        x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2765        IF ( G_LEVEL_EXCEPTION >= G_CURRENT_RUNTIME_LEVEL) THEN
2766           FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,'Override Level is required');
2767         END IF;
2768        RETURN;
2769      ELSE
2770        p_event_class_rec.override_level := p_override;
2771      END IF;
2772 
2773     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := p_event_class_rec;
2774 
2775     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2776           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2777           'application_id: '||p_event_class_rec.application_id||
2778           ', entity_code: '||p_event_class_rec.entity_code||
2779           ', event_class_code: '||p_event_class_rec.event_class_code||
2780           ', internal_organization_id: '||p_event_class_rec.internal_organization_id||
2781           ', legal_entity_id: '||p_event_class_rec.legal_entity_id||
2782           ', first_pty_org_id: '||p_event_class_rec.first_pty_org_id||
2783           ', reference_application_id: '||p_event_class_rec.reference_application_id||
2784           ', event_type_code: '||p_event_class_rec.event_type_code||
2785           ', trx_id: '||p_event_class_rec.trx_id||
2786           ', trx_date: '||p_event_class_rec.trx_date||
2787           ', rel_doc_date: '||p_event_class_rec.rel_doc_date||
2788           ', trx_currency_code: '||p_event_class_rec.trx_currency_code||
2789           ', tax_event_class_code: '||p_event_class_rec.tax_event_class_code||
2790           ', tax_event_type_code: '||p_event_class_rec.tax_event_type_code||
2791           ', doc_status_code: '||p_event_class_rec.doc_status_code||
2792           ', Det_Factor_Templ_Code: '||p_event_class_rec.det_factor_templ_code||
2793           ', Default_Rounding_Level_Code: '||p_event_class_rec.default_rounding_level_code||
2794           ', rounding_level_hier1: '||p_event_class_rec.rounding_level_hier_1_code||
2795           ', rounding_level_hier2: '||p_event_class_rec.rounding_level_hier_2_code||
2796           ', rounding_level_hier3: '||p_event_class_rec.rounding_level_hier_3_code||
2797           ', rounding_level_hier4: '||p_event_class_rec.rounding_level_hier_4_code||
2798           ', rdng_ship_to_pty_tx_prof_id: '||p_event_class_rec.rdng_ship_to_pty_tx_prof_id||
2799           ', rdng_ship_from_pty_tx_prof_id: '||p_event_class_rec.rdng_ship_from_pty_tx_prof_id||
2800           ', rdng_bill_to_pty_tx_prof_id: '||p_event_class_rec.rdng_bill_to_pty_tx_prof_id||
2801           ', rdng_bill_from_pty_tx_prof_id: '||p_event_class_rec.rdng_bill_from_pty_tx_prof_id||
2802           ', rdng_ship_to_pty_tx_p_st_id: '||p_event_class_rec.rdng_ship_to_pty_tx_p_st_id||
2803           ', rdng_ship_from_pty_tx_p_st_id: '||p_event_class_rec.rdng_ship_from_pty_tx_p_st_id||
2804           ', rdng_bill_to_pty_tx_p_st_id: '||p_event_class_rec.rdng_bill_to_pty_tx_p_st_id||
2805           ', rdng_bill_from_pty_tx_p_st_id: '||p_event_class_rec.rdng_bill_from_pty_tx_p_st_id||
2806           ', allow_manual_lin_recalc_flag: '||p_event_class_rec.allow_manual_lin_recalc_flag||
2807           ', allow_manual_lines_flag: '||p_event_class_rec.allow_manual_lines_flag||
2808           ', allow_override_flag: '||p_event_class_rec.allow_override_flag||
2809           ', enforce_tax_from_acct_flag: '||p_event_class_rec.enforce_tax_from_acct_flag||
2810           ', perform_additional_applicability_for_import_flag: '||p_event_class_rec.perf_addnl_appl_for_imprt_flag||
2811           ', record_flag: '||p_event_class_rec.record_flag||
2812           ', quote_flag: '||p_event_class_rec.quote_flag||
2813           ', normal_sign_flag: '||p_event_class_rec.normal_sign_flag||
2814           ', offset_tax_basis_code: '||p_event_class_rec.offset_tax_basis_code||
2815           ', tax_tolerance: '||p_event_class_rec.tax_tolerance||
2816           ', tax_tol_amt_range: '||p_event_class_rec.tax_tol_amt_range ||
2817           ', reference_application_id: '||p_event_class_rec.reference_application_id||
2818           ', offset_tax_basis_code: '||p_event_class_rec.offset_tax_basis_code||
2819           ', allow_offset_tax_calc_flag: '||p_event_class_rec.allow_offset_tax_calc_flag||
2820           ', self_assess_tax_lines_flag: '||p_event_class_rec.self_assess_tax_lines_flag||
2821           ', tax_recovery_flag: '||p_event_class_rec.tax_recovery_flag||
2822           ', allow_cancel_tax_lines_flag: '||p_event_class_rec.allow_cancel_tax_lines_flag||
2823           ', allow_man_tax_only_lines_flag: '||p_event_class_rec.allow_man_tax_only_lines_flag||
2824           ', enable_mrc_flag: '||p_event_class_rec.enable_mrc_flag||
2825           ', tax_reporting_flag: '||p_event_class_rec.tax_reporting_flag||
2826           ', enter_ovrd_incl_tax_lines_flag: '||p_event_class_rec.enter_ovrd_incl_tax_lines_flag||
2827           ', ctrl_eff_ovrd_calc_lines_flag: '||p_event_class_rec.ctrl_eff_ovrd_calc_lines_flag||
2828           ', summarization_flag: '||p_event_class_rec.summarization_flag||
2829           ', retain_summ_tax_line_id_flag: '||p_event_class_rec.retain_summ_tax_line_id_flag||
2830           ', tax_variance_calc_flag: '||p_event_class_rec.tax_variance_calc_flag||
2831           ', prod_family_grp_code: '||p_event_class_rec.prod_family_grp_code||
2832           ', record_for_partners_flag: '||p_event_class_rec.record_for_partners_flag||
2833           ', manual_lines_for_partner_flag: '||p_event_class_rec.manual_lines_for_partner_flag||
2834           ', man_tax_only_lin_for_ptnr_flag: '||p_event_class_rec.man_tax_only_lin_for_ptnr_flag||
2835           ', always_use_ebtax_for_calc_flag: '||p_event_class_rec.always_use_ebtax_for_calc_flag||
2836           ', enforce_tax_from_ref_doc_flag: '||p_event_class_rec.enforce_tax_from_ref_doc_flag||
2837           ', process_for_applicability_flag: '||p_event_class_rec.process_for_applicability_flag||
2838           ', allow_exemptions_flag: '||p_event_class_rec.allow_exemptions_flag||
2839           ', sup_cust_acct_type: '||p_event_class_rec.sup_cust_acct_type||
2840           ', intgrtn_det_factors_ui_flag: '||p_event_class_rec.intgrtn_det_factors_ui_flag||
2841           ', exmptn_pty_basis_hier_1_code: '||p_event_class_rec.exmptn_pty_basis_hier_1_code||
2842           ', exmptn_pty_basis_hier_2_code: '||p_event_class_rec.exmptn_pty_basis_hier_2_code||
2843           ', RETURN_STATUS = ' || x_return_status);
2844     END IF;
2845     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2846        FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
2847      END IF;
2848    END override_tax;
2849 
2850 -----------------------------------------------------------------------
2851 --  PUBLIC PROCEDURE
2852 --  global_document_update
2853 --
2854 --  DESCRIPTION
2855 --  Validates and initializes parameters for global_document_update published service
2856 --
2857 --  CALLED BY
2858 --    ZX_API_PUB.global_document_update
2859 -----------------------------------------------------------------------
2860   PROCEDURE Global_Document_Update
2861   ( x_return_status    OUT NOCOPY  VARCHAR2,
2862     p_event_class_rec  OUT NOCOPY  ZX_API_PUB.event_class_rec_type,
2863     p_trx_rec          IN          ZX_API_PUB.transaction_rec_type
2864   )IS
2865   l_api_name         CONSTANT VARCHAR2(30):= 'GLOBAL_DOCUMENT_UPDATE';
2866   l_return_status    VARCHAR2(30);
2867   l_ref_appln_id     NUMBER;
2868 
2869   BEGIN
2870     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2871       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
2872     END IF;
2873 
2874     x_return_status := FND_API.G_RET_STS_SUCCESS;
2875     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
2876 
2877     /*------------------------------------------------------+
2878      |   Copy to Event Class Record                         |
2879      +------------------------------------------------------*/
2880      p_event_class_rec.INTERNAL_ORGANIZATION_ID :=  p_trx_rec.INTERNAL_ORGANIZATION_ID;
2881      p_event_class_rec.APPLICATION_ID           :=  p_trx_rec.APPLICATION_ID;
2882      p_event_class_rec.ENTITY_CODE              :=  p_trx_rec.ENTITY_CODE;
2883      p_event_class_rec.EVENT_CLASS_CODE         :=  p_trx_rec.EVENT_CLASS_CODE;
2884      p_event_class_rec.EVENT_TYPE_CODE          :=  p_trx_rec.EVENT_TYPE_CODE;
2885      p_event_class_rec.TRX_ID                   :=  p_trx_rec.TRX_ID;
2886 
2887    /* ----------------------------------------------------------------------+
2888      | Bug 3129063 - Setting the Security Context for Subscription           |
2889      + ----------------------------------------------------------------------*/
2890     --IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2891     --   FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' Call GET_TAX_SUBSCRIBER');
2892     -- END IF;
2893 
2894     --get_tax_subscriber(p_event_class_rec,
2895     --                   l_return_status
2896     --                   );
2897 
2898     --IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2899     --  x_return_status := l_return_status;
2900     --  RETURN;
2901     --END IF;
2902 
2903    /* ------------------------------------------------+
2904     |      Get Tax Event Class                        |
2905     + -----------------------------------------------*/
2906     get_tax_event_class (l_return_status,
2907                          p_event_class_rec.application_id,
2908                          p_event_class_rec.entity_code,
2909                          p_event_class_rec.event_class_code,
2910                          p_event_class_rec.tax_event_class_code,
2911                          l_ref_appln_id,
2912                          p_event_class_rec.record_flag,                 -- Bug 5200373
2913                          p_event_class_rec.record_for_partners_flag,    -- Bug 5200373
2914                          p_event_class_rec.prod_family_grp_code,        -- Bug 5200373
2915                          p_event_class_rec.event_class_mapping_id,         -- Bug 5200373
2916                          p_event_class_rec.summarization_flag
2917                          );
2918 
2919     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2920       x_return_status := l_return_status;
2921       RETURN;
2922     END IF;
2923 
2924    /* ----------------------------------------------------------------------+
2925     |      Get Tax Event Type                                               |
2926     + ----------------------------------------------------------------------*/
2927     get_tax_event_type (l_return_status,
2928                         p_event_class_rec.event_class_code,
2929                         p_event_class_rec.application_id,
2930                         p_event_class_rec.entity_code,
2931                         p_event_class_rec.event_type_code,
2932                         p_event_class_rec.tax_event_class_code,
2933                         p_event_class_rec.tax_event_type_code,
2934                         p_event_class_rec.doc_status_code
2935                        );
2936 
2937     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2938       x_return_status := l_return_status;
2939       RETURN;
2940     END IF;
2941 
2942    /* ----------------------------------------------------------------------+
2943     |      Check Trx Rec                                                    |
2944     + ----------------------------------------------------------------------*/
2945     ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_rec(l_return_status,
2946                                                p_trx_rec
2947                                               );
2948 
2949     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
2950       x_return_status := l_return_status;
2951       RETURN;
2952     END IF;
2953 
2954     -- populate global event class record structure
2955     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := p_event_class_rec;
2956 
2957     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2958           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2959           'application_id: '||p_event_class_rec.application_id||
2960           ', entity_code: '||p_event_class_rec.entity_code||
2961           ', event_class_code: '||p_event_class_rec.event_class_code||
2962           ', event_type_code: '||p_event_class_rec.event_type_code||
2963           ', trx_id: '||p_event_class_rec.trx_id||
2964           ', tax_event_class_code: '||p_event_class_rec.tax_event_class_code||
2965           ', tax_event_type_code: '||p_event_class_rec.tax_event_type_code||
2966           ', doc_event_status: '||p_event_class_rec.doc_status_code||
2967           ', RETURN_STATUS = ' || x_return_status);
2968     END IF;
2969     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2970       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
2971     END IF;
2972   END global_document_update;
2973 
2974 
2975 /* ======================================================================*
2976  | PROCEDURE Mark_tax_lines_deleted:Validates the input parameters of    |
2977  |                               Mark_tax_lines_deleted published        |
2978  |                               service                                 |
2979  * ======================================================================*/
2980   PROCEDURE mark_tax_lines_deleted
2981   ( x_return_status        OUT 	NOCOPY VARCHAR2,
2982     p_transaction_line_rec IN   ZX_API_PUB.transaction_line_rec_type
2983   ) IS
2984   l_api_name       CONSTANT VARCHAR2(30):= 'MARK_TAX_LINES_DELETED';
2985   l_return_status  VARCHAR2(30);
2986 
2987   BEGIN
2988     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2989       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
2990     END IF;
2991 
2992     x_return_status := FND_API.G_RET_STS_SUCCESS;
2993 
2994     /* ----------------------------------------------------------------------+
2995      | Bug 3129063 - Setting the Security Context for Subscription           |
2996      + ----------------------------------------------------------------------*/
2997      set_security_context(p_transaction_line_rec.application_id,
2998                           p_transaction_line_rec.entity_code,
2999                           p_transaction_line_rec.event_class_code,
3000                           p_transaction_line_rec.trx_id,
3001                           l_return_status
3002                          );
3003 
3004      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3005        x_return_status := l_return_status;
3006        RETURN;
3007     END IF;
3008 
3009    /* ----------------------------------------------------------------------+
3010     |      Check Required Parameters                                        |
3011     + ----------------------------------------------------------------------*/
3012     ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_line_rec(l_return_status
3013                                                    ,p_transaction_line_rec
3014                                                    );
3015 
3016     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3017       x_return_status := l_return_status;
3018       RETURN;
3019     END IF;
3020 
3021     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3022           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3023           'application_id: '||p_transaction_line_rec.application_id||
3024           ', entity_code: '||p_transaction_line_rec.entity_code||
3025           ', event_class_code: '||p_transaction_line_rec.event_class_code||
3026           ', event_type_code: '||p_transaction_line_rec.event_type_code||
3027           ', trx_id: '||p_transaction_line_rec.trx_id||
3028           ', tax_event_class_code: '||p_transaction_line_rec.tax_event_class_code||
3029           ', tax_event_type_code: '||p_transaction_line_rec.tax_event_type_code||
3030           ', doc_event_status: '||p_transaction_line_rec.doc_event_status||
3031           ', trx_level_type: '||p_transaction_line_rec.trx_level_type||
3032           ', doc_trx_line_id: '||p_transaction_line_rec.trx_line_id||
3033           ', RETURN_STATUS = ' || x_return_status);
3034     END IF;
3035     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3036       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
3037     END IF;
3038   END mark_tax_lines_deleted;
3039 
3040 -----------------------------------------------------------------------
3041 --  PUBLIC PROCEDURE
3042 --  reverse_document
3043 --
3044 --  DESCRIPTION
3045 --  Validates and initializes parameters for reverse_document published service
3046 --
3047 --  CALLED BY
3048 --    ZX_API_PUB.reverse_document
3049 -----------------------------------------------------------------------
3050   PROCEDURE reverse_document
3051   ( x_return_status         OUT NOCOPY VARCHAR2 ,
3052     p_event_class_rec       OUT NOCOPY ZX_API_PUB.event_class_rec_type
3053   ) IS
3054     l_api_name              CONSTANT VARCHAR2(30):= 'REVERSE_DOCUMENT';
3055     l_return_status         VARCHAR2(30);
3056     l_appln_id              NUMBER;
3057     l_entity_code           VARCHAR2(30);
3058     l_evnt_cls_code         VARCHAR2(30);
3059     l_tx_evnt_cls_code      VARCHAR2(30);
3060     l_ref_appln_id          NUMBER;
3061 
3062   BEGIN
3063     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3064       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
3065     END IF;
3066 
3067     x_return_status := FND_API.G_RET_STS_SUCCESS;
3068     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
3069 
3070 
3071     /* ----------------------------------------------------------------------+
3072      |      Get Tax Event Class                                              |
3073      + ----------------------------------------------------------------------*/
3074       SELECT reversing_appln_id,
3075              reversing_entity_code,
3076              reversing_evnt_cls_code,
3077              reversing_trx_id
3078       INTO   p_event_class_rec.application_id,
3079              p_event_class_rec.entity_code,
3080              p_event_class_rec.event_class_code,
3081              p_event_class_rec.trx_id
3082       FROM   ZX_REV_TRX_HEADERS_GT
3083       WHERE  rownum = 1;
3084 
3085      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3086        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' Get tax event class');
3087      END IF;
3088 
3089     /* -----------------------------------------------------------------------+
3090      | Bug 3129063     Setting the Security Context for Subscription         |
3091      + ----------------------------------------------------------------------*/
3092 
3093      set_security_context(l_return_status,p_event_class_rec);
3094 
3095      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3096        x_return_status := l_return_status;
3097        RETURN;
3098      END IF;
3099 
3100       get_tax_event_class (l_return_status,
3101                            p_event_class_rec.application_id,
3102                            p_event_class_rec.entity_code,
3103                            p_event_class_rec.event_class_code,
3104                            p_event_class_rec.tax_event_class_code,
3105                            l_ref_appln_id,
3106                            p_event_class_rec.record_flag,              -- Bug 5200373
3107                            p_event_class_rec.record_for_partners_flag, -- Bug 5200373
3108                            p_event_class_rec.prod_family_grp_code,     -- Bug 5200373
3109                            p_event_class_rec.event_class_mapping_id,      -- Bug 5200373
3110                            p_event_class_rec.summarization_flag
3111                           );
3112 
3113       IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3114          x_return_status := l_return_status;
3115          RETURN;
3116       END IF;
3117 
3118       -- populate global event class record structure
3119       ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := p_event_class_rec;
3120 
3121       IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3122           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3123           'application_id: '||l_appln_id||
3124           ', entity_code: '||l_entity_code||
3125           ', event_class_code: '||l_evnt_cls_code||
3126           ', tax_event_class_code: '||l_tx_evnt_cls_code||
3127           ', reference_application_id: '||l_ref_appln_id||
3128           ', RETURN_STATUS = ' || x_return_status);
3129       END IF;
3130       IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3131           FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
3132       END IF;
3133 
3134   END reverse_document;
3135 
3136 -----------------------------------------------------------------------
3137 --  PUBLIC PROCEDURE
3138 --  reverse_distributions
3139 --
3140 --  DESCRIPTION
3141 --  Validates and initializes parameters for reverse_distributions published service
3142 --
3143 --  CALLED BY
3144 --    ZX_API_PUB.reverse_distributions
3145 -----------------------------------------------------------------------
3146   PROCEDURE reverse_distributions
3147   ( x_return_status         OUT NOCOPY VARCHAR2
3148   )
3149   IS
3150     l_api_name              CONSTANT VARCHAR2(30):= 'REVERSE_DISTRIBUTIONS';
3151     l_appln_id              NUMBER;
3152     l_return_status         VARCHAR2(30);
3153     l_entity_code           VARCHAR2(30);
3154     l_evnt_cls_code         VARCHAR2(30);
3155     l_tx_evnt_cls_code      VARCHAR2(30);
3156     l_ref_appln_id          NUMBER;
3157     l_trx_id                NUMBER;
3158     l_record_flag               zx_evnt_cls_mappings.record_flag%type;
3159     l_record_for_partners_flag  zx_evnt_cls_mappings.record_for_partners_flag%type;
3160     l_prod_family_grp_code      zx_evnt_cls_mappings.prod_family_grp_code%type;
3161     l_event_class_mapping_id      zx_evnt_cls_mappings.event_class_mapping_id%type;
3162     l_summarization_flag          zx_evnt_cls_mappings.summarization_flag%TYPE;
3163 
3164   BEGIN
3165 
3166     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3167       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
3168     END IF;
3169 
3170     x_return_status := FND_API.G_RET_STS_SUCCESS;
3171     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
3172 
3173     SELECT reversing_appln_id,
3174            reversing_entity_code,
3175            reversing_evnt_cls_code,
3176            reversing_trx_id
3177     INTO   l_appln_id,
3178            l_entity_code,
3179            l_evnt_cls_code,
3180            l_trx_id
3181     FROM   ZX_REVERSE_DIST_GT
3182     WHERE  rownum = 1;
3183 
3184     /* ----------------------------------------------------------------------+
3185      | Bug 3129063 - Setting the Security Context for Subscription           |
3186      + ----------------------------------------------------------------------*/
3187      set_security_context(l_appln_id,
3188                           l_entity_code,
3189                           l_evnt_cls_code,
3190                           l_trx_id,
3191                           l_return_status
3192                          );
3193 
3194      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3195        x_return_status := l_return_status;
3196        RETURN;
3197     END IF;
3198 
3199     /* ----------------------------------------------------------------------+
3200      |      Get Tax Event Class                                              |
3201      + ----------------------------------------------------------------------*/
3202       get_tax_event_class (l_return_status
3203                           ,l_appln_id
3204                           ,l_entity_code
3205                           ,l_evnt_cls_code
3206                           ,l_tx_evnt_cls_code
3207                           ,l_ref_appln_id
3208                           ,l_record_flag               -- Bug 5200373
3209                           ,l_record_for_partners_flag  -- Bug 5200373
3210                           ,l_prod_family_grp_code      -- Bug 5200373
3211                           ,l_event_class_mapping_id      -- Bug 5200373
3212                           ,l_summarization_flag
3213                           );
3214 
3215        IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3216          x_return_status := l_return_status;
3217          RETURN;
3218        END IF;
3219 
3220 
3221        IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3222           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3223           'application_id: '||l_appln_id||
3224           ', entity_code: '||l_entity_code||
3225           ', event_class_code: '||l_evnt_cls_code||
3226           ', tax_event_class_code: '||l_tx_evnt_cls_code||
3227           ', reference_application_id: '||l_ref_appln_id||
3228           ', RETURN_STATUS = ' || x_return_status);
3229         END IF;
3230 
3231         IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3232          FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
3233         END IF;
3234   END reverse_distributions;
3235 
3236 -----------------------------------------------------------------------
3237 --  PUBLIC PROCEDURE
3238 --  determine_recovery
3239 --
3240 --  DESCRIPTION
3241 --  Validates and initializes parameters for determine_recovery published service
3242 --
3243 --  CALLED BY
3244 --    ZX_API_PUB.determine_recovery
3245 -----------------------------------------------------------------------
3246   PROCEDURE determine_recovery
3247   ( x_return_status        OUT    NOCOPY VARCHAR2,
3248     p_event_class_rec      IN OUT NOCOPY ZX_API_PUB.event_class_rec_type
3249   )IS
3250   l_api_name         CONSTANT VARCHAR2(30):= 'DETERMINE_RECOVERY';
3251   l_return_status    VARCHAR2(30);
3252 
3253   BEGIN
3254     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3255       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
3256     END IF;
3257 
3258     x_return_status := FND_API.G_RET_STS_SUCCESS;
3259     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
3260 
3261     /* ----------------------------------------------------------------------+
3262      |      Get Tax Event Class                                              |
3263      + ----------------------------------------------------------------------*/
3264      get_tax_event_class (l_return_status
3265                           ,p_event_class_rec
3266                          );
3267 
3268     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3269       x_return_status := l_return_status;
3270       RETURN;
3271     END IF;
3272 
3273 
3274     -- populate global event class record structure
3275     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := p_event_class_rec;
3276 
3277     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3278           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3279           'application_id: '||p_event_class_rec.application_id||
3280           ', entity_code: '||p_event_class_rec.entity_code||
3281           ', event_class_code: '||p_event_class_rec.event_class_code||
3282           ', internal_organization_id: '||p_event_class_rec.internal_organization_id||
3283           ', legal_entity_id: '||p_event_class_rec.legal_entity_id||
3284           ', first_pty_org_id: '||p_event_class_rec.first_pty_org_id||
3285           ', event_type_code: '||p_event_class_rec.event_type_code||
3286           ', trx_id: '||p_event_class_rec.trx_id||
3287           ', tax_event_class_code: '||p_event_class_rec.tax_event_class_code||
3288           ', tax_event_type_code: '||p_event_class_rec.tax_event_type_code||
3289           ', doc_status_code: '||p_event_class_rec.doc_status_code||
3290           ', RETURN_STATUS = ' || x_return_status);
3291     END IF;
3292     IF  ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3293       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
3294     END IF;
3295   END determine_recovery;
3296 
3297 -----------------------------------------------------------------------
3298 --  PUBLIC PROCEDURE
3299 --  override_recovery
3300 --
3301 --  DESCRIPTION
3302 --  Validates and initializes parameters for override_recovery published service
3303 --
3304 --  CALLED BY
3305 --    ZX_API_PUB.override_recovery
3306 -----------------------------------------------------------------------
3307   PROCEDURE override_recovery
3308   ( x_return_status   OUT     NOCOPY VARCHAR2,
3309     p_event_class_rec IN OUT  NOCOPY ZX_API_PUB.event_class_rec_type,
3310     p_trx_rec         IN OUT  NOCOPY ZX_API_PUB.transaction_rec_type
3311   )IS
3312   l_api_name        CONSTANT VARCHAR2(30) := 'OVERRIDE_RECOVERY';
3313   l_return_status   VARCHAR2(30);
3314 
3315   BEGIN
3316     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3317       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
3318     END IF;
3319 
3320     x_return_status := FND_API.G_RET_STS_SUCCESS;
3321     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
3322 
3323     /*------------------------------------------------------+
3324      |   Copy to Event Class Record                         |
3325      +------------------------------------------------------*/
3326      p_event_class_rec.INTERNAL_ORGANIZATION_ID :=  p_trx_rec.INTERNAL_ORGANIZATION_ID;
3327      p_event_class_rec.APPLICATION_ID           :=  p_trx_rec.APPLICATION_ID;
3328      p_event_class_rec.ENTITY_CODE              :=  p_trx_rec.ENTITY_CODE;
3329      p_event_class_rec.EVENT_CLASS_CODE         :=  p_trx_rec.EVENT_CLASS_CODE;
3330      p_event_class_rec.EVENT_TYPE_CODE          :=  p_trx_rec.EVENT_TYPE_CODE;
3331      p_event_class_rec.TRX_ID                   :=  p_trx_rec.TRX_ID;
3332 
3333    /* ----------------------------------------------------------------------+
3334      | Bug 3129063 - Setting the Security Context for Subscription           |
3335      + ----------------------------------------------------------------------*/
3336     get_tax_subscriber(p_event_class_rec,
3337                        l_return_status
3338                       );
3339 
3340     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3341       x_return_status := l_return_status;
3342       RETURN;
3343     END IF;
3344 
3345    /* ----------------------------------------------------------------------+
3346     |      Get Tax Event Class                                              |
3347     + ----------------------------------------------------------------------*/
3348     get_tax_event_class (l_return_status
3349                          ,p_trx_rec.application_id
3350                          ,p_trx_rec.entity_code
3351                          ,p_trx_rec.event_class_code
3352                          ,p_trx_rec.tax_event_class_code
3353                          ,p_event_class_rec.reference_application_id
3354                          ,p_event_class_rec.record_flag              -- Bug 5200373
3355                          ,p_event_class_rec.record_for_partners_flag -- Bug 5200373
3356                          ,p_event_class_rec.prod_family_grp_code     -- Bug 5200373
3357                          ,p_event_class_rec.event_class_mapping_id     -- Bug 5200373
3358                          ,p_event_class_rec.summarization_flag
3359                          );
3360 
3361     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3362       x_return_status := l_return_status;
3363       RETURN;
3364     END IF;
3365 
3366    /* ----------------------------------------------------------------------+
3367     |      Get Tax Event type                                               |
3368     + ----------------------------------------------------------------------*/
3369     get_tax_event_type (l_return_status
3370                         ,p_trx_rec.event_class_code
3371                         ,p_trx_rec.application_id
3372                         ,p_trx_rec.entity_code
3373                         ,p_trx_rec.event_type_code
3374                         ,p_trx_rec.tax_event_class_code
3375                         ,p_trx_rec.tax_event_type_code
3376                         ,p_trx_rec.doc_event_status
3377                        );
3378 
3379     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3380       x_return_status := l_return_status;
3381       RETURN;
3382     END IF;
3383 
3384    /* ----------------------------------------------------------------------+
3385     |      Check Required Parameters                                        |
3386     + ----------------------------------------------------------------------*/
3387     ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_rec(l_return_status,
3388                                                p_trx_rec
3389                                               );
3390 
3391     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3392       x_return_status := l_return_status;
3393       RETURN;
3394     END IF;
3395 
3396    /* ----------------------------------------------------------------------+
3397     |      Populating Event Class Record                                    |
3398     + ----------------------------------------------------------------------*/
3399     p_event_class_rec.first_pty_org_id     := p_trx_rec.FIRST_PTY_ORG_ID;
3400     p_event_class_rec.application_id       := p_trx_rec.APPLICATION_ID;
3401     p_event_class_rec.entity_code          := p_trx_rec.ENTITY_CODE;
3402     p_event_class_rec.event_class_code     := p_trx_rec.EVENT_CLASS_CODE;
3403     p_event_class_rec.tax_event_class_code := p_trx_rec.TAX_EVENT_CLASS_CODE;
3404     p_event_class_rec.trx_id               := p_trx_rec.TRX_ID;
3405     p_event_class_rec.event_type_code      := p_trx_rec.EVENT_TYPE_CODE;
3406     p_event_class_rec.tax_event_type_code  := p_trx_rec.TAX_EVENT_TYPE_CODE;
3407 
3408     p_event_class_rec.quote_flag           := 'N';
3409 
3410     -- populate global event class record structure
3411     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := p_event_class_rec;
3412 
3413     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3414           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3415           'application_id: '||p_event_class_rec.application_id||
3416           ', entity_code: '||p_event_class_rec.entity_code||
3417           ', event_class_code: '||p_event_class_rec.event_class_code||
3418           ', legal_entity_id: '||p_event_class_rec.legal_entity_id||
3419           ', first_pty_org_id: '||p_event_class_rec.first_pty_org_id||
3420           ', event_type_code: '||p_event_class_rec.event_type_code||
3421           ', trx_id: '||p_event_class_rec.trx_id||
3422           ', tax_event_class_code: '||p_event_class_rec.tax_event_class_code||
3423           ', tax_event_type_code: '||p_event_class_rec.tax_event_type_code||
3424           ', doc_status_code: '||p_event_class_rec.doc_status_code||
3425           ', quote_flag: '||p_event_class_rec.quote_flag||
3426           ', RETURN_STATUS = ' || x_return_status);
3427     END IF;
3428     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3429       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
3430     END IF;
3431   END override_recovery;
3432 
3433 -----------------------------------------------------------------------
3434 --  PUBLIC PROCEDURE
3435 --  freeze_distribution_lines
3436 --
3437 --  DESCRIPTION
3438 --  Validates and initializes parameters for freeze_distribution_lines published service
3439 --
3440 --  CALLED BY
3441 --    ZX_API_PUB.freeze_distribution_lines
3442 -----------------------------------------------------------------------
3443   PROCEDURE freeze_distribution_lines
3444   ( x_return_status   OUT    NOCOPY VARCHAR2,
3445     p_event_class_rec OUT    NOCOPY ZX_API_PUB.event_class_rec_type,
3446     p_trx_rec         IN OUT NOCOPY ZX_API_PUB.transaction_rec_type
3447   ) IS
3448     l_api_name           CONSTANT VARCHAR2(30):= 'FREEZE_DISTRIBUTION_LINES';
3449     l_return_status      VARCHAR2(30);
3450     l_ref_appln_id       NUMBER;
3451 
3452   BEGIN
3453     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3454       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
3455     END IF;
3456 
3457     x_return_status := FND_API.G_RET_STS_SUCCESS;
3458     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
3459 
3460     /*------------------------------------------------------+
3461      |   Copy to Event Class Record                         |
3462      +------------------------------------------------------*/
3463      p_event_class_rec.INTERNAL_ORGANIZATION_ID :=  p_trx_rec.INTERNAL_ORGANIZATION_ID;
3464      p_event_class_rec.APPLICATION_ID           :=  p_trx_rec.APPLICATION_ID;
3465      p_event_class_rec.ENTITY_CODE              :=  p_trx_rec.ENTITY_CODE;
3466      p_event_class_rec.EVENT_CLASS_CODE         :=  p_trx_rec.EVENT_CLASS_CODE;
3467      p_event_class_rec.EVENT_TYPE_CODE          :=  p_trx_rec.EVENT_TYPE_CODE;
3468      p_event_class_rec.TRX_ID                   :=  p_trx_rec.TRX_ID;
3469 
3470     /* ----------------------------------------------------------------------+
3471      | Bug 3129063 - Setting the Security Context for Subscription           |
3472      + ----------------------------------------------------------------------*/
3473      get_tax_subscriber(p_event_class_rec,
3474                         l_return_status
3475                        );
3476 
3477      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3478        x_return_status := l_return_status;
3479        RETURN;
3480     END IF;
3481 
3482    /* ----------------------------------------------------------------------+
3483     |      Get Tax Event Class                                              |
3484     + ----------------------------------------------------------------------*/
3485     get_tax_event_class (l_return_status
3486                          ,p_event_class_rec
3487                         );
3488 
3489     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3490       x_return_status := l_return_status;
3491       RETURN;
3492     END IF;
3493 
3494     p_trx_rec.tax_event_class_code := p_event_class_rec.tax_event_class_code;
3495 
3496    /* ----------------------------------------------------------------------+
3497     |      Get Tax Event Type                                               |
3498     + ----------------------------------------------------------------------*/
3499     get_tax_event_type (l_return_status
3500                         ,p_trx_rec.event_class_code
3501                         ,p_trx_rec.application_id
3502                         ,p_trx_rec.entity_code
3503                         ,p_trx_rec.event_type_code
3504                         ,p_trx_rec.tax_event_class_code
3505                         ,p_trx_rec.tax_event_type_code
3506                         ,p_trx_rec.doc_event_status
3507                        );
3508 
3509     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3510       x_return_status := l_return_status;
3511       RETURN;
3512     END IF;
3513 
3514    /* ----------------------------------------------------------------------+
3515     |      Check Required Parameters                                        |
3516     + ----------------------------------------------------------------------*/
3517     ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_rec(l_return_status,
3518                                                p_trx_rec
3519                                               );
3520 
3521     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3522       x_return_status := l_return_status;
3523       RETURN;
3524     END IF;
3525 
3526     -- populate global event class record structure
3527     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := p_event_class_rec;
3528 
3529     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3530           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3531           'application_id: '||p_trx_rec.application_id||
3532           ', entity_code: '||p_trx_rec.entity_code||
3533           ', event_class_code: '||p_trx_rec.event_class_code||
3534           ', event_type_code: '||p_trx_rec.event_type_code||
3535           ', trx_id: '||p_trx_rec.trx_id||
3536           ', tax_event_class_code: '||p_trx_rec.tax_event_class_code||
3537           ', tax_event_type_code: '||p_trx_rec.tax_event_type_code||
3538           ', doc_event_status: '||p_trx_rec.doc_event_status||
3539           ', RETURN_STATUS = ' || x_return_status);
3540     END IF;
3541     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3542       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
3543     END IF;
3544   END freeze_distribution_lines;
3545 
3546 -----------------------------------------------------------------------
3547 --  PUBLIC PROCEDURE
3548 --  validate_document_for_tax
3549 --
3550 --  DESCRIPTION
3551 --  Validates and initializes parameters for validate_document_for_tax published service
3552 --
3553 --  CALLED BY
3554 --    ZX_API_PUB.validate_document_for_tax
3555 -----------------------------------------------------------------------
3556   PROCEDURE validate_document_for_tax
3557   ( x_return_status    OUT    NOCOPY  VARCHAR2,
3558     p_event_class_rec  OUT    NOCOPY  ZX_API_PUB.event_class_rec_type,
3559     p_trx_rec          IN OUT NOCOPY  ZX_API_PUB.transaction_rec_type
3560   )IS
3561   l_api_name          CONSTANT VARCHAR2(30):= 'VALIDATE_DOCUMENT_FOR_TAX';
3562   l_return_status     VARCHAR2(30);
3563   l_ref_appln_id      NUMBER;
3564   l_effective_date    DATE;
3565 
3566   BEGIN
3567     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3568       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
3569     END IF;
3570 
3571     x_return_status := FND_API.G_RET_STS_SUCCESS;
3572     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
3573 
3574     /*------------------------------------------------------+
3575      |   Copy to Event Class Record                         |
3576      +------------------------------------------------------*/
3577      p_event_class_rec.INTERNAL_ORGANIZATION_ID :=  p_trx_rec.INTERNAL_ORGANIZATION_ID;
3578      p_event_class_rec.APPLICATION_ID           :=  p_trx_rec.APPLICATION_ID;
3579      p_event_class_rec.ENTITY_CODE              :=  p_trx_rec.ENTITY_CODE;
3580      p_event_class_rec.EVENT_CLASS_CODE         :=  p_trx_rec.EVENT_CLASS_CODE;
3581      p_event_class_rec.EVENT_TYPE_CODE          :=  p_trx_rec.EVENT_TYPE_CODE;
3582      p_event_class_rec.TRX_ID                   :=  p_trx_rec.TRX_ID;
3583 
3584      /*-------------------------------------------------------------+
3585      | Initialize Event Class Record With Related Doc Date, Trx Date|
3586      | and Provisional Tax Determination Date --Bug 5617541         |
3587      +--------------------------------------------------------------*/
3588      BEGIN
3589         SELECT RELATED_DOC_DATE              ,
3590                TRX_DATE                      ,
3591                PROVNL_TAX_DETERMINATION_DATE
3592         INTO   p_event_class_rec.REL_DOC_DATE,
3593                p_event_class_rec.TRX_DATE    ,
3594                p_event_class_rec.PROVNL_TAX_DETERMINATION_DATE
3595         FROM   ZX_LINES_DET_FACTORS
3596 	WHERE  APPLICATION_ID   = p_trx_rec.APPLICATION_ID
3597         AND    EVENT_CLASS_CODE = p_trx_rec.EVENT_CLASS_CODE
3598         AND    ENTITY_CODE      = p_trx_rec.ENTITY_CODE
3599         AND    TRX_ID           = p_trx_rec.TRX_ID
3600 	AND    ROWNUM           = 1;
3601      EXCEPTION WHEN OTHERS THEN
3602         NULL;
3603      END;
3604 
3605     /* ----------------------------------------------------------------------+
3606      | Bug 3129063 - Setting the Security Context for Subscription           |
3607      + ----------------------------------------------------------------------*/
3608      get_tax_subscriber(p_event_class_rec,
3609                         l_return_status
3610                        );
3611 
3612     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3613       x_return_status := l_return_status;
3614       RETURN;
3615     END IF;
3616 
3617     /* ----------------------------------------------------------------------+
3618      |      Get Tax Event Class                                              |
3619      + ----------------------------------------------------------------------*/
3620     get_tax_event_class (l_return_status
3621                          ,p_trx_rec.application_id
3622                          ,p_trx_rec.entity_code
3623                          ,p_trx_rec.event_class_code
3624                          ,p_trx_rec.tax_event_class_code
3625                          ,l_ref_appln_id
3626                          ,p_event_class_rec.record_flag              -- Bug 5200373
3627                          ,p_event_class_rec.record_for_partners_flag -- Bug 5200373
3628                          ,p_event_class_rec.prod_family_grp_code     -- Bug 5200373
3629                          ,p_event_class_rec.event_class_mapping_id     -- Bug 5200373
3630                          ,p_event_class_rec.summarization_flag
3631                         );
3632 
3633     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3634       x_return_status := l_return_status;
3635       RETURN;
3636     END IF;
3637 
3638 
3639    /* ----------------------------------------------------------------------+
3640     |      Get Tax Event Type                                               |
3641     + ----------------------------------------------------------------------*/
3642     get_tax_event_type (l_return_status
3643                         ,p_trx_rec.event_class_code
3644                         ,p_trx_rec.application_id
3645                         ,p_trx_rec.entity_code
3646                         ,p_trx_rec.event_type_code
3647                         ,p_trx_rec.tax_event_class_code
3648                         ,p_trx_rec.tax_event_type_code
3649                         ,p_trx_rec.doc_event_status
3650                        );
3651 
3652     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3653       x_return_status := l_return_status;
3654       RETURN;
3655     END IF;
3656 
3657     p_event_class_rec.tax_event_class_code := p_trx_rec.tax_event_class_code;
3658     p_event_class_rec.tax_event_type_code  := p_trx_rec.tax_event_type_code;
3659     p_event_class_rec.doc_status_code     := p_trx_rec.doc_event_status;
3660 
3661      /* ----------------------------------------------------------------------+
3662       |  Determine effective date                                             |
3663       + ----------------------------------------------------------------------*/
3664      determine_effective_date(p_event_class_rec,
3665                               l_effective_date,
3666                               l_return_status
3667                              );
3668 
3669      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3670         x_return_status := l_return_status;
3671         RETURN;
3672      END IF;
3673 
3674     /* ----------------------------------------------------------------------+
3675      |      Populate Event Class Options                                     |
3676      + ----------------------------------------------------------------------*/
3677      populate_event_class_options(l_return_status,
3678                                   l_effective_date,
3679                                   p_event_class_rec
3680                                  );
3681 
3682      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3683        x_return_status := l_return_status;
3684        RETURN;
3685      END IF;
3686 
3687    /* ----------------------------------------------------------------------+
3688     |      Check Trx Rec                                                    |
3689     + ----------------------------------------------------------------------*/
3690     ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_rec(l_return_status,
3691                                                p_trx_rec
3692                                               );
3693 
3694     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3695       x_return_status := l_return_status;
3696       RETURN;
3697     END IF;
3698 
3699     -- populate global event class record structure
3700     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := p_event_class_rec;
3701 
3702      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3703          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3704           'application_id: '||p_event_class_rec.application_id||
3705           ', entity_code: '||p_event_class_rec.entity_code||
3706           ', event_class_code: '||p_event_class_rec.event_class_code||
3707           ', internal_organization_id: '||p_event_class_rec.internal_organization_id||
3708           ', legal_entity_id: '||p_event_class_rec.legal_entity_id||
3709           ', first_pty_org_id: '||p_event_class_rec.first_pty_org_id||
3710           ', ledger_id: '||p_event_class_rec.ledger_id||
3711           ', reference_application_id: '||p_event_class_rec.reference_application_id||
3712           ', event_type_code: '||p_event_class_rec.event_type_code||
3713           ', trx_id: '||p_event_class_rec.trx_id||
3714           ', trx_date: '||p_event_class_rec.trx_date||
3715           ', rel_doc_date: '||p_event_class_rec.rel_doc_date||
3716           ', trx_currency_code: '||p_event_class_rec.trx_currency_code||
3717           ', currency_conversion_type: '||p_event_class_rec.currency_conversion_type||
3718           ', currency_conversion_rate: '||p_event_class_rec.currency_conversion_rate||
3719           ', currency_conversion_date: '||p_event_class_rec.currency_conversion_date||
3720           ', rounding_ship_to_party_id: '||p_event_class_rec.rounding_ship_to_party_id||
3721           ', rounding_ship_from_party_id: '||p_event_class_rec.rounding_ship_from_party_id||
3722           ', rounding_bill_to_party_id: '||p_event_class_rec.rounding_bill_to_party_id||
3723           ', rounding_bill_from_party_id: '||p_event_class_rec.rounding_bill_from_party_id||
3724           ', rndg_ship_to_party_site_id: '||p_event_class_rec.rndg_ship_to_party_site_id||
3725           ', rndg_ship_from_party_site_id: '||p_event_class_rec.rndg_ship_from_party_site_id||
3726           ', rndg_bill_to_party_site_id: '||p_event_class_rec.rndg_bill_to_party_site_id||
3727           ', rndg_bill_from_party_site_id: '||p_event_class_rec.rndg_bill_from_party_site_id||
3728           ', tax_event_class_code: '||p_event_class_rec.tax_event_class_code||
3729           ', tax_event_type_code: '||p_event_class_rec.tax_event_type_code||
3730           ', doc_status_code: '||p_event_class_rec.doc_status_code||
3731           ', Det_Factor_Templ_Code: '||p_event_class_rec.det_factor_templ_code||
3732           ', Default_Rounding_Level_Code: '||p_event_class_rec.default_rounding_level_code||
3733           ', rounding_level_hier1: '||p_event_class_rec.rounding_level_hier_1_code||
3734           ', rounding_level_hier2: '||p_event_class_rec.rounding_level_hier_2_code||
3735           ', rounding_level_hier3: '||p_event_class_rec.rounding_level_hier_3_code||
3736           ', rounding_level_hier4: '||p_event_class_rec.rounding_level_hier_4_code||
3737           ', rdng_ship_to_pty_tx_prof_id: '||p_event_class_rec.rdng_ship_to_pty_tx_prof_id||
3738           ', rdng_ship_from_pty_tx_prof_id: '||p_event_class_rec.rdng_ship_from_pty_tx_prof_id||
3739           ', rdng_bill_to_pty_tx_prof_id: '||p_event_class_rec.rdng_bill_to_pty_tx_prof_id||
3740           ', rdng_bill_from_pty_tx_prof_id: '||p_event_class_rec.rdng_bill_from_pty_tx_prof_id||
3741           ', rdng_ship_to_pty_tx_p_st_id: '||p_event_class_rec.rdng_ship_to_pty_tx_p_st_id||
3742           ', rdng_ship_from_pty_tx_p_st_id: '||p_event_class_rec.rdng_ship_from_pty_tx_p_st_id||
3743           ', rdng_bill_to_pty_tx_p_st_id: '||p_event_class_rec.rdng_bill_to_pty_tx_p_st_id||
3744           ', rdng_bill_from_pty_tx_p_st_id: '||p_event_class_rec.rdng_bill_from_pty_tx_p_st_id||
3745           ', allow_manual_lin_recalc_flag: '||p_event_class_rec.allow_manual_lin_recalc_flag||
3746           ', allow_manual_lines_flag: '||p_event_class_rec.allow_manual_lines_flag||
3747           ', allow_override_flag: '||p_event_class_rec.allow_override_flag||
3748           ', enforce_tax_from_acct_flag: '||p_event_class_rec.enforce_tax_from_acct_flag||
3749           ', perform_additional_applicability_for_import_flag: '||p_event_class_rec.perf_addnl_appl_for_imprt_flag||
3750           ', record_flag: '||p_event_class_rec.record_flag||
3751           ', quote_flag: '||p_event_class_rec.quote_flag||
3752           ', normal_sign_flag: '||p_event_class_rec.normal_sign_flag||
3753           ', offset_tax_basis_code: '||p_event_class_rec.offset_tax_basis_code||
3754           ', tax_tolerance: '||p_event_class_rec.tax_tolerance||
3755           ', tax_tol_amt_range: '||p_event_class_rec.tax_tol_amt_range ||
3756           ', allow_offset_tax_calc_flag: '||p_event_class_rec.allow_offset_tax_calc_flag||
3757           ', self_assess_tax_lines_flag: '||p_event_class_rec.self_assess_tax_lines_flag||
3758           ', tax_recovery_flag: '||p_event_class_rec.tax_recovery_flag||
3759           ', allow_cancel_tax_lines_flag: '||p_event_class_rec.allow_cancel_tax_lines_flag||
3760           ', allow_man_tax_only_lines_flag: '||p_event_class_rec.allow_man_tax_only_lines_flag||
3761           ', enable_mrc_flag: '||p_event_class_rec.enable_mrc_flag||
3762           ', tax_reporting_flag: '||p_event_class_rec.tax_reporting_flag||
3763           ', enter_ovrd_incl_tax_lines_flag: '||p_event_class_rec.enter_ovrd_incl_tax_lines_flag||
3764           ', ctrl_eff_ovrd_calc_lines_flag: '||p_event_class_rec.ctrl_eff_ovrd_calc_lines_flag||
3765           ', summarization_flag: '||p_event_class_rec.summarization_flag||
3766           ', retain_summ_tax_line_id_flag: '||p_event_class_rec.retain_summ_tax_line_id_flag||
3767           ', tax_variance_calc_flag: '||p_event_class_rec.tax_variance_calc_flag||
3768           ', prod_family_grp_code: '||p_event_class_rec.prod_family_grp_code||
3769           ', record_for_partners_flag: '||p_event_class_rec.record_for_partners_flag||
3770           ', manual_lines_for_partner_flag: '||p_event_class_rec.manual_lines_for_partner_flag||
3771           ', man_tax_only_lin_for_ptnr_flag: '||p_event_class_rec.man_tax_only_lin_for_ptnr_flag||
3772           ', always_use_ebtax_for_calc_flag: '||p_event_class_rec.always_use_ebtax_for_calc_flag||
3773           ', enforce_tax_from_ref_doc_flag: '||p_event_class_rec.enforce_tax_from_ref_doc_flag||
3774           ', process_for_applicability_flag: '||p_event_class_rec.process_for_applicability_flag||
3775           ', allow_exemptions_flag: '||p_event_class_rec.allow_exemptions_flag||
3776           ', sup_cust_acct_type: '||p_event_class_rec.sup_cust_acct_type||
3777           ', intgrtn_det_factors_ui_flag: '||p_event_class_rec.intgrtn_det_factors_ui_flag||
3778           ', exmptn_pty_basis_hier_1_code: '||p_event_class_rec.exmptn_pty_basis_hier_1_code||
3779           ', exmptn_pty_basis_hier_2_code: '||p_event_class_rec.exmptn_pty_basis_hier_2_code||
3780           ', tax_method_code: '||p_event_class_rec.tax_method_code||
3781           ', inclusive_tax_used_flag: '||p_event_class_rec.inclusive_tax_used_flag||
3782           ', tax_use_customer_exempt_flag: '||p_event_class_rec.tax_use_customer_exempt_flag||
3783           ', tax_use_product_exempt_flag: '||p_event_class_rec.tax_use_product_exempt_flag||
3784           ', tax_use_loc_exc_rate_flag: '||p_event_class_rec.tax_use_loc_exc_rate_flag||
3785           ', tax_allow_compound_flag: '||p_event_class_rec.tax_allow_compound_flag||
3786           ', use_tax_classification_flag: '||p_event_class_rec.use_tax_classification_flag||
3787           ', allow_tax_rounding_ovrd_flag: '||p_event_class_rec.allow_tax_rounding_ovrd_flag||
3788           ', home_country_default_flag: '||p_event_class_rec.home_country_default_flag||
3789           ', RETURN_STATUS = ' || x_return_status);
3790     END IF;
3791     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3792       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
3793     END IF;
3794   END validate_document_for_tax;
3795 
3796 
3797 -----------------------------------------------------------------------
3798 --  PUBLIC PROCEDURE
3799 --  discard_tax_only_lines
3800 --
3801 --  DESCRIPTION
3802 --  Validates and initializes parameters for discard_tax_only_lines published service
3803 --
3804 --  CALLED BY
3805 --    ZX_API_PUB.discard_tax_only_lines
3806 -----------------------------------------------------------------------
3807   PROCEDURE discard_tax_only_lines
3808   (  x_return_status  OUT NOCOPY VARCHAR2,
3809      p_trx_rec        IN         ZX_API_PUB.transaction_rec_type
3810   ) IS
3811   l_api_name        CONSTANT VARCHAR2(30):= 'DISCARD_TAX_ONLY_LINES';
3812   l_return_status   VARCHAR2(30);
3813 
3814   BEGIN
3815     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3816       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
3817     END IF;
3818 
3819     x_return_status := FND_API.G_RET_STS_SUCCESS;
3820 
3821     /* ----------------------------------------------------------------------+
3822      | Bug 3129063 - Setting the Security Context for Subscription           |
3823      + ----------------------------------------------------------------------*/
3824      set_security_context(p_trx_rec.application_id,
3825                           p_trx_rec.entity_code,
3826                           p_trx_rec.event_class_code,
3827                           p_trx_rec.trx_id,
3828                           l_return_status
3829                          );
3830 
3831      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3832        x_return_status := l_return_status;
3833        RETURN;
3834     END IF;
3835 
3836 
3837    /* ----------------------------------------------------------------------+
3838     |      Check Required Parameters                                        |
3839     + ----------------------------------------------------------------------*/
3840     ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_rec(l_return_status,
3841                                                p_trx_rec
3842                                               );
3843 
3844     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3845       x_return_status := l_return_status;
3846       RETURN;
3847     END IF;
3848 
3849     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3850           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3851           'application_id: '||p_trx_rec.application_id||
3852           ', entity_code: '||p_trx_rec.entity_code||
3853           ', event_class_code: '||p_trx_rec.event_class_code||
3854           ', event_type_code: '||p_trx_rec.event_type_code||
3855           ', trx_id: '||p_trx_rec.trx_id||
3856           ', RETURN_STATUS = ' || x_return_status);
3857     END IF;
3858     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3859       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
3860     END IF;
3861   END discard_tax_only_lines;
3862 
3863 
3864 -----------------------------------------------------------------------
3865 --  PUBLIC PROCEDURE
3866 --  insupd_line_det_factors
3867 --
3868 --  DESCRIPTION
3869 --  Validates and initializes parameters for the insert/update published service
3870 --
3871 --  CALLED BY
3872 --    ZX_API_PUB.insert_line_det_factors
3873 --    ZX_API_PUB.update_line_det_factos
3874 --    ZX_API_PUB.update_det_factors_hdr
3875 --    ZX_API_PUB.copy_insert_line_det_factors
3876 -----------------------------------------------------------------------
3877   PROCEDURE insupd_line_det_factors
3878   ( x_return_status    OUT    NOCOPY VARCHAR2,
3879     p_event_class_rec  IN OUT NOCOPY ZX_API_PUB.event_class_rec_type,
3880     p_trx_line_index   IN     NUMBER
3881   )IS
3882   l_api_name            CONSTANT  VARCHAR2(30):= 'INSUPD_LINE_DET_FACTORS';
3883   l_return_status                 VARCHAR2(30);
3884   l_effective_date                DATE;
3885   l_ship_from_location_id         NUMBER;
3886   l_bill_from_location_id         NUMBER;
3887   l_ship_to_location_id           NUMBER;
3888   l_bill_to_location_id           NUMBER;
3889 
3890   BEGIN
3891     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3892       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
3893     END IF;
3894 
3895     x_return_status := FND_API.G_RET_STS_SUCCESS;
3896     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
3897 
3898     /* ----------------------------------------------------------------------+
3899      |      Get Tax Event Class                                              |
3900      + ----------------------------------------------------------------------*/
3901     get_tax_event_class (l_return_status
3902                          ,p_event_class_rec
3903                         );
3904 
3905     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3906       x_return_status := l_return_status;
3907       RETURN;
3908     END IF;
3909 
3910     /* ----------------------------------------------------------------------+
3911      |  Determine effective date                                             |
3912      + ----------------------------------------------------------------------*/
3913      determine_effective_date(p_event_class_rec,
3914                               l_effective_date,
3915                               l_return_status
3916                               );
3917 
3918      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3919        x_return_status := l_return_status;
3920        RETURN;
3921      END IF;
3922 
3923 
3924     /* ----------------------------------------------------------------------+
3925      | Bug 3129063 -      Setting the Security Context for Subscription      |
3926      + ----------------------------------------------------------------------*/
3927 
3928     get_tax_subscriber(p_event_class_rec,
3929                        l_effective_date ,
3930                        l_return_status
3931                       );
3932 
3933     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3934       x_return_status := l_return_status;
3935       RETURN;
3936     END IF;
3937 
3938    /* ----------------------------------------------------------------------+
3939     |      Get Tax Event Type                                               |
3940     + ----------------------------------------------------------------------*/
3941     get_tax_event_type (l_return_status
3942                         ,p_event_class_rec.event_class_code
3943                         ,p_event_class_rec.application_id
3944                         ,p_event_class_rec.entity_code
3945                         ,p_event_class_rec.event_type_code
3946                         ,p_event_class_rec.tax_event_class_code
3947                         ,p_event_class_rec.tax_event_type_code
3948                         ,p_event_class_rec.doc_status_code
3949                         );
3950 
3951     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3952       x_return_status := l_return_status;
3953       RETURN;
3954     END IF;
3955 
3956     /* ----------------------------------------------------------------------+
3957      |      Get the locations for parties                                    |
3958      + ----------------------------------------------------------------------*/
3959      IF ZX_API_PUB.G_PUB_SRVC <> 'UPDATE_DET_FACTORS_HDR' THEN
3960 
3961        get_loc_id_and_ptp_ids(p_event_class_rec  => p_event_class_rec,
3962                               p_trx_line_index  =>  p_trx_line_index,
3963                               x_return_status    => l_return_status
3964                              );
3965 
3966        IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3967          x_return_status := l_return_status;
3968          RETURN;
3969        END IF;
3970 
3971       /* ----------------------------------------------------------------------+
3972        |      Check Required parameters                                        |
3973        + ----------------------------------------------------------------------*/
3974        --Skip validation if published service is copy_insert_line_det_factors
3975        IF ZX_API_PUB.G_PUB_SRVC <> 'COPY_INSERT_LINE_DET_FACTORS' THEN
3976          ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_headers_tbl(l_return_status,
3977                                                             p_event_class_rec
3978                                                            );
3979 
3980          IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3981            x_return_status := l_return_status;
3982            RETURN;
3983          END IF;
3984 
3985 
3986         /* ----------------------------------------------------------------------+
3987          |      Check Required parameters                                        |
3988          + ----------------------------------------------------------------------*/
3989          ZX_CHECK_REQUIRED_PARAMS_PKG.check_trx_lines(l_return_status,
3990                                                       p_event_class_rec
3991                                                      );
3992 
3993          IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3994            x_return_status := l_return_status;
3995            RETURN;
3996          END IF;
3997        END IF; --G_PUB_SRVC <> 'COPY_INSERT_LINE_DET_FACTORS'
3998      END IF; --G_PUB_SRVC <> 'UPDATE_DET_FACTORS_HDR
3999 
4000     /* ----------------------------------------------------------------------+
4001      |      Populate Event Class Options                                     |
4002      + ----------------------------------------------------------------------*/
4003     populate_event_class_options(l_return_status,
4004                                  l_effective_date,
4005                                  p_event_class_rec
4006                                 );
4007 
4008      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4009        x_return_status := l_return_status;
4010        RETURN;
4011      END IF;
4012 
4013     /* ----------------------------------------------------------------------+
4014      |      Populate Application Product Options                             |
4015      + ----------------------------------------------------------------------*/
4016      populate_appl_product_options(l_return_status,
4017                                    p_event_class_rec
4018                                   );
4019 
4020      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4021        x_return_status := l_return_status;
4022        RETURN;
4023      END IF;
4024 
4025      -- populate global event class record structure
4026      ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := p_event_class_rec;
4027 
4028      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4029          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4030           'application_id: '||p_event_class_rec.application_id||
4031           ', entity_code: '||p_event_class_rec.entity_code||
4032           ', event_class_code: '||p_event_class_rec.event_class_code||
4033           ', internal_organization_id: '||p_event_class_rec.internal_organization_id||
4034           ', legal_entity_id: '||p_event_class_rec.legal_entity_id||
4035           ', first_pty_org_id: '||p_event_class_rec.first_pty_org_id||
4036           ', ledger_id: '||p_event_class_rec.ledger_id||
4037           ', reference_application_id: '||p_event_class_rec.reference_application_id||
4038           ', event_type_code: '||p_event_class_rec.event_type_code||
4039           ', trx_id: '||p_event_class_rec.trx_id||
4040           ', trx_date: '||p_event_class_rec.trx_date||
4041           ', rel_doc_date: '||p_event_class_rec.rel_doc_date||
4042           ', trx_currency_code: '||p_event_class_rec.trx_currency_code||
4043           ', currency_conversion_type: '||p_event_class_rec.currency_conversion_type||
4044           ', currency_conversion_rate: '||p_event_class_rec.currency_conversion_rate||
4045           ', currency_conversion_date: '||p_event_class_rec.currency_conversion_date||
4046           ', rounding_ship_to_party_id: '||p_event_class_rec.rounding_ship_to_party_id||
4047           ', rounding_ship_from_party_id: '||p_event_class_rec.rounding_ship_from_party_id||
4048           ', rounding_bill_to_party_id: '||p_event_class_rec.rounding_bill_to_party_id||
4049           ', rounding_bill_from_party_id: '||p_event_class_rec.rounding_bill_from_party_id||
4050           ', rndg_ship_to_party_site_id: '||p_event_class_rec.rndg_ship_to_party_site_id||
4051           ', rndg_ship_from_party_site_id: '||p_event_class_rec.rndg_ship_from_party_site_id||
4052           ', rndg_bill_to_party_site_id: '||p_event_class_rec.rndg_bill_to_party_site_id||
4053           ', rndg_bill_from_party_site_id: '||p_event_class_rec.rndg_bill_from_party_site_id||
4054           ', tax_event_class_code: '||p_event_class_rec.tax_event_class_code||
4055           ', tax_event_type_code: '||p_event_class_rec.tax_event_type_code||
4056           ', doc_status_code: '||p_event_class_rec.doc_status_code||
4057           ', Det_Factor_Templ_Code: '||p_event_class_rec.det_factor_templ_code||
4058           ', Default_Rounding_Level_Code: '||p_event_class_rec.default_rounding_level_code||
4059           ', rounding_level_hier1: '||p_event_class_rec.rounding_level_hier_1_code||
4060           ', rounding_level_hier2: '||p_event_class_rec.rounding_level_hier_2_code||
4061           ', rounding_level_hier3: '||p_event_class_rec.rounding_level_hier_3_code||
4062           ', rounding_level_hier4: '||p_event_class_rec.rounding_level_hier_4_code||
4063           ', rdng_ship_to_pty_tx_prof_id: '||p_event_class_rec.rdng_ship_to_pty_tx_prof_id||
4064           ', rdng_ship_from_pty_tx_prof_id: '||p_event_class_rec.rdng_ship_from_pty_tx_prof_id||
4065           ', rdng_bill_to_pty_tx_prof_id: '||p_event_class_rec.rdng_bill_to_pty_tx_prof_id||
4066           ', rdng_bill_from_pty_tx_prof_id: '||p_event_class_rec.rdng_bill_from_pty_tx_prof_id||
4067           ', rdng_ship_to_pty_tx_p_st_id: '||p_event_class_rec.rdng_ship_to_pty_tx_p_st_id||
4068           ', rdng_ship_from_pty_tx_p_st_id: '||p_event_class_rec.rdng_ship_from_pty_tx_p_st_id||
4069           ', rdng_bill_to_pty_tx_p_st_id: '||p_event_class_rec.rdng_bill_to_pty_tx_p_st_id||
4070           ', rdng_bill_from_pty_tx_p_st_id: '||p_event_class_rec.rdng_bill_from_pty_tx_p_st_id||
4071           ', allow_manual_lin_recalc_flag: '||p_event_class_rec.allow_manual_lin_recalc_flag||
4072           ', allow_manual_lines_flag: '||p_event_class_rec.allow_manual_lines_flag||
4073           ', allow_override_flag: '||p_event_class_rec.allow_override_flag||
4074           ', enforce_tax_from_acct_flag: '||p_event_class_rec.enforce_tax_from_acct_flag||
4075           ', perform_additional_applicability_for_import_flag: '||p_event_class_rec.perf_addnl_appl_for_imprt_flag||
4076           ', record_flag: '||p_event_class_rec.record_flag||
4077           ', quote_flag: '||p_event_class_rec.quote_flag||
4078           ', normal_sign_flag: '||p_event_class_rec.normal_sign_flag||
4079           ', offset_tax_basis_code: '||p_event_class_rec.offset_tax_basis_code||
4080           ', tax_tolerance: '||p_event_class_rec.tax_tolerance||
4081           ', tax_tol_amt_range: '||p_event_class_rec.tax_tol_amt_range ||
4082           ', allow_offset_tax_calc_flag: '||p_event_class_rec.allow_offset_tax_calc_flag||
4083           ', self_assess_tax_lines_flag: '||p_event_class_rec.self_assess_tax_lines_flag||
4084           ', tax_recovery_flag: '||p_event_class_rec.tax_recovery_flag||
4085           ', allow_cancel_tax_lines_flag: '||p_event_class_rec.allow_cancel_tax_lines_flag||
4086           ', allow_man_tax_only_lines_flag: '||p_event_class_rec.allow_man_tax_only_lines_flag||
4087           ', enable_mrc_flag: '||p_event_class_rec.enable_mrc_flag||
4088           ', tax_reporting_flag: '||p_event_class_rec.tax_reporting_flag||
4089           ', enter_ovrd_incl_tax_lines_flag: '||p_event_class_rec.enter_ovrd_incl_tax_lines_flag||
4090           ', ctrl_eff_ovrd_calc_lines_flag: '||p_event_class_rec.ctrl_eff_ovrd_calc_lines_flag||
4091           ', summarization_flag: '||p_event_class_rec.summarization_flag||
4092           ', retain_summ_tax_line_id_flag: '||p_event_class_rec.retain_summ_tax_line_id_flag||
4093           ', tax_variance_calc_flag: '||p_event_class_rec.tax_variance_calc_flag||
4094           ', prod_family_grp_code: '||p_event_class_rec.prod_family_grp_code||
4095           ', record_for_partners_flag: '||p_event_class_rec.record_for_partners_flag||
4096           ', manual_lines_for_partner_flag: '||p_event_class_rec.manual_lines_for_partner_flag||
4097           ', man_tax_only_lin_for_ptnr_flag: '||p_event_class_rec.man_tax_only_lin_for_ptnr_flag||
4098           ', always_use_ebtax_for_calc_flag: '||p_event_class_rec.always_use_ebtax_for_calc_flag||
4099           ', enforce_tax_from_ref_doc_flag: '||p_event_class_rec.enforce_tax_from_ref_doc_flag||
4100           ', process_for_applicability_flag: '||p_event_class_rec.process_for_applicability_flag||
4101           ', allow_exemptions_flag: '||p_event_class_rec.allow_exemptions_flag||
4102           ', sup_cust_acct_type: '||p_event_class_rec.sup_cust_acct_type||
4103           ', intgrtn_det_factors_ui_flag: '||p_event_class_rec.intgrtn_det_factors_ui_flag||
4104           ', exmptn_pty_basis_hier_1_code: '||p_event_class_rec.exmptn_pty_basis_hier_1_code||
4105           ', exmptn_pty_basis_hier_2_code: '||p_event_class_rec.exmptn_pty_basis_hier_2_code||
4106           ', tax_method_code: '||p_event_class_rec.tax_method_code||
4107           ', inclusive_tax_used_flag: '||p_event_class_rec.inclusive_tax_used_flag||
4108           ', tax_use_customer_exempt_flag: '||p_event_class_rec.tax_use_customer_exempt_flag||
4109           ', tax_use_product_exempt_flag: '||p_event_class_rec.tax_use_product_exempt_flag||
4110           ', tax_use_loc_exc_rate_flag: '||p_event_class_rec.tax_use_loc_exc_rate_flag||
4111           ', tax_allow_compound_flag: '||p_event_class_rec.tax_allow_compound_flag||
4112           ', use_tax_classification_flag: '||p_event_class_rec.use_tax_classification_flag||
4113           ', allow_tax_rounding_ovrd_flag: '||p_event_class_rec.allow_tax_rounding_ovrd_flag||
4114           ', home_country_default_flag: '||p_event_class_rec.home_country_default_flag||
4115           ', RETURN_STATUS = ' || l_return_status);
4116      END IF;
4117 
4118      IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4119       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
4120      END IF;
4121   END insupd_line_det_factors;
4122 
4123 
4124 
4125 -----------------------------------------------------------------------
4126 --  PUBLIC PROCEDURE
4127 --  get_default_tax_det_attrs
4128 --
4129 --  DESCRIPTION
4130 --  Validates and initializes parameters for get_default_tax_det_attrs published service
4131 --
4132 --  CALLED BY
4133 --    ZX_API_PUB.get_default_tax_det_attrs
4134 -----------------------------------------------------------------------
4135   PROCEDURE get_default_tax_det_attrs(
4136     x_return_status    OUT    NOCOPY VARCHAR2,
4137     p_event_class_rec  IN OUT NOCOPY ZX_API_PUB.event_class_rec_type
4138   )IS
4139   l_api_name            CONSTANT  VARCHAR2(30):= 'GET_DEFAULT_TAX_DET_ATTRS';
4140   l_return_status                 VARCHAR2(30);
4141   l_effective_date                DATE;
4142   l_ship_from_location_id         NUMBER;
4143   l_bill_from_location_id         NUMBER;
4144   l_ship_to_location_id           NUMBER;
4145   l_bill_to_location_id           NUMBER;
4146 
4147   BEGIN
4148     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4149       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'()+');
4150     END IF;
4151 
4152     x_return_status := FND_API.G_RET_STS_SUCCESS;
4153     ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := null_event_class_rec;
4154 
4155     /* ----------------------------------------------------------------------+
4156      |      Get Tax Event Class                                              |
4157      + ----------------------------------------------------------------------*/
4158     get_tax_event_class (l_return_status
4159                          ,p_event_class_rec
4160                         );
4161 
4162     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4163       x_return_status := l_return_status;
4164       RETURN;
4165     END IF;
4166 
4167     /* ----------------------------------------------------------------------+
4168      |  Determine effective date                                             |
4169      + ----------------------------------------------------------------------*/
4170      determine_effective_date(p_event_class_rec,
4171                               l_effective_date,
4172                               l_return_status
4173                               );
4174 
4175      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4176        x_return_status := l_return_status;
4177        RETURN;
4178      END IF;
4179 
4180 
4181     /* ----------------------------------------------------------------------+
4182      | Bug 3129063 -      Setting the Security Context for Subscription      |
4183      + ----------------------------------------------------------------------*/
4184     get_tax_subscriber(p_event_class_rec,
4185                        l_effective_date ,
4186                        l_return_status
4187                       );
4188 
4189     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4190       x_return_status := l_return_status;
4191       RETURN;
4192     END IF;
4193 
4194    /* ----------------------------------------------------------------------+
4195     |      Get Tax Event Type                                               |
4196     + ----------------------------------------------------------------------*/
4197     get_tax_event_type (l_return_status
4198                         ,p_event_class_rec.event_class_code
4199                         ,p_event_class_rec.application_id
4200                         ,p_event_class_rec.entity_code
4201                         ,p_event_class_rec.event_type_code
4202                         ,p_event_class_rec.tax_event_class_code
4203                         ,p_event_class_rec.tax_event_type_code
4204                         ,p_event_class_rec.doc_status_code
4205                         );
4206 
4207     IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4208       x_return_status := l_return_status;
4209       RETURN;
4210     END IF;
4211 
4212     /* ----------------------------------------------------------------------+
4213      |      Populate Event Class Options                                     |
4214      + ----------------------------------------------------------------------*/
4215      populate_event_class_options(l_return_status,
4216                                   l_effective_date,
4217                                   p_event_class_rec
4218                                  );
4219 
4220      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4221        x_return_status := l_return_status;
4222        RETURN;
4223      END IF;
4224 
4225     /* ----------------------------------------------------------------------+
4226      |      Populate Application Product Options                             |
4227      + ----------------------------------------------------------------------*/
4228      populate_appl_product_options(l_return_status,
4229                                    p_event_class_rec
4230           			              );
4231 
4232      -- populate global event class record structure
4233      ZX_GLOBAL_STRUCTURES_PKG.g_event_class_rec := p_event_class_rec;
4234 
4235      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4236        x_return_status := l_return_status;
4237        RETURN;
4238      END IF;
4239 
4240      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4241          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4242           'application_id: '||p_event_class_rec.application_id||
4243           ', entity_code: '||p_event_class_rec.entity_code||
4244           ', event_class_code: '||p_event_class_rec.event_class_code||
4245           ', internal_organization_id: '||p_event_class_rec.internal_organization_id||
4246           ', legal_entity_id: '||p_event_class_rec.legal_entity_id||
4247           ', first_pty_org_id: '||p_event_class_rec.first_pty_org_id||
4248           ', ledger_id: '||p_event_class_rec.ledger_id||
4249           ', reference_application_id: '||p_event_class_rec.reference_application_id||
4250           ', event_type_code: '||p_event_class_rec.event_type_code||
4251           ', trx_id: '||p_event_class_rec.trx_id||
4252           ', trx_date: '||p_event_class_rec.trx_date||
4253           ', rel_doc_date: '||p_event_class_rec.rel_doc_date||
4254           ', trx_currency_code: '||p_event_class_rec.trx_currency_code||
4255           ', currency_conversion_type: '||p_event_class_rec.currency_conversion_type||
4256           ', currency_conversion_rate: '||p_event_class_rec.currency_conversion_rate||
4257           ', currency_conversion_date: '||p_event_class_rec.currency_conversion_date||
4258           ', rounding_ship_to_party_id: '||p_event_class_rec.rounding_ship_to_party_id||
4259           ', rounding_ship_from_party_id: '||p_event_class_rec.rounding_ship_from_party_id||
4260           ', rounding_bill_to_party_id: '||p_event_class_rec.rounding_bill_to_party_id||
4261           ', rounding_bill_from_party_id: '||p_event_class_rec.rounding_bill_from_party_id||
4262           ', rndg_ship_to_party_site_id: '||p_event_class_rec.rndg_ship_to_party_site_id||
4263           ', rndg_ship_from_party_site_id: '||p_event_class_rec.rndg_ship_from_party_site_id||
4264           ', rndg_bill_to_party_site_id: '||p_event_class_rec.rndg_bill_to_party_site_id||
4265           ', rndg_bill_from_party_site_id: '||p_event_class_rec.rndg_bill_from_party_site_id||
4266           ', tax_event_class_code: '||p_event_class_rec.tax_event_class_code||
4267           ', tax_event_type_code: '||p_event_class_rec.tax_event_type_code||
4268           ', doc_status_code: '||p_event_class_rec.doc_status_code||
4269           ', Det_Factor_Templ_Code: '||p_event_class_rec.det_factor_templ_code||
4270           ', Default_Rounding_Level_Code: '||p_event_class_rec.default_rounding_level_code||
4271           ', rounding_level_hier1: '||p_event_class_rec.rounding_level_hier_1_code||
4272           ', rounding_level_hier2: '||p_event_class_rec.rounding_level_hier_2_code||
4273           ', rounding_level_hier3: '||p_event_class_rec.rounding_level_hier_3_code||
4274           ', rounding_level_hier4: '||p_event_class_rec.rounding_level_hier_4_code||
4275           ', rdng_ship_to_pty_tx_prof_id: '||p_event_class_rec.rdng_ship_to_pty_tx_prof_id||
4276           ', rdng_ship_from_pty_tx_prof_id: '||p_event_class_rec.rdng_ship_from_pty_tx_prof_id||
4277           ', rdng_bill_to_pty_tx_prof_id: '||p_event_class_rec.rdng_bill_to_pty_tx_prof_id||
4278           ', rdng_bill_from_pty_tx_prof_id: '||p_event_class_rec.rdng_bill_from_pty_tx_prof_id||
4279           ', rdng_ship_to_pty_tx_p_st_id: '||p_event_class_rec.rdng_ship_to_pty_tx_p_st_id||
4280           ', rdng_ship_from_pty_tx_p_st_id: '||p_event_class_rec.rdng_ship_from_pty_tx_p_st_id||
4281           ', rdng_bill_to_pty_tx_p_st_id: '||p_event_class_rec.rdng_bill_to_pty_tx_p_st_id||
4282           ', rdng_bill_from_pty_tx_p_st_id: '||p_event_class_rec.rdng_bill_from_pty_tx_p_st_id||
4283           ', allow_manual_lin_recalc_flag: '||p_event_class_rec.allow_manual_lin_recalc_flag||
4284           ', allow_manual_lines_flag: '||p_event_class_rec.allow_manual_lines_flag||
4285           ', allow_override_flag: '||p_event_class_rec.allow_override_flag||
4286           ', enforce_tax_from_acct_flag: '||p_event_class_rec.enforce_tax_from_acct_flag||
4287           ', perform_additional_applicability_for_import_flag: '||p_event_class_rec.perf_addnl_appl_for_imprt_flag||
4288           ', record_flag: '||p_event_class_rec.record_flag||
4289           ', quote_flag: '||p_event_class_rec.quote_flag||
4290           ', normal_sign_flag: '||p_event_class_rec.normal_sign_flag||
4291           ', offset_tax_basis_code: '||p_event_class_rec.offset_tax_basis_code||
4292           ', tax_tolerance: '||p_event_class_rec.tax_tolerance||
4293           ', tax_tol_amt_range: '||p_event_class_rec.tax_tol_amt_range ||
4294           ', allow_offset_tax_calc_flag: '||p_event_class_rec.allow_offset_tax_calc_flag||
4295           ', self_assess_tax_lines_flag: '||p_event_class_rec.self_assess_tax_lines_flag||
4296           ', tax_recovery_flag: '||p_event_class_rec.tax_recovery_flag||
4297           ', allow_cancel_tax_lines_flag: '||p_event_class_rec.allow_cancel_tax_lines_flag||
4298           ', allow_man_tax_only_lines_flag: '||p_event_class_rec.allow_man_tax_only_lines_flag||
4299           ', enable_mrc_flag: '||p_event_class_rec.enable_mrc_flag||
4300           ', tax_reporting_flag: '||p_event_class_rec.tax_reporting_flag||
4301           ', enter_ovrd_incl_tax_lines_flag: '||p_event_class_rec.enter_ovrd_incl_tax_lines_flag||
4302           ', ctrl_eff_ovrd_calc_lines_flag: '||p_event_class_rec.ctrl_eff_ovrd_calc_lines_flag||
4303           ', summarization_flag: '||p_event_class_rec.summarization_flag||
4304           ', retain_summ_tax_line_id_flag: '||p_event_class_rec.retain_summ_tax_line_id_flag||
4305           ', tax_variance_calc_flag: '||p_event_class_rec.tax_variance_calc_flag||
4306           ', prod_family_grp_code: '||p_event_class_rec.prod_family_grp_code||
4307           ', record_for_partners_flag: '||p_event_class_rec.record_for_partners_flag||
4308           ', manual_lines_for_partner_flag: '||p_event_class_rec.manual_lines_for_partner_flag||
4309           ', man_tax_only_lin_for_ptnr_flag: '||p_event_class_rec.man_tax_only_lin_for_ptnr_flag||
4310           ', always_use_ebtax_for_calc_flag: '||p_event_class_rec.always_use_ebtax_for_calc_flag||
4311           ', enforce_tax_from_ref_doc_flag: '||p_event_class_rec.enforce_tax_from_ref_doc_flag||
4312           ', process_for_applicability_flag: '||p_event_class_rec.process_for_applicability_flag||
4313           ', allow_exemptions_flag: '||p_event_class_rec.allow_exemptions_flag||
4314           ', sup_cust_acct_type: '||p_event_class_rec.sup_cust_acct_type||
4315           ', intgrtn_det_factors_ui_flag: '||p_event_class_rec.intgrtn_det_factors_ui_flag||
4316           ', exmptn_pty_basis_hier_1_code: '||p_event_class_rec.exmptn_pty_basis_hier_1_code||
4317           ', exmptn_pty_basis_hier_2_code: '||p_event_class_rec.exmptn_pty_basis_hier_2_code||
4318           ', tax_method_code: '||p_event_class_rec.tax_method_code||
4319           ', inclusive_tax_used_flag: '||p_event_class_rec.inclusive_tax_used_flag||
4320           ', tax_use_customer_exempt_flag: '||p_event_class_rec.tax_use_customer_exempt_flag||
4321           ', tax_use_product_exempt_flag: '||p_event_class_rec.tax_use_product_exempt_flag||
4322           ', tax_use_loc_exc_rate_flag: '||p_event_class_rec.tax_use_loc_exc_rate_flag||
4323           ', tax_allow_compound_flag: '||p_event_class_rec.tax_allow_compound_flag||
4324           ', use_tax_classification_flag: '||p_event_class_rec.use_tax_classification_flag||
4325           ', allow_tax_rounding_ovrd_flag: '||p_event_class_rec.allow_tax_rounding_ovrd_flag||
4326           ', home_country_default_flag: '||p_event_class_rec.home_country_default_flag||
4327           ', RETURN_STATUS = ' || l_return_status);
4328      END IF;
4329 
4330      IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4331       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'()-');
4332      END IF;
4333   END get_default_tax_det_attrs;
4334 
4335 PROCEDURE get_event_class_info(
4336      P_ENTITY_CODE         IN         ZX_EVNT_CLS_MAPPINGS.entity_code%TYPE,
4337      P_EVENT_CLASS_CODE    IN         ZX_EVNT_CLS_MAPPINGS.event_class_code%TYPE,
4338      P_APPLICATION_ID      IN         ZX_EVNT_CLS_MAPPINGS.application_id%TYPE,
4339      X_TBL_INDEX           OUT NOCOPY BINARY_INTEGER,
4340      X_RETURN_STATUS       OUT NOCOPY VARCHAR2)
4341 is
4342   cursor c_evnt_class_info is
4343   SELECT
4344     EVENT_CLASS_CODE
4345     ,APPLICATION_ID
4346     ,ENTITY_CODE
4347     ,TAX_EVENT_CLASS_CODE
4348     ,RECORD_FLAG
4349     ,DET_FACTOR_TEMPL_CODE
4350     ,DEFAULT_ROUNDING_LEVEL_CODE
4351     ,ROUNDING_LEVEL_HIER_1_CODE
4352     ,ROUNDING_LEVEL_HIER_2_CODE
4353     ,ROUNDING_LEVEL_HIER_3_CODE
4354     ,ROUNDING_LEVEL_HIER_4_CODE
4355     ,ALLOW_MANUAL_LIN_RECALC_FLAG
4356     ,ALLOW_OVERRIDE_FLAG
4357     ,ALLOW_MANUAL_LINES_FLAG
4358     ,PERF_ADDNL_APPL_FOR_IMPRT_FLAG
4359     ,SHIP_TO_PARTY_TYPE
4360     ,SHIP_FROM_PARTY_TYPE
4361     ,POA_PARTY_TYPE
4362     ,POO_PARTY_TYPE
4363     ,PAYING_PARTY_TYPE
4364     ,OWN_HQ_PARTY_TYPE
4365     ,TRAD_HQ_PARTY_TYPE
4366     ,POI_PARTY_TYPE
4367     ,POD_PARTY_TYPE
4368     ,BILL_TO_PARTY_TYPE
4369     ,BILL_FROM_PARTY_TYPE
4370     ,TTL_TRNS_PARTY_TYPE
4371     ,MERCHANT_PARTY_TYPE
4372     ,SHIP_TO_PTY_SITE_TYPE
4373     ,SHIP_FROM_PTY_SITE_TYPE
4374     ,POA_PTY_SITE_TYPE
4375     ,POO_PTY_SITE_TYPE
4376     ,PAYING_PTY_SITE_TYPE
4377     ,OWN_HQ_PTY_SITE_TYPE
4378     ,TRAD_HQ_PTY_SITE_TYPE
4379     ,POI_PTY_SITE_TYPE
4380     ,POD_PTY_SITE_TYPE
4381     ,BILL_TO_PTY_SITE_TYPE
4382     ,BILL_FROM_PTY_SITE_TYPE
4383     ,TTL_TRNS_PTY_SITE_TYPE
4384     ,ENFORCE_TAX_FROM_ACCT_FLAG
4385     ,OFFSET_TAX_BASIS_CODE
4386     ,REFERENCE_APPLICATION_ID
4387     ,PROD_FAMILY_GRP_CODE
4388     ,ALLOW_OFFSET_TAX_CALC_FLAG
4389     ,SELF_ASSESS_TAX_LINES_FLAG
4390     ,TAX_RECOVERY_FLAG
4391     ,ALLOW_CANCEL_TAX_LINES_FLAG
4392     ,ALLOW_MAN_TAX_ONLY_LINES_FLAG
4393     ,TAX_VARIANCE_CALC_FLAG
4394     ,TAX_REPORTING_FLAG
4395     ,ENTER_OVRD_INCL_TAX_LINES_FLAG
4396     ,CTRL_EFF_OVRD_CALC_LINES_FLAG
4397     ,SUMMARIZATION_FLAG
4398     ,RETAIN_SUMM_TAX_LINE_ID_FLAG
4399     ,RECORD_FOR_PARTNERS_FLAG
4400     ,MANUAL_LINES_FOR_PARTNER_FLAG
4401     ,MAN_TAX_ONLY_LIN_FOR_PTNR_FLAG
4402     ,ALWAYS_USE_EBTAX_FOR_CALC_FLAG
4403     ,PROCESSING_PRECEDENCE
4404     ,EVENT_CLASS_MAPPING_ID
4405     ,ENFORCE_TAX_FROM_REF_DOC_FLAG
4406     ,PROCESS_FOR_APPLICABILITY_FLAG
4407     ,SUP_CUST_ACCT_TYPE_CODE
4408     ,DISPLAY_TAX_CLASSIF_FLAG
4409     ,INTGRTN_DET_FACTORS_UI_FLAG
4410     ,INTRCMP_TX_EVNT_CLS_CODE
4411     ,INTRCMP_SRC_ENTITY_CODE
4412     ,INTRCMP_SRC_EVNT_CLS_CODE
4413     ,INTRCMP_SRC_APPLN_ID
4414     ,ALLOW_EXEMPTIONS_FLAG
4415     ,ENABLE_MRC_FLAG
4416   from
4417     ZX_EVNT_CLS_MAPPINGS
4418   WHERE
4419         application_id = p_application_id
4420     AND entity_code = p_entity_code
4421     AND event_class_Code = p_event_class_code;
4422 
4423   l_index  binary_integer;
4424 
4425 BEGIN
4426 
4427   x_return_status       := FND_API.G_RET_STS_SUCCESS;
4428 
4429   l_index := dbms_utility.get_hash_value(to_char(p_application_id)||p_entity_code||p_event_class_code,1,8192);
4430 
4431   IF ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl.EXISTS(l_index) then
4432 
4433       IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4434           FND_LOG.STRING(G_LEVEL_STATEMENT,'ZX_VALID_INIT_PKG.get_evnt_cls_info',
4435                          'Event class record found in cache ');
4436       END IF;
4437 
4438       X_TBL_INDEX := l_index;
4439       RETURN;
4440 
4441   ELSE
4442 
4443     FOR L_EVENT_CLASS_REC IN C_EVNT_CLASS_INFO LOOP
4444 
4445         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).EVENT_CLASS_CODE                 := L_EVENT_CLASS_REC.EVENT_CLASS_CODE               ;
4446         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).APPLICATION_ID                   := L_EVENT_CLASS_REC.APPLICATION_ID                 ;
4447         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ENTITY_CODE                      := L_EVENT_CLASS_REC.ENTITY_CODE                    ;
4448         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).TAX_EVENT_CLASS_CODE             := L_EVENT_CLASS_REC.TAX_EVENT_CLASS_CODE           ;
4449         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).RECORD_FLAG                      := L_EVENT_CLASS_REC.RECORD_FLAG                    ;
4450         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).DET_FACTOR_TEMPL_CODE            := L_EVENT_CLASS_REC.DET_FACTOR_TEMPL_CODE          ;
4451         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).DEFAULT_ROUNDING_LEVEL_CODE      := L_EVENT_CLASS_REC.DEFAULT_ROUNDING_LEVEL_CODE    ;
4452         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ROUNDING_LEVEL_HIER_1_CODE       := L_EVENT_CLASS_REC.ROUNDING_LEVEL_HIER_1_CODE     ;
4453         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ROUNDING_LEVEL_HIER_2_CODE       := L_EVENT_CLASS_REC.ROUNDING_LEVEL_HIER_2_CODE     ;
4454         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ROUNDING_LEVEL_HIER_3_CODE       := L_EVENT_CLASS_REC.ROUNDING_LEVEL_HIER_3_CODE     ;
4455         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ROUNDING_LEVEL_HIER_4_CODE       := L_EVENT_CLASS_REC.ROUNDING_LEVEL_HIER_4_CODE     ;
4456         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ALLOW_MANUAL_LIN_RECALC_FLAG     := L_EVENT_CLASS_REC.ALLOW_MANUAL_LIN_RECALC_FLAG   ;
4457         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ALLOW_OVERRIDE_FLAG              := L_EVENT_CLASS_REC.ALLOW_OVERRIDE_FLAG            ;
4458         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ALLOW_MANUAL_LINES_FLAG          := L_EVENT_CLASS_REC.ALLOW_MANUAL_LINES_FLAG        ;
4459         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).PERF_ADDNL_APPL_FOR_IMPRT_FLAG   := L_EVENT_CLASS_REC.PERF_ADDNL_APPL_FOR_IMPRT_FLAG ;
4460         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).SHIP_TO_PARTY_TYPE               := L_EVENT_CLASS_REC.SHIP_TO_PARTY_TYPE             ;
4461         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).SHIP_FROM_PARTY_TYPE             := L_EVENT_CLASS_REC.SHIP_FROM_PARTY_TYPE           ;
4462         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).POA_PARTY_TYPE                   := L_EVENT_CLASS_REC.POA_PARTY_TYPE                 ;
4463         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).POO_PARTY_TYPE                   := L_EVENT_CLASS_REC.POO_PARTY_TYPE                 ;
4464         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).PAYING_PARTY_TYPE                := L_EVENT_CLASS_REC.PAYING_PARTY_TYPE              ;
4465         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).OWN_HQ_PARTY_TYPE                := L_EVENT_CLASS_REC.OWN_HQ_PARTY_TYPE              ;
4466         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).TRAD_HQ_PARTY_TYPE               := L_EVENT_CLASS_REC.TRAD_HQ_PARTY_TYPE             ;
4467         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).POI_PARTY_TYPE                   := L_EVENT_CLASS_REC.POI_PARTY_TYPE                 ;
4468         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).POD_PARTY_TYPE                   := L_EVENT_CLASS_REC.POD_PARTY_TYPE                 ;
4469         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).BILL_TO_PARTY_TYPE               := L_EVENT_CLASS_REC.BILL_TO_PARTY_TYPE             ;
4470         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).BILL_FROM_PARTY_TYPE             := L_EVENT_CLASS_REC.BILL_FROM_PARTY_TYPE           ;
4471         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).TTL_TRNS_PARTY_TYPE              := L_EVENT_CLASS_REC.TTL_TRNS_PARTY_TYPE            ;
4472         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).MERCHANT_PARTY_TYPE              := L_EVENT_CLASS_REC.MERCHANT_PARTY_TYPE            ;
4473         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).SHIP_TO_PTY_SITE_TYPE            := L_EVENT_CLASS_REC.SHIP_TO_PTY_SITE_TYPE          ;
4474         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).SHIP_FROM_PTY_SITE_TYPE          := L_EVENT_CLASS_REC.SHIP_FROM_PTY_SITE_TYPE        ;
4475         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).POA_PTY_SITE_TYPE                := L_EVENT_CLASS_REC.POA_PTY_SITE_TYPE              ;
4476         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).POO_PTY_SITE_TYPE                := L_EVENT_CLASS_REC.POO_PTY_SITE_TYPE              ;
4477         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).PAYING_PTY_SITE_TYPE             := L_EVENT_CLASS_REC.PAYING_PTY_SITE_TYPE           ;
4478         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).OWN_HQ_PTY_SITE_TYPE             := L_EVENT_CLASS_REC.OWN_HQ_PTY_SITE_TYPE           ;
4479         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).TRAD_HQ_PTY_SITE_TYPE            := L_EVENT_CLASS_REC.TRAD_HQ_PTY_SITE_TYPE          ;
4480         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).POI_PTY_SITE_TYPE                := L_EVENT_CLASS_REC.POI_PTY_SITE_TYPE              ;
4481         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).POD_PTY_SITE_TYPE                := L_EVENT_CLASS_REC.POD_PTY_SITE_TYPE              ;
4482         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).BILL_TO_PTY_SITE_TYPE            := L_EVENT_CLASS_REC.BILL_TO_PTY_SITE_TYPE          ;
4483         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).BILL_FROM_PTY_SITE_TYPE          := L_EVENT_CLASS_REC.BILL_FROM_PTY_SITE_TYPE        ;
4484         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).TTL_TRNS_PTY_SITE_TYPE           := L_EVENT_CLASS_REC.TTL_TRNS_PTY_SITE_TYPE         ;
4485         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ENFORCE_TAX_FROM_ACCT_FLAG       := L_EVENT_CLASS_REC.ENFORCE_TAX_FROM_ACCT_FLAG     ;
4486         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).OFFSET_TAX_BASIS_CODE            := L_EVENT_CLASS_REC.OFFSET_TAX_BASIS_CODE          ;
4487         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).REFERENCE_APPLICATION_ID         := L_EVENT_CLASS_REC.REFERENCE_APPLICATION_ID       ;
4488         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).PROD_FAMILY_GRP_CODE             := L_EVENT_CLASS_REC.PROD_FAMILY_GRP_CODE           ;
4489         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ALLOW_OFFSET_TAX_CALC_FLAG       := L_EVENT_CLASS_REC.ALLOW_OFFSET_TAX_CALC_FLAG     ;
4490         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).SELF_ASSESS_TAX_LINES_FLAG       := L_EVENT_CLASS_REC.SELF_ASSESS_TAX_LINES_FLAG     ;
4491         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).TAX_RECOVERY_FLAG                := L_EVENT_CLASS_REC.TAX_RECOVERY_FLAG              ;
4492         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ALLOW_CANCEL_TAX_LINES_FLAG      := L_EVENT_CLASS_REC.ALLOW_CANCEL_TAX_LINES_FLAG    ;
4493         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ALLOW_MAN_TAX_ONLY_LINES_FLAG    := L_EVENT_CLASS_REC.ALLOW_MAN_TAX_ONLY_LINES_FLAG  ;
4494         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).TAX_VARIANCE_CALC_FLAG           := L_EVENT_CLASS_REC.TAX_VARIANCE_CALC_FLAG         ;
4495         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).TAX_REPORTING_FLAG               := L_EVENT_CLASS_REC.TAX_REPORTING_FLAG             ;
4496         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ENTER_OVRD_INCL_TAX_LINES_FLAG   := L_EVENT_CLASS_REC.ENTER_OVRD_INCL_TAX_LINES_FLAG ;
4497         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).CTRL_EFF_OVRD_CALC_LINES_FLAG    := L_EVENT_CLASS_REC.CTRL_EFF_OVRD_CALC_LINES_FLAG  ;
4498         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).SUMMARIZATION_FLAG               := L_EVENT_CLASS_REC.SUMMARIZATION_FLAG             ;
4499         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).RETAIN_SUMM_TAX_LINE_ID_FLAG     := L_EVENT_CLASS_REC.RETAIN_SUMM_TAX_LINE_ID_FLAG   ;
4500         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).RECORD_FOR_PARTNERS_FLAG         := L_EVENT_CLASS_REC.RECORD_FOR_PARTNERS_FLAG       ;
4501         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).MANUAL_LINES_FOR_PARTNER_FLAG    := L_EVENT_CLASS_REC.MANUAL_LINES_FOR_PARTNER_FLAG  ;
4502         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).MAN_TAX_ONLY_LIN_FOR_PTNR_FLAG   := L_EVENT_CLASS_REC.MAN_TAX_ONLY_LIN_FOR_PTNR_FLAG ;
4503         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ALWAYS_USE_EBTAX_FOR_CALC_FLAG   := L_EVENT_CLASS_REC.ALWAYS_USE_EBTAX_FOR_CALC_FLAG ;
4504         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).PROCESSING_PRECEDENCE            := L_EVENT_CLASS_REC.PROCESSING_PRECEDENCE          ;
4505         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).EVENT_CLASS_MAPPING_ID           := L_EVENT_CLASS_REC.EVENT_CLASS_MAPPING_ID         ;
4506         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ENFORCE_TAX_FROM_REF_DOC_FLAG    := L_EVENT_CLASS_REC.ENFORCE_TAX_FROM_REF_DOC_FLAG  ;
4507         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).PROCESS_FOR_APPLICABILITY_FLAG   := L_EVENT_CLASS_REC.PROCESS_FOR_APPLICABILITY_FLAG ;
4508         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).SUP_CUST_ACCT_TYPE_CODE          := L_EVENT_CLASS_REC.SUP_CUST_ACCT_TYPE_CODE        ;
4509         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).DISPLAY_TAX_CLASSIF_FLAG         := L_EVENT_CLASS_REC.DISPLAY_TAX_CLASSIF_FLAG       ;
4510         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).INTGRTN_DET_FACTORS_UI_FLAG      := L_EVENT_CLASS_REC.INTGRTN_DET_FACTORS_UI_FLAG    ;
4511         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).INTRCMP_TX_EVNT_CLS_CODE         := L_EVENT_CLASS_REC.INTRCMP_TX_EVNT_CLS_CODE       ;
4512         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).INTRCMP_SRC_ENTITY_CODE          := L_EVENT_CLASS_REC.INTRCMP_SRC_ENTITY_CODE        ;
4513         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).INTRCMP_SRC_EVNT_CLS_CODE        := L_EVENT_CLASS_REC.INTRCMP_SRC_EVNT_CLS_CODE      ;
4514         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).INTRCMP_SRC_APPLN_ID             := L_EVENT_CLASS_REC.INTRCMP_SRC_APPLN_ID           ;
4515         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ALLOW_EXEMPTIONS_FLAG            := L_EVENT_CLASS_REC.ALLOW_EXEMPTIONS_FLAG          ;
4516         ZX_GLOBAL_STRUCTURES_PKG.g_zx_event_class_rec_tbl(l_index).ENABLE_MRC_FLAG                  := L_EVENT_CLASS_REC.ENABLE_MRC_FLAG                ;
4517 
4518         IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4519           FND_LOG.STRING(G_LEVEL_STATEMENT,'ZX_VALID_INIT_PKG.get_evnt_cls_info',
4520                          'Event class record not found in cache. Populating from database ');
4521         END IF;
4522 
4523         X_TBL_INDEX := l_index;
4524         EXIT;
4525 
4526     END LOOP;
4527 
4528   END IF;
4529 
4530 EXCEPTION
4531   WHEN OTHERS THEN
4532 
4533       IF (g_level_unexpected >= g_current_runtime_level ) THEN
4534         FND_LOG.STRING(g_level_unexpected,
4535                    'ZX.PLSQL.ZX_VALID_INIT_PKG.get_evnt_cls_info',
4536                    'Exception in ZZX_VALID_INIT_PKG.get_evnt_cls_info. '||SQLCODE||SQLERRM);
4537       END IF;
4538 
4539       IF C_EVNT_CLASS_INFO%ISOPEN then
4540          close C_EVNT_CLASS_INFO;
4541       END IF;
4542 
4543 END get_event_class_info;
4544 
4545 
4546 
4547 PROCEDURE get_event_typ_mappings_info(
4548      P_ENTITY_CODE         IN         ZX_EVNT_TYP_MAPPINGS.entity_code%TYPE,
4549      P_EVENT_CLASS_CODE    IN         ZX_EVNT_TYP_MAPPINGS.event_class_code%TYPE,
4550      P_APPLICATION_ID      IN         ZX_EVNT_TYP_MAPPINGS.application_id%TYPE,
4551      P_EVENT_TYPE_CODE     IN         ZX_EVNT_TYP_MAPPINGS.event_type_code%TYPE,
4552      X_TBL_INDEX           OUT NOCOPY BINARY_INTEGER,
4553      X_RETURN_STATUS       OUT NOCOPY VARCHAR2)
4554 is
4555   cursor c_evnt_typ_mapping_info is
4556   SELECT
4557       EVENT_CLASS_MAPPING_ID,
4558       EVENT_TYPE_MAPPING_ID,
4559       EVENT_CLASS_CODE,
4560       EVENT_TYPE_CODE,
4561       APPLICATION_ID,
4562       ENTITY_CODE,
4563       TAX_EVENT_CLASS_CODE,
4564       TAX_EVENT_TYPE_CODE,
4565       ENABLED_FLAG
4566   from
4567     ZX_EVNT_TYP_MAPPINGS
4568   WHERE
4569         application_id   = P_APPLICATION_ID
4570    AND  entity_code      = P_ENTITY_CODE
4571    AND  event_class_code = P_EVENT_CLASS_CODE
4572    AND  event_type_code  = P_EVENT_TYPE_CODE ;
4573 
4574   l_index  binary_integer;
4575 
4576 BEGIN
4577 
4578   x_return_status       := FND_API.G_RET_STS_SUCCESS;
4579 
4580   l_index := dbms_utility.get_hash_value(to_char(p_application_id)||p_entity_code||p_event_class_code
4581                                          ||p_event_type_Code,1,8192);
4582 
4583   IF ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl.EXISTS(l_index) then
4584 
4585       IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4586           FND_LOG.STRING(G_LEVEL_STATEMENT,'ZX_VALID_INIT_PKG.get_evnt_cls_info',
4587            'Event type record found in cache ');
4588       END IF;
4589 
4590       X_TBL_INDEX := l_index;
4591       RETURN;
4592 
4593   ELSE
4594 
4595     FOR L_EVENT_TYPE_REC IN c_evnt_typ_mapping_info LOOP
4596 
4597         ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl(l_index).EVENT_CLASS_MAPPING_ID := l_event_type_rec.EVENT_CLASS_MAPPING_ID;
4598         ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl(l_index).EVENT_TYPE_MAPPING_ID  := l_event_type_rec.EVENT_TYPE_MAPPING_ID;
4599         ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl(l_index).EVENT_CLASS_CODE       := l_event_type_rec.EVENT_CLASS_CODE;
4600         ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl(l_index).EVENT_TYPE_CODE        := l_event_type_rec.EVENT_TYPE_CODE;
4601         ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl(l_index).APPLICATION_ID         := l_event_type_rec.APPLICATION_ID;
4602         ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl(l_index).ENTITY_CODE            := l_event_type_rec.ENTITY_CODE;
4603         ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl(l_index).TAX_EVENT_CLASS_CODE   := l_event_type_rec.TAX_EVENT_CLASS_CODE;
4604         ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl(l_index).TAX_EVENT_TYPE_CODE    := l_event_type_rec.TAX_EVENT_TYPE_CODE;
4605         ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_typ_map_tbl(l_index).ENABLED_FLAG           := l_event_type_rec.ENABLED_FLAG;
4606 
4607         IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4608           FND_LOG.STRING(G_LEVEL_STATEMENT,'ZX_VALID_INIT_PKG.get_evnt_typ_mappings_info',
4609                          'Event type record not found in cache. Populating from database ');
4610         END IF;
4611 
4612         X_TBL_INDEX := l_index;
4613         EXIT;
4614 
4615     END LOOP;
4616 
4617   END IF;
4618 
4619 EXCEPTION
4620   WHEN OTHERS THEN
4621 
4622       IF (g_level_unexpected >= g_current_runtime_level ) THEN
4623         FND_LOG.STRING(g_level_unexpected,
4624                    'ZX.PLSQL.ZX_VALID_INIT_PKG.get_evnt_typ_mappings_info',
4625                    'Exception in ZX_VALID_INIT_PKG.get_evnt_typ_mappings_info. '||SQLCODE||SQLERRM);
4626       END IF;
4627 
4628       IF c_evnt_typ_mapping_info%ISOPEN then
4629          close c_evnt_typ_mapping_info;
4630       END IF;
4631 
4632 END get_event_typ_mappings_info;
4633 
4634 PROCEDURE populate_event_cls_typs
4635 IS
4636 
4637   cursor c_get_evnt_cls_typs is
4638    select TAX_EVENT_CLASS_CODE,
4639           TAX_EVENT_TYPE_CODE,
4640           STATUS_CODE
4641    from    zx_evnt_cls_typs;
4642    l_index binary_integer;
4643 
4644 BEGIN
4645 
4646    FOR l_evnt_cls_typs_rec in  c_get_evnt_cls_typs LOOP
4647 
4648       l_index := dbms_utility.get_hash_value(l_evnt_cls_typs_rec.TAX_EVENT_CLASS_CODE ||
4649                                              l_evnt_cls_typs_rec.TAX_EVENT_TYPE_CODE,
4650                                              1,8192);
4651 
4652       ZX_GLOBAL_STRUCTURES_PKG.g_zx_evnt_cls_typs_tbl(l_index) := l_evnt_cls_typs_rec.STATUS_CODE;
4653 
4654    END LOOP;
4655 
4656 EXCEPTION
4657  WHEN OTHERS THEN
4658       IF (g_level_unexpected >= g_current_runtime_level ) THEN
4659         FND_LOG.STRING(g_level_unexpected,
4660                    'ZX.PLSQL.ZX_VALID_INIT_PKG.populate_event_cls_typs',
4661                    'Exception in ZX_VALID_INIT_PKG.populate_event_cls_typs. '||SQLCODE||SQLERRM);
4662       END IF;
4663 
4664       IF c_get_evnt_cls_typs%ISOPEN then
4665          close c_get_evnt_cls_typs;
4666       END IF;
4667 END populate_event_cls_typs;
4668 
4669 PROCEDURE populate_tax_event_class_info
4670 IS
4671 
4672   cursor c_get_tax_evnt_cls is
4673    select TAX_EVENT_CLASS_CODE,
4674           NORMAL_SIGN_FLAG,
4675           ASC_INTRCMP_TX_EVNT_CLS_CODE
4676    from    zx_event_classes_b;
4677 
4678 BEGIN
4679 
4680    FOR l_tax_evnt_cls_rec in  c_get_tax_evnt_cls LOOP
4681 
4682       ZX_GLOBAL_STRUCTURES_PKG.g_zx_tax_evnt_cls_tbl(l_tax_evnt_cls_rec.TAX_EVENT_CLASS_CODE).TAX_EVENT_CLASS_CODE := l_tax_evnt_cls_rec.TAX_EVENT_CLASS_CODE;
4683       ZX_GLOBAL_STRUCTURES_PKG.g_zx_tax_evnt_cls_tbl(l_tax_evnt_cls_rec.TAX_EVENT_CLASS_CODE).NORMAL_SIGN_FLAG := l_tax_evnt_cls_rec.NORMAL_SIGN_FLAG;
4684       ZX_GLOBAL_STRUCTURES_PKG.g_zx_tax_evnt_cls_tbl(l_tax_evnt_cls_rec.TAX_EVENT_CLASS_CODE).ASC_INTRCMP_TX_EVNT_CLS_CODE := l_tax_evnt_cls_rec.ASC_INTRCMP_TX_EVNT_CLS_CODE;
4685 
4686    END LOOP;
4687 
4688 EXCEPTION
4689  WHEN OTHERS THEN
4690       IF (g_level_unexpected >= g_current_runtime_level ) THEN
4691         FND_LOG.STRING(g_level_unexpected,
4692                    'ZX.PLSQL.ZX_VALID_INIT_PKG.populate_tax_event_class_info',
4693                    'Exception in ZX_VALID_INIT_PKG.populate_tax_event_class_info. '||SQLCODE||SQLERRM);
4694       END IF;
4695 
4696       IF c_get_tax_evnt_cls%ISOPEN then
4697          close c_get_tax_evnt_cls;
4698       END IF;
4699 END populate_tax_event_class_info;
4700 
4701 END ZX_VALID_INIT_PARAMS_PKG;
4702