DBA Data[Home] [Help]

PACKAGE BODY: APPS.OKL_TAX_INTERFACE_PVT

Source


1 PACKAGE BODY OKL_TAX_INTERFACE_PVT AS
2 /* $Header: OKLRTEIB.pls 120.18 2011/11/17 22:53:37 sechawla ship $ */
3 
4 -- GENERATE PRIMARY KEY
5 FUNCTION get_seq_id RETURN NUMBER IS
6 BEGIN
7     RETURN(okc_p_util.raw_to_number(sys_guid()));
8 END get_seq_id;
9 
10 /*========================================================================
11  | PUBLIC PROCEDURE calculate_tax
12  |
13  | DESCRIPTION
14  |    This procedure is called from OKL_PROCESS_TAX_PVT to calculate
15  |    tax for OLM Tax events
16  |
17  | CALLED FROM PROCEDURES/FUNCTIONS
18  |
19  |
20  | CALLS PROCEDURES/FUNCTIONS
21  |       ZX_API_PUB.calculate_tax
22  |
23  | PARAMETERS
24  |      p_trx_rec_tbl    -- tax source transactions
25  |
26  | KNOWN ISSUES
27  |
28  | NOTES
29  |
30  |
31  | MODIFICATION HISTORY
32  | Date                  Author            Description of Changes
33  | 08-APR-05            SECHAWLA           Created
34  |
35  *=======================================================================*/
36   PROCEDURE calculate_tax(
37     p_api_version                  	IN  NUMBER,
38     p_init_msg_list                	IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
39     x_return_status                	OUT NOCOPY VARCHAR2,
40     x_msg_count                    	OUT NOCOPY NUMBER,
41     x_msg_data                     	OUT NOCOPY VARCHAR2,
42     p_hdr_params_rec                IN  hdr_params_rec_type,
43     p_line_params_tbl				IN  line_params_tbl_type) IS
44 
45     /*-----------------------------------------------------------------------+
46     | Local Variable Declarations and initializations                       |
47     +-----------------------------------------------------------------------*/
48     l_api_version            CONSTANT NUMBER := 1;
49     l_api_name               CONSTANT VARCHAR2(30) := 'calculate_tax';
50     l_return_status          VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
51 
52     j                        NUMBER;
53     lx_doc_level_recalc_flag VARCHAR2(1);
54 
55     lp_hdr_params_rec        hdr_params_rec_type;
56     lp_line_params_tbl		 line_params_tbl_type;
57     lp_transaction_rec       transaction_rec_type;
58 
59     --sechawla 17-Nov-2011 13101040
60     CURSOR c_org_location(cp_org_id IN NUMBER) IS
61     SELECT location_id
62     FROM   hr_organization_units
63     WHERE  ORGANIZATION_ID = cp_org_id;
64     l_org_loc_id              NUMBER;
65 
66 
67   BEGIN
68 
69     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
70       FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.calculate_tax','Begin(+)');
71     END IF;
72 
73     --Print Input Variables
74     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
75       FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
76               'p_init_msg_list :'||p_init_msg_list);
77       FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
78               'p_line_params_tbl.COUNT :'||p_line_params_tbl.COUNT);
79     END IF;
80 
81     lp_hdr_params_rec  := p_hdr_params_rec;
82     lp_line_params_tbl := p_line_params_tbl;
83 
84     -- Populate transaction header record -- start
85     lp_transaction_rec.application_id           := lp_hdr_params_rec.application_id;
86     lp_transaction_rec.trx_id                   := lp_hdr_params_rec.trx_id;
87     lp_transaction_rec.internal_organization_id := lp_hdr_params_rec.internal_organization_id;
88     lp_transaction_rec.entity_code              := lp_hdr_params_rec.entity_code ;
89     lp_transaction_rec.event_class_code         := lp_hdr_params_rec.event_class_code;
90     lp_transaction_rec.event_type_code          := lp_hdr_params_rec.event_type_code ;
91     -- Populate transaction header record -- end
92 
93     --sechawla 17-Nov-2011 13101040
94     OPEN  c_org_location(lp_hdr_params_rec.internal_organization_id);
95     FETCH c_org_location INTO l_org_loc_id;
96     CLOSE c_org_location;
97 
98 
99     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
100       FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
101             	  ' lp_transaction_rec.application_id '|| lp_transaction_rec.application_id);
102       FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
103             	  ' lp_transaction_rec.trx_id '|| lp_transaction_rec.trx_id);
104       FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
105             	  ' lp_transaction_rec.internal_organization_id '|| lp_transaction_rec.internal_organization_id);
106       FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
107             	  ' lp_transaction_rec.entity_code '|| lp_transaction_rec.entity_code);
108       FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
109             	  ' lp_transaction_rec.event_class_code '|| lp_transaction_rec.event_class_code);
110       FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
111             	  ' lp_transaction_rec.event_type_code '|| lp_transaction_rec.event_type_code);
112     END IF;
113 
114 
115 
116     -- Populate ZX global structure -- start
117     IF (lp_line_params_tbl.COUNT > 0) THEN
118       FOR j IN lp_line_params_tbl.FIRST .. lp_line_params_tbl.LAST LOOP
119 
120         ZX_GLOBAL_STRUCTURES_PKG.INIT_TRX_LINE_DIST_TBL(j);
121 
122         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.internal_organization_id(j)              := lp_line_params_tbl(j).internal_organization_id;
123         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.application_id(j)                        := lp_line_params_tbl(j).application_id ;
124         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.entity_code(j)                           := lp_line_params_tbl(j).entity_code;
125         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.event_class_code(j)                      := lp_line_params_tbl(j).event_class_code;
126         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.event_type_code(j)                       := lp_line_params_tbl(j).event_type_code;
127         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_id(j)                                := lp_transaction_rec.trx_id;
128         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_date(j)                              := lp_line_params_tbl(j).trx_date;
129         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ledger_id(j)                             := lp_line_params_tbl(j).ledger_id;
130         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.legal_entity_id(j)                       := lp_line_params_tbl(j).legal_entity_id;
131         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_level_type(j)                        := lp_line_params_tbl(j).trx_level_type;
132         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_level_action(j)                     := lp_line_params_tbl(j).line_level_action;
133         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_line_id(j)                           := lp_line_params_tbl(j).trx_line_id;
134         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_amt(j)                              := lp_line_params_tbl(j).line_amt;
135         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_business_category(j)                 := lp_line_params_tbl(j).trx_business_category ;
136         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.product_category(j)                      := lp_line_params_tbl(j).product_category ;
137         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.user_defined_fisc_class(j)               := lp_line_params_tbl(j).user_defined_fisc_class ;
138         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_intended_use(j)                     := lp_line_params_tbl(j).line_intended_use ;
139 
140         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.tax_reporting_flag(j)                    := lp_line_params_tbl(j).tax_reporting_flag;
141 
142         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.default_taxation_country(j)              := lp_line_params_tbl(j).default_taxation_country;
143         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.product_type(j)                          := lp_line_params_tbl(j).product_type;
144         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.output_tax_classification_code(j)        := lp_line_params_tbl(j).output_tax_classification_code;
145         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.assessable_value(j)                      := lp_line_params_tbl(j).assessable_value;
146         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.receivables_trx_type_id(j)               := lp_line_params_tbl(j).receivables_trx_type_id;
147 
148         -- Product fiscal classification will be derived in eBTax using inventory item id
149         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.product_id(j)                            := lp_line_params_tbl(j).product_id;
150 
151         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_entity_code(j)              := lp_line_params_tbl(j).adjusted_doc_entity_code;
152         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_event_class_code(j)         := lp_line_params_tbl(j).adjusted_doc_event_class_code;
153         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_trx_id(j)                   := lp_line_params_tbl(j).adjusted_doc_trx_id;
154         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_line_id(j)                  := lp_line_params_tbl(j).adjusted_doc_line_id;
155         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_trx_level_type(j)           := lp_line_params_tbl(j).adjusted_doc_trx_level_type;
156         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_number(j)                   := lp_line_params_tbl(j).adjusted_doc_number;
157         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_date(j)                     := lp_line_params_tbl(j).adjusted_doc_date;
158         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_amt_includes_tax_flag(j)            := lp_line_params_tbl(j).line_amt_includes_tax_flag;
159 
160         -- Populate ZX Global Structure with Location and Party Identifiers
161         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_cust_acct_site_use_id(j)         := lp_line_params_tbl(j).ship_to_cust_acct_site_use_id;
162         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_cust_acct_site_use_id(j)         := lp_line_params_tbl(j).bill_to_cust_acct_site_use_id;
163         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_party_site_id(j)                 := lp_line_params_tbl(j).bill_to_party_site_id;
164         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_location_id(j)                   := lp_line_params_tbl(j).bill_to_location_id;
165         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_party_id(j)                      := lp_line_params_tbl(j).bill_to_party_id;
166         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_party_site_id(j)                 := lp_line_params_tbl(j).ship_to_party_site_id;
167         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_location_id(j)                   := lp_line_params_tbl(j).ship_to_location_id;
168         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_party_id(j)                      := lp_line_params_tbl(j).ship_to_party_id;
169 
170         --28-Oct-11 SECHAWLA 13101040
171         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_from_party_id(j)                    := lp_line_params_tbl(j).internal_organization_id;
172         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_from_location_id(j)                 := l_org_loc_id ;
173 
174 
175         -- Rounding identifiers
176         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.rounding_ship_to_party_id(j)             := lp_line_params_tbl(j).rounding_ship_to_party_id;
177         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.rounding_bill_to_party_id(j)             := lp_line_params_tbl(j).rounding_bill_to_party_id;
178 
179         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_currency_code(j)                     := lp_line_params_tbl(j).trx_currency_code;
180         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.precision(j)                             := lp_line_params_tbl(j).precision;
181         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.minimum_accountable_unit(j)              := lp_line_params_tbl(j).minimum_accountable_unit;
182 
183         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.currency_conversion_date(j)              := lp_line_params_tbl(j).currency_conversion_date;
184         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.currency_conversion_rate(j)              := lp_line_params_tbl(j).currency_conversion_rate;
185         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.currency_conversion_type(j)              := lp_line_params_tbl(j).currency_conversion_type;
186         --bug 11691861
187         ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.exemption_control_flag(j)              :='S';
188 
189 
190         IF (lp_line_params_tbl(j).provnl_tax_determination_date IS NOT NULL) THEN
191           ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.provnl_tax_determination_date(j)       := lp_line_params_tbl(j).provnl_tax_determination_date;
192         END IF;
193 
194         IF (lp_line_params_tbl(j).ctrl_total_hdr_tax_amt IS NOT NULL) THEN
195           ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ctrl_total_hdr_tx_amt(j)               := lp_line_params_tbl(j).ctrl_total_hdr_tax_amt;
196         END IF;
197 
198         -- Populate 'ICX_SESSION_ID' for Quote calls
199         IF (lp_hdr_params_rec.quote_flag = 'Y') THEN
200           ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.icx_session_id(j)                      := FND_GLOBAL.SESSION_ID;
201         END IF;
202 
203         IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
204           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
205          	  ' internal_organization_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.internal_organization_id(j));
206           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
207          	  ' application_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.application_id(j));
208           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
209          	  ' entity_code '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.entity_code(j));
210           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
211          	  ' event_class_code '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.event_class_code(j));
212           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
213          	  ' event_type_code '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.event_type_code(j));
214           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
215          	  ' trx_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_id(j));
216           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
217          	  ' trx_date '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_date(j));
218           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
219          	  ' ledger_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ledger_id(j));
220           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
221          	  ' legal_entity_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.legal_entity_id(j));
222           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
223          	  ' trx_level_type '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_level_type(j));
224           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
225          	  ' line_level_action '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_level_action(j));
226           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
227          	  ' trx_line_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_line_id(j));
228           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
229          	  ' line_amt '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_amt(j));
230           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
231          	  ' trx_business_category '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_business_category(j));
232           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
233          	  ' product_category '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.product_category(j));
234           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
235          	  ' user_defined_fisc_class '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.user_defined_fisc_class(j));
236           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
237          	  ' line_intended_use '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_intended_use(j));
238           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
239          	  ' tax_reporting_flag '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.tax_reporting_flag(j));
240           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
241          	  ' default_taxation_country '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.default_taxation_country(j));
242           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
243          	  ' product_type '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.product_type(j));
244           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
245          	  ' output_tax_classification_code '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.output_tax_classification_code(j));
246           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
247          	  ' assessable_value '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.assessable_value(j));
248           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
249          	  ' receivables_trx_type_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.receivables_trx_type_id(j));
250           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
251          	  ' product_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.product_id(j));
252           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
253          	  ' adjusted_doc_entity_code '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_entity_code(j));
254           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
255          	  ' adjusted_doc_event_class_code '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_event_class_code(j));
256           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
257          	  ' adjusted_doc_trx_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_trx_id(j));
258           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
259          	  ' adjusted_doc_line_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_line_id(j));
260           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
261          	  ' adjusted_doc_trx_level_type '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_trx_level_type(j));
262           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
263          	  ' adjusted_doc_number '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_number(j));
264           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
265          	  ' adjusted_doc_date '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_date(j));
266           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
267          	  ' line_amt_includes_tax_flag '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_amt_includes_tax_flag(j));
268 
269           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
270          	  ' ship_to_cust_acct_site_use_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_cust_acct_site_use_id(j));
271           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
272          	  ' bill_to_cust_acct_site_use_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_cust_acct_site_use_id(j));
273           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
274          	  ' bill_to_party_site_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_party_site_id(j));
275           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
276          	  ' bill_to_location_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_location_id(j));
277           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
278          	  ' bill_to_party_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_party_id(j));
279           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
280          	  ' ship_to_party_site_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_party_site_id(j));
281           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
282          	  ' ship_to_location_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_location_id(j));
283           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
284          	  ' ship_to_party_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_party_id(j));
285 
286           --28-Oct-11 SECHAWLA 13101040
287           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
288           	  ' bill_from_party_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_from_party_id(j));
289           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
290           	  ' bill_from_location_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_from_location_id(j));
291 
292           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
293          	  ' rounding_ship_to_party_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.rounding_ship_to_party_id(j));
294           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
295          	  ' rounding_bill_to_party_id '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.rounding_bill_to_party_id(j));
296           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
297          	  ' trx_currency_code '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_currency_code(j));
298           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
299          	  ' precision '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.precision(j));
300 
301           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
302          	  ' minimum_accountable_unit '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.minimum_accountable_unit(j));
303           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
304          	  ' currency_conversion_date '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.currency_conversion_date(j));
305           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
306          	  ' currency_conversion_rate '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.currency_conversion_rate(j));
307           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
308          	  ' currency_conversion_type '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.currency_conversion_type(j));
309           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
310          	  ' provnl_tax_determination_date '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.provnl_tax_determination_date(j));
311           FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
312          	  ' ctrl_total_hdr_tx_amt '|| ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ctrl_total_hdr_tx_amt(j));
313         END IF;
314       END LOOP;
315     END IF;
316     -- Populate ZX global structure -- end
317 
318     -- Calculate Tax
319     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
320       FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
321           'Calling ZX_API_PUB.calculate_tax ..');
322     END IF;
323 
324     ZX_API_PUB.calculate_tax
325         (p_api_version            => p_api_version,
326          p_init_msg_list          => p_init_msg_list,
327          p_commit                 => 'F',
328          p_validation_level       => 1,
329          x_return_status          => l_return_status,
330          x_msg_count              => x_msg_count,
331          x_msg_data               => x_msg_data,
332          p_transaction_rec        => lp_transaction_rec,
333          p_quote_flag             => lp_hdr_params_rec.quote_flag,
334          p_data_transfer_mode     => 'PLS',
335          x_doc_level_recalc_flag  => lx_doc_level_recalc_flag);
336 
337     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
338       FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
339             	  'After calling ZX_API_PUB.calculate_tax '||l_return_status);
340       FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.calculate_tax.',
341             	  'lx_doc_level_recalc_flag '||lx_doc_level_recalc_flag);
342     END IF;
343 
344     IF ( l_return_status <> OKL_API.G_RET_STS_SUCCESS ) THEN
345       -- Tax Calculation Failed
346       OKL_API.set_message( p_app_name      => 'OKL',
347                            p_msg_name      => 'OKL_TX_TAX_ENGINE_ERR');
348     END IF;
349     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
350       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
351     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
352       RAISE OKL_API.G_EXCEPTION_ERROR;
353     END IF;
354 
355     x_return_status := l_return_status;
356 
357     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
358        FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.calculate_tax ','End(-)');
359     END IF;
360 
361   EXCEPTION
362     WHEN OKL_API.G_EXCEPTION_ERROR THEN
363 
364       IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
365          FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.calculate_tax ',
366                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_ERROR');
367       END IF;
368 
369       x_return_status := OKL_API.G_RET_STS_ERROR;
370 
371     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
372       IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
373          FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.calculate_tax ',
374                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_UNEXPECTED_ERROR');
375       END IF;
376 
377       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
378     WHEN OTHERS THEN
379 
380       IF (FND_LOG.LEVEL_EXCEPTION >= FND_LOG.G_CURRENT_RUNTIME_LEVEL) THEN
381          FND_LOG.STRING(FND_LOG.LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.calculate_tax ',
382                   'EXCEPTION :'||sqlerrm);
383       END IF;
384 
385       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
386       -- unexpected error
387       OKL_API.set_message(p_app_name      => g_app_name,
388                           p_msg_name      => g_unexpected_error,
389                           p_token1        => g_sqlcode_token,
390                           p_token1_value  => sqlcode,
391                           p_token2        => g_sqlerrm_token,
392                           p_token2_value  => sqlerrm);
393 
394   END calculate_tax;
395 
396 /*========================================================================
397  | PUBLIC PROCEDURE get_tax_classification_code
398  |
399  | DESCRIPTION
400  |    This procedure retrives the tax classification code
401  |
402  | CALLED FROM
403  |
404  |
405  | CALLS PROCEDURES/FUNCTIONS
406  |       ZX_AR_TAX_CLASSIFICATN_DEF_PKG.get_default_tax_classification
407  |
408  | PARAMETERS
409  |   p_ship_to_site_use_id
410  |   p_bill_to_site_use_id
411  |   p_inventory_item_id
412  |   p_organization_id
413  |   p_set_of_books_id
414  |   p_trx_date
415  |   p_trx_type_id
416  |   p_entity_code
417  |   p_event_class_code
418  |   p_application_id
419  |   p_internal_organization_id
420  |
421  | KNOWN ISSUES
422  |
423  | NOTES
424  |
425  | MODIFICATION HISTORY
426  | Date          Author     Description of Changes
427  | 24-APR-07    RRAVIKIR      Created
428  |
429  *=======================================================================*/
430   PROCEDURE get_tax_classification_code (
431     x_return_status                 OUT NOCOPY VARCHAR2,
432     p_ship_to_site_use_id           IN  NUMBER,
433     p_bill_to_site_use_id           IN  NUMBER,
434     p_inventory_item_id             IN  NUMBER,
435     p_organization_id               IN  NUMBER,
436     p_set_of_books_id               IN  NUMBER,
437     p_trx_date                      IN DATE,
438     p_trx_type_id                   IN NUMBER,
439     p_entity_code                   IN VARCHAR2,
440     p_event_class_code              IN VARCHAR2,
441     p_application_id                IN NUMBER,
442     p_internal_organization_id      IN NUMBER,
443     p_vendor_id                     IN NUMBER DEFAULT NULL,
444     p_vendor_site_id                IN NUMBER DEFAULT NULL,
445     x_tax_classification_code       OUT NOCOPY VARCHAR2 ) IS
446 
447     -- Local variables
448     l_api_name                      CONSTANT VARCHAR2(30) := 'get_tax_classification_code';
449 
450     lx_tax_classification_code      VARCHAR2(50);
451     lx_allow_tax_code_flag          VARCHAR2(1);
452 
453   BEGIN
454 
455     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
456         FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code','Begin(+)');
457     END IF;
458 
459     --Print Input Variables
460     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
461          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
462               'p_ship_to_site_use_id :'||p_ship_to_site_use_id);
463          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
464               'p_bill_to_site_use_id :'||p_bill_to_site_use_id);
465          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
466               'p_inventory_item_id :'||p_inventory_item_id);
467          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
468               'p_organization_id :'||p_organization_id);
469          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
470               'p_set_of_books_id :'||p_set_of_books_id);
471          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
472               'p_trx_date :'||p_trx_date);
473          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
474               'p_trx_type_id :'||p_trx_type_id);
475          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
476               'p_entity_code :'||p_entity_code);
477          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
478               'p_event_class_code :'||p_event_class_code);
479          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
480               'p_application_id :'||p_application_id);
481          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
482               'p_internal_organization_id :'||p_internal_organization_id);
483     END IF;
484 
485     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
486          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code.',
487               'Calling ZX_TRX_DETAIL.mark_reporting_only_flag');
488     END IF;
489 
490     IF (p_entity_code = OKL_PROCESS_SALES_TAX_PVT.G_AR_ENTITY_CODE) THEN
491       ZX_AR_TAX_CLASSIFICATN_DEF_PKG.get_default_tax_classification (
492                       p_ship_to_site_use_id      => p_ship_to_site_use_id
493                      ,p_bill_to_site_use_id      => p_bill_to_site_use_id
494                      ,p_inventory_item_id        => p_inventory_item_id
495                      ,p_organization_id          => p_organization_id
496                      ,p_set_of_books_id          => p_set_of_books_id
497                      ,p_trx_date                 => p_trx_date
498                      ,p_trx_type_id              => p_trx_type_id
499                      ,p_tax_classification_code  => lx_tax_classification_code
500                      ,p_entity_code              => p_entity_code
501                      ,p_event_class_code         => p_event_class_code
502                      ,p_application_id           => p_application_id
503                      ,p_internal_organization_id => p_internal_organization_id);
504 
505     ELSIF (p_entity_code = OKL_PROCESS_SALES_TAX_PVT.G_AP_ENTITY_CODE) THEN
506       ZX_AP_TAX_CLASSIFICATN_DEF_PKG.get_default_tax_classification(
507                       p_ref_doc_application_id       => null
508                      ,p_ref_doc_entity_code          => null
509                      ,p_ref_doc_event_class_code     => null
510                      ,p_ref_doc_trx_id               => null
511                      ,p_ref_doc_line_id              => null
512                      ,p_ref_doc_trx_level_type       => null
513                      ,p_vendor_id			         => p_vendor_id
514                      ,p_vendor_site_id 		         => p_vendor_site_id
515                      ,p_code_combination_id  	     => null
516                      ,p_concatenated_segments	     => null
517                      ,p_templ_tax_classification_cd  => null
518                      ,p_ship_to_location_id		     => null
519                      ,p_ship_to_loc_org_id   	     => null
520                      ,p_inventory_item_id   		 => p_inventory_item_id
521                      ,p_item_org_id   		         => p_organization_id
522                      ,p_tax_classification_code	     => lx_tax_classification_code
523                      ,p_allow_tax_code_override_flag => lx_allow_tax_code_flag
524                      ,appl_short_name		         => 'SQLAP'
525                      ,func_short_name		         => null
526                      ,p_calling_sequence		     => null
527                      ,p_event_class_code             => p_event_class_code
528                      ,p_entity_code                  => p_entity_code
529                      ,p_application_id               => p_application_id
530                      ,p_internal_organization_id     => p_internal_organization_id);
531     END IF;
532 
533     x_return_status := OKL_API.G_RET_STS_SUCCESS;
534 
535     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
536       FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code ','End(-)');
537     END IF;
538 
539     x_tax_classification_code := lx_tax_classification_code;
540 
541   EXCEPTION
542     WHEN OTHERS THEN
543 
544       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
545          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.get_tax_classification_code ',
546                   'EXCEPTION :'||sqlerrm);
547       END IF;
548 
549       OKL_API.set_message(p_app_name      => 'OKL',
550                           p_msg_name      => 'OKL_TX_TAX_CLASS_CODE_ERR'); --'Error getting Default Tax Classification Code.'
551       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
552       -- unexpected error
553       OKL_API.set_message(p_app_name      => g_app_name,
554                           p_msg_name      => g_unexpected_error,
555                           p_token1        => g_sqlcode_token,
556                           p_token1_value  => sqlcode,
557                           p_token2        => g_sqlerrm_token,
558                           p_token2_value  => sqlerrm);
559 
560   END get_tax_classification_code;
561 
562 /*========================================================================
563  | PUBLIC PROCEDURE mark_reporting_flag
564  |
565  | DESCRIPTION
566  |    This procedure is called by billing and disbursement modules to fetch tax
567  |    determinants
568  |
569  | CALLED FROM
570  |
571  |
572  | CALLS PROCEDURES/FUNCTIONS
573  |       ZX_TRX_DETAIL.mark_reporting_only_flag
574  |
575  | PARAMETERS
576  |      p_trx_id		    -- Transaction identifier
577  |      p_application_id    -- Application identifier
578  |      p_entity_code       -- Entity code
579  |      p_event_class_code  -- Event class code
580  |
581  | KNOWN ISSUES
582  |
583  | NOTES
584  |
585  |
586  | MODIFICATION HISTORY
587  | Date          Author     Description of Changes
588  | 01-MAR-07    RRAVIKIR      Created
589  |
590  *=======================================================================*/
591   PROCEDURE mark_reporting_flag( p_api_version         IN  NUMBER,
592                                  p_init_msg_list       IN  VARCHAR2 DEFAULT OKC_API.G_FALSE,
593                                  x_return_status       OUT NOCOPY VARCHAR2,
594                                  x_msg_count           OUT NOCOPY NUMBER,
595                                  x_msg_data            OUT NOCOPY VARCHAR2,
596                                  p_trx_id              IN  NUMBER,
597                                  p_application_id      IN  NUMBER,
598                                  p_entity_code         IN  VARCHAR2,
599                                  p_event_class_code    IN  VARCHAR2) IS
600 
601     -- Local variables
602     l_api_version                   CONSTANT NUMBER := 1;
603     l_api_name                      CONSTANT VARCHAR2(30) := 'mark_reporting_flag';
604     l_return_status                 VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
605 
606   BEGIN
607     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
608         FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag','Begin(+)');
609     END IF;
610 
611     --Print Input Variables
612     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
613          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag.',
614               'p_init_msg_list :'||p_init_msg_list);
615          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag.',
616               'p_trx_id :'||p_trx_id);
617          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag.',
618               'p_application_id :'||p_application_id);
619          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag.',
620               'p_entity_code :'||p_entity_code);
621          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag.',
622               'p_event_class_code :'||p_event_class_code);
623     END IF;
624 
625     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
626          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag.',
627               'Calling ZX_TRX_DETAIL.mark_reporting_only_flag');
628     END IF;
629 
630     ZX_TRX_DETAIL.mark_reporting_only_flag( p_trx_id           => p_trx_id,
631                                             p_application_id   => p_application_id,
632                                             p_entity_code      => p_entity_code,
633                                             p_event_class_code => p_event_class_code,
634                                             p_return_status    => l_return_status,
635                                             p_error_buffer     => x_msg_data,
636                                             p_reporting_flag   => 'Y');
637 
638     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
639          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag.',
640               'Return Status' || l_return_status);
641     END IF;
642 
643     IF ( l_return_status <> OKL_API.G_RET_STS_SUCCESS ) THEN
644       -- mark reporting flag failed
645       OKL_API.set_message( p_app_name      => 'OKL',
646                            p_msg_name      => 'OKL_TX_MARK_REPORT_FLAG_ERR');
647     END IF;
648 
649     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
650       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
651     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
652       RAISE OKL_API.G_EXCEPTION_ERROR;
653     END IF;
654 
655     x_return_status := l_return_status;
656 
657     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
658       FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag ','End(-)');
659     END IF;
660 
661   EXCEPTION
662     WHEN OKL_API.G_EXCEPTION_ERROR THEN
663 
664       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
665          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag ',
666                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_ERROR');
667       END IF;
668 
669       x_return_status := OKL_API.G_RET_STS_ERROR;
670 
671     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
672       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
673          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag ',
674                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_UNEXPECTED_ERROR');
675       END IF;
676 
677       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
678 
679     WHEN OTHERS THEN
680 
681       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
682          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.mark_reporting_flag ',
683                   'EXCEPTION :'||sqlerrm);
684       END IF;
685 
686       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
687       -- unexpected error
688       OKL_API.set_message(p_app_name      => g_app_name,
689                           p_msg_name      => g_unexpected_error,
690                           p_token1        => g_sqlcode_token,
691                           p_token1_value  => sqlcode,
692                           p_token2        => g_sqlerrm_token,
693                           p_token2_value  => sqlerrm);
694 
695   END mark_reporting_flag;
696 
697 
698 /*========================================================================
699  | PUBLIC PROCEDURE set_tax_security_context
700  |
701  | DESCRIPTION
702  |    This procedure is called by update tax common components for setting the
703  |    tax security context before invoking Tax Determinant Lov's
704  |
705  | CALLED FROM 					Tax Common components
706  |
707  |
708  | CALLS PROCEDURES/FUNCTIONS
709  |     zx_api_pub.set_tax_security_context()
710  |
711  |
712  | PARAMETERS
713  |      p_internal_org_id		-- Operatng Unit Identifier
714  |      p_legal_entity_id       -- Legal Entity Identifier
715  |      p_transaction_date      -- Transaction Date
716  |
717  | KNOWN ISSUES
718  |
719  | NOTES
720  |
721  |
722  | MODIFICATION HISTORY
723  | Date          Author     Description of Changes
724  | 24-JAN-07    RRAVIKIR      Created
725  *=======================================================================*/
726   PROCEDURE set_tax_security_context(
727     p_api_version                  	IN  NUMBER,
728     p_init_msg_list                	IN  VARCHAR2 DEFAULT OKL_API.G_FALSE,
729     x_return_status                	OUT NOCOPY VARCHAR2,
730     x_msg_count                    	OUT NOCOPY NUMBER,
731     x_msg_data                     	OUT NOCOPY VARCHAR2,
732     p_internal_org_id			 	IN  NUMBER,
733     p_legal_entity_id               IN  NUMBER,
734     p_transaction_date              IN  DATE) IS
735 
736     l_api_version            CONSTANT NUMBER := 1;
737     l_api_name               CONSTANT VARCHAR2(30) := 'set_tax_security_context';
738     l_return_status          VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
739 
740     x_effective_date         DATE;
741 
742   BEGIN
743 
744     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
745         FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.set_tax_security_context','Begin(+)');
746     END IF;
747 
748     --Print Input Variables
749     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
750          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.set_tax_security_context.',
751               'p_init_msg_list :'||p_init_msg_list);
752          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.set_tax_security_context.',
753               'p_internal_org_id :'||to_char(p_internal_org_id));
754          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.set_tax_security_context.',
755               'p_legal_entity_id :'||p_legal_entity_id);
756          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.set_tax_security_context.',
757               'p_transaction_date :'||p_transaction_date);
758     END IF;
759 
760     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
761          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.set_tax_security_context.',
762               'Calling ZX_API_PUB.set_tax_security_context');
763     END IF;
764 
765     -- Set Tax Security Context
766     ZX_API_PUB.set_tax_security_context(p_api_version           => p_api_version,
767                                         p_init_msg_list         => p_init_msg_list,
768                                         p_commit                => 'F',
769                                         p_validation_level      => 1,
770                                         x_return_status         => l_return_status,
771                                         x_msg_count             => x_msg_count,
772                                         x_msg_data              => x_msg_data,
773                                         p_internal_org_id       => p_internal_org_id,
774                                         p_legal_entity_id       => p_legal_entity_id,
775                                         p_transaction_date      => p_transaction_date,
776                                         p_related_doc_date      => NULL,
777                                         p_adjusted_doc_date     => NULL,
778                                         p_provnl_tax_det_date   => NULL,
779                                         x_effective_date        => x_effective_date);
780 
781     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
782          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.set_tax_security_context.',
783               'Return Status' || l_return_status);
784     END IF;
785 
786     IF ( l_return_status <> OKL_API.G_RET_STS_SUCCESS ) THEN
787       -- set tax security context failed
788       OKL_API.set_message( p_app_name      => 'OKL',
789                            p_msg_name      => 'OKL_TX_SET_TAX_CNTXT_ERR');
790     END IF;
791 
792     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
793       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
794     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
795       RAISE OKL_API.G_EXCEPTION_ERROR;
796     END IF;
797 
798     x_return_status := l_return_status;
799 
800     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
801       FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.set_tax_security_context ','End(-)');
802     END IF;
803 
804    EXCEPTION
805     WHEN OKL_API.G_EXCEPTION_ERROR THEN
806 
807       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
808          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.set_tax_security_context ',
809                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_ERROR');
810       END IF;
811 
812       x_return_status := OKL_API.G_RET_STS_ERROR;
813 
814     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
815       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
816          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.set_tax_security_context ',
817                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_UNEXPECTED_ERROR');
818       END IF;
819 
820       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
821 
822     WHEN OTHERS THEN
823 
824       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
825          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.set_tax_security_context ',
826                   'EXCEPTION :'||sqlerrm);
827       END IF;
828 
829       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
830       -- unexpected error
831       OKL_API.set_message(p_app_name      => g_app_name,
832                           p_msg_name      => g_unexpected_error,
833                           p_token1        => g_sqlcode_token,
834                           p_token1_value  => sqlcode,
835                           p_token2        => g_sqlerrm_token,
836                           p_token2_value  => sqlerrm);
837 
838   END set_tax_security_context;
839 
840 /*========================================================================
841  | PUBLIC PROCEDURE process_tax_determ_override
842  |
843  | DESCRIPTION
844  |    This procedure is called by 'BOOKING', 'REBOOK' and 'ASSET LOCATION
845  |    CHANGE' transactions to override tax determinants
846  |
847  | CALLED FROM 					OLM Tax Events
848  |
849  |
850  | CALLS PROCEDURES/FUNCTIONS
851  |       ZX_API_PUB.calculate_tax
852  |
853  | PARAMETERS
854  |      p_trx_id                     -- Transaction Identifier
855  |      p_tax_sources_id	         -- Tax Sources table unique Identifier
856  |      p_trx_business_category      -- Transaction Business Category (Tax Determinant)
857  |      p_product_category           -- Product Category (Tax Determinant)
858  |      p_user_defined_fisc_class    -- User defined fiscal class (Tax Determinant)
859  |      p_line_intended_use          -- Line intended use (Tax Determinant)
860  |
861  | KNOWN ISSUES
862  |
863  | NOTES
864  |
865  |
866  | MODIFICATION HISTORY
867  | Date          Author     Description of Changes
868  | 01-FEB-07    RRAVIKIR      Created
869  |
870  *=======================================================================*/
871   PROCEDURE process_tax_determ_override(
872     p_api_version                   IN  NUMBER,
873     p_init_msg_list                 IN  VARCHAR2,
874     x_return_status                 OUT NOCOPY VARCHAR2 ,
875     x_msg_count                     OUT NOCOPY NUMBER ,
876     x_msg_data                      OUT NOCOPY VARCHAR2,
877     p_trx_id                        IN  NUMBER,
878     p_tax_sources_id                IN  NUMBER,
879     p_trx_business_category         IN  VARCHAR2,
880     p_product_category			 	IN  VARCHAR2,
881     p_user_defined_fisc_class       IN  VARCHAR2,
882     p_line_intended_use             IN  VARCHAR2,
883     p_transaction_rec               IN  transaction_rec_type,
884     x_doc_level_recalc_flag         OUT NOCOPY VARCHAR2) IS
885 
886     l_api_version            CONSTANT NUMBER := 1;
887     l_api_name               CONSTANT VARCHAR2(30) := 'process_tax_determ';
888     l_return_status          VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
889 
890     x_effective_date         DATE;
891     l_ledger_id              NUMBER;
892     l_cust_trx_type_id       NUMBER;
893 
894     l_transaction_rec        transaction_rec_type;
895 
896     -- Cursors
897     CURSOR l_taxsources_csr(cp_tax_sources_id IN NUMBER) IS
898     SELECT trx_line_id, application_id, event_class_code, entity_code, trx_date,
899            khr_id, trx_currency_code, currency_conversion_type,
900            currency_conversion_rate, currency_conversion_date, org_id,
901            legal_entity_id, trx_level_type, line_amt, bill_to_cust_acct_id,
902            default_taxation_country, tax_classification_code, assessable_value,
903            inventory_item_id, product_type, ship_to_cust_acct_site_use_id,
904            bill_to_cust_acct_site_use_id, bill_to_party_site_id, bill_to_location_id,
905            bill_to_party_id, ship_to_party_site_id, ship_to_location_id,
906            ship_to_party_id, adjusted_doc_entity_code, adjusted_doc_event_class_code,
907            adjusted_doc_trx_id, adjusted_doc_trx_line_id, adjusted_doc_trx_level_type,
908            adjusted_doc_number, adjusted_doc_date, tax_reporting_flag
909     FROM  okl_tax_sources
910     WHERE id = cp_tax_sources_id;
911 
912     CURSOR l_racusttrxtypes_csr IS
913     SELECT cust_trx_type_id
914 	FROM   ra_cust_trx_types_all
915 	WHERE  name = 'Invoice-OKL';
916 
917     CURSOR l_fndcurrency_csr(cp_currency_code IN VARCHAR2) IS
918     SELECT precision, minimum_accountable_unit
919     FROM   fnd_currencies
920     WHERE  currency_code = cp_currency_code
921 	AND    enabled_flag = 'Y'
922     AND    nvl(start_date_active, sysdate) <= sysdate
923     AND    nvl(end_date_active, sysdate) >= sysdate;
924 
925     -- Cursor Records
926     l_taxsources_rec         l_taxsources_csr%ROWTYPE;
927     l_fndcurrency_rec        l_fndcurrency_csr%ROWTYPE;
928 
929 
930     --sechawla 17-Nov-2011 13101040
931     CURSOR c_org_location(cp_org_id IN NUMBER) IS
932     SELECT location_id
933     FROM   hr_organization_units
934     WHERE  ORGANIZATION_ID = cp_org_id;
935     l_org_loc_id              NUMBER;
936 
937   BEGIN
938 
939     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
940         FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.process_tax_determ_override','Begin(+)');
941     END IF;
942 
943     --Print Input Variables
944     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
945          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.process_tax_determ_override.',
946               'p_init_msg_list :'||p_init_msg_list);
947     END IF;
948 
949     -- Tax Determinants override
950     l_transaction_rec := p_transaction_rec;
951 
952     -- Fetch Tax Sources details
953     OPEN l_taxsources_csr(cp_tax_sources_id  =>  p_tax_sources_id);
954     FETCH l_taxsources_csr INTO l_taxsources_rec;
955     CLOSE l_taxsources_csr;
956 
957     -- Fetch AR Customer Account Trx Type
958     OPEN  l_racusttrxtypes_csr;
959     FETCH l_racusttrxtypes_csr INTO l_cust_trx_type_id;
960     IF l_racusttrxtypes_csr%NOTFOUND THEN
961       -- AR Customer Account Trx Type is required
962       OKL_API.set_message( p_msg_name      => G_REQUIRED_VALUE,
963                            p_token1        => G_COL_NAME_TOKEN,
964                            p_token1_value  => 'CUST_TRX_TYPE_ID');
965       RAISE OKL_API.G_EXCEPTION_ERROR;
966     END IF;
967     CLOSE l_racusttrxtypes_csr;
968 
969     -- Retrieve Ledger Id
970     l_ledger_id := okl_accounting_util.get_set_of_books_id;
971 
972     --sechawla 17-Nov-2011 13101040
973     OPEN  c_org_location(l_taxsources_rec.org_id);
974     FETCH c_org_location INTO l_org_loc_id;
975     CLOSE c_org_location;
976 
977 
978     -- Initialize ZX Global Structure
979     ZX_GLOBAL_STRUCTURES_PKG.INIT_TRX_LINE_DIST_TBL(1);
980 
981     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.internal_organization_id (1) := l_taxsources_rec.org_id;
982     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.application_id (1)           := l_taxsources_rec.application_id ;
983     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.entity_code (1)              := l_transaction_rec.entity_code;
984     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.event_class_code (1)         := l_transaction_rec.event_class_code;
985     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.event_type_code (1)          := l_transaction_rec.event_type_code;
986     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_id (1)                   := p_trx_id;
987     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_date (1)                 := l_taxsources_rec.trx_date;
988     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ledger_id (1)                := l_ledger_id;
989     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.legal_entity_id (1)          := l_taxsources_rec.legal_entity_id;
990     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_level_type (1)           := l_taxsources_rec.trx_level_type;
991     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_level_action (1)        := OKL_PROCESS_SALES_TAX_PVT.G_UPDATE_LINE_LEVEL_ACTION ;
992     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_line_id (1)              := l_taxsources_rec.trx_line_id;
993     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_amt (1)                 := l_taxsources_rec.line_amt;
994     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_business_category (1)    := p_trx_business_category ;
995     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.product_category (1)         := p_product_category ;
996     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.user_defined_fisc_class (1)  := p_user_defined_fisc_class ;
997     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_intended_use (1)        := p_line_intended_use ;
998 
999     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.tax_reporting_flag (1)       := l_taxsources_rec.tax_reporting_flag;
1000 
1001     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.default_taxation_country (1) := l_taxsources_rec.default_taxation_country;
1002     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.product_type (1)             := l_taxsources_rec.product_type;
1003     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.output_tax_classification_code (1) := l_taxsources_rec. tax_classification_code;
1004     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.assessable_value (1)         := l_taxsources_rec.assessable_value;
1005     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.receivables_trx_type_id (1)  := l_cust_trx_type_id;
1006 
1007     -- Product fiscal classification will be derived in eBTax using inventory item id
1008     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.product_id (1)               := l_taxsources_rec.inventory_item_id;
1009 
1010     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_entity_code (1) := l_taxsources_rec.adjusted_doc_entity_code;
1011     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_event_class_code (1) := l_taxsources_rec.adjusted_doc_event_class_code;
1012     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_trx_id (1)      := l_taxsources_rec.adjusted_doc_trx_id;
1013     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_line_id (1)     := l_taxsources_rec.adjusted_doc_trx_line_id;
1014     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_trx_level_type (1) := l_taxsources_rec.adjusted_doc_trx_level_type;
1015     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_number (1)      := l_taxsources_rec.adjusted_doc_number;
1016     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.adjusted_doc_date (1)        := l_taxsources_rec.adjusted_doc_date;
1017     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.line_amt_includes_tax_flag (1) := 'N';
1018 
1019     -- Populate ZX Global Structure with Location and Party Identifiers
1020     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_cust_acct_site_use_id (1) := l_taxsources_rec.ship_to_cust_acct_site_use_id;
1021     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_cust_acct_site_use_id (1) := l_taxsources_rec.bill_to_cust_acct_site_use_id;
1022     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_party_site_id (1)         := l_taxsources_rec.bill_to_party_site_id;
1023     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_location_id (1)           := l_taxsources_rec.bill_to_location_id;
1024     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_to_party_id (1)              := l_taxsources_rec.bill_to_party_id;
1025     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_party_site_id (1)         := l_taxsources_rec.ship_to_party_site_id;
1026     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_location_id (1)           := l_taxsources_rec.ship_to_location_id;
1027     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.ship_to_party_id (1)              := l_taxsources_rec.ship_to_party_id;
1028     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.rounding_ship_to_party_id (1)     := l_taxsources_rec.ship_to_party_id;
1029     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.rounding_bill_to_party_id (1)     := l_taxsources_rec.bill_to_party_id;
1030 
1031 
1032     --28-Oct-11 SECHAWLA 13101040
1033     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_from_party_id (1) := l_taxsources_rec.org_id;
1034     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.bill_from_location_id (1) := l_org_loc_id;
1035 
1036 
1037     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.insert_update_flag (1)            := 'U';
1038 --bug 11691861
1039             ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.exemption_control_flag(1)              :='S';
1040 
1041     -- Populate Currency values
1042     OPEN  l_fndcurrency_csr(cp_currency_code => l_taxsources_rec.trx_currency_code);
1043     FETCH l_fndcurrency_csr INTO l_fndcurrency_rec;
1044 
1045     IF l_fndcurrency_csr%NOTFOUND THEN
1046       OKL_API.set_message( p_msg_name      => G_REQUIRED_VALUE,
1047                            p_token1        => G_COL_NAME_TOKEN,
1048                            p_token1_value  => 'CURRENCY_CODE');
1049       RAISE OKL_API.G_EXCEPTION_ERROR;
1050     END IF;
1051     CLOSE l_fndcurrency_csr;
1052     -- End Populate Currency values
1053 
1054     -- Populate ZX Global Structure with Currency Identifiers
1055     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.trx_currency_code(1)         := l_taxsources_rec.trx_currency_code;
1056     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.precision (1)                := l_fndcurrency_rec.precision;
1057     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.minimum_accountable_unit (1) := l_fndcurrency_rec.minimum_accountable_unit;
1058 
1059     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.currency_conversion_date (1) := l_taxsources_rec.currency_conversion_date;
1060     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.currency_conversion_rate (1) := l_taxsources_rec.currency_conversion_rate;
1061     ZX_GLOBAL_STRUCTURES_PKG.TRX_LINE_DIST_TBL.currency_conversion_type (1) := l_taxsources_rec.currency_conversion_type;
1062 
1063     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1064          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.process_tax_determ_override.',
1065               'Calling ZX_API_PUB.calculate_tax');
1066     END IF;
1067 
1068     ZX_API_PUB.calculate_tax
1069         (p_api_version           => p_api_version,
1070          p_init_msg_list         => p_init_msg_list,
1071          p_commit                => 'F',
1072          p_validation_level      => 1,
1073          x_return_status         => l_return_status,
1074          x_msg_count             => x_msg_count,
1075          x_msg_data              => x_msg_data,
1076          p_transaction_rec       => l_transaction_rec,
1077          p_quote_flag            => 'N',
1078          p_data_transfer_mode    => 'PLS',
1079          x_doc_level_recalc_flag  => x_doc_level_recalc_flag );
1080 
1081     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1082          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.process_tax_determ_override.',
1083               'Return Status' || l_return_status);
1084     END IF;
1085 
1086     IF ( l_return_status <> OKL_API.G_RET_STS_SUCCESS ) THEN
1087       -- Tax Calculation Failed
1088       OKL_API.set_message( p_app_name      => 'OKL',
1089                            p_msg_name      => 'OKL_TX_TAX_ENGINE_ERR');
1090     END IF;
1091 
1092     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1093       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1094     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1095       RAISE OKL_API.G_EXCEPTION_ERROR;
1096     END IF;
1097 
1098     x_return_status := l_return_status;
1099 
1100     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1101       FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.process_tax_determ_override ','End(-)');
1102     END IF;
1103 
1104    EXCEPTION
1105     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1106 
1107       IF (l_taxsources_csr%ISOPEN) THEN
1108         CLOSE l_taxsources_csr;
1109       END IF;
1110 
1111       IF (l_racusttrxtypes_csr%ISOPEN) THEN
1112         CLOSE l_racusttrxtypes_csr;
1113       END IF;
1114 
1115       IF (l_fndcurrency_csr%ISOPEN) THEN
1116         CLOSE l_fndcurrency_csr;
1117       END IF;
1118 
1119       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1120          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.process_tax_determ_override ',
1121                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_ERROR');
1122       END IF;
1123 
1124       x_return_status := OKL_API.G_RET_STS_ERROR;
1125 
1126     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1127 
1128       IF (l_taxsources_csr%ISOPEN) THEN
1129         CLOSE l_taxsources_csr;
1130       END IF;
1131 
1132       IF (l_racusttrxtypes_csr%ISOPEN) THEN
1133         CLOSE l_racusttrxtypes_csr;
1134       END IF;
1135 
1136       IF (l_fndcurrency_csr%ISOPEN) THEN
1137         CLOSE l_fndcurrency_csr;
1138       END IF;
1139 
1140       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1141          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.process_tax_determ_override ',
1142                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_UNEXPECTED_ERROR');
1143       END IF;
1144 
1145       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1146 
1147     WHEN OTHERS THEN
1148 
1149       IF (l_taxsources_csr%ISOPEN) THEN
1150         CLOSE l_taxsources_csr;
1151       END IF;
1152 
1153       IF (l_racusttrxtypes_csr%ISOPEN) THEN
1154         CLOSE l_racusttrxtypes_csr;
1155       END IF;
1156 
1157       IF (l_fndcurrency_csr%ISOPEN) THEN
1158         CLOSE l_fndcurrency_csr;
1159       END IF;
1160 
1161       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1162          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.process_tax_determ_override ',
1163                   'EXCEPTION :'||sqlerrm);
1164       END IF;
1165 
1166       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1167       -- unexpected error
1168       OKL_API.set_message(p_app_name      => g_app_name,
1169                           p_msg_name      => g_unexpected_error,
1170                           p_token1        => g_sqlcode_token,
1171                           p_token1_value  => sqlcode,
1172                           p_token2        => g_sqlerrm_token,
1173                           p_token2_value  => sqlerrm);
1174 
1175   END process_tax_determ_override;
1176 
1177 /*========================================================================
1178  | PUBLIC PROCEDURE process_tax_details_override
1179  |
1180  | DESCRIPTION
1181  |    This procedure is called by 'BOOKING', 'REBOOK' transactions to override
1182  |    tax details
1183  |
1184  | CALLED FROM 					OLM Tax Events
1185  |
1186  |
1187  | CALLS PROCEDURES/FUNCTIONS
1188  |       ZX_API_PUB.override_tax
1189  |
1190  | PARAMETERS
1191  |      p_event_id			         -- Tax Lines window will return an event id
1192  |                                      when there are any user overrides. It is
1193  |                                      this event id value that needs to be passed
1194  |                                      by OA Tax Override and Forms Tax Override Uis,
1195  |                                      to this API
1196  |      p_internal_organization_id   -- Organization Identifier
1197  |      p_trx_id                     -- Transaction Identifier
1198  |      p_application_id             -- Application Identifier
1199  |      p_entity_code                -- Entity code
1200  |      p_event_class_code           -- Event class code
1201  |
1202  | KNOWN ISSUES
1203  |
1204  | NOTES
1205  |
1206  |
1207  | MODIFICATION HISTORY
1208  | Date          Author     Description of Changes
1209  | 22-FEB-07    RRAVIKIR      Created
1210  |
1211  *=======================================================================*/
1212   PROCEDURE process_tax_details_override(
1213     p_api_version           IN         NUMBER,
1214     p_init_msg_list         IN         VARCHAR2,
1215     x_return_status         OUT NOCOPY VARCHAR2 ,
1216     x_msg_count             OUT NOCOPY NUMBER ,
1217     x_msg_data              OUT NOCOPY VARCHAR2,
1218     p_transaction_rec       IN         transaction_rec_type,
1219     p_override_level        IN         VARCHAR2,
1220     p_event_id              IN         NUMBER) IS
1221 
1222     l_api_version            CONSTANT NUMBER := 1;
1223     l_api_name               CONSTANT VARCHAR2(30) := 'process_tax_details';
1224     l_return_status          VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1225 
1226     x_effective_date         DATE;
1227 
1228     l_transaction_rec        transaction_rec_type;
1229 
1230   BEGIN
1231 
1232     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1233         FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.process_tax_details_override','Begin(+)');
1234     END IF;
1235 
1236     --Print Input Variables
1237     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1238          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.process_tax_details_override.',
1239               'p_init_msg_list :'||p_init_msg_list);
1240          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.process_tax_details_override.',
1241               'p_override_level :'||to_char(p_override_level));
1242          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.process_tax_details_override.',
1243               'p_event_id :'||p_event_id);
1244     END IF;
1245 
1246     -- Override Tax
1247     l_transaction_rec := p_transaction_rec;
1248 
1249     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1250          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.process_tax_details_override.',
1251               'Calling ZX_API_PUB.override_tax');
1252     END IF;
1253 
1254     ZX_API_PUB.override_tax
1255         (p_api_version           => p_api_version,
1256          p_init_msg_list         => p_init_msg_list,
1257          p_commit                => 'F',
1258          p_validation_level      => 1,
1259          x_return_status         => l_return_status,
1260          x_msg_count             => x_msg_count,
1261          x_msg_data              => x_msg_data,
1262          p_transaction_rec       => l_transaction_rec,
1263          p_override_level        => p_override_level,
1264          p_event_id              => p_event_id);
1265 
1266     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1267          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.process_tax_details_override.',
1268               'Return Status' || l_return_status);
1269     END IF;
1270 
1271     IF ( l_return_status <> OKL_API.G_RET_STS_SUCCESS ) THEN
1272       -- oevrride tax failed
1273       OKL_API.set_message( p_app_name      => 'OKL',
1274                            p_msg_name      => 'OKL_TX_TAX_ENGINE_ERR');
1275     END IF;
1276 
1277     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1278       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1279     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1280       RAISE OKL_API.G_EXCEPTION_ERROR;
1281     END IF;
1282 
1283     x_return_status := l_return_status;
1284 
1285     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1286       FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.process_tax_details_override ','End(-)');
1287     END IF;
1288 
1289    EXCEPTION
1290     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1291 
1292       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1293          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.process_tax_details_override ',
1294                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_ERROR');
1295       END IF;
1296 
1297       x_return_status := OKL_API.G_RET_STS_ERROR;
1298 
1299     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1300       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1301          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.process_tax_details_override ',
1302                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_UNEXPECTED_ERROR');
1303       END IF;
1304 
1305       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1306 
1307     WHEN OTHERS THEN
1308 
1309       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1310          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.process_tax_details_override ',
1311                   'EXCEPTION :'||sqlerrm);
1312       END IF;
1313 
1314       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1315       -- unexpected error
1316       OKL_API.set_message(p_app_name      => g_app_name,
1317                           p_msg_name      => g_unexpected_error,
1318                           p_token1        => g_sqlcode_token,
1319                           p_token1_value  => sqlcode,
1320                           p_token2        => g_sqlerrm_token,
1321                           p_token2_value  => sqlerrm);
1322 
1323   END process_tax_details_override;
1324 
1325 /*========================================================================
1326  | PUBLIC PROCEDURE copy_global_tax_data
1327  |
1328  | DESCRIPTION
1329  |    This procedure is called by tax module to populate tax data into ZX global
1330  |    session table. eBtax uses this table to show the tax data for Quote
1331  |    objects (Sales Quote, Lease Application and Termination Quote)
1332  |
1333  | CALLED FROM 					OLM Tax Module
1334  |
1335  |
1336  | CALLS PROCEDURES/FUNCTIONS
1337  |
1338  |
1339  | PARAMETERS
1340  |      p_trx_id                     -- Transaction Identifier
1341  |      p_trx_line_id                -- Transaction Line Identifier
1342  |      p_application_id             -- Application Identifier
1343  |      p_trx_level_type             -- Transaction level type
1344  |      p_entity_code                -- Entity code
1345  |      p_event_class_code           -- Event class code
1346  |
1347  | KNOWN ISSUES
1348  |
1349  | NOTES
1350  |
1351  |
1352  | MODIFICATION HISTORY
1353  | Date          Author     Description of Changes
1354  | 04-APR-07    RRAVIKIR      Created
1355  |
1356  *=======================================================================*/
1357   PROCEDURE copy_global_tax_data (
1358     p_api_version                   IN NUMBER,
1359     p_init_msg_list                 IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1360     x_return_status                 OUT NOCOPY VARCHAR2,
1361     x_msg_count                     OUT NOCOPY NUMBER,
1362     x_msg_data                      OUT NOCOPY VARCHAR2,
1363     p_trx_id                        IN  NUMBER,
1364     p_trx_line_id                   IN  NUMBER,
1365     p_application_id                IN  NUMBER,
1366     p_trx_level_type		 	    IN  VARCHAR2,
1367     p_entity_code			 	    IN  VARCHAR2,
1368     p_event_class_code              IN  VARCHAR2) IS
1369 
1370     -- Local variables
1371     l_api_version                   CONSTANT NUMBER := 1;
1372     l_api_name                      CONSTANT VARCHAR2(30) := 'copy_global_tax_data';
1373 
1374     -- Cursor to retrieve tax data
1375     CURSOR l_get_tax_data_csr IS
1376     SELECT tax_determine_date,
1377            tax_rate_id,
1378            tax_rate_code,
1379            taxable_amt,
1380            tax_exemption_id,
1381            tax_rate,
1382            tax_amt,
1383            tax_date,
1384            line_amt,
1385            internal_organization_id,
1386            application_id,
1387            entity_code,
1388            event_class_code,
1389            event_type_code ,
1390            trx_id,
1391            trx_line_id,
1392            trx_level_type,
1393            trx_line_number,
1394            tax_line_number ,
1395            tax_regime_id ,
1396            tax_regime_code ,
1397            tax_id,
1398            tax,
1399            tax_status_id,
1400            tax_status_code,
1401            tax_apportionment_line_number,
1402            legal_entity_id,
1403            trx_number,
1404            trx_date,
1405            tax_jurisdiction_id,
1406            tax_jurisdiction_code,
1407            tax_type_code,
1408            tax_currency_code ,
1409            taxable_amt_tax_curr,
1410            trx_currency_code,
1411            minimum_accountable_unit,
1412            precision,
1413            currency_conversion_type,
1414            currency_conversion_rate,
1415            currency_conversion_date
1416     FROM okl_tax_trx_details
1417     WHERE trx_id = p_trx_id
1418     AND   trx_line_id = p_trx_line_id
1419     AND   application_id = p_application_id
1420     AND   trx_level_type = p_trx_level_type
1421     AND   entity_code = p_entity_code
1422     AND   event_class_code = p_event_class_code;
1423 
1424   BEGIN
1425     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1426         FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data','Begin(+)');
1427     END IF;
1428 
1429     --Print Input Variables
1430     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1431          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data.',
1432               'p_init_msg_list :'||p_init_msg_list);
1433          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data.',
1434               'p_trx_id :'||p_trx_id);
1435          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data.',
1436               'p_trx_line_id :'||p_trx_line_id);
1437          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data.',
1438               'p_application_id :'||p_application_id);
1439          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data.',
1440               'p_trx_level_type :'||p_trx_level_type);
1441          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data.',
1442               'p_entity_code :'||p_entity_code);
1443          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data.',
1444               'p_event_class_code :'||p_event_class_code);
1445     END IF;
1446 
1447     -- Populate the tax data into eBtax global session table
1448     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1449          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data.',
1450               'INSERT INTO zx_detail_tax_lines_gt');
1451     END IF;
1452 
1453     -- Clear the table before insertion
1454     DELETE
1455     FROM zx_detail_tax_lines_gt
1456     WHERE trx_id = p_trx_id
1457     AND trx_line_id = p_trx_line_id;
1458 
1459     FOR l_get_tax_data_rec IN l_get_tax_data_csr LOOP
1460       INSERT INTO zx_detail_tax_lines_gt(
1461            tax_line_id,
1462            tax_determine_date,
1463            tax_rate_id,
1464            tax_rate_code,
1465            taxable_amt,
1466            tax_exemption_id,
1467            tax_rate,
1468            tax_amt,
1469            tax_date,
1470            line_amt,
1471            internal_organization_id,
1472            application_id,
1473            entity_code,
1474            event_class_code,
1475            event_type_code ,
1476            trx_id,
1477            trx_line_id,
1478            trx_level_type,
1479            trx_line_number,
1480            tax_line_number ,
1481            tax_regime_id ,
1482            tax_regime_code ,
1483            tax_id,
1484            tax,
1485            tax_status_id,
1486            tax_status_code,
1487            tax_apportionment_line_number,
1488            legal_entity_id,
1489            trx_number,
1490            trx_date,
1491            tax_jurisdiction_id,
1492            tax_jurisdiction_code,
1493            tax_type_code,
1494            tax_currency_code ,
1495            taxable_amt_tax_curr,
1496            trx_currency_code,
1497            minimum_accountable_unit,
1498            precision,
1499            currency_conversion_type,
1500            currency_conversion_rate,
1501            currency_conversion_date,
1502            created_by,
1503            creation_date,
1504            last_updated_by,
1505            last_update_date,
1506            last_update_login,
1507            object_version_number) VALUES
1508            (
1509            zx_lines_s.nextval,
1510            l_get_tax_data_rec.tax_determine_date,
1511            l_get_tax_data_rec.tax_rate_id,
1512            l_get_tax_data_rec.tax_rate_code,
1513            l_get_tax_data_rec.taxable_amt,
1514            l_get_tax_data_rec.tax_exemption_id,
1515            l_get_tax_data_rec.tax_rate,
1516            l_get_tax_data_rec.tax_amt,
1517            l_get_tax_data_rec.tax_date,
1518            l_get_tax_data_rec.line_amt,
1519            l_get_tax_data_rec.internal_organization_id,
1520            l_get_tax_data_rec.application_id,
1521            l_get_tax_data_rec.entity_code,
1522            l_get_tax_data_rec.event_class_code,
1523            l_get_tax_data_rec.event_type_code ,
1524            l_get_tax_data_rec.trx_id,
1525            l_get_tax_data_rec.trx_line_id,
1526            l_get_tax_data_rec.trx_level_type,
1527            l_get_tax_data_rec.trx_line_number,
1528            l_get_tax_data_rec.tax_line_number ,
1529            l_get_tax_data_rec.tax_regime_id ,
1530            l_get_tax_data_rec.tax_regime_code ,
1531            l_get_tax_data_rec.tax_id,
1532            l_get_tax_data_rec.tax,
1533            l_get_tax_data_rec.tax_status_id,
1534            l_get_tax_data_rec.tax_status_code,
1535            l_get_tax_data_rec.tax_apportionment_line_number,
1536            l_get_tax_data_rec.legal_entity_id,
1537            l_get_tax_data_rec.trx_number,
1538            l_get_tax_data_rec.trx_date,
1539            l_get_tax_data_rec.tax_jurisdiction_id,
1540            l_get_tax_data_rec.tax_jurisdiction_code,
1541            l_get_tax_data_rec.tax_type_code,
1542            l_get_tax_data_rec.tax_currency_code,
1543            l_get_tax_data_rec.taxable_amt_tax_curr,
1544            l_get_tax_data_rec.trx_currency_code,
1545            l_get_tax_data_rec.minimum_accountable_unit,
1546            l_get_tax_data_rec.precision,
1547            l_get_tax_data_rec.currency_conversion_type,
1548            l_get_tax_data_rec.currency_conversion_rate,
1549            l_get_tax_data_rec.currency_conversion_date,
1550            G_USER_ID,
1551            SYSDATE,
1552            G_USER_ID,
1553            SYSDATE,
1554            G_LOGIN_ID,
1555            1);
1556     END LOOP;
1557 
1558     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1559          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data.',
1560               'Return Status' || x_return_status);
1561     END IF;
1562 
1563     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1564       FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data ','End(-)');
1565     END IF;
1566 
1567   EXCEPTION
1568     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1569 
1570       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1571          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data ',
1572                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_ERROR');
1573       END IF;
1574 
1575       x_return_status := OKL_API.G_RET_STS_ERROR;
1576 
1577     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1578       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1579          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data ',
1580                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_UNEXPECTED_ERROR');
1581       END IF;
1582 
1583       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1584     WHEN OTHERS THEN
1585 
1586       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1587          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.copy_global_tax_data ',
1588                   'EXCEPTION :'||sqlerrm);
1589       END IF;
1590 
1591       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1592       -- unexpected error
1593       OKL_API.set_message(p_app_name      => g_app_name,
1594                           p_msg_name      => g_unexpected_error,
1595                           p_token1        => g_sqlcode_token,
1596                           p_token1_value  => sqlcode,
1597                           p_token2        => g_sqlerrm_token,
1598                           p_token2_value  => sqlerrm);
1599 
1600   END copy_global_tax_data;
1601 
1602 /*========================================================================
1603  | PUBLIC PROCEDURE update_document
1604  |
1605  | DESCRIPTION
1606  |    This procedure is called by billing and disbursement modules to fetch tax
1607  |    determinants
1608  |
1609  | CALLED FROM
1610  |
1611  |
1612  | CALLS PROCEDURES/FUNCTIONS
1613  |       ZX_API_PUB.global_document_update
1614  |
1615  | PARAMETERS
1616  |      p_source_trx_id		- ID of Pre-Rebook or Rebook transaction in okl_trx_contracts
1617  |      p_source_trx_name  - Pre-Rebook or Rebook
1618  |      p_source_table      - OKL_TRX_CONTRACTS
1619  |
1620  | KNOWN ISSUES
1621  |
1622  | NOTES
1623  |
1624  |
1625  | MODIFICATION HISTORY
1626  | Date          Author     Description of Changes
1627  | 01-MAR-07    RRAVIKIR      Created
1628  |
1629  *=======================================================================*/
1630   PROCEDURE update_document (
1631     p_api_version                   IN NUMBER,
1632     p_init_msg_list                 IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1633     x_return_status                 OUT NOCOPY VARCHAR2,
1634     x_msg_count                     OUT NOCOPY NUMBER,
1635     x_msg_data                      OUT NOCOPY VARCHAR2,
1636     p_transaction_rec               transaction_rec_type) IS
1637 
1638     -- Local variables
1639     l_api_version                   CONSTANT NUMBER := 1;
1640     l_api_name                      CONSTANT VARCHAR2(30) := 'update_document';
1641     l_return_status                 VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1642 
1643     -- Local dats structure
1644     l_transaction_rec               transaction_rec_type;
1645 
1646   BEGIN
1647     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1648         FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.update_document','Begin(+)');
1649     END IF;
1650 
1651     --Print Input Variables
1652     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1653          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.update_document.',
1654               'p_init_msg_list :'||p_init_msg_list);
1655     END IF;
1656 
1657     l_transaction_rec := p_transaction_rec;
1658 
1659     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1660          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.update_document.',
1661               'Calling ZX_API_PUB.global_document_update');
1662     END IF;
1663 
1664     ZX_API_PUB.global_document_update(p_api_version           => p_api_version,
1665                                       p_init_msg_list         => p_init_msg_list,
1666                                       p_commit                => 'F' ,
1667                                       p_validation_level      => 1,
1668                                       x_return_status         => l_return_status,
1669                                       x_msg_count             => x_msg_count,
1670                                       x_msg_data              => x_msg_data,
1671                                       p_transaction_rec       => l_transaction_rec);
1672 
1673     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1674          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.update_document.',
1675               'Return Status' || l_return_status);
1676     END IF;
1677 
1678     IF ( l_return_status <> OKL_API.G_RET_STS_SUCCESS ) THEN
1679       -- update document failed
1680       OKL_API.set_message( p_app_name      => 'OKL',
1681                            p_msg_name      => 'OKL_TX_CANCEL_TAX_ERR');
1682     END IF;
1683 
1684     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1685       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1686     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1687       RAISE OKL_API.G_EXCEPTION_ERROR;
1688     END IF;
1689 
1690     x_return_status := l_return_status;
1691 
1692     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1693       FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.update_document ','End(-)');
1694     END IF;
1695 
1696   EXCEPTION
1697     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1698 
1699       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1700          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.update_document ',
1701                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_ERROR');
1702       END IF;
1703 
1704       x_return_status := OKL_API.G_RET_STS_ERROR;
1705 
1706     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1707       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1708          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.update_document ',
1709                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_UNEXPECTED_ERROR');
1710       END IF;
1711 
1712       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1713 
1714     WHEN OTHERS THEN
1715 
1716       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1717          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.update_document ',
1718                   'EXCEPTION :'||sqlerrm);
1719       END IF;
1720 
1721       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1722       -- unexpected error
1723       OKL_API.set_message(p_app_name      => g_app_name,
1724                           p_msg_name      => g_unexpected_error,
1725                           p_token1        => g_sqlcode_token,
1726                           p_token1_value  => sqlcode,
1727                           p_token2        => g_sqlerrm_token,
1728                           p_token2_value  => sqlerrm);
1729 
1730   END update_document;
1731 
1732 /*========================================================================
1733  | PUBLIC PROCEDURE reverse_document
1734  |
1735  | DESCRIPTION
1736  |    This procedure is called by tax module to populate tax data for reverse
1737  |    contract into ZX reverse transactions table.
1738  |
1739  | CALLED FROM 			OKL_PROCESS_SALES_TAX_PVT.process_contract_reversal_tax
1740  |
1741  |
1742  | CALLS PROCEDURES/FUNCTIONS
1743  |       ZX_API_PUB.reverse_document
1744  |
1745  | PARAMETERS
1746  |      p_source_trx_id              -- Transaction Identifier
1747  |      p_org_id                     -- Organization Identifier
1748  |      p_legal_entity_id            -- Legal Entity Identifier
1749  |      p_tax_data_tbl               -- ZX reverse transactions table
1750  |
1751  | KNOWN ISSUES
1752  |
1753  | NOTES
1754  |
1755  |
1756  | MODIFICATION HISTORY
1757  | Date          Author     Description of Changes
1758  | 12-APR-07    RRAVIKIR      Created
1759  |
1760  *=======================================================================*/
1761   PROCEDURE reverse_document (
1762     p_api_version                   IN NUMBER,
1763     p_init_msg_list                 IN VARCHAR2 DEFAULT OKL_API.G_FALSE,
1764     x_return_status                 OUT NOCOPY VARCHAR2,
1765     x_msg_count                     OUT NOCOPY NUMBER,
1766     x_msg_data                      OUT NOCOPY VARCHAR2,
1767     p_rev_trx_hdr_rec               IN  line_params_rec_type,
1768     p_rev_trx_lines_tbl             IN  zx_trx_lines_tbl_type) IS
1769 
1770     -- Local variables
1771     l_api_version                   CONSTANT NUMBER := 1;
1772     l_api_name                      CONSTANT VARCHAR2(30) := 'reverse_document';
1773     l_return_status                 VARCHAR2(1) := OKL_API.G_RET_STS_SUCCESS;
1774 
1775     -- Local data structure
1776     l_rev_trx_lines_tbl             zx_trx_lines_tbl_type;
1777     k                               NUMBER;
1778 
1779   BEGIN
1780     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1781         FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.reverse_document','Begin(+)');
1782     END IF;
1783 
1784     --Print Input Variables
1785     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1786          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.reverse_document.',
1787               'p_init_msg_list :'||p_init_msg_list);
1788     END IF;
1789 
1790     -- Populate the tax data into eBtax reverse transaction table
1791     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1792          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.reverse_document.',
1793               'INSERT INTO zx_rev_trx_headers_gt');
1794     END IF;
1795 
1796     -- Populate ZX reverse transaction header table
1797     INSERT INTO zx_rev_trx_headers_gt(internal_organization_id,
1798 	                                  reversing_appln_id,
1799 	                                  reversing_entity_code,
1800 	                                  reversing_evnt_cls_code,
1801 	                                  reversing_trx_id,
1802 	                                  legal_entity_id)
1803 	VALUES
1804 	(p_rev_trx_hdr_rec.internal_organization_id,
1805 	 p_rev_trx_hdr_rec.application_id,
1806 	 p_rev_trx_hdr_rec.entity_code,
1807 	 p_rev_trx_hdr_rec.event_class_code,
1808 	 p_rev_trx_hdr_rec.trx_id,
1809 	 p_rev_trx_hdr_rec.legal_entity_id);
1810 
1811     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1812          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.reverse_document.',
1813               'INSERT INTO zx_reverse_trx_lines_gt');
1814     END IF;
1815 
1816     -- Populate ZX reverse transaction lines table
1817     l_rev_trx_lines_tbl := p_rev_trx_lines_tbl;
1818     IF l_rev_trx_lines_tbl.COUNT > 0 THEN
1819       FOR k IN l_rev_trx_lines_tbl.FIRST..l_rev_trx_lines_tbl.LAST LOOP
1820         INSERT INTO ZX_REVERSE_TRX_LINES_GT(internal_organization_id,
1821                                             reversing_appln_id,
1822                                             reversing_entity_code,
1823                                             reversing_evnt_cls_code,
1824                                             reversing_trx_id,
1825                                             reversing_trx_level_type,
1826                                             reversing_trx_line_id,
1827                                             reversed_appln_id,
1828                                             reversed_entity_code,
1829                                             reversed_evnt_cls_code,
1830                                             reversed_trx_id,
1831                                             reversed_trx_level_type,
1832                                             reversed_trx_line_id)
1833         VALUES
1834        (l_rev_trx_lines_tbl(k).internal_organization_id,
1835         l_rev_trx_lines_tbl(k).reversing_appln_id,
1836         l_rev_trx_lines_tbl(k).reversing_entity_code,
1837         l_rev_trx_lines_tbl(k).reversing_evnt_cls_code,
1838         l_rev_trx_lines_tbl(k).reversing_trx_id,
1839         l_rev_trx_lines_tbl(k).reversing_trx_level_type,
1840         l_rev_trx_lines_tbl(k).reversing_trx_line_id,
1841         l_rev_trx_lines_tbl(k).reversed_appln_id,
1842         l_rev_trx_lines_tbl(k).reversed_entity_code,
1843         l_rev_trx_lines_tbl(k).reversed_evnt_cls_code,
1844         l_rev_trx_lines_tbl(k).reversed_trx_id,
1845         l_rev_trx_lines_tbl(k).reversed_trx_level_type,
1846         l_rev_trx_lines_tbl(k).reversed_trx_line_id );
1847       END LOOP;
1848     END IF;
1849 
1850     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1851          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.reverse_document.',
1852               'Return Status' || l_return_status);
1853     END IF;
1854 
1855     -- call ZX reverse document api -- start
1856     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1857          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.reverse_document.',
1858               'Calling ZX_API_PUB.reverse_document');
1859     END IF;
1860 
1861     ZX_API_PUB.reverse_document
1862       (p_api_version        => p_api_version,
1863        p_init_msg_list      => p_init_msg_list,
1864        p_commit             => 'F',
1865        p_validation_level   => 1,
1866        x_return_status      => l_return_status,
1867        x_msg_count          => x_msg_count,
1868        x_msg_data           => x_msg_data);
1869 
1870     IF (G_DEBUG_LEVEL_STATEMENT >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1871          FND_LOG.STRING(G_DEBUG_LEVEL_STATEMENT,'OKL_TAX_INTERFACE_PVT.reverse_document.',
1872               'Return Status' || l_return_status);
1873     END IF;
1874 
1875     IF ( l_return_status <> OKL_API.G_RET_STS_SUCCESS ) THEN
1876       -- reverse document failed
1877       OKL_API.set_message( p_app_name      => 'OKL',
1878                            p_msg_name      => 'OKL_TX_REVERSE_DOC_ERR');
1879     END IF;
1880 
1881     IF (l_return_status = OKL_API.G_RET_STS_UNEXP_ERROR) THEN
1882       RAISE OKL_API.G_EXCEPTION_UNEXPECTED_ERROR;
1883     ELSIF (l_return_status = OKL_API.G_RET_STS_ERROR) THEN
1884       RAISE OKL_API.G_EXCEPTION_ERROR;
1885     END IF;
1886     -- call ZX reverse document api -- end
1887 
1888     x_return_status := l_return_status;
1889 
1890     IF (G_DEBUG_LEVEL_PROCEDURE >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1891       FND_LOG.STRING(G_DEBUG_LEVEL_PROCEDURE,'OKL_TAX_INTERFACE_PVT.reverse_document ','End(-)');
1892     END IF;
1893 
1894   EXCEPTION
1895     WHEN OKL_API.G_EXCEPTION_ERROR THEN
1896 
1897       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1898          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.reverse_document ',
1899                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_ERROR');
1900       END IF;
1901 
1902       x_return_status := OKL_API.G_RET_STS_ERROR;
1903 
1904     WHEN OKL_API.G_EXCEPTION_UNEXPECTED_ERROR THEN
1905       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1906          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.reverse_document ',
1907                   'EXCEPTION :'||'OKL_API.G_EXCEPTION_UNEXPECTED_ERROR');
1908       END IF;
1909 
1910       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1911 
1912     WHEN OTHERS THEN
1913 
1914       IF (G_DEBUG_LEVEL_EXCEPTION >= G_DEBUG_CURRENT_RUNTIME_LEVEL) THEN
1915          FND_LOG.STRING(G_DEBUG_LEVEL_EXCEPTION,'OKL_TAX_INTERFACE_PVT.reverse_document ',
1916                   'EXCEPTION :'||sqlerrm);
1917       END IF;
1918 
1919       x_return_status := OKL_API.G_RET_STS_UNEXP_ERROR;
1920       -- unexpected error
1921       OKL_API.set_message(p_app_name      => g_app_name,
1922                           p_msg_name      => g_unexpected_error,
1923                           p_token1        => g_sqlcode_token,
1924                           p_token1_value  => sqlcode,
1925                           p_token2        => g_sqlerrm_token,
1926                           p_token2_value  => sqlerrm);
1927 
1928   END reverse_document;
1929 
1930 END OKL_TAX_INTERFACE_PVT;