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