DBA Data[Home] [Help]

PACKAGE BODY: APPS.ZX_VERTEX_TAX_SERVICE_PKG

Source


1 PACKAGE BODY ZX_VERTEX_TAX_SERVICE_PKG as
2 /*$Header: zxvtxsrvcpkgb.pls 120.49.12010000.6 2008/12/19 08:09:30 ssanka ship $*/
3 
4 /* ======================================================================*
5  | FND Logging infrastructure                                           |
6  * ======================================================================*/
7 G_PKG_NAME                  CONSTANT VARCHAR2(30) := 'ZX_VERTEX_TAX_SERVICE_PKG';
8 G_CURRENT_RUNTIME_LEVEL     CONSTANT NUMBER       := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
9 G_LEVEL_UNEXPECTED          CONSTANT NUMBER       := FND_LOG.LEVEL_UNEXPECTED;
10 G_LEVEL_ERROR               CONSTANT NUMBER       := FND_LOG.LEVEL_ERROR;
11 G_LEVEL_EXCEPTION           CONSTANT NUMBER       := FND_LOG.LEVEL_EXCEPTION;
12 G_LEVEL_EVENT               CONSTANT NUMBER       := FND_LOG.LEVEL_EVENT;
13 G_LEVEL_PROCEDURE           CONSTANT NUMBER       := FND_LOG.LEVEL_PROCEDURE;
14 G_LEVEL_STATEMENT           CONSTANT NUMBER       := FND_LOG.LEVEL_STATEMENT;
15 G_MODULE_NAME               CONSTANT VARCHAR2(80) := 'ZX.PLSQL.ZX_VERTEX_TAX_SERVICE_PKG.';
16 
17 /* ======================================================================*
18  | Global Structure Data Types                                           |
19  * ======================================================================*/
20 
21 TYPE NUMBER_tbl_type            IS TABLE OF NUMBER         INDEX BY BINARY_INTEGER;
22 TYPE VARCHAR2_1_tbl_type        IS TABLE OF VARCHAR2(1)    INDEX BY BINARY_INTEGER;
23 TYPE VARCHAR2_2_tbl_type        IS TABLE OF VARCHAR2(2)    INDEX BY BINARY_INTEGER;
24 TYPE VARCHAR2_15_tbl_type       IS TABLE OF VARCHAR2(15)   INDEX BY BINARY_INTEGER;
25 TYPE VARCHAR2_30_tbl_type       IS TABLE OF VARCHAR2(30)   INDEX BY BINARY_INTEGER;
26 TYPE VARCHAR2_80_tbl_type       IS TABLE OF VARCHAR2(80)   INDEX BY BINARY_INTEGER;
27 TYPE VARCHAR2_50_tbl_type       IS TABLE OF VARCHAR2(50)   INDEX BY BINARY_INTEGER;
28 TYPE VARCHAR2_240_tbl_type      IS TABLE OF VARCHAR2(240)  INDEX BY BINARY_INTEGER;
29 TYPE DATE_tbl_type              IS TABLE OF DATE           INDEX BY BINARY_INTEGER;
30 
31 TYPE SYNC_TAX_LINES_TBL IS RECORD(
32 document_type_id		NUMBER_tbl_type,
33 transaction_id			NUMBER_tbl_type,
34 transaction_line_id		NUMBER_tbl_type,
35 trx_level_type   		VARCHAR2_30_tbl_type,
36 country_code			VARCHAR2_30_tbl_type,
37 tax				VARCHAR2_30_tbl_type,
38 situs				VARCHAR2_30_tbl_type,
39 tax_jurisdiction		VARCHAR2_30_tbl_type,
40 tax_currency_code		VARCHAR2_15_tbl_type,
41 tax_curr_tax_amount		NUMBER_tbl_type,
42 tax_amount			NUMBER_tbl_type,
43 tax_rate_percentage		NUMBER_tbl_type,
44 taxable_amount			NUMBER_tbl_type,
45 exempt_rate_modifier		NUMBER_tbl_type,
46 exempt_reason			VARCHAR2_240_tbl_type,
47 tax_only_line_flag		VARCHAR2_1_tbl_type,
48 inclusive_tax_line_flag		VARCHAR2_1_tbl_type,
49 use_tax_flag			VARCHAR2_1_tbl_type,
50 ebiz_override_flag		VARCHAR2_1_tbl_type,
51 user_override_flag		VARCHAR2_1_tbl_type,
52 last_manual_entry		VARCHAR2_30_tbl_type,
53 manually_entered_flag		VARCHAR2_1_tbl_type,
54 cancel_flag			VARCHAR2_1_tbl_type,
55 delete_flag			VARCHAR2_1_tbl_type
56 );
57 
58 
59 /*------------------------------------------------
60 |         Global Variables                        |
61  ------------------------------------------------*/
62  C_LINES_PER_COMMIT CONSTANT NUMBER := 1000;
63  I Number;
64  l_line_level_action varchar2(20);
65  l_document_type zx_lines_det_factors.event_class_code%type;
66  l_trx_line_context_changed      BOOLEAN;
67  l_state_tax_cnt        NUMBER;
68  l_county_tax_cnt       NUMBER;
69  l_city_tax_cnt         NUMBER;
70 -- PG_DEBUG varchar2(1);
71 -- x_return_status varchar2(2);
72  g_StTaxAmt	number;
73  g_CoTaxAmt	number;
74  g_CiTaxAmt	number;
75  g_TotalTaxAmt  number;
76  cache_index    number :=0;
77  g_string       VARCHAR2(200);
78 
79  g_docment_type_id	number;
80  g_trasaction_id	number;
81  g_tax_regime_code	varchar2(80);
82  g_transaction_line_id  number;
83  g_trx_level_type       varchar2(20);
84 
85 Type cache_record_type is record(
86 internal_organization_id  number,
87 document_type_id          number,
88 transaction_id		  number,
89 transaction_line_id       number
90 );
91 
92 type cache_tab is table of cache_record_type index by binary_integer;
93 cache_table cache_tab;
94 
95  /**** Type used in GET_GEOCODE ***/
96 TYPE tab_var_type IS TABLE OF VARCHAR2(60) INDEX BY BINARY_INTEGER;
97 pg_state	tab_var_type; -- Ship-To State Name(Abbriv)
98 pg_county	tab_var_type; -- Ship-To County Name
99 pg_city		tab_var_type; -- Ship-To City Name
100 pg_postal_code	tab_var_type; -- Ship-To Postal_code
101 pg_geocode	tab_var_type; -- Jurisdiction code(GeoCode)
102 pg_max_index	BINARY_INTEGER := 0; -- Pointer to the no. of jurisdiction
103 			             -- combination in the table
104 /*-----------------------------------------------
105  | Records for Tax Calculation Package 		|
106  -----------------------------------------------*/
107 version_rec             ZX_TAX_VERTEX_QSU.tQSUVersionRecord;
108 context_rec             ZX_TAX_VERTEX_QSU.tQSUContextRecord;
109 inv_in_rec              ZX_TAX_VERTEX_QSU.tQSUInvoiceRecord;
110 line_in_tab             ZX_TAX_VERTEX_QSU.tQSULineItemTable;
111 inv_out_rec             ZX_TAX_VERTEX_QSU.tQSUInvoiceRecord;
112 line_out_tab            ZX_TAX_VERTEX_QSU.tQSULineItemTable;
113 
114 /* ======================================================================*
115  | Data Type Definitions                                                 |
116  * ======================================================================*/
117 
118    type char_tab is table of char       index by binary_integer;
119    type num_tab  is table of number(15) index by binary_integer;
120    type num1_tab is table of number     index by binary_integer;
121    type date_tab is table of date       index by binary_integer;
122    type var1_tab is table of varchar2(1)    index by binary_integer;
123    type var2_tab is table of varchar2(80)   index by binary_integer;
124    type var3_tab is table of varchar2(2000) index by binary_integer;
125    type var4_tab is table of varchar2(150)  index by binary_integer;
126    type var5_tab is table of varchar2(240)  index by binary_integer;
127 
128 
129  /*-----------------------------------------------
130  | Records for GeoCode Retrieval Package 	|
131  -----------------------------------------------*/
132 search_rec              ZX_TAX_VERTEX_GEO.tGeoSearchRecord;
133 result_rec              ZX_TAX_VERTEX_GEO.tGeoResultsRecord;
134 
135  TYPE location_info_rec_type IS RECORD
136 (
137 state           varchar2(2),
138 county		VARCHAR2(30),
139 city            VARCHAR2(30),
140 postal_code     Varchar2(30)
141 );
142 
143    /*Private Procedures*/
144    PROCEDURE PERFORM_VALIDATE(x_return_status OUT NOCOPY VARCHAR2) ;
145 
146    PROCEDURE PERFORM_LINE_CREATION(p_tax_lines_tbl IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
147   				   p_currency_tab  IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
148 				   x_return_status    OUT NOCOPY VARCHAR2);
149 
150    PROCEDURE PERFORM_LINE_DELETION(x_return_status OUT NOCOPY VARCHAR2);
151 
152    PROCEDURE PERFORM_UPDATE       (p_tax_lines_tbl IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
153 				   p_currency_tab  IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
154 				   x_return_status    OUT NOCOPY VARCHAR2);
155 
156    PROCEDURE SET_PARAMETERS       (x_return_status OUT NOCOPY VARCHAR2);
157 
158    PROCEDURE SET_DOCUMENT_TYPE( P_DOCUMENT_TYPE  IN OUT NOCOPY VARCHAR2,
159 				P_ADJ_DOC_TRX_ID IN NUMBER,
160 				P_LINE_AMOUNT    IN NUMBER,
161 				P_LINE_LEVEL_ACTION IN VARCHAR2,
162 				X_RETURN_STATUS  OUT NOCOPY VARCHAR2);
163    FUNCTION GET_GEOCODE(p_location_info_rec location_info_rec_type) return VARCHAR2;
164 
165    PROCEDURE CALCULATE_TAX(x_return_status OUT NOCOPY VARCHAR2);
166 
167    PROCEDURE WRITE_TO_VERTEX_REPOSITORY(x_return_status OUT NOCOPY VARCHAR2);
168 
169    PROCEDURE TAX_RESULTS_PROCESSING(p_tax_lines_tbl IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
170 				    p_currency_tab  IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
171 				    x_return_status    OUT NOCOPY VARCHAR2);
172 
173    PROCEDURE RESET_PARAMETERS(x_return_status OUT NOCOPY VARCHAR2);
174 
175    PROCEDURE INITIALIZE;
176 
177    PROCEDURE DISPLAY_OUTPUT(p_type IN VARCHAR2);
178 
179    PROCEDURE ERROR_EXCEPTION_HANDLE(str  varchar2);
180 
181     /*Structure to hold the transaction information*/
182 
183 pg_internal_org_id_tab			num1_tab;
184 pg_doc_type_id_tab     			num1_tab;
185 pg_trx_id_tab				num1_tab;
186 pg_appli_code_tab			var2_tab;
187 pg_doc_level_action_tab			var2_tab;
188 pg_trx_date_tab				date_tab;
189 pg_trx_curr_code_tab			var2_tab;
190 /* Bug 5090593:
191 pg_quote_flag_tab			var1_tab;
192 */
193 pg_legal_entity_num_tab 		var2_tab;
194 pg_esta_name_tab			var3_tab;
195 pg_Trx_number_tab			var4_tab;
196 pg_Trx_desc_tab				var3_tab;
197 pg_doc_sequence_value_tab		var3_tab;
198 pg_Trx_due_date_tab			date_tab;
199 /* Bug 5090593:
200 pg_Trx_Sol_Ori_tab			var2_tab;
201 */
202 pg_Allow_Tax_Calc_tab			var1_tab;
203 pg_trx_line_id_tab			num1_tab;
204 pg_trx_level_type_tab			var2_tab;
205 pg_line_level_action_tab		var2_tab;
206 pg_line_class_tab			var2_tab;
207 pg_trx_shipping_date_tab		date_tab;
208 pg_trx_receipt_date_tab			date_tab;
209 pg_trx_line_type_tab			var2_tab;
210 pg_trx_line_date_tab			date_tab;
211 pg_trx_business_cat_tab			var3_tab;
212 pg_line_intended_use_tab		var3_tab;
213 pg_line_amt_incl_tax_flag_tab		var1_tab;
214 pg_line_amount_tab			num1_tab;
215 pg_other_incl_tax_amt_tab		num1_tab;
216 pg_trx_line_qty_tab			num1_tab;
217 pg_unit_price_tab			num1_tab;
218 pg_cash_discount_tab			num1_tab;
219 pg_volume_discount_tab			num1_tab;
220 pg_trading_discount_tab			num1_tab;
221 pg_trans_charge_tab			num1_tab;
222 pg_ins_charge_tab			num1_tab;
223 pg_other_charge_tab			num1_tab;
224 pg_prod_id_tab				num1_tab;
225 pg_uom_code_tab				var2_tab;
226 pg_prod_type_tab			var3_tab;
227 pg_prod_code_tab			var2_tab;
228 pg_fob_point_tab			var2_tab;
229 pg_ship_to_pty_numr_tab			var2_tab;
230 pg_ship_to_pty_name_tab			var3_tab;
231 pg_ship_from_pty_num_tab		var2_tab;
232 pg_ship_from_pty_name_tab		var3_tab;
233 pg_ship_to_loc_id_tab                   num1_tab;      -- Bug 5090593
234 pg_ship_to_grphy_type1_tab          	var5_tab;
235 pg_ship_to_grphy_value1_tab     	var5_tab;
236 pg_ship_to_grphy_type2_tab      	var5_tab;
237 pg_ship_to_grphy_value2_tab     	var5_tab;
238 pg_ship_to_grphy_type3_tab      	var5_tab;
239 pg_ship_to_grphy_value3_tab     	var5_tab;
240 pg_ship_to_grphy_type4_tab      	var5_tab;
241 pg_ship_to_grphy_value4_tab     	var5_tab;
242 pg_ship_to_grphy_type5_tab      	var5_tab;
243 pg_ship_to_grphy_value5_tab     	var5_tab;
244 pg_ship_to_grphy_type6_tab      	var5_tab;
245 pg_ship_to_grphy_value6_tab     	var5_tab;
246 pg_ship_to_grphy_type7_tab      	var5_tab;
247 pg_ship_to_grphy_value7_tab     	var5_tab;
248 pg_ship_to_grphy_type8_tab      	var5_tab;
249 pg_ship_to_grphy_value8_tab     	var5_tab;
250 pg_ship_to_grphy_type9_tab      	var5_tab;
251 pg_ship_to_grphy_value9_tab     	var5_tab;
252 pg_ship_to_grphy_type10_tab     	var5_tab;
253 pg_ship_to_grphy_value10_tab    	var5_tab;
254 pg_ship_fr_loc_id_tab                   num1_tab;      -- Bug 5090593
255 pg_ship_fr_grphy_type1_tab      	var5_tab;
256 pg_ship_fr_grphy_value1_tab     	var5_tab;
257 pg_ship_fr_grphy_type2_tab      	var5_tab;
258 pg_ship_fr_grphy_value2_tab     	var5_tab;
259 pg_ship_fr_grphy_type3_tab      	var5_tab;
260 pg_ship_fr_grphy_value3_tab     	var5_tab;
261 pg_ship_fr_grphy_type4_tab      	var5_tab;
262 pg_ship_fr_grphy_value4_tab     	var5_tab;
263 pg_ship_fr_grphy_type5_tab      	var5_tab;
264 pg_ship_fr_grphy_value5_tab     	var5_tab;
265 pg_ship_fr_grphy_type6_tab      	var5_tab;
266 pg_ship_fr_grphy_value6_tab     	var5_tab;
267 pg_ship_fr_grphy_type7_tab      	var5_tab;
268 pg_ship_fr_grphy_value7_tab     	var5_tab;
269 pg_ship_fr_grphy_type8_tab      	var5_tab;
270 pg_ship_fr_grphy_value8_tab     	var5_tab;
271 pg_ship_fr_grphy_type9_tab      	var5_tab;
272 pg_ship_fr_grphy_value9_tab     	var5_tab;
273 pg_ship_fr_grphy_type10_tab     	var5_tab;
274 pg_ship_fr_grphy_value10_tab    	var5_tab;
275 pg_poa_loc_id_tab                       num1_tab;      -- Bug 5090593
276 pg_poa_grphy_type1_tab          	var5_tab;
277 pg_poa_grphy_value1_tab         	var5_tab;
278 pg_poa_grphy_type2_tab          	var5_tab;
279 pg_poa_grphy_value2_tab         	var5_tab;
280 pg_poa_grphy_type3_tab          	var5_tab;
281 pg_poa_grphy_value3_tab         	var5_tab;
282 pg_poa_grphy_type4_tab          	var5_tab;
283 pg_poa_grphy_value4_tab         	var5_tab;
284 pg_poa_grphy_type5_tab          	var5_tab;
285 pg_poa_grphy_value5_tab         	var5_tab;
286 pg_poa_grphy_type6_tab          	var5_tab;
287 pg_poa_grphy_value6_tab         	var5_tab;
288 pg_poa_grphy_type7_tab          	var5_tab;
289 pg_poa_grphy_value7_tab         	var5_tab;
290 pg_poa_grphy_type8_tab          	var5_tab;
291 pg_poa_grphy_value8_tab         	var5_tab;
292 pg_poa_grphy_type9_tab          	var5_tab;
293 pg_poa_grphy_value9_tab         	var5_tab;
294 pg_poa_grphy_type10_tab         	var5_tab;
295 pg_poa_grphy_value10_tab        	var5_tab;
296 pg_poo_loc_id_tab                       num1_tab;      -- Bug 5090593
297 pg_poo_grphy_type1_tab          	var5_tab;
298 pg_poo_grphy_value1_tab         	var5_tab;
299 pg_poo_grphy_type2_tab          	var5_tab;
300 pg_poo_grphy_value2_tab         	var5_tab;
301 pg_poo_grphy_type3_tab          	var5_tab;
302 pg_poo_grphy_value3_tab         	var5_tab;
303 pg_poo_grphy_type4_tab          	var5_tab;
304 pg_poo_grphy_value4_tab         	var5_tab;
305 pg_poo_grphy_type5_tab          	var5_tab;
306 pg_poo_grphy_value5_tab         	var5_tab;
307 pg_poo_grphy_type6_tab          	var5_tab;
308 pg_poo_grphy_value6_tab         	var5_tab;
309 pg_poo_grphy_type7_tab          	var5_tab;
310 pg_poo_grphy_value7_tab         	var5_tab;
311 pg_poo_grphy_type8_tab          	var5_tab;
312 pg_poo_grphy_value8_tab         	var5_tab;
313 pg_poo_grphy_type9_tab          	var5_tab;
314 pg_poo_grphy_value9_tab         	var5_tab;
315 pg_poo_grphy_type10_tab         	var5_tab;
316 pg_poo_grphy_value10_tab        	var5_tab;
317 pg_bill_to_pty_num_tab			var2_tab;
318 pg_bill_to_pty_name_tab			var3_tab;
319 pg_bill_from_pty_num_tab		var2_tab;
320 pg_bill_from_pty_name_tab		var3_tab;
321 pg_bill_to_loc_id_tab                   num1_tab;      -- Bug 5090593
322 pg_bill_to_grphy_type1_tab      	var5_tab;
323 pg_bill_to_grphy_value1_tab     	var5_tab;
324 pg_bill_to_grphy_type2_tab      	var5_tab;
325 pg_bill_to_grphy_value2_tab     	var5_tab;
326 pg_bill_to_grphy_type3_tab      	var5_tab;
327 pg_bill_to_grphy_value3_tab     	var5_tab;
328 pg_bill_to_grphy_type4_tab      	var5_tab;
329 pg_bill_to_grphy_value4_tab     	var5_tab;
330 pg_bill_to_grphy_type5_tab      	var5_tab;
331 pg_bill_to_grphy_value5_tab     	var5_tab;
332 pg_bill_to_grphy_type6_tab      	var5_tab;
333 pg_bill_to_grphy_value6_tab     	var5_tab;
334 pg_bill_to_grphy_type7_tab      	var5_tab;
335 pg_bill_to_grphy_value7_tab     	var5_tab;
336 pg_bill_to_grphy_type8_tab      	var5_tab;
337 pg_bill_to_grphy_value8_tab     	var5_tab;
338 pg_bill_to_grphy_type9_tab      	var5_tab;
339 pg_bill_to_grphy_value9_tab     	var5_tab;
340 pg_bill_to_grphy_type10_tab     	var5_tab;
341 pg_bill_to_grphy_value10_tab    	var5_tab;
342 pg_bill_fr_loc_id_tab                   num1_tab;      -- Bug 5090593
343 pg_bill_fr_grphy_type1_tab      	var5_tab;
344 pg_bill_fr_grphy_value1_tab     	var5_tab;
345 pg_bill_fr_grphy_type2_tab      	var5_tab;
346 pg_bill_fr_grphy_value2_tab     	var5_tab;
347 pg_bill_fr_grphy_type3_tab      	var5_tab;
348 pg_bill_fr_grphy_value3_tab     	var5_tab;
349 pg_bill_fr_grphy_type4_tab      	var5_tab;
350 pg_bill_fr_grphy_value4_tab     	var5_tab;
351 pg_bill_fr_grphy_type5_tab      	var5_tab;
352 pg_bill_fr_grphy_value5_tab     	var5_tab;
353 pg_bill_fr_grphy_type6_tab      	var5_tab;
354 pg_bill_fr_grphy_value6_tab     	var5_tab;
355 pg_bill_fr_grphy_type7_tab      	var5_tab;
356 pg_bill_fr_grphy_value7_tab     	var5_tab;
357 pg_bill_fr_grphy_type8_tab      	var5_tab;
358 pg_bill_fr_grphy_value8_tab     	var5_tab;
359 pg_bill_fr_grphy_type9_tab      	var5_tab;
360 pg_bill_fr_grphy_value9_tab     	var5_tab;
361 pg_bill_fr_grphy_type10_tab     	var5_tab;
362 pg_bill_fr_grphy_value10_tab    	var5_tab;
363 pg_account_ccid_tab			num1_tab;
364 pg_appl_fr_doc_type_id_tab		num1_tab;
365 pg_appl_from_trx_id_tab			num1_tab;
366 pg_appl_from_line_id_tab		num1_tab;
367 pg_appl_fr_trx_lev_type_tab		var2_tab;
368 pg_appl_from_doc_num_tab		var2_tab;
369 pg_adj_doc_doc_type_id_tab		num1_tab;
370 pg_adj_doc_trx_id_tab			num1_tab;
371 pg_adj_doc_line_id_tab			num1_tab;
372 pg_adj_doc_number_tab			var2_tab;
373 pg_ADJ_doc_trx_lev_type_tab		var2_tab;
374 pg_adj_doc_date_tab			date_tab;
375 pg_assess_value_tab			num1_tab;
376 pg_trx_line_number_tab			num1_tab;
377 pg_trx_line_desc_tab			var3_tab;
378 pg_prod_desc_tab			var3_tab;
379 pg_header_char1_tab			var4_tab;
380 pg_header_char2_tab			var4_tab;
381 pg_header_char3_tab			var4_tab;
382 pg_header_char4_tab			var4_tab;
383 pg_header_char5_tab			var4_tab;
384 pg_header_char6_tab			var4_tab;
385 pg_header_char7_tab			var4_tab;
386 pg_header_char8_tab			var4_tab;
387 pg_header_char9_tab			var4_tab;
388 pg_header_char10_tab			var4_tab;
389 pg_header_char11_tab			var4_tab;
390 pg_header_char12_tab			var4_tab;
391 pg_header_char13_tab			var4_tab;
392 pg_header_char14_tab			var4_tab;
393 pg_header_char15_tab			var4_tab;
394 pg_header_numeric1_tab			num1_tab;
395 pg_header_numeric2_tab			num1_tab;
396 pg_header_numeric3_tab			num1_tab;
397 pg_header_numeric4_tab			num1_tab;
398 pg_header_numeric5_tab			num1_tab;
399 pg_header_numeric6_tab			num1_tab;
400 pg_header_numeric7_tab			num1_tab;
401 pg_header_numeric8_tab			num1_tab;
402 pg_header_numeric9_tab			num1_tab;
403 pg_header_numeric10_tab			num1_tab;
404 pg_header_date1_tab			date_tab;
405 pg_header_date2_tab			date_tab;
406 pg_header_date3_tab			date_tab;
407 pg_header_date4_tab			date_tab;
408 pg_header_date5_tab			date_tab;
409 pg_line_char1_tab			var4_tab;
410 pg_line_char2_tab			var4_tab;
411 pg_line_char3_tab			var4_tab;
412 pg_line_char4_tab			var4_tab;
413 pg_line_char5_tab			var4_tab;
414 pg_line_char6_tab			var4_tab;
415 pg_line_char7_tab			var4_tab;
416 pg_line_char8_tab			var4_tab;
417 pg_line_char9_tab			var4_tab;
418 pg_line_char10_tab			var4_tab;
419 pg_line_char11_tab			var4_tab;
420 pg_line_char12_tab			var4_tab;
421 pg_line_char13_tab			var4_tab;
422 pg_line_char14_tab			var4_tab;
423 pg_line_char15_tab			var4_tab;
424 pg_line_numeric1_tab			num1_tab;
425 pg_line_numeric2_tab			num1_tab;
426 pg_line_numeric3_tab			num1_tab;
427 pg_line_numeric4_tab			num1_tab;
428 pg_line_numeric5_tab			num1_tab;
429 pg_line_numeric6_tab			num1_tab;
430 pg_line_numeric7_tab			num1_tab;
431 pg_line_numeric8_tab			num1_tab;
432 pg_line_numeric9_tab			num1_tab;
433 pg_line_numeric10_tab			num1_tab;
434 pg_line_date1_tab			date_tab;
435 pg_line_date2_tab			date_tab;
436 pg_line_date3_tab			date_tab;
437 pg_line_date4_tab			date_tab;
438 pg_line_date5_tab			date_tab;
439 pg_exempt_certi_numb_tab		var2_tab;
440 pg_exempt_reason_tab			var3_tab;
441 pg_exempt_cont_flag_tab			var2_tab;
442 
443 pg_ugraded_inv_flag_tab                 var1_tab;
444 
445 PROCEDURE CALCULATE_TAX_API
446        (p_currency_tab        IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
447 	x_tax_lines_tbl          OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
448 	x_error_status           OUT NOCOPY VARCHAR2,
449 	x_messages_tbl           OUT NOCOPY ZX_TAX_PARTNER_PKG.messages_tbl_type)is
450 
451    Cursor item_lines_to_be_processed is
452      SELECT
453 	internal_organization_id               ,
454 	document_type_id                       ,
455 	transaction_id                         ,
456 	application_code                       ,
457 	document_level_action                  ,
458 	trx_date                               ,
459 	trx_currency_code                      ,
460 /* Bug 5090593:
461 	quote_flag			       ,
462 */
463 	legal_entity_number                    ,
464 	establishment_number                   ,
465 	transaction_number                     ,
466 	transaction_description                ,
467 	document_sequence_value                ,
468 	transaction_due_date                   ,
469 /* Bug 5090593:
470 	transaction_solution_origin            ,
471 */
472 	allow_tax_calculation                  ,
473 	transaction_line_id                    ,
474 	trx_level_type                         ,
475 	line_level_action                      ,
476 	line_class                             ,
477 	transaction_shipping_date              ,
478 	transaction_receipt_date               ,
479 	transaction_line_type                  ,
480 	transaction_line_date                  ,
481 	trx_business_category                  ,
482 	line_intended_use                      ,
483 	line_amt_includes_tax_flag             ,
484 	line_amount                            ,
485 	other_inclusive_tax_amount             ,
486 	transaction_line_quantity              ,
487 	unit_price                             ,
488 	cash_discount                          ,
489 	volume_discount                        ,
490 	trading_discount                       ,
491 	transportation_charge                  ,
492 	insurance_charge                       ,
493 	other_charge                           ,
494 	product_id                             ,
495 	uom_code                               ,
496 	product_type                           ,
497 	product_code                           ,
498 	fob_point                              ,
499 	ship_to_party_number                   ,
500 	ship_to_party_name                     ,
501 	ship_from_party_number                 ,
502 	ship_from_party_name                   ,
503 	ship_to_loc_id                         ,     -- Bug 5090593
504 	ship_to_geography_type1                ,
505 	ship_to_geography_value1               ,
506 	ship_to_geography_type2                ,
507 	ship_to_geography_value2               ,
508 	ship_to_geography_type3                ,
509 	ship_to_geography_value3               ,
510 	ship_to_geography_type4                ,
511 	ship_to_geography_value4               ,
512 	ship_to_geography_type5                ,
513 	ship_to_geography_value5               ,
514 	ship_to_geography_type6                ,
515 	ship_to_geography_value6               ,
516 	ship_to_geography_type7                ,
517 	ship_to_geography_value7               ,
518 	ship_to_geography_type8                ,
519 	ship_to_geography_value8               ,
520 	ship_to_geography_type9                ,
521 	ship_to_geography_value9               ,
522 	ship_to_geography_type10               ,
523 	ship_to_geography_value10              ,
524 	ship_from_loc_id                       ,     -- Bug 5090593
525 	ship_from_geography_type1              ,
526 	ship_from_geography_value1             ,
527 	ship_from_geography_type2              ,
528 	ship_from_geography_value2             ,
529 	ship_from_geography_type3              ,
530 	ship_from_geography_value3             ,
531 	ship_from_geography_type4              ,
532 	ship_from_geography_value4             ,
533 	ship_from_geography_type5              ,
534 	ship_from_geography_value5             ,
535 	ship_from_geography_type6              ,
536 	ship_from_geography_value6             ,
537 	ship_from_geography_type7              ,
538 	ship_from_geography_value7             ,
539 	ship_from_geography_type8              ,
540 	ship_from_geography_value8             ,
541 	ship_from_geography_type9              ,
542 	ship_from_geography_value9             ,
543 	ship_from_geography_type10             ,
544 	ship_from_geography_value10            ,
545 	poa_loc_id                             ,     -- Bug 5090593
546 	poa_geography_type1                    ,
547 	poa_geography_value1                   ,
548 	poa_geography_type2                    ,
549 	poa_geography_value2                   ,
550 	poa_geography_type3                    ,
551 	poa_geography_value3                   ,
552 	poa_geography_type4                    ,
553 	poa_geography_value4                   ,
554 	poa_geography_type5                    ,
555 	poa_geography_value5                   ,
556 	poa_geography_type6                    ,
557 	poa_geography_value6                   ,
558 	poa_geography_type7                    ,
559 	poa_geography_value7                   ,
560 	poa_geography_type8                    ,
561 	poa_geography_value8                   ,
562 	poa_geography_type9                    ,
563 	poa_geography_value9                   ,
564 	poa_geography_type10                   ,
565 	poa_geography_value10                  ,
566 	poo_loc_id                             ,     -- Bug 5090593
567 	poo_geography_type1                    ,
568 	poo_geography_value1                   ,
569 	poo_geography_type2                    ,
570 	poo_geography_value2                   ,
571 	poo_geography_type3                    ,
572 	poo_geography_value3                   ,
573 	poo_geography_type4                    ,
574 	poo_geography_value4                   ,
575 	poo_geography_type5                    ,
576 	poo_geography_value5                   ,
577 	poo_geography_type6                    ,
578 	poo_geography_value6                   ,
579 	poo_geography_type7                    ,
580 	poo_geography_value7                   ,
581 	poo_geography_type8                    ,
582 	poo_geography_value8                   ,
583 	poo_geography_type9                    ,
584 	poo_geography_value9                   ,
585 	poo_geography_type10                   ,
586 	poo_geography_value10                  ,
587 	bill_to_party_number                   ,
588 	bill_to_party_name                     ,
589 	bill_from_party_number                 ,
590 	bill_from_party_name                   ,
591 	bill_to_loc_id                         ,     -- Bug 5090593
592 	bill_to_geography_type1                ,
593 	bill_to_geography_value1               ,
594 	bill_to_geography_type2                ,
595 	bill_to_geography_value2               ,
596 	bill_to_geography_type3                ,
597 	bill_to_geography_value3               ,
598 	bill_to_geography_type4                ,
599 	bill_to_geography_value4               ,
600 	bill_to_geography_type5                ,
601 	bill_to_geography_value5               ,
602 	bill_to_geography_type6                ,
603 	bill_to_geography_value6               ,
604 	bill_to_geography_type7                ,
605 	bill_to_geography_value7               ,
606 	bill_to_geography_type8                ,
607 	bill_to_geography_value8               ,
608 	bill_to_geography_type9                ,
609 	bill_to_geography_value9               ,
610 	bill_to_geography_type10               ,
611 	bill_to_geography_value10              ,
612 	bill_from_loc_id                       ,     -- Bug 5090593
613 	bill_from_geography_type1              ,
614 	bill_from_geography_value1             ,
615 	bill_from_geography_type2              ,
616 	bill_from_geography_value2             ,
617 	bill_from_geography_type3              ,
618 	bill_from_geography_value3             ,
619 	bill_from_geography_type4              ,
620 	bill_from_geography_value4             ,
621 	bill_from_geography_type5              ,
622 	bill_from_geography_value5             ,
623 	bill_from_geography_type6              ,
624 	bill_from_geography_value6             ,
625 	bill_from_geography_type7              ,
626 	bill_from_geography_value7             ,
627 	bill_from_geography_type8              ,
628 	bill_from_geography_value8             ,
629 	bill_from_geography_type9              ,
630 	bill_from_geography_value9             ,
631 	bill_from_geography_type10             ,
632 	bill_from_geography_value10            ,
633 	account_ccid                           ,
634 	--applied_from_document_type_id          ,
635 	applied_from_transaction_id            ,
636 	applied_from_line_id                   ,
637 	applied_from_trx_level_type,
638 	applied_from_doc_number                ,
639 	adjusted_doc_document_type_id          ,
640 	adjusted_doc_transaction_id            ,
641 	adjusted_doc_line_id                   ,
642 	adjusted_doc_number                    ,
643 	adjusted_doc_trx_level_type,
644 	adjusted_doc_date                      ,
645 	assessable_value                       ,
646 	trx_line_number                        ,
647 	trx_line_description                   ,
648 	product_description                    ,
649 	header_char1                           ,
650 	header_char2                           ,
651 	header_char3                           ,
652 	header_char4                           ,
653 	header_char5                           ,
654 	header_char6                           ,
655 	header_char7                           ,
656 	header_char8                           ,
657 	header_char9                           ,
658 	header_char10                          ,
659 	header_char11                          ,
660 	header_char12                          ,
661 	header_char13                          ,
662 	header_char14                          ,
663 	header_char15                          ,
664 	header_numeric1                        ,
665 	header_numeric2                        ,
666 	header_numeric3                        ,
667 	header_numeric4                        ,
668 	header_numeric5                        ,
669 	header_numeric6                        ,
670 	header_numeric7                        ,
671 	header_numeric8                        ,
672 	header_numeric9                        ,
673 	header_numeric10                       ,
674 	header_date1                           ,
675 	header_date2                           ,
676 	header_date3                           ,
677 	header_date4                           ,
678 	header_date5                           ,
679 	line_char1                             ,
680 	line_char2                             ,
681 	line_char3                             ,
682 	line_char4                             ,
683 	line_char5                             ,
684 	line_char6                             ,
685 	line_char7                             ,
686 	line_char8                             ,
687 	line_char9                             ,
688 	line_char10                            ,
689 	line_char11                            ,
690 	line_char12                            ,
691 	line_char13                            ,
692 	line_char14                            ,
693 	line_char15                            ,
694 	line_numeric1                          ,
695 	line_numeric2                          ,
696 	line_numeric3                          ,
697 	line_numeric4                          ,
698 	line_numeric5                          ,
699 	line_numeric6                          ,
700 	line_numeric7                          ,
701 	line_numeric8                          ,
702 	line_numeric9                          ,
703 	line_numeric10                         ,
704 	line_date1                             ,
705 	line_date2                             ,
706 	line_date3                             ,
707 	line_date4                             ,
708 	line_date5                             ,
709 	exempt_certificate_number              ,
710 	exempt_reason                          ,
711 	exemption_control_flag
712      From ZX_O2C_CALC_TXN_INPUT_V;
713 --     WHERE transaction_id = p_trx_id;
714 
715 l_api_name             CONSTANT VARCHAR2(30) := 'CALCULATE_TAX_API';
716 l_return_status        VARCHAR2(30);
717 ptr                    NUMBER;
718 l_cnt_of_options_gt    NUMBER;
719 l_cnt_of_hdr_extns_gt  NUMBER;
720 l_cnt_of_line_extns_gt NUMBER;
721 l_cnt_of_loc_info_gt   NUMBER;
722 l_cnt_of_ptnr_neg_line_gt NUMBER;
723 l_partner_processing_flag  varchar2(80);
724 l_record_for_partners_flag varchar2(80);
725 l_line_level_action varchar2(80);
726 l_inclusive_tax_override_flag varchar2(80);
727 l_application_id  NUMBER;
728 l_entity_code     VARCHAR2(80);
729 l_event_class_code VARCHAR2(100);
730 l_trx_level_type   VARCHAR2(100);
731 l_trx_id           NUMBER;
732 l_org_id           NUMBER;
733 l_trx_type_id      NUMBER;
734 l_trx_line_id      NUMBER;
735 l_tax_code         VARCHAR2(100);
736 l_tax_type         VARCHAR2(100);
737 l_tax_flag         VARCHAR2(10);
738 l_ship_to_location_id NUMBER;
739 l_bill_to_location_id NUMBER;
740 l_doc_amount       NUMBER;
741 l_doc_trx_id       NUMBER;
742 
743 BEGIN
744    x_error_status := FND_API.G_RET_STS_SUCCESS;
745    err_count      := 0;
746    l_doc_trx_id   := NULL;
747 
748    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
749      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
750    END IF;
751 
752    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
753       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
754          ' zx_tax_partner_pkg.G_BUSINESS_FLOW = ' || zx_tax_partner_pkg.G_BUSINESS_FLOW);
755    END IF;
756 
757    	IF zx_tax_partner_pkg.G_BUSINESS_FLOW = 'O2C' THEN
758 	    --  Verify the integration with the version of Vertex Q Series product is certified.
759 	  BEGIN
760 	     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
761                  FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
762 		'Calling ZX_TAX_VERTEX_REV.GET_RELEASE Verify the integration
763 		  with the version of Vertex Q Series product is certified' );
764              END IF;
765   	       ZX_TAX_VERTEX_REV.GET_RELEASE(context_rec,version_rec,l_return_status);
766 
767 	IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
768           IF (g_level_exception >= g_current_runtime_level ) THEN
769               FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
770            END IF;
771 	   x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
772 	   g_string :='Not compaitable to VERTEX Release';
773 	   error_exception_handle(g_string);
774 	   x_messages_tbl:=g_messages_tbl;
775 	   return;
776 	 END IF;
777 
778 	  EXCEPTION
779 	  	WHEN OTHERS THEN
780 		IF (g_level_exception >= g_current_runtime_level ) THEN
781                    FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
782                 END IF;
783 		x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
784 		g_string :='Not compaitable to VERTEX Release failed with exception';
785 		error_exception_handle(g_string);
786 		x_messages_tbl:=g_messages_tbl;
787 		return;
788 
789   	  END;
790 
791 	ELSE
792 	    --Release 12 Old tax partner integration does not support P2P products;
793 	    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
794                  FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
795 		'Release 12 Old tax partner integration does not support P2P products' );
796             END IF;
797 	   x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
798 	   g_string :='Release 12 Old tax partner integration does not support P2P products';
799 	   error_exception_handle(g_string);
800 	   x_messages_tbl:=g_messages_tbl;
801 	   return;
802 	END IF;
803 
804    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
805 
806        BEGIN
807           SELECT count(*)
808             INTO l_cnt_of_options_gt
809             FROM ZX_TRX_PRE_PROC_OPTIONS_GT;
810        EXCEPTION WHEN OTHERS THEN
811           l_cnt_of_options_gt := 0;
812        END;
813        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
814               'l_cnt_of_options_gt = '||l_cnt_of_options_gt);
815    END IF;
816 
817    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
818 
819        BEGIN
820           SELECT count(*)
821             INTO l_cnt_of_options_gt
822             FROM ZX_TRX_PRE_PROC_OPTIONS_GT ztppo
823                , ZX_LINES_DET_FACTORS zldf
824            WHERE ztppo.application_id   = zldf.application_id
825              AND ztppo.entity_code      = zldf.entity_code
826              AND ztppo.event_class_code = zldf.event_class_code
827              AND ztppo.trx_id           = zldf.trx_id;
828        EXCEPTION WHEN OTHERS THEN
829           l_cnt_of_options_gt := 0;
830        END;
831 
832        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
833               'l_cnt_of_line_det_factors = '||l_cnt_of_options_gt);
834    END IF;
835 
836    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
837        BEGIN
838           SELECT count(*)
839             INTO l_cnt_of_hdr_extns_gt
840             FROM ZX_PRVDR_HDR_EXTNS_GT;
841        EXCEPTION WHEN OTHERS THEN
842           l_cnt_of_hdr_extns_gt := 0;
843        END;
844        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
845               'l_cnt_of_hdr_extns_gt = '||l_cnt_of_hdr_extns_gt);
846 
847        BEGIN
848           SELECT count(*)
849             INTO l_cnt_of_line_extns_gt
850             FROM ZX_PRVDR_LINE_EXTNS_GT;
851        EXCEPTION WHEN OTHERS THEN
852           l_cnt_of_line_extns_gt := 0;
853        END;
854        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
855               'l_cnt_of_line_extns_gt = '||l_cnt_of_line_extns_gt);
856 
857    END IF;
858 
859        BEGIN
860           SELECT
861             distinct application_id,entity_code,event_class_code,
862             trx_id,trx_level_type,trx_line_id
863             INTO l_application_id,l_entity_code,l_event_class_code,
864             l_trx_id,l_trx_level_type,l_trx_line_id
865             FROM ZX_PRVDR_LINE_EXTNS_GT where rownum = 1;
866 
867    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
868          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'before tax code');
869    END IF;
870 -- bug 6755603
871 
872            SELECT
873            output_tax_classification_code,receivables_trx_type_id,internal_organization_id, ship_to_location_id,
874            bill_to_location_id into
875            l_tax_code, l_trx_type_id, l_org_id, l_ship_to_location_id, l_bill_to_location_id
876             FROM zx_lines_det_factors where
877             application_id = l_application_id
878             and entity_code = l_entity_code
879             and event_class_code = l_event_class_code
880             and trx_id = l_trx_id
881             and trx_line_id = l_trx_line_id
882             and trx_level_type = l_trx_level_type;
883            IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
884              FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_ship_to_location_id '||l_ship_to_location_id);
885              FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_bill_to_location_id '||l_bill_to_location_id);
886            END IF;
887 
888 
889             BEGIN
890              select tax_type_code INTO l_tax_type -- from zx_taxes_b zx, zx_rates_b zr
891                from zx_sco_taxes zx,   -- Changed from clause to use sco views not base tables
892                     zx_sco_rates zr
893 	         where zx.tax = zr.tax
894 	           AND zx.tax_regime_code = zr.tax_regime_code
895              AND zr.tax_rate_code = l_tax_code
896              AND zx.live_for_processing_flag = 'Y' --Bug 7594634
897              AND rownum = 1;
898 
899             EXCEPTION
900               WHEN others THEN
901                l_tax_type := NULL;
902             END;
903 
904 
905             IF
906             zx_global_structures_pkg.tax_calc_flag_tbl.exists(to_char(l_trx_type_id)) THEN
907 
908             l_tax_flag := zx_global_structures_pkg.tax_calc_flag_tbl(to_char(l_trx_type_id));
909 
910             ELSE
911 
912             SELECT tax_calculation_flag into l_tax_flag
913             FROM  ra_cust_trx_types_all rtt
914             WHERE rtt.cust_trx_type_id = l_trx_type_id
915             AND org_id = l_org_id;
916 
917             END IF;
918 
919    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
920          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_tax_code'||l_tax_code);
921          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_tax_type_code'||l_tax_type);
922          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Tax calculation flag '||l_tax_flag);
923    END IF;
924             IF l_tax_flag = 'N' AND l_tax_code is NULL THEN
925              RETURN;
926             ELSIF l_tax_type NOT IN ('SALES_TAX','LOCATION') THEN
927              RETURN;
928             ELSIF (l_tax_type = 'SALES_TAX' AND l_tax_code <> 'STATE' and  l_tax_code <> 'COUNTY' and l_tax_code <> 'CITY' and l_tax_code not like '%_COUNTY'
929 and l_tax_code not like '%_CITY') THEN
930              RETURN;
931             END IF;
932 
933 
934        EXCEPTION WHEN OTHERS THEN
935           null;
936        END;
937 
938    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
939          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_cnt_of_line_extns_gt = '||l_cnt_of_line_extns_gt);
940    END IF;
941 
942    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
943        BEGIN
944           SELECT count(*)
945             INTO l_cnt_of_loc_info_gt
946             FROM ZX_PTNR_LOCATION_INFO_GT;
947        EXCEPTION WHEN OTHERS THEN
948           l_cnt_of_loc_info_gt := 0;
949        END;
950        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
951               'l_cnt_of_loc_info_gt = '||l_cnt_of_loc_info_gt);
952    END IF;
953 
954    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
955        BEGIN
956            SELECT count(*)
957              INTO l_cnt_of_ptnr_neg_line_gt
958              FROM ZX_PTNR_NEG_LINE_GT;
959         EXCEPTION WHEN OTHERS THEN
960            l_cnt_of_ptnr_neg_line_gt := 0;
961         END;
962         FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
963                'l_cnt_of_ptnr_neg_line_gt = '||l_cnt_of_ptnr_neg_line_gt);
964    END IF;
965 
966         BEGIN
967           select record_for_partners_flag,partner_processing_flag
968            into  l_record_for_partners_flag,l_partner_processing_flag
969            from ZX_TRX_PRE_PROC_OPTIONS_GT
970            where rownum=1;
971         EXCEPTION WHEN OTHERS THEN
972            l_record_for_partners_flag := 'N';
973            l_partner_processing_flag  := 'N';
974    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
975            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
976                'Exp : l_record_for_partners_flag  = '||l_record_for_partners_flag
977              ||'Exp : l_partner_processing_flag   = '||l_partner_processing_flag);
978    END IF;
979         END;
980    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
981         FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
982                'l_record_for_partners_flag  = '||l_record_for_partners_flag
983              ||'l_partner_processing_flag   = '||l_partner_processing_flag);
984    END IF;
985 
986        BEGIN
987          select zldf.line_level_action,zldf.inclusive_tax_override_flag
988            into l_line_level_action, l_inclusive_tax_override_flag
989          FROM ZX_TRX_PRE_PROC_OPTIONS_GT ztppo
990                , ZX_LINES_DET_FACTORS zldf
991            WHERE ztppo.application_id   = zldf.application_id
992              AND ztppo.entity_code      = zldf.entity_code
993              AND ztppo.event_class_code = zldf.event_class_code
994              AND ztppo.trx_id           = zldf.trx_id;
995 	EXCEPTION WHEN OTHERS THEN
996            l_line_level_action := 'N';
997            l_inclusive_tax_override_flag  := 'N';
998    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
999            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1000                'Exp : l_line_level_action =' ||l_line_level_action
1001              ||'Exp : l_inclusive_tax_override_flag '|| l_inclusive_tax_override_flag);
1002    END IF;
1003         END;
1004    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1005         FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1006                ' l_line_level_action =' ||l_line_level_action
1007              ||' l_inclusive_tax_override_flag '|| l_inclusive_tax_override_flag);
1008     END IF;
1009     --END IF;
1010 
1011     open item_lines_to_be_processed ;
1012     fetch item_lines_to_be_processed
1013      bulk collect into
1014 		pg_internal_org_id_tab		,
1015 		pg_doc_type_id_tab		,
1016 		pg_trx_id_tab			,
1017 		pg_appli_code_tab		,
1018 		pg_doc_level_action_tab		,
1019 		pg_trx_date_tab			,
1020 		pg_trx_curr_code_tab		,
1021 /* Bug 5090593:
1022 		pg_quote_flag_tab		,
1023 */
1024 		pg_legal_entity_num_tab		,
1025 		pg_esta_name_tab		,
1026 		pg_trx_number_tab		,
1027 		pg_trx_desc_tab			,
1028 		pg_doc_sequence_value_tab	,
1029 		pg_trx_due_date_tab		,
1030 /* Bug 5090593:
1031 		pg_trx_sol_ori_tab		,
1032 */
1033 		pg_allow_tax_calc_tab		,
1034 		pg_trx_line_id_tab		,
1035 		pg_trx_level_type_tab		,
1036 		pg_line_level_action_tab	,
1037 		pg_line_class_tab		,
1038 		pg_trx_shipping_date_tab	,
1039 		pg_trx_receipt_date_tab		,
1040 		pg_trx_line_type_tab		,
1041 		pg_trx_line_date_tab		,
1042 		pg_trx_business_cat_tab		,
1043 		pg_line_intended_use_tab	,
1044 		pg_line_amt_incl_tax_flag_tab	,
1045 		pg_line_amount_tab		,
1046 		pg_other_incl_tax_amt_tab	,
1047 		pg_trx_line_qty_tab		,
1048 		pg_unit_price_tab		,
1049 		pg_cash_discount_tab		,
1050 		pg_volume_discount_tab		,
1051 		pg_trading_discount_tab		,
1052 		pg_trans_charge_tab		,
1053 		pg_ins_charge_tab		,
1054 		pg_other_charge_tab		,
1055 		pg_prod_id_tab			,
1056 		pg_uom_code_tab			,
1057 		pg_prod_type_tab		,
1058 		pg_prod_code_tab		,
1059 		pg_fob_point_tab		,
1060 		pg_ship_to_pty_numr_tab		,
1061 		pg_ship_to_pty_name_tab		,
1062 		pg_ship_from_pty_num_tab	,
1063 		pg_ship_from_pty_name_tab	,
1064 		pg_ship_to_loc_id_tab           ,    -- Bug 5090593
1065 		pg_ship_to_grphy_type1_tab      ,
1066 		pg_ship_to_grphy_value1_tab     ,
1067 		pg_ship_to_grphy_type2_tab      ,
1068 		pg_ship_to_grphy_value2_tab     ,
1069 		pg_ship_to_grphy_type3_tab      ,
1070 		pg_ship_to_grphy_value3_tab     ,
1071 		pg_ship_to_grphy_type4_tab      ,
1072 		pg_ship_to_grphy_value4_tab     ,
1073 		pg_ship_to_grphy_type5_tab      ,
1074 		pg_ship_to_grphy_value5_tab     ,
1075 		pg_ship_to_grphy_type6_tab      ,
1076 		pg_ship_to_grphy_value6_tab     ,
1077 		pg_ship_to_grphy_type7_tab      ,
1078 		pg_ship_to_grphy_value7_tab     ,
1079 		pg_ship_to_grphy_type8_tab      ,
1080 		pg_ship_to_grphy_value8_tab     ,
1081 		pg_ship_to_grphy_type9_tab      ,
1082 		pg_ship_to_grphy_value9_tab     ,
1083 		pg_ship_to_grphy_type10_tab     ,
1084 		pg_ship_to_grphy_value10_tab    ,
1085 		pg_ship_fr_loc_id_tab           ,    -- Bug 5090593
1086 		pg_ship_fr_grphy_type1_tab      ,
1087 		pg_ship_fr_grphy_value1_tab     ,
1088 		pg_ship_fr_grphy_type2_tab      ,
1089 		pg_ship_fr_grphy_value2_tab     ,
1090 		pg_ship_fr_grphy_type3_tab      ,
1091 		pg_ship_fr_grphy_value3_tab     ,
1092 		pg_ship_fr_grphy_type4_tab      ,
1093 		pg_ship_fr_grphy_value4_tab     ,
1094 		pg_ship_fr_grphy_type5_tab      ,
1095 		pg_ship_fr_grphy_value5_tab     ,
1096 		pg_ship_fr_grphy_type6_tab      ,
1097 		pg_ship_fr_grphy_value6_tab     ,
1098 		pg_ship_fr_grphy_type7_tab      ,
1099 		pg_ship_fr_grphy_value7_tab     ,
1100 		pg_ship_fr_grphy_type8_tab      ,
1101 		pg_ship_fr_grphy_value8_tab     ,
1102 		pg_ship_fr_grphy_type9_tab      ,
1103 		pg_ship_fr_grphy_value9_tab     ,
1104 		pg_ship_fr_grphy_type10_tab     ,
1105 		pg_ship_fr_grphy_value10_tab    ,
1106 		pg_poa_loc_id_tab               ,    -- Bug 5090593
1107 		pg_poa_grphy_type1_tab          ,
1108 		pg_poa_grphy_value1_tab         ,
1109 		pg_poa_grphy_type2_tab          ,
1110 		pg_poa_grphy_value2_tab         ,
1111 		pg_poa_grphy_type3_tab          ,
1112 		pg_poa_grphy_value3_tab         ,
1113 		pg_poa_grphy_type4_tab          ,
1114 		pg_poa_grphy_value4_tab         ,
1115 		pg_poa_grphy_type5_tab          ,
1116 		pg_poa_grphy_value5_tab         ,
1117 		pg_poa_grphy_type6_tab          ,
1118 		pg_poa_grphy_value6_tab         ,
1119 		pg_poa_grphy_type7_tab          ,
1120 		pg_poa_grphy_value7_tab         ,
1121 		pg_poa_grphy_type8_tab          ,
1122 		pg_poa_grphy_value8_tab         ,
1123 		pg_poa_grphy_type9_tab          ,
1124 		pg_poa_grphy_value9_tab         ,
1125 		pg_poa_grphy_type10_tab         ,
1126 		pg_poa_grphy_value10_tab        ,
1127 		pg_poo_loc_id_tab               ,    -- Bug 5090593
1128 		pg_poo_grphy_type1_tab          ,
1129 		pg_poo_grphy_value1_tab         ,
1130 		pg_poo_grphy_type2_tab          ,
1131 		pg_poo_grphy_value2_tab         ,
1132 		pg_poo_grphy_type3_tab          ,
1133 		pg_poo_grphy_value3_tab         ,
1134 		pg_poo_grphy_type4_tab          ,
1135 		pg_poo_grphy_value4_tab         ,
1136 		pg_poo_grphy_type5_tab          ,
1137 		pg_poo_grphy_value5_tab         ,
1138 		pg_poo_grphy_type6_tab          ,
1139 		pg_poo_grphy_value6_tab         ,
1140 		pg_poo_grphy_type7_tab          ,
1141 		pg_poo_grphy_value7_tab         ,
1142 		pg_poo_grphy_type8_tab          ,
1143 		pg_poo_grphy_value8_tab         ,
1144 		pg_poo_grphy_type9_tab          ,
1145 		pg_poo_grphy_value9_tab         ,
1146 		pg_poo_grphy_type10_tab         ,
1147 		pg_poo_grphy_value10_tab        ,
1148 		pg_bill_to_pty_num_tab		,
1149 		pg_bill_to_pty_name_tab		,
1150 		pg_bill_from_pty_num_tab	,
1151 		pg_bill_from_pty_name_tab	,
1152 		pg_bill_to_loc_id_tab           ,    -- Bug 5090593
1153 		pg_bill_to_grphy_type1_tab      ,
1154 		pg_bill_to_grphy_value1_tab     ,
1155 		pg_bill_to_grphy_type2_tab      ,
1156 		pg_bill_to_grphy_value2_tab     ,
1157 		pg_bill_to_grphy_type3_tab      ,
1158 		pg_bill_to_grphy_value3_tab     ,
1159 		pg_bill_to_grphy_type4_tab      ,
1160 		pg_bill_to_grphy_value4_tab     ,
1161 		pg_bill_to_grphy_type5_tab      ,
1162 		pg_bill_to_grphy_value5_tab     ,
1163 		pg_bill_to_grphy_type6_tab      ,
1164 		pg_bill_to_grphy_value6_tab     ,
1165 		pg_bill_to_grphy_type7_tab      ,
1166 		pg_bill_to_grphy_value7_tab     ,
1167 		pg_bill_to_grphy_type8_tab      ,
1168 		pg_bill_to_grphy_value8_tab     ,
1169 		pg_bill_to_grphy_type9_tab      ,
1170 		pg_bill_to_grphy_value9_tab     ,
1171 		pg_bill_to_grphy_type10_tab     ,
1172 		pg_bill_to_grphy_value10_tab    ,
1173 		pg_bill_fr_loc_id_tab           ,    -- Bug 5090593
1174 		pg_bill_fr_grphy_type1_tab      ,
1175 		pg_bill_fr_grphy_value1_tab     ,
1176 		pg_bill_fr_grphy_type2_tab      ,
1177 		pg_bill_fr_grphy_value2_tab     ,
1178 		pg_bill_fr_grphy_type3_tab      ,
1179 		pg_bill_fr_grphy_value3_tab     ,
1180 		pg_bill_fr_grphy_type4_tab      ,
1181 		pg_bill_fr_grphy_value4_tab     ,
1182 		pg_bill_fr_grphy_type5_tab      ,
1183 		pg_bill_fr_grphy_value5_tab     ,
1184 		pg_bill_fr_grphy_type6_tab      ,
1185 		pg_bill_fr_grphy_value6_tab     ,
1186 		pg_bill_fr_grphy_type7_tab      ,
1187 		pg_bill_fr_grphy_value7_tab     ,
1188 		pg_bill_fr_grphy_type8_tab      ,
1189 		pg_bill_fr_grphy_value8_tab     ,
1190 		pg_bill_fr_grphy_type9_tab      ,
1191 		pg_bill_fr_grphy_value9_tab     ,
1192 		pg_bill_fr_grphy_type10_tab     ,
1193 		pg_bill_fr_grphy_value10_tab    ,
1194 		pg_account_ccid_tab		,
1195 		--pg_appl_fr_doc_type_id_tab	,
1196 		pg_appl_from_trx_id_tab		,
1197 		pg_appl_from_line_id_tab	,
1198 		pg_appl_fr_trx_lev_type_tab	,
1199 		pg_appl_from_doc_num_tab	,
1200 		pg_adj_doc_doc_type_id_tab	,
1201 		pg_adj_doc_trx_id_tab		,
1202 		pg_adj_doc_line_id_tab		,
1203 		pg_adj_doc_number_tab		,
1204 		pg_adj_doc_trx_lev_type_tab	,
1205 		pg_adj_doc_date_tab		,
1206 		pg_assess_value_tab		,
1207 		pg_trx_line_number_tab		,
1208 		pg_trx_line_desc_tab		,
1209 		pg_prod_desc_tab		,
1210 		pg_header_char1_tab		,
1211 		pg_header_char2_tab		,
1212 		pg_header_char3_tab		,
1213 		pg_header_char4_tab		,
1214 		pg_header_char5_tab		,
1215 		pg_header_char6_tab		,
1216 		pg_header_char7_tab		,
1217 		pg_header_char8_tab		,
1218 		pg_header_char9_tab		,
1219 		pg_header_char10_tab		,
1220 		pg_header_char11_tab		,
1221 		pg_header_char12_tab		,
1222 		pg_header_char13_tab		,
1223 		pg_header_char14_tab		,
1224 		pg_header_char15_tab		,
1225 		pg_header_numeric1_tab		,
1226 		pg_header_numeric2_tab		,
1227 		pg_header_numeric3_tab		,
1228 		pg_header_numeric4_tab		,
1229 		pg_header_numeric5_tab		,
1230 		pg_header_numeric6_tab		,
1231 		pg_header_numeric7_tab		,
1232 		pg_header_numeric8_tab		,
1233 		pg_header_numeric9_tab		,
1234 		pg_header_numeric10_tab		,
1235 		pg_header_date1_tab		,
1236 		pg_header_date2_tab		,
1237 		pg_header_date3_tab		,
1238 		pg_header_date4_tab		,
1239 		pg_header_date5_tab		,
1240 		pg_line_char1_tab		,
1241 		pg_line_char2_tab		,
1242 		pg_line_char3_tab		,
1243 		pg_line_char4_tab		,
1244 		pg_line_char5_tab		,
1245 		pg_line_char6_tab		,
1246 		pg_line_char7_tab		,
1247 		pg_line_char8_tab		,
1248 		pg_line_char9_tab		,
1249 		pg_line_char10_tab		,
1250 		pg_line_char11_tab		,
1251 		pg_line_char12_tab		,
1252 		pg_line_char13_tab		,
1253 		pg_line_char14_tab		,
1254 		pg_line_char15_tab		,
1255 		pg_line_numeric1_tab		,
1256 		pg_line_numeric2_tab		,
1257 		pg_line_numeric3_tab		,
1258 		pg_line_numeric4_tab		,
1259 		pg_line_numeric5_tab		,
1260 		pg_line_numeric6_tab		,
1261 		pg_line_numeric7_tab		,
1262 		pg_line_numeric8_tab		,
1263 		pg_line_numeric9_tab		,
1264 		pg_line_numeric10_tab		,
1265 		pg_line_date1_tab		,
1266 		pg_line_date2_tab		,
1267 		pg_line_date3_tab		,
1268 		pg_line_date4_tab		,
1269 		pg_line_date5_tab		,
1270 		pg_exempt_certi_numb_tab	,
1271 		pg_exempt_reason_tab		,
1272 		pg_exempt_cont_flag_tab
1273    limit C_LINES_PER_COMMIT;/*Need to limit the fetch*/
1274 
1275     IF (nvl(pg_trx_id_tab.last,0) = 0) Then
1276          IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1277            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1278 	   'No item lines exist to whom tax lines need to be created' );
1279          END IF;
1280       	   x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1281 	   g_string :='Not compaitable to VERTEX Release';
1282 	   error_exception_handle(g_string);
1283 	   x_messages_tbl:=g_messages_tbl;
1284 	   return;
1285 
1286     ELSE /*The view has returned some rows that can be processed below */
1287 
1288 	IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1289          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1290          ' Records in ZX_O2C_CALC_TXN_INPUT_V = '||pg_trx_id_tab.last);
1291           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1292 	'pg_doc_type_id_tab(1) :' ||pg_doc_type_id_tab(1));
1293         END IF;
1294 
1295         IF(pg_doc_type_id_tab(1)<>0) then
1296        	  Begin
1297              select  event_class_code
1298              into    l_document_type
1299 	     from    zx_evnt_cls_mappings
1300 	     where   event_class_mapping_id = pg_doc_type_id_tab(1);
1301           Exception
1302 	    When no_data_found then
1303 	      IF (g_level_exception >= g_current_runtime_level ) THEN
1304                     FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1305 	      End if;
1306 		x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1307 		g_string :='No document type exist for provided event_class_mapping_id ';
1308 		error_exception_handle(g_string);
1309 		x_messages_tbl:=g_messages_tbl;
1310 		return;
1311 	  End;
1312         ELSE /*"Sales Transaction Quote*/
1313 	    l_document_type := 'SALES_QUOTE';
1314         END IF;
1315 
1316 	IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1317          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1318          ' DOCUMENT_TYPE  '||l_document_type);
1319         END IF;
1320 
1321 
1322        For ptr in 1..nvl(pg_trx_id_tab.last, 0) loop
1323 
1324          I:=ptr;
1325        -- In case of partners, since there are two calls to get_tax_jurisdictions API
1326        -- we need to delete from zx_jurisdictions_gt before each of the calls to
1327        -- get_tax_jurisdictions API
1328        --  IF pg_trx_line_id_tab(i) <> g_transaction_line_id THEN
1329        --    delete from zx_jurisdictions_gt;
1330        --  END IF;
1331 	 g_transaction_line_id	:=  pg_trx_line_id_tab(i);
1332        	 g_trx_level_type	:=  pg_trx_level_type_tab(i);
1333 	 g_docment_type_id	:=  pg_doc_type_id_tab(i);
1334 	 g_trasaction_id	:=  pg_trx_id_tab(i);
1335 	 g_tax_regime_code	:=  zx_tax_partner_pkg.g_tax_regime_code;
1336 
1337 	 pg_ugraded_inv_flag_tab(I) := 'N';
1338 
1339        IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1340          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1341          ' Value of Variable I is :'||I);
1342        END IF;
1343 
1344 /* Performing validation of passed document level,line level actions */
1345        IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1346          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1347          ' pg_ship_to_loc_id_tab is : '||pg_ship_to_loc_id_tab(i));
1348        END IF;
1349        IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1350          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1351          ' pg_bill_to_loc_id_tab is : '||pg_bill_to_loc_id_tab(i));
1352        END IF;
1353 
1354 
1355          Perform_validate(l_return_status);
1356 	IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1357           IF (g_level_exception >= g_current_runtime_level ) THEN
1358                 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1359           END IF;
1360 	   x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1361 	   g_string :='Header ,line level actions are incompaitable';
1362 	   error_exception_handle(g_string);
1363 	   x_messages_tbl:=g_messages_tbl;
1364 	   return;
1365         END IF;
1366 
1367     IF l_doc_trx_id IS NULL or l_doc_trx_id <> pg_trx_id_tab(I) THEN
1368       l_doc_trx_id := pg_trx_id_tab(I);
1369 
1370       SELECT SUM(ABS(line_amount))
1371         INTO l_doc_amount
1372         FROM ZX_O2C_CALC_TXN_INPUT_V
1373        WHERE transaction_id = l_doc_trx_id;
1374 
1375       SET_DOCUMENT_TYPE(l_document_type,pg_adj_doc_trx_id_tab(I),l_doc_amount,pg_line_level_action_tab(I),l_return_status);
1376 	 	  IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1377         IF (g_level_exception >= g_current_runtime_level ) THEN
1378           FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1379         END IF;
1380 	      x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1381 	      g_string :='Failed in setting up document type';
1382 	      error_exception_handle(g_string);
1383 	      x_messages_tbl:=g_messages_tbl;
1384 	      return;
1385       END IF;
1386     END IF;
1387 
1388    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1389                   FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1390                   ' Document Type : '||l_document_type );
1391    END IF;
1392 
1393    IF (pg_doc_level_action_tab(i) in ('CREATE', 'QUOTE')) THEN
1394       IF (l_document_type in ('TAX_ONLY_CREDIT_MEMO', 'TAX_ONLY_ADJUSTMENT','TAX_ONLY_INVOICE')) THEN
1395          RETURN;
1396       ELSE
1397          Perform_line_creation(x_tax_lines_tbl,p_currency_tab,l_return_status);
1398          IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1399             IF (g_level_exception >= g_current_runtime_level ) THEN
1400                              FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1401             END IF;
1402             x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1403             g_string :='Failed in creating tax line';
1404             error_exception_handle(g_string);
1405             x_messages_tbl:=g_messages_tbl;
1406             return;
1407          END IF;
1408       END IF;
1409 
1410    ELSIF (pg_doc_level_action_tab(i) = 'UPDATE') then
1411 
1412       IF (l_document_type in ('TAX_ONLY_CREDIT_MEMO', 'TAX_ONLY_INVOICE')) THEN
1413          RETURN;
1414       END IF;
1415       Perform_update(x_tax_lines_tbl,p_currency_tab,l_return_status);
1416 
1417       IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1418          IF (g_level_exception >= g_current_runtime_level ) THEN
1419             FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1420          END IF;
1421          x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1422          g_string :='Failed in creating update';
1423          error_exception_handle(g_string);
1424          x_messages_tbl:=g_messages_tbl;
1425          return;
1426       END IF;
1427 
1428       BEGIN
1429          DELETE FROM zx_ptnr_neg_line_gt
1430          WHERE  event_class_mapping_id = pg_doc_type_id_tab(I) and
1431                 trx_id                 = pg_trx_id_tab(I) and
1432                 trx_line_id            = pg_trx_line_id_tab(I) and
1433                 trx_level_type         = pg_trx_level_type_tab(I);
1434       EXCEPTION
1435          WHEN no_data_found THEN
1436             null;
1437       END;
1438    ELSE
1439 	    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1440                   FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1441                   ' Unknown header level action' );
1442             END IF;
1443 	     x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1444 	     g_string :=' Unknown header  level action';
1445 	     error_exception_handle(g_string);
1446 	     x_messages_tbl:=g_messages_tbl;
1447 	     return;
1448          End if;
1449        end loop;
1450      end if;
1451 
1452      IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1453      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
1454     END IF;
1455 
1456      Exception
1457       when others then
1458         IF (g_level_unexpected >= g_current_runtime_level ) THEN
1459                   FND_LOG.STRING(g_level_unexpected,
1460                           G_MODULE_NAME||l_api_name,
1461                            sqlerrm);
1462         END IF;
1463          x_error_status := FND_API.G_RET_STS_UNEXP_ERROR;
1464 	   g_string :='Not compaitable to VERTEX Release';
1465 	   error_exception_handle(g_string);
1466 	   x_messages_tbl:=g_messages_tbl;
1467 	   return;
1468 
1469 
1470 END CALCULATE_TAX_API;
1471 
1472 PROCEDURE SET_DOCUMENT_TYPE( P_DOCUMENT_TYPE  IN OUT NOCOPY VARCHAR2,
1473 			     P_ADJ_DOC_TRX_ID IN NUMBER,
1474 			     P_LINE_AMOUNT    IN NUMBER,
1475 			     p_LINE_LEVEL_ACTION IN VARCHAR2,
1476 			     x_return_status  OUT NOCOPY VARCHAR2)IS
1477 l_api_name           CONSTANT VARCHAR2(30) := 'SET_DOCUMENT_TYPE';
1478 BEGIN
1479    x_return_status := FND_API.G_RET_STS_SUCCESS;
1480 
1481    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1482      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
1483     END IF;
1484 
1485    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1486        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_DOCUMENT_TYPE : '||P_DOCUMENT_TYPE );
1487        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_ADJ_DOC_TRX_ID : '||P_ADJ_DOC_TRX_ID );
1488        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_LINE_LEVEL_ACTION : '||p_line_level_action );
1489        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_LINE_AMOUNT : '||P_LINE_AMOUNT );
1490    END IF;
1491 
1492    IF (p_document_type = 'CREDIT_MEMO') THEN
1493       IF (p_adj_doc_trx_id is not null) THEN
1494          IF p_line_amount = 0 THEN
1495             p_document_type :='TAX_ONLY_CREDIT_MEMO';
1496          ELSIF p_line_level_action = 'RECORD_WITH_NO_TAX' THEN
1497          --ELSIF (pg_allow_tax_calc_tab(I) ='N') THEN
1498             p_document_type :='LINE_ONLY_CREDIT_MEMO';
1499          ELSE
1500             p_document_type :='APPLIED_CREDIT_MEMO';
1501          END IF;     /*LINE_AMOUNT*/
1502       ELSE
1503         p_document_type :='ON_ACCT_CREDIT_MEMO';
1504       END IF;     /*ADJ_DOC_TRX_ID*/
1505    END IF;     /*'CREDIT_MEMO*/
1506 
1507    IF (p_document_type = 'INVOICE') THEN
1508       IF (p_line_amount = 0 AND p_line_level_action = 'LINE_INFO_TAX_ONLY') THEN
1509          p_document_type :='TAX_ONLY_INVOICE';
1510       END IF;
1511    END IF;/*INVOICE*/
1512 
1513    IF (p_document_type = 'INVOICE_ADJUSTMENT') THEN
1514       IF (p_line_amount = 0) THEN
1515          p_document_type := 'TAX_ONLY_ADJUSTMENT';
1516       END IF;
1517    END IF;     /*INVOICE_ADJUSTMENT*/
1518 
1519    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1520       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
1521    END IF;
1522 
1523 End SET_DOCUMENT_TYPE;
1524 
1525 PROCEDURE PERFORM_VALIDATE(x_return_status OUT NOCOPY VARCHAR2) is
1526 l_api_name           CONSTANT VARCHAR2(30) := 'PERFORM_VALIDATE';
1527 
1528 Begin
1529   x_return_status := FND_API.G_RET_STS_SUCCESS;
1530 
1531     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1532      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
1533     END IF;
1534 
1535     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1536        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'PG_DOC_LEVEL_ACTION_TAB(i)  :  '||pg_doc_level_action_tab(i));
1537        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'PG_LINE_LEVEL_ACTION_TAB(i) : '||pg_line_level_action_tab(i));
1538     END IF;
1539 
1540       if(pg_doc_level_action_tab(i) = 'CREATE') Then
1541          if(pg_line_level_action_tab(i) NOT IN ('CREATE', 'QUOTE','SYNCHRONIZE','RECORD_WITH_NO_TAX')) Then
1542 	     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1543                FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Unknown line level action');
1544              END IF;
1545             x_return_status := FND_API.G_RET_STS_ERROR;
1546          end if;
1547       elsif(pg_doc_level_action_tab(i) = 'QUOTE') Then
1548          if(pg_line_level_action_tab(i) NOT IN ('QUOTE')) Then
1549              IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1550                FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Unknown line level action');
1551              END IF;
1552             x_return_status := FND_API.G_RET_STS_ERROR;
1553          end if;
1554       elsif(pg_doc_level_action_tab(i) = 'UPDATE') Then
1555           if(pg_line_level_action_tab(i) NOT IN ('CREATE', 'UPDATE', 'QUOTE', 'CANCEL', 'DELETE', 'SYNCHRONIZE','RECORD_WITH_NO_TAX')) Then
1556              IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1557                FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Unknown line level action');
1558              END IF;
1559             x_return_status := FND_API.G_RET_STS_ERROR;
1560           end if;
1561       else
1562           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1563                FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Unknown header level action');
1564           END IF;
1565       x_return_status := FND_API.G_RET_STS_ERROR;
1566     end if;
1567 
1568     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1569      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
1570     END IF;
1571 End PERFORM_VALIDATE;
1572 
1573 PROCEDURE PERFORM_LINE_CREATION(p_tax_lines_tbl  IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
1574 				p_currency_tab   IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
1575 				x_return_status     OUT NOCOPY VARCHAR2)is
1576 
1577 l_api_name           CONSTANT VARCHAR2(30) := 'PERFORM_LINE_CREATION';
1578 l_return_status               VARCHAR2(30);
1579 Begin
1580    x_return_status := FND_API.G_RET_STS_SUCCESS;
1581 
1582    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1583      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
1584    END IF;
1585 
1586    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1587        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Value of Variable I is'|| I );
1588    END IF;
1589 
1590    reset_parameters(l_return_status);
1591    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1592           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1593                 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1594           END IF;
1595 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1596 	   g_string :='Failed in RESET_PARAMETERS procedure';
1597 	   error_exception_handle(g_string);
1598 	   return;
1599    END IF;
1600 
1601    l_line_level_action := 'CREATE';
1602    set_parameters(l_return_status);
1603    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1604           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1605                 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1606           END IF;
1607 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1608 	   g_string :='Failed in SET_PRAMETERS procedure';
1609 	   error_exception_handle(g_string);
1610 	   return;
1611    END IF;
1612 
1613    calculate_tax(l_return_status);
1614    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1615           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1616                 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1617           END IF;
1618 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1619 	   g_string :='Failed in CALCULATE_TAX Procedure ';
1620 	   error_exception_handle(g_string);
1621 	   return;
1622    END IF;
1623 
1624    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1625         FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME,
1626         'pg_line_level_action_tab(i)  : '|| pg_line_level_action_tab(i));
1627    END IF;
1628 
1629    IF (pg_line_level_action_tab(i)<>'QUOTE') THEN
1630       write_to_vertex_repository(l_return_status);
1631       IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1632           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1633                 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1634           END IF;
1635 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1636 	   g_string :='Failed in WRITE_TO_VERTEX_REPOSITORY Procedure ';
1637 	   error_exception_handle(g_string);
1638 	   return;
1639       END IF;
1640    END IF;
1641 
1642 /*Vertex returned values need to be written back to zx_repository.*/
1643    tax_results_processing(p_tax_lines_tbl,p_currency_tab,l_return_status);
1644    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1645           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1646                 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1647           END IF;
1648 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1649 	   g_string :='Failed in TAX_RESULTS_PROCESSING procedure';
1650 	   error_exception_handle(g_string);
1651 	   return;
1652    END IF;
1653 
1654 
1655    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1656      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
1657    END IF;
1658 
1659 End PERFORM_LINE_CREATION;
1660 
1661 PROCEDURE PERFORM_LINE_DELETION(x_return_status OUT NOCOPY VARCHAR2) is
1662  l_api_name           CONSTANT VARCHAR2(30) := 'PERFORM_LINE_DELETION';
1663  l_return_status               VARCHAR2(30);
1664 Begin
1665   x_return_status := FND_API.G_RET_STS_SUCCESS;
1666 
1667    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1668      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
1669    END IF;
1670    	  /*ZX_VTX_USER_PKG.g_line_negation := TRUE;
1671    	  ZX_VTX_USER_PKG.g_trx_line_id := pg_trx_line_id_tab(I);*/
1672 
1673   	  reset_parameters(l_return_status);
1674 
1675    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1676           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1677                 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1678           END IF;
1679 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1680 	   g_string :='Failed in RESET_PARAMETERS Procedure';
1681 	   error_exception_handle(g_string);
1682 	   return;
1683    END IF;
1684    	  set_parameters(l_return_status);
1685 
1686    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1687           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1688                 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1689           END IF;
1690 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1691 	   g_string :='Failed in SET_PARAMETERS procedure';
1692 	   error_exception_handle(g_string);
1693 	   return;
1694    END IF;
1695    	  calculate_tax(l_return_status);
1696    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1697           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1698                 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1699           END IF;
1700 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1701 	   g_string :='Failed in CALCULATE_TAX procedure';
1702 	   error_exception_handle(g_string);
1703 	   return;
1704    END IF;
1705 	  write_to_vertex_repository(l_return_status);
1706    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1707           IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1708                 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1709           END IF;
1710 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1711 	   g_string :='Failed in WRITE_TO_VERTEX_REPOSITORY procedure';
1712 	   error_exception_handle(g_string);
1713 	   return;
1714    END IF;
1715 
1716    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1717      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
1718    END IF;
1719 End PERFORM_LINE_DELETION;
1720 
1721 
1722 PROCEDURE PERFORM_UPDATE       (p_tax_lines_tbl  IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
1723 				p_currency_tab   IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
1724 				x_return_status     OUT NOCOPY VARCHAR2) is
1725 l_api_name           CONSTANT VARCHAR2(30) := 'PERFORM_UPDATE';
1726 l_return_status               VARCHAR2(30);
1727 l_application_id              NUMBER;
1728 l_ver_count                   NUMBER(10);
1729 Begin
1730    x_return_status := FND_API.G_RET_STS_SUCCESS;
1731 
1732    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1733      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
1734    END IF;
1735 
1736    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1737        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'PG_LINE_LEVEL_ACTION_TAB(i)'||pg_line_level_action_tab(i) );
1738    END IF;
1739 
1740     	if (pg_line_level_action_tab(i) in ('CREATE','QUOTE')) Then
1741 
1742 	       l_line_level_action := 'CREATE';
1743     	       perform_line_creation(p_tax_lines_tbl,p_currency_tab,l_return_status);
1744 
1745 	   IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1746 		IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1747 			FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1748 	        END IF;
1749 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1750 		g_string :='Failed in PERFORM_LINE_CREATION procedure';
1751 		error_exception_handle(g_string);
1752 		return;
1753 	   END IF;
1754 
1755 	elsif(pg_line_level_action_tab(i) in ('UPDATE')) Then
1756     	     /*First make contra entry*/
1757     BEGIN
1758       SELECT APPLICATION_ID
1759         INTO l_application_id
1760         FROM ZX_PRVDR_LINE_EXTNS_GT
1761        WHERE ROWNUM = 1;
1762     EXCEPTION
1763       WHEN OTHERS THEN
1764         l_application_id := NULL;
1765     END;
1766     IF l_application_id IS NOT NULL THEN
1767       BEGIN
1768         SELECT Count(*)
1769           INTO l_ver_count
1770           FROM ZX_LINES
1771          WHERE APPLICATION_ID = l_application_id
1772            AND TRX_ID = pg_trx_id_tab(I)
1773            AND TRX_LINE_ID = pg_trx_line_id_tab(I)
1774            AND TAX_PROVIDER_ID IS NOT NULL;
1775       EXCEPTION
1776         WHEN OTHERS THEN
1777           l_ver_count := 0;
1778       END;
1779     END IF;
1780     IF l_ver_count <> 0 THEN
1781       	l_line_level_action := 'NEGATE';
1782 	perform_line_deletion(l_return_status);
1783 
1784 	IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1785 	  IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1786             FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1787 	  END IF;
1788 	  x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1789 	  g_string :='Failed in PERFORM_LINE_DELETION procedure';
1790 	  error_exception_handle(g_string);
1791 	  return;
1792 	END IF;
1793      END IF;
1794 	  /*For new line*/
1795      --  l_line_level_action := 'CREATE';
1796      perform_line_creation(p_tax_lines_tbl,p_currency_tab,l_return_status);
1797 
1798      IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1799 	IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1800    	   FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1801 	END IF;
1802 	x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1803 	g_string :='Failed in PERFORM_LINE_CREATION procedure';
1804 	error_exception_handle(g_string);
1805 	return;
1806      END IF;
1807 
1808     	elsif(pg_line_level_action_tab(i) in ('DELETE','CANCEL')) Then
1809           l_line_level_action := pg_line_level_action_tab(i);
1810           perform_line_deletion(l_return_status);
1811            IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1812 		IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1813 			FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
1814 	        END IF;
1815 		x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1816 		g_string :='Failed in PERFORM_LINE_DELETION procedure';
1817 		error_exception_handle(g_string);
1818 		return;
1819 	   END IF;
1820         else
1821              Null;/*Need to add for  SYNCHRONIZE */
1822     	end if;/*Line level operation*/
1823 
1824     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1825      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
1826     END IF;
1827 
1828 End PERFORM_UPDATE;
1829 
1830 PROCEDURE GET_TAX_JUR_CODE(p_location_id           IN  NUMBER,
1831                            p_situs                 IN  VARCHAR2,
1832                            p_tax                   IN  VARCHAR2,
1833                            p_regime_code           IN  VARCHAR2,
1834                            p_inv_date              IN  DATE,
1835                            x_tax_jurisdiction_code  OUT NOCOPY  VARCHAR2,
1836                            x_return_status         OUT NOCOPY  VARCHAR2) IS
1837 
1838 l_api_name             CONSTANT VARCHAR2(30) := 'GET_TAX_JUR_CODE';
1839 x_tax_jurisdiction_rec ZX_TCM_GEO_JUR_PKG.tax_jurisdiction_rec_type;
1840 x_jurisdictions_found  VARCHAR2(20);
1841 l_return_status        VARCHAR2(30);
1842 
1843 BEGIN
1844    x_return_status := FND_API.G_RET_STS_SUCCESS;
1845 
1846    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1847      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
1848    END IF;
1849 
1850    ZX_TCM_GEO_JUR_PKG.get_tax_jurisdictions
1851 	 	      (p_location_id                 ,
1852 	 	       p_situs                       ,
1853 	               p_tax                         ,
1854                        p_regime_code		     ,
1855 	 	       p_inv_date   	             ,
1856 	 	       x_tax_jurisdiction_rec  	     ,
1857 	 	       x_jurisdictions_found         ,
1858 	 	       x_return_status
1859 	 	      );
1860    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
1861       IF (g_level_exception >= g_current_runtime_level ) THEN
1862                 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
1863       END IF;
1864 	  -- x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
1865       g_string :='Not able to find Jurisdiction';
1866       error_exception_handle(g_string);
1867       RETURN;
1868    END IF;
1869 
1870    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
1871       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1872           'x_jurisdictions_found :'||x_jurisdictions_found);
1873       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
1874           'x_tax_jurisdiction_rec.tax_jurisdiction_code :'||x_tax_jurisdiction_rec.tax_jurisdiction_code);
1875    END IF;
1876 
1877    IF x_jurisdictions_found = 'Y' THEN
1878       IF x_tax_jurisdiction_rec.tax_jurisdiction_code IS NOT NULL THEN
1879          x_tax_jurisdiction_code := x_tax_jurisdiction_rec.tax_jurisdiction_code;
1880       ELSE
1881          BEGIN
1882             SELECT tax_jurisdiction_code
1883             INTO x_tax_jurisdiction_code
1884             FROM (
1885             SELECT tax_jurisdiction_code
1886               FROM zx_jurisdictions_gt
1887              WHERE tax_regime_code = p_regime_code
1888                AND tax = p_tax
1889                AND substr(tax_jurisdiction_code, 4) BETWEEN '000000000' and '999999999'
1890                AND precedence_level = (SELECT max(precedence_level)
1891                                          FROM zx_jurisdictions_gt
1892                                         WHERE tax_regime_code = p_regime_code
1893                                           AND   substr(tax_jurisdiction_code, 4) BETWEEN '000000000' and '999999999'
1894                                           AND tax = p_tax)
1895             ORDER BY tax_jurisdiction_code)
1896             WHERE rownum = 1 ;
1897          END;
1898       END IF;
1899    END IF;
1900 
1901    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
1902       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
1903    END IF;
1904 
1905 END GET_TAX_JUR_CODE;
1906 
1907 
1908 PROCEDURE SET_PARAMETERS(x_return_status OUT NOCOPY VARCHAR2) IS
1909 
1910  /*Following variables used during line deletion process.*/
1911 arp_line_amount     ZX_PTNR_NEG_LINE_GT.line_amt%type;
1912 arp_quantity        ZX_PTNR_NEG_LINE_GT.trx_line_quantity%type;
1913 arp_trx_id	    ZX_PTNR_NEG_LINE_GT.trx_id%type;
1914 arp_trx_number      ZX_PTNR_NEG_LINE_GT.trx_number%type;
1915 arp_trx_date	    ZX_PTNR_NEG_LINE_GT.trx_date%type;
1916 arp_exemption_control_flag   ZX_PTNR_NEG_LINE_GT.exemption_control_flag%type;
1917 arp_ship_to_grphy_type1		    varchar2(30);
1918 arp_ship_to_grphy_value1	    varchar2(30);
1919 arp_ship_to_grphy_type2             varchar2(30);
1920 arp_ship_to_grphy_value2            varchar2(30);
1921 arp_ship_to_grphy_type3             varchar2(30);
1922 arp_ship_to_grphy_value3            varchar2(30);
1923 arp_ship_to_grphy_type4             varchar2(30);
1924 arp_ship_to_grphy_value4            varchar2(30);
1925 arp_ship_to_grphy_type5             varchar2(30);
1926 arp_ship_to_grphy_value5            varchar2(30);
1927 arp_ship_to_grphy_type6             varchar2(30);
1928 arp_ship_to_grphy_value6            varchar2(30);
1929 arp_ship_to_grphy_type7             varchar2(30);
1930 arp_ship_to_grphy_value7            varchar2(30);
1931 arp_ship_to_grphy_type8             varchar2(30);
1932 arp_ship_to_grphy_value8            varchar2(30);
1933 arp_ship_to_grphy_type9             varchar2(30);
1934 arp_ship_to_grphy_value9            varchar2(30);
1935 arp_ship_to_grphy_type10            varchar2(30);
1936 arp_ship_to_grphy_value10           varchar2(30);
1937 arp_ship_from_grphy_type1           varchar2(30);
1938 arp_ship_from_grphy_value1          varchar2(30);
1939 arp_ship_from_grphy_type2           varchar2(30);
1940 arp_ship_from_grphy_value2          varchar2(30);
1941 arp_ship_from_grphy_type3           varchar2(30);
1942 arp_ship_from_grphy_value3          varchar2(30);
1943 arp_ship_from_grphy_type4           varchar2(30);
1944 arp_ship_from_grphy_value4          varchar2(30);
1945 arp_ship_from_grphy_type5           varchar2(30);
1946 arp_ship_from_grphy_value5          varchar2(30);
1947 arp_ship_from_grphy_type6           varchar2(30);
1948 arp_ship_from_grphy_value6          varchar2(30);
1949 arp_ship_from_grphy_type7           varchar2(30);
1950 arp_ship_from_grphy_value7          varchar2(30);
1951 arp_ship_from_grphy_type8           varchar2(30);
1952 arp_ship_from_grphy_value8          varchar2(30);
1953 arp_ship_from_grphy_type9           varchar2(30);
1954 arp_ship_from_grphy_value9          varchar2(30);
1955 arp_ship_from_grphy_type10          varchar2(30);
1956 arp_ship_from_grphy_value10         varchar2(30);
1957 /*arp_poa_grphy_type1                 varchar2(30);
1958 arp_poa_grphy_value1                varchar2(30);
1959 arp_poa_grphy_type2                 varchar2(30);
1960 arp_poa_grphy_value2                varchar2(30);
1961 arp_poa_grphy_type3                 varchar2(30);
1962 arp_poa_grphy_value3                varchar2(30);
1963 arp_poa_grphy_type4                 varchar2(30);
1964 arp_poa_grphy_value4                varchar2(30);
1965 arp_poa_grphy_type5                 varchar2(30);
1966 arp_poa_grphy_value5                varchar2(30);
1967 arp_poa_grphy_type6                 varchar2(30);
1968 arp_poa_grphy_value6                varchar2(30);
1969 arp_poa_grphy_type7                 varchar2(30);
1970 arp_poa_grphy_value7                varchar2(30);
1971 arp_poa_grphy_type8                 varchar2(30);
1972 arp_poa_grphy_value8                varchar2(30);
1973 arp_poa_grphy_type9                 varchar2(30);
1974 arp_poa_grphy_value9                varchar2(30);
1975 arp_poa_grphy_type10                varchar2(30);
1976 arp_poa_grphy_value10               varchar2(30);
1977 arp_poo_grphy_type1                 varchar2(30);
1978 arp_poo_grphy_value1                varchar2(30);
1979 arp_poo_grphy_type2                 varchar2(30);
1980 arp_poo_grphy_value2                varchar2(30);
1981 arp_poo_grphy_type3                 varchar2(30);
1982 arp_poo_grphy_value3                varchar2(30);
1983 arp_poo_grphy_type4                 varchar2(30);
1984 arp_poo_grphy_value4                varchar2(30);
1985 arp_poo_grphy_type5                 varchar2(30);
1986 arp_poo_grphy_value5                varchar2(30);
1987 arp_poo_grphy_type6                 varchar2(30);
1988 arp_poo_grphy_value6                varchar2(30);
1989 arp_poo_grphy_type7                 varchar2(30);
1990 arp_poo_grphy_value7                varchar2(30);
1991 arp_poo_grphy_type8                 varchar2(30);
1992 arp_poo_grphy_type9                 varchar2(30);
1993 arp_poo_grphy_value9                varchar2(30);
1994 arp_poo_grphy_type10                varchar2(30);
1995 arp_poo_grphy_value10               varchar2(30);*/
1996 arp_bill_to_grphy_type1             varchar2(30);
1997 arp_bill_to_grphy_value1            varchar2(30);
1998 arp_bill_to_grphy_type2             varchar2(30);
1999 arp_bill_to_grphy_value2            varchar2(30);
2000 arp_bill_to_grphy_type3             varchar2(30);
2001 arp_bill_to_grphy_value3            varchar2(30);
2002 arp_bill_to_grphy_type4             varchar2(30);
2003 arp_bill_to_grphy_value4            varchar2(30);
2004 arp_bill_to_grphy_type5             varchar2(30);
2005 arp_bill_to_grphy_value5            varchar2(30);
2006 arp_bill_to_grphy_type6             varchar2(30);
2007 arp_bill_to_grphy_value6            varchar2(30);
2008 arp_bill_to_grphy_type7             varchar2(30);
2009 arp_bill_to_grphy_value7            varchar2(30);
2010 arp_bill_to_grphy_type8             varchar2(30);
2011 arp_bill_to_grphy_value8            varchar2(30);
2012 arp_bill_to_grphy_type9             varchar2(30);
2013 arp_bill_to_grphy_value9            varchar2(30);
2014 arp_bill_to_grphy_type10            varchar2(30);
2015 arp_bill_to_grphy_value10           varchar2(30);
2016 arp_bill_from_grphy_type1           varchar2(30);
2017 arp_bill_from_grphy_value1          varchar2(30);
2018 arp_bill_from_grphy_type2           varchar2(30);
2019 arp_bill_from_grphy_value2          varchar2(30);
2020 arp_bill_from_grphy_type3           varchar2(30);
2021 arp_bill_from_grphy_value3          varchar2(30);
2022 arp_bill_from_grphy_type4           varchar2(30);
2023 arp_bill_from_grphy_value4          varchar2(30);
2024 arp_bill_from_grphy_type5           varchar2(30);
2025 arp_bill_from_grphy_value5          varchar2(30);
2026 arp_bill_from_grphy_type6           varchar2(30);
2027 arp_bill_from_grphy_value6          varchar2(30);
2028 arp_bill_from_grphy_type7           varchar2(30);
2029 arp_bill_from_grphy_value7          varchar2(30);
2030 arp_bill_from_grphy_type8           varchar2(30);
2031 arp_bill_from_grphy_value8          varchar2(30);
2032 arp_bill_from_grphy_type9           varchar2(30);
2033 arp_bill_from_grphy_value9          varchar2(30);
2034 arp_bill_from_grphy_type10          varchar2(30);
2035 arp_bill_from_grphy_value10         varchar2(30);
2036 arp_trx_line_type		    varchar2(30);
2037 arp_product_code		    varchar2(32);
2038 arp_cert_num			    varchar2(30);
2039 arp_state_exempt_reason		    varchar2(30);
2040 arp_county_exempt_reason 	    varchar2(30);
2041 arp_city_exempt_reason		    varchar2(30);
2042 arp_district_exempt_rs		    varchar2(30);
2043 arp_audit_flag			    varchar2(30);
2044 arp_ship_to_add			    varchar2(30);
2045 arp_ship_from_add		    varchar2(30);
2046 arp_poa_add_code		    varchar2(30);
2047 arp_customer_code		    varchar2(30);
2048 arp_customer_class		    varchar2(30);
2049 arp_company_code		    varchar2(30);
2050 arp_division_code		    varchar2(30);
2051 arp_state_exempt_percent	    number;
2052 arp_county_exempt_pct		    number;
2053 arp_city_exempt_pct  		    number;
2054 arp_district_exempt_pct		    number;
2055 arp_transaction_date		    date;
2056 arp_adjusted_doc_date		    date;
2057 
2058 l_location_info_rec location_info_rec_type;
2059 l_api_name           CONSTANT VARCHAR2(30) := 'SET_PARAMETERS';
2060 BEGIN
2061    x_return_status := FND_API.G_RET_STS_SUCCESS;
2062 
2063    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2064       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
2065    END IF;
2066 
2067    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2068       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'L_LINE_LEVEL_ACTION :'||l_line_level_action);
2069       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Value of I is :'||I);
2070    END IF;
2071 
2072    IF (l_line_level_action IN ('CREATE','DELETE','CANCEL')) THEN
2073       IF substrb(nvl(pg_Line_char10_tab(I),'XXXXXXXXX'), 2,9)='XXXXXXXXX' THEN
2074          inv_in_rec.fJurisSFGeoCd := null;
2075  	 inv_in_rec.fJurisSFInCi  := null;
2076       ELSE
2077       	 inv_in_rec.fJurisSFGeoCd	:= to_number(substrb(pg_Line_char10_tab(I), 2, 9));
2078  	 inv_in_rec.fJurisSFInCi        := case substrb(pg_Line_char10_tab(I), 1, 1)
2079                                            when 'X'  then NULL
2080 	 			           when '1'  then TRUE
2081 					   when '0'  then FALSE
2082 					   else  NULL
2083 					   end ;
2084       END IF;
2085       IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2086          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisSFGeoCd : '||to_char(inv_in_rec.fJurisSFGeoCd) );
2087          -- FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisSFInCi :'||inv_in_rec.fJurisSFInCi );
2088       END IF;
2089 
2090       IF substrb(nvl(pg_Line_char9_tab(I),'XXXXXXXXX'), 2,9)='XXXXXXXXX' THEN
2091          inv_in_rec.fJurisSTGeoCd := null;
2092          inv_in_rec.fJurisSTInCi  := null;
2093       ELSE
2094          inv_in_rec.fJurisSTGeoCd := to_number(substrb(pg_Line_char9_tab(I), 2, 9));
2095   	 inv_in_rec.fJurisSTInCi  := case substrb(pg_Line_char9_tab(I), 1, 1)
2096                                         when 'X'  then NULL
2097 				        when '1'  then TRUE
2098 				        when '0'  then FALSE
2099 				        else  NULL
2100 				     end ;
2101       END IF;
2102     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2103          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisSTGeoCd : '||to_char(inv_in_rec.fJurisSTGeoCd) );
2104 --	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisSTInCi :'||inv_in_rec.fJurisSTInCi );
2105     END IF;
2106       IF substrb(nvl(pg_Line_char11_tab(I),'XXXXXXXXX'), 2,9)='XXXXXXXXX' THEN
2107          inv_in_rec.fJurisOAGeoCd := null;
2108          inv_in_rec.fJurisOAInCi  := null;
2109       ELSE
2110 	inv_in_rec.fJurisOAGeoCd	:= to_number(substrb(pg_Line_char11_tab(I), 2, 9));
2111 	inv_in_rec.fJurisOAInCi         := case substrb(pg_Line_char11_tab(I), 1, 1)
2112                                                   when 'X'  then NULL
2113 						  when '1'  then TRUE
2114 						  when '0'  then FALSE
2115 						  else  NULL
2116 					    end ;
2117       END IF;
2118     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2119          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisOAGeoCd : '||to_char(inv_in_rec.fJurisOAGeoCd ));
2120 	-- FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisOAInCi :'||inv_in_rec.fJurisOAInCi);
2121     END IF;
2122 
2123    IF (l_line_level_action IN ('CREATE', 'DELETE')) THEN
2124       inv_in_rec.fTDMCustCd := pg_Line_char12_tab(I);
2125    ELSE
2126       /*
2127       BEGIN
2128          SELECT pty.party_number
2129            INTO inv_in_rec.fTDMCustCd
2130            FROM hz_parties pty,
2131                 zx_party_tax_profile ptp
2132           WHERE ptp.party_tax_profile_id = bill_to_party_tax_id_tab(i)
2133             AND ptp.party_id = pty.party_id;
2134       EXCEPTION WHEN OTHERS THEN
2135          inv_in_rec.fTDMCustCd := NULL;
2136       END;
2137       */
2138       null;
2139    END IF;
2140    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2141          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fTDMCustCd : '||inv_in_rec.fTDMCustCd );
2142    END IF;
2143 
2144    inv_in_rec.fTDMCustClassCd	:= pg_Line_char13_tab(I);
2145    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2146 	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fTDMCustClassCd :'||inv_in_rec.fTDMCustClassCd );
2147    END IF;
2148 
2149    inv_in_rec.fTDMCompCd		:= pg_Line_char14_tab(I);
2150    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2151 	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fTDMCompCd :'||inv_in_rec.fTDMCompCd );
2152    END IF;
2153 
2154    inv_in_rec.fInvIdNum		:= pg_trx_number_tab(I);
2155    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2156 	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fInvIdNum :'||inv_in_rec.fInvIdNum );
2157    END IF;
2158 
2159    inv_in_rec.fTDMDivCd		:= pg_Line_char15_tab(I);
2160    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2161 	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fTDMDivCd :'||inv_in_rec.fTDMDivCd );
2162    END IF;
2163 
2164    /*-----------------------------------------------------------
2165     | The transaction type identifies the type of transaction	|
2166     | being processed. 					|
2167     -----------------------------------------------------------*/
2168    IF pg_Line_char1_tab(I) = 'PURCHASE' THEN
2169            line_in_tab(1).fTransType := ZX_TAX_VERTEX_QSU.cQSUTransTypePurchase;
2170    ELSIF pg_Line_char1_tab(I) = 'RENTAL' THEN
2171               line_in_tab(1).fTransType := ZX_TAX_VERTEX_QSU.cQSUTransTypeRentLease;
2172    ELSIF pg_Line_char1_tab(I) = 'LEASE' THEN
2173               line_in_tab(1).fTransType := ZX_TAX_VERTEX_QSU.cQSUTransTypeRentLease;
2174    ELSIF pg_Line_char1_tab(I) = 'SALE' THEN
2175               line_in_tab(1).fTransType := ZX_TAX_VERTEX_QSU.cQSUTransTypeSale;
2176    ELSIF pg_Line_char1_tab(I) = 'SERVICE' THEN
2177               line_in_tab(1).fTransType := ZX_TAX_VERTEX_QSU.cQSUTransTypeService;
2178    END IF;
2179    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2180 	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'line_in_tab(1).fTransType :'||to_char(line_in_tab(1).fTransType));
2181    END IF;
2182 
2183    line_in_tab(1).fTransDate  	:= pg_line_date1_tab(i);
2184    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2185          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'line_in_tab(1).fTransDate : '||to_char(line_in_tab(1).fTransDate));
2186    END IF;
2187 
2188    line_in_tab(1).fTransUserArea	:= to_char(pg_Trx_id_tab(I));
2189    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2190 	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'line_in_tab(1).fTransUserArea :'||line_in_tab(1).fTransUserArea );
2191    END IF;
2192 
2193    line_in_tab(1).fTDMProdCd	:= pg_Line_char2_tab(I);
2194    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2195 	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'line_in_tab(1).fTDMProdCd	 :'  ||line_in_tab(1).fTDMProdCd );
2196    END IF;
2197 
2198 
2199 
2200    ELSE /*Line level action is delete*/
2201       SELECT line_amt,
2202         trx_line_quantity,
2203         trx_id,
2204         trx_number,
2205 	ship_to_geography_type1,
2206 	ship_to_geography_value1,
2207 	ship_to_geography_type2,
2208 	ship_to_geography_value2,
2209 	ship_to_geography_type3,
2210 	ship_to_geography_value3,
2211 	ship_to_geography_type4,
2212 	ship_to_geography_value4,
2213 	ship_to_geography_type5,
2214 	ship_to_geography_value5,
2215 	ship_to_geography_type6,
2216 	ship_to_geography_value6,
2217 	ship_to_geography_type7,
2218 	ship_to_geography_value7,
2219 	ship_to_geography_type8,
2220 	ship_to_geography_value8,
2221 	ship_to_geography_type9,
2222 	ship_to_geography_value9,
2223 	ship_to_geography_type10,
2224 	ship_to_geography_value10,
2225 	ship_from_geography_type1,
2226 	ship_from_geography_value1,
2227 	ship_from_geography_type2,
2228 	ship_from_geography_value2,
2229 	ship_from_geography_type3,
2230 	ship_from_geography_value3,
2231 	ship_from_geography_type4,
2232 	ship_from_geography_value4,
2233 	ship_from_geography_type5,
2234 	ship_from_geography_value5,
2235 	ship_from_geography_type6,
2236 	ship_from_geography_value6,
2237 	ship_from_geography_type7,
2238 	ship_from_geography_value7,
2239 	ship_from_geography_type8,
2240 	ship_from_geography_value8,
2241 	ship_from_geography_type9,
2242 	ship_from_geography_value9,
2243 	ship_from_geography_type10,
2244 	ship_from_geography_value10,
2245 	/*poa_geography_type1,
2246 	poa_geography_value1,
2247 	poa_geography_type2,
2248 	poa_geography_value2,
2249 	poa_geography_type3,
2250 	poa_geography_value3,
2251 	poa_geography_type4,
2252 	poa_geography_value4,
2253 	poa_geography_type5,
2254 	poa_geography_value5,
2255 	poa_geography_type6,
2256 	poa_geography_value6,
2257 	poa_geography_type7,
2258 	poa_geography_value7,
2259 	poa_geography_type8,
2260 	poa_geography_value8,
2261 	poa_geography_type9,
2262 	poa_geography_value9,
2263 	poa_geography_type10,
2264 	poa_geography_value10,
2265 	poo_geography_type1,
2266 	poo_geography_value1,
2267 	poo_geography_type2,
2268 	poo_geography_value2,
2269 	poo_geography_type3,
2270 	poo_geography_value3,
2271 	poo_geography_type4,
2272 	poo_geography_value4,
2273 	poo_geography_type5,
2274 	poo_geography_value5,
2275 	poo_geography_type6,
2276 	poo_geography_value6,
2277 	poo_geography_type7,
2278 	poo_geography_value7,
2279 	poo_geography_type8,
2280 	poo_geography_type9,
2281 	poo_geography_value9,
2282 	poo_geography_type10,
2283 	poo_geography_value10,*/
2284 	bill_to_geography_type1,
2285 	bill_to_geography_value1,
2286 	bill_to_geography_type2,
2287 	bill_to_geography_value2,
2288 	bill_to_geography_type3,
2289 	bill_to_geography_value3,
2290 	bill_to_geography_type4,
2291 	bill_to_geography_value4,
2292 	bill_to_geography_type5,
2293 	bill_to_geography_value5,
2294 	bill_to_geography_type6,
2295 	bill_to_geography_value6,
2296 	bill_to_geography_type7,
2297 	bill_to_geography_value7,
2298 	bill_to_geography_type8,
2299 	bill_to_geography_value8,
2300 	bill_to_geography_type9,
2301 	bill_to_geography_value9,
2302 	bill_to_geography_type10,
2303 	bill_to_geography_value10,
2304 	bill_from_geography_type1,
2305 	bill_from_geography_value1,
2306 	bill_from_geography_type2,
2307 	bill_from_geography_value2,
2308 	bill_from_geography_type3,
2309 	bill_from_geography_value3,
2310 	bill_from_geography_type4,
2311 	bill_from_geography_value4,
2312 	bill_from_geography_type5,
2313 	bill_from_geography_value5,
2314 	bill_from_geography_type6,
2315 	bill_from_geography_value6,
2316 	bill_from_geography_type7,
2317 	bill_from_geography_value7,
2318 	bill_from_geography_type8,
2319 	bill_from_geography_value8,
2320 	bill_from_geography_type9,
2321 	bill_from_geography_value9,
2322 	bill_from_geography_type10,
2323 	bill_from_geography_value10,
2324 	LINE_EXT_VARCHAR_ATTRIBUTE1,
2325         LINE_EXT_VARCHAR_ATTRIBUTE2,
2326         LINE_EXT_VARCHAR_ATTRIBUTE3,
2327         LINE_EXT_VARCHAR_ATTRIBUTE4,
2328         LINE_EXT_VARCHAR_ATTRIBUTE5,
2329         LINE_EXT_VARCHAR_ATTRIBUTE6,
2330         LINE_EXT_VARCHAR_ATTRIBUTE7,
2331         LINE_EXT_VARCHAR_ATTRIBUTE8,
2332         LINE_EXT_VARCHAR_ATTRIBUTE9,
2333         LINE_EXT_VARCHAR_ATTRIBUTE10,
2334         LINE_EXT_VARCHAR_ATTRIBUTE11,
2335         LINE_EXT_VARCHAR_ATTRIBUTE12,
2336         LINE_EXT_VARCHAR_ATTRIBUTE13,
2337         LINE_EXT_VARCHAR_ATTRIBUTE14,
2338         LINE_EXT_VARCHAR_ATTRIBUTE15,
2339         LINE_EXT_NUMBER_ATTRIBUTE1,
2340         LINE_EXT_NUMBER_ATTRIBUTE2,
2341         LINE_EXT_NUMBER_ATTRIBUTE3,
2342         LINE_EXT_NUMBER_ATTRIBUTE4,
2343         LINE_EXT_DATE_ATTRIBUTE1,
2344 	adjusted_doc_date,
2345 	trx_date,
2346 	exemption_control_flag
2347        INTO   arp_line_amount,
2348               arp_quantity,
2349               arp_trx_id,
2350               arp_trx_number,
2351               arp_ship_to_grphy_type1,
2352               arp_ship_to_grphy_value1,
2353               arp_ship_to_grphy_type2,
2354               arp_ship_to_grphy_value2,
2355               arp_ship_to_grphy_type3,
2356               arp_ship_to_grphy_value3,
2357               arp_ship_to_grphy_type4,
2358               arp_ship_to_grphy_value4,
2359               arp_ship_to_grphy_type5,
2360               arp_ship_to_grphy_value5,
2361               arp_ship_to_grphy_type6,
2362               arp_ship_to_grphy_value6,
2363               arp_ship_to_grphy_type7,
2364               arp_ship_to_grphy_value7,
2365               arp_ship_to_grphy_type8,
2366               arp_ship_to_grphy_value8,
2367               arp_ship_to_grphy_type9,
2368               arp_ship_to_grphy_value9,
2369               arp_ship_to_grphy_type10,
2370               arp_ship_to_grphy_value10,
2371               arp_ship_from_grphy_type1,
2372               arp_ship_from_grphy_value1,
2373               arp_ship_from_grphy_type2,
2374               arp_ship_from_grphy_value2,
2375               arp_ship_from_grphy_type3,
2376               arp_ship_from_grphy_value3,
2377               arp_ship_from_grphy_type4,
2378               arp_ship_from_grphy_value4,
2379               arp_ship_from_grphy_type5,
2380               arp_ship_from_grphy_value5,
2381               arp_ship_from_grphy_type6,
2382               arp_ship_from_grphy_value6,
2383               arp_ship_from_grphy_type7,
2384               arp_ship_from_grphy_value7,
2385               arp_ship_from_grphy_type8,
2386               arp_ship_from_grphy_value8,
2387               arp_ship_from_grphy_type9,
2388               arp_ship_from_grphy_value9,
2389               arp_ship_from_grphy_type10,
2390               arp_ship_from_grphy_value10,
2391               /*arp_poa_grphy_type1,
2392               arp_poa_grphy_value1,
2393               arp_poa_grphy_type2,
2394               arp_poa_grphy_value2,
2395               arp_poa_grphy_type3,
2396               arp_poa_grphy_value3,
2397               arp_poa_grphy_type4,
2398               arp_poa_grphy_value4,
2399               arp_poa_grphy_type5,
2400               arp_poa_grphy_value5,
2401               arp_poa_grphy_type6,
2402               arp_poa_grphy_value6,
2403               arp_poa_grphy_type7,
2404               arp_poa_grphy_value7,
2405               arp_poa_grphy_type8,
2406               arp_poa_grphy_value8,
2407               arp_poa_grphy_type9,
2408               arp_poa_grphy_value9,
2409               arp_poa_grphy_type10,
2410               arp_poa_grphy_value10,
2411               arp_poo_grphy_type1,
2412               arp_poo_grphy_value1,
2413               arp_poo_grphy_type2,
2414               arp_poo_grphy_value2,
2415               arp_poo_grphy_type3,
2416               arp_poo_grphy_value3,
2417               arp_poo_grphy_type4,
2418               arp_poo_grphy_value4,
2419               arp_poo_grphy_type5,
2420               arp_poo_grphy_value5,
2421               arp_poo_grphy_type6,
2422               arp_poo_grphy_value6,
2423               arp_poo_grphy_type7,
2424               arp_poo_grphy_value7,
2425               arp_poo_grphy_type8,
2426               arp_poo_grphy_type9,
2427               arp_poo_grphy_value9,
2428               arp_poo_grphy_type10,
2429               arp_poo_grphy_value10,*/
2430               arp_bill_to_grphy_type1,
2431               arp_bill_to_grphy_value1,
2432               arp_bill_to_grphy_type2,
2433               arp_bill_to_grphy_value2,
2434               arp_bill_to_grphy_type3,
2435               arp_bill_to_grphy_value3,
2436               arp_bill_to_grphy_type4,
2437               arp_bill_to_grphy_value4,
2438               arp_bill_to_grphy_type5,
2439               arp_bill_to_grphy_value5,
2440               arp_bill_to_grphy_type6,
2441               arp_bill_to_grphy_value6,
2442               arp_bill_to_grphy_type7,
2443               arp_bill_to_grphy_value7,
2444               arp_bill_to_grphy_type8,
2445               arp_bill_to_grphy_value8,
2446               arp_bill_to_grphy_type9,
2447               arp_bill_to_grphy_value9,
2448               arp_bill_to_grphy_type10,
2449               arp_bill_to_grphy_value10,
2450               arp_bill_from_grphy_type1,
2451               arp_bill_from_grphy_value1,
2452               arp_bill_from_grphy_type2,
2453               arp_bill_from_grphy_value2,
2454               arp_bill_from_grphy_type3,
2455               arp_bill_from_grphy_value3,
2456               arp_bill_from_grphy_type4,
2457               arp_bill_from_grphy_value4,
2458               arp_bill_from_grphy_type5,
2459               arp_bill_from_grphy_value5,
2460               arp_bill_from_grphy_type6,
2461               arp_bill_from_grphy_value6,
2462               arp_bill_from_grphy_type7,
2463               arp_bill_from_grphy_value7,
2464               arp_bill_from_grphy_type8,
2465               arp_bill_from_grphy_value8,
2466               arp_bill_from_grphy_type9,
2467               arp_bill_from_grphy_value9,
2468               arp_bill_from_grphy_type10,
2469               arp_bill_from_grphy_value10,
2470               arp_trx_line_type,
2471               arp_product_code,
2472               arp_cert_num,
2473               arp_state_exempt_reason,
2474               arp_county_exempt_reason,
2475               arp_city_exempt_reason,
2476               arp_district_exempt_rs,
2477               arp_audit_flag,
2478               arp_ship_to_add,
2479               arp_ship_from_add,
2480               arp_poa_add_code,
2481               arp_customer_code,
2482               arp_customer_class,
2483               arp_company_code,
2484               arp_division_code,
2485               arp_state_exempt_percent,
2486               arp_county_exempt_pct,
2487               arp_city_exempt_pct  ,
2488               arp_district_exempt_pct,
2489               arp_transaction_date,
2490               arp_adjusted_doc_date,
2491               arp_trx_date,
2492               arp_exemption_control_flag
2493          FROM  ZX_PTNR_NEG_LINE_GT
2494          WHERE trx_line_id= pg_trx_line_id_tab(I);
2495 
2496 
2497       IF substrb(nvl(arp_ship_from_add,'XXXXXXXXX'), 2,9)='XXXXXXXXX' THEN
2498          inv_in_rec.fJurisSFGeoCd := null;
2499          inv_in_rec.fJurisSFInCi  := null;
2500       ELSE
2501          inv_in_rec.fJurisSFGeoCd := to_number(substrb(arp_ship_from_add, 2, 9));
2502          inv_in_rec.fJurisSFInCi  := case substrb(arp_ship_from_add, 1, 1)
2503                                                   when 'X'  then NULL
2504 						  when '1'  then TRUE
2505 						  when '0'  then FALSE
2506 						  else  NULL
2507 				    end ;
2508       END IF;
2509 
2510       IF substrb(nvl(arp_ship_to_add,'XXXXXXXXX'), 2,9)='XXXXXXXXX' THEN
2511          inv_in_rec.fJurisSTGeoCd := null;
2512          inv_in_rec.fJurisSTInCi  := null;
2513       ELSE
2514          inv_in_rec.fJurisSTGeoCd := to_number(substrb(arp_ship_to_add, 2, 9));
2515          inv_in_rec.fJurisSTInCi  := case substrb(arp_ship_to_add, 1, 1)
2516                                                   when 'X'  then NULL
2517 						  when '1'  then TRUE
2518 						  when '0'  then FALSE
2519 						  else  NULL
2520 				    end ;
2521       END IF;
2522 
2523       IF substrb(nvl(arp_poa_add_code,'XXXXXXXXX'), 2,9)='XXXXXXXXX' THEN
2524          inv_in_rec.fJurisOAGeoCd := null;
2525          inv_in_rec.fJurisOAInCi  := null;
2526       ELSE
2527          inv_in_rec.fJurisOAGeoCd := to_number(substrb(arp_poa_add_code, 2, 9));
2528          inv_in_rec.fJurisOAInCi  := case substrb(arp_poa_add_code, 1, 1)
2529                                                   when 'X'  then NULL
2530 						  when '1'  then TRUE
2531 						  when '0'  then FALSE
2532 						  else  NULL
2533          			    end ;
2534       END IF;
2535    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2536 	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisSFGeoCd :'||inv_in_rec.fJurisSFGeoCd );
2537 	-- FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisSFInCi :'||inv_in_rec.fJurisSFInCi );
2538 	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisSTGeoCd :'||inv_in_rec.fJurisSTGeoCd );
2539 	 --FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisSTInCi  :'||inv_in_rec.fJurisSTInCi  );
2540 	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisOAGeoCd :'||inv_in_rec.fJurisOAGeoCd );
2541 	 --FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fJurisOAInCi  :'||inv_in_rec.fJurisOAInCi  );
2542    END IF;
2543 
2544 	inv_in_rec.fTDMCustCd		:=	arp_customer_code;
2545 	inv_in_rec.fTDMCustClassCd	:=	arp_customer_class;
2546 	inv_in_rec.fTDMCompCd		:=	arp_company_code;     -- Bug 5007293
2547 	inv_in_rec.fInvIdNum		:=	to_char(arp_trx_number);
2548 	inv_in_rec.fTDMDivCd		:=	arp_division_code;
2549   --Bug Fix: 4950901
2550     /*-----------------------------------------------------------
2551      | The transaction type identifies the type of transaction	|
2552      | being processed. 					|
2553      -----------------------------------------------------------*/
2554         IF arp_trx_line_type = 'PURCHASE' THEN
2555            line_in_tab(1).fTransType := ZX_TAX_VERTEX_QSU.cQSUTransTypePurchase;
2556         ELSIF arp_trx_line_type = 'RENTAL' THEN
2557               line_in_tab(1).fTransType := ZX_TAX_VERTEX_QSU.cQSUTransTypeRentLease;
2558         ELSIF arp_trx_line_type = 'LEASE' THEN
2559               line_in_tab(1).fTransType := ZX_TAX_VERTEX_QSU.cQSUTransTypeRentLease;
2560         ELSIF arp_trx_line_type = 'SALE' THEN
2561               line_in_tab(1).fTransType := ZX_TAX_VERTEX_QSU.cQSUTransTypeSale;
2562         ELSIF arp_trx_line_type = 'SERVICE' THEN
2563               line_in_tab(1).fTransType := ZX_TAX_VERTEX_QSU.cQSUTransTypeService;
2564         END IF;
2565    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2566 	 FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'line_in_tab(1).fTransType :'||to_char(line_in_tab(1).fTransType));
2567    END IF;
2568 --End of Bug Fix : 4950901
2569 	line_in_tab(1).fTransDate  	:=	arp_transaction_date;
2570 	line_in_tab(1).fTransUserArea	:=	to_char(arp_trx_id);
2571 	line_in_tab(1).fTDMProdCd	:=	arp_product_code;
2572 
2573         IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2574            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fTDMCustCd      : '||inv_in_rec.fTDMCustCd );
2575            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fTDMCustClassCd : '||inv_in_rec.fTDMCustClassCd );
2576            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fTDMCompCd      : '||inv_in_rec.fTDMCompCd );
2577            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fInvIdNum       : '||inv_in_rec.fInvIdNum );
2578            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'inv_in_rec.fTDMDivCd       : '||inv_in_rec.fTDMDivCd );
2579            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'line_in_tab(1).fTransType  : '||line_in_tab(1).fTransType );
2580            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'line_in_tab(1).fTransDate  : '||line_in_tab(1).fTransDate );
2581            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'line_in_tab(1).fTDMProdCd  : '||line_in_tab(1).fTDMProdCd );
2582         END IF;
2583    END IF;
2584 
2585    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2586          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2587          ' pg_ship_to_loc_id_tab before hz_locations : '||pg_ship_to_loc_id_tab(i));
2588    END IF;
2589    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2590          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2591          ' pg_bill_to_loc_id_tab before hz_locations : '||pg_bill_to_loc_id_tab(i));
2592    END IF;
2593 
2594 
2595    if(inv_in_rec.fJurisSTGeoCd is null) then
2596         BEGIN
2597           SELECT loc.STATE, loc.COUNTY, loc.CITY, substrb(loc.POSTAL_CODE,1,5)
2598           INTO inv_in_rec.fJurisSTStAbbrv
2599                ,inv_in_rec.fJurisSTCoName
2600                ,inv_in_rec.fJurisSTCiName
2601                ,inv_in_rec.fJurisSTZipCd
2602           FROM hz_locations loc
2603           WHERE loc.location_id =  NVL(pg_ship_to_loc_id_tab(I),pg_bill_to_loc_id_tab(I));
2604         EXCEPTION
2605           WHEN OTHERS THEN
2606             inv_in_rec.fJurisSTStAbbrv := NULL;
2607            inv_in_rec.fJurisSTCoName := NULL;
2608            inv_in_rec.fJurisSTCiName := NULL;
2609            inv_in_rec.fJurisSTZipCd := NULL;
2610         END;
2611 	l_location_info_rec.state	:= inv_in_rec.fJurisSTStAbbrv;
2612 	l_location_info_rec.county	:= inv_in_rec.fJurisSTCoName;
2613 	l_location_info_rec.city	:= inv_in_rec.fJurisSTCiName;
2614 	l_location_info_rec.postal_code	:= inv_in_rec.fJurisSTZipCd;
2615 	/*Calling GET_GEOCODE function for fetching geocode value*/
2616 	inv_in_rec.fJurisSTGeoCd :=get_geocode(l_location_info_rec);
2617     end if;
2618 
2619     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2620        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'l_document_type : '||l_document_type );
2621        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'l_line_level_action :'||l_line_level_action );
2622     END IF;
2623 
2624     IF (l_document_type in ('INVOICE', 'DEBIT_MEMO', 'ON_ACCT_CREDIT_MEMO')) THEN
2625        IF (l_line_level_action IN ('CREATE','DELETE','CANCEL')) THEN
2626           inv_in_rec.fInvDate                := pg_trx_date_tab(i);
2627           line_in_tab(1).fTransCd            := ZX_TAX_VERTEX_QSU.cQSUTransCdNormal;
2628 
2629           IF l_line_level_action =  'CREATE' THEN
2630              line_in_tab(1).fTransExtendedAmt   := pg_line_amount_tab(I);
2631 	     line_in_tab(1).fPriStExmtAmt       := pg_line_numeric1_tab(i) * pg_line_amount_tab(I)/100;
2632 	     line_in_tab(1).fPriCoExmtAmt       := pg_line_numeric2_tab(i) * pg_line_amount_tab(I)/100;
2633 	     line_in_tab(1).fPriCiExmtAmt       := pg_line_numeric3_tab(i) * pg_line_amount_tab(I)/100;
2634              line_in_tab(1).fPriDiExmtAmt       := pg_line_numeric4_tab(i) * pg_line_amount_tab(I)/100;
2635           ELSE
2636              line_in_tab(1).fTransExtendedAmt   := -1 * pg_line_amount_tab(I);
2637 	     line_in_tab(1).fPriStExmtAmt       := -1 * pg_line_numeric1_tab(i) * pg_line_amount_tab(I)/100;
2638 	     line_in_tab(1).fPriCoExmtAmt       := -1 * pg_line_numeric2_tab(i) * pg_line_amount_tab(I)/100;
2639 	     line_in_tab(1).fPriCiExmtAmt       := -1 * pg_line_numeric3_tab(i) * pg_line_amount_tab(I)/100;
2640              line_in_tab(1).fPriDiExmtAmt       := -1 * pg_line_numeric4_tab(i) * pg_line_amount_tab(I)/100;
2641           END IF;
2642 
2643           line_in_tab(1).fTransQuantity      :=pg_trx_line_qty_tab(I);
2644 
2645           IF (pg_exempt_cont_flag_tab(I)='R') then
2646              line_in_tab(1).fProdTxblty      := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2647              inv_in_rec.fCustTxblty          := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2648           END IF;
2649 
2650           line_in_tab(1).fPriCustExmtCrtfNum := substrb(pg_Line_char3_tab(I), 1, 15);
2651           line_in_tab(1).fPriStExmtRsnCd     := SUBSTRB(pg_Line_char4_tab(I),1,1);
2652           line_in_tab(1).fPriCoExmtRsnCd     := SUBSTRB(pg_Line_char5_tab(I),1,1);
2653           line_in_tab(1).fPriCiExmtRsnCd     := SUBSTRB(pg_Line_char6_tab(I),1,1);
2654           line_in_tab(1).fPriDiExmtRsnCd     := SUBSTRB(pg_Line_char7_tab(I),1,1);
2655 
2656        ELSE
2657           inv_in_rec.fInvDate                := arp_trx_date;
2658           line_in_tab(1).fTransCd            := ZX_TAX_VERTEX_QSU.cQSUTransCdNormal;
2659           line_in_tab(1).fTransExtendedAmt   :=(-1*arp_line_amount);
2660           line_in_tab(1).fTransQuantity      :=arp_quantity;
2661 
2662           IF (arp_exemption_control_flag ='R') THEN
2663              line_in_tab(1).fProdTxblty      := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2664              inv_in_rec.fCustTxblty          := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2665           END IF;
2666 
2667           line_in_tab(1).fPriCustExmtCrtfNum := substrb(arp_cert_num, 1, 15);
2668           line_in_tab(1).fPriStExmtRsnCd     := SUBSTRB(arp_state_exempt_reason,1,1);
2669           line_in_tab(1).fPriStExmtAmt       := (-1 * arp_state_exempt_percent * arp_line_amount/100);
2670 
2671           line_in_tab(1).fPriCoExmtRsnCd     := SUBSTRB(arp_county_exempt_reason,1,1);
2672           line_in_tab(1).fPriCoExmtAmt       := (-1 * arp_county_exempt_pct * arp_line_amount/100);
2673 
2674           line_in_tab(1).fPriCiExmtRsnCd     := SUBSTRB(arp_city_exempt_reason,1,1);
2675           line_in_tab(1).fPriCiExmtAmt       := (-1 * arp_city_exempt_pct * arp_line_amount/100);
2676 
2677           line_in_tab(1).fPriDiExmtRsnCd     := SUBSTRB(arp_district_exempt_rs,1,1);
2678           line_in_tab(1).fPriDiExmtAmt       := (-1 * arp_district_exempt_pct * arp_line_amount/100);
2679        END IF;
2680 
2681     ELSIF (l_document_type in ('APPLIED_CREDIT_MEMO')) then
2682          --bug#6831713
2683 	 BEGIN
2684            SELECT nvl(zd.partner_migrated_flag, 'N')     -- Bug 5007293
2685            INTO   pg_ugraded_inv_flag_tab(I)
2686            FROM ZX_LINES_DET_FACTORS zd
2687            WHERE zd.event_class_mapping_id  = pg_adj_doc_doc_type_id_tab(i)
2688            AND zd.trx_id                   = pg_adj_doc_trx_id_tab(i)
2689            AND zd.trx_line_id            = pg_adj_doc_line_id_tab(i)
2690            AND zd.trx_level_type      = pg_adj_doc_trx_lev_type_tab(i)
2691 	   AND EXISTS (SELECT 'Y'
2692 	                  FROM ZX_LINES zl
2693 		          WHERE zl.application_id = zd.application_id
2694 		          AND zl.entity_code = zd.entity_code
2695 		          AND zl.event_class_code = zd.event_class_code
2696 		          AND zd.trx_id = pg_adj_doc_trx_id_tab(i)
2697                           AND zd.trx_line_id = pg_adj_doc_line_id_tab(i)
2698                           AND zd.trx_level_type = pg_adj_doc_trx_lev_type_tab(i)
2699 			  AND tax = 'LOCATION'
2700 			  AND rownum = 1);
2701          EXCEPTION
2702            WHEN OTHERS THEN
2703              pg_ugraded_inv_flag_tab(I) := 'N';
2704          END;
2705 
2706        IF (l_line_level_action IN ('CREATE','DELETE','CANCEL')) THEN
2707           inv_in_rec.fInvDate                := pg_adj_doc_date_tab(I);
2708           line_in_tab(1).fTransCd            := ZX_TAX_VERTEX_QSU.cQSUTransCdNormal;
2709           line_in_tab(1).fTransExtendedAmt   :=pg_line_amount_tab(I);
2710           line_in_tab(1).fTransQuantity      :=pg_trx_line_qty_tab(I);
2711 
2712           IF (pg_exempt_cont_flag_tab(I)='R') THEN
2713              line_in_tab(1).fProdTxblty      := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2714              inv_in_rec.fCustTxblty          := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2715           END IF;
2716 
2717           line_in_tab(1).fPriCustExmtCrtfNum := substrb(pg_Line_char3_tab(I), 1, 15);
2718           line_in_tab(1).fPriStExmtRsnCd     := SUBSTRB(pg_Line_char4_tab(I),1,1);
2719           line_in_tab(1).fPriStExmtAmt       := pg_line_numeric1_tab(i) *
2720                                                 pg_line_amount_tab(I)/100;
2721 
2722           line_in_tab(1).fPriCoExmtRsnCd     := SUBSTRB(pg_Line_char5_tab(I),1,1);
2723           line_in_tab(1).fPriCoExmtAmt       := pg_line_numeric2_tab(i) *
2724                                                 pg_line_amount_tab(I)/100;
2725           line_in_tab(1).fPriCiExmtRsnCd     := SUBSTRB(pg_Line_char6_tab(I),1,1);
2726           line_in_tab(1).fPriCiExmtAmt       := pg_line_numeric3_tab(i) *
2727                                                 pg_line_amount_tab(I)/100;
2728           line_in_tab(1).fPriDiExmtRsnCd     := SUBSTRB(pg_Line_char7_tab(I),1,1);
2729           line_in_tab(1).fPriDiExmtAmt       := pg_line_numeric4_tab(i) *
2730                                                 pg_line_amount_tab(I)/100;
2731 
2732        ELSE
2733           inv_in_rec.fInvDate		:= arp_adjusted_doc_date;
2734           line_in_tab(1).fTransCd	:= ZX_TAX_VERTEX_QSU.cQSUTransCdNormal;
2735           line_in_tab(1).fTransExtendedAmt :=(-1*arp_line_amount);
2736           line_in_tab(1).fTransQuantity    :=arp_quantity;
2737 
2738           IF (arp_exemption_control_flag='R') THEN /*Need to check*/
2739              line_in_tab(1).fProdTxblty   := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2740              inv_in_rec.fCustTxblty       := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2741           END IF;
2742           line_in_tab(1).fPriCustExmtCrtfNum := substrb(arp_cert_num, 1, 15);
2743           line_in_tab(1).fPriStExmtRsnCd     := SUBSTRB(arp_state_exempt_reason,1,1);
2744           line_in_tab(1).fPriStExmtAmt       := -1 * arp_state_exempt_percent *
2745                                                 arp_line_amount/100;
2746 
2747           line_in_tab(1).fPriCoExmtRsnCd     := SUBSTRB(arp_county_exempt_reason,1,1);
2748           line_in_tab(1).fPriCoExmtAmt       := -1 * arp_county_exempt_pct *
2749                                                 arp_line_amount/100;
2750 
2751           line_in_tab(1).fPriCiExmtRsnCd     := SUBSTRB(arp_city_exempt_reason,1,1);
2752           line_in_tab(1).fPriCiExmtAmt       := -1 * arp_city_exempt_pct *
2753                                                 arp_line_amount/100;
2754           line_in_tab(1).fPriDiExmtRsnCd     := SUBSTRB(arp_district_exempt_rs,1,1);
2755           line_in_tab(1).fPriDiExmtAmt       := -1 * arp_district_exempt_pct *
2756                                                 arp_line_amount/100;
2757        END IF;
2758 
2759     ELSIF (l_document_type IN ('LINE_ONLY_CREDIT_MEMO')) THEN
2760         IF (l_line_level_action IN ('CREATE','DELETE','CANCEL')) THEN
2761             inv_in_rec.fInvDate		:= pg_adj_doc_date_tab(I);
2762 	    line_in_tab(1).fTransCd	:= ZX_TAX_VERTEX_QSU.cQSUTransCdDistributeTax;
2763             line_in_tab(1).fTransExtendedAmt :=pg_line_amount_tab(I);
2764 	    line_in_tab(1).fTransQuantity    :=pg_trx_line_qty_tab(I);
2765 	    line_in_tab(1).fTransTotalTaxAmt :=0;
2766 
2767 	      if(pg_exempt_cont_flag_tab(I)='R') then
2768 	         line_in_tab(1).fProdTxblty   := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2769                  inv_in_rec.fCustTxblty       := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2770 	      end if;
2771 	else
2772 	    inv_in_rec.fInvDate		:= arp_adjusted_doc_date;
2773 	    line_in_tab(1).fTransCd	:= ZX_TAX_VERTEX_QSU.cQSUTransCdDistributeTax;
2774             line_in_tab(1).fTransExtendedAmt :=(-1*arp_line_amount);
2775 	    line_in_tab(1).fTransQuantity    :=arp_quantity;
2776 	    line_in_tab(1).fTransTotalTaxAmt :=0;
2777 
2778 	      if(arp_exemption_control_flag='R') then /*Need to check*/
2779 	         line_in_tab(1).fProdTxblty   := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2780                  inv_in_rec.fCustTxblty       := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2781 	      end if;
2782 	end if;
2783 
2784     ELSIF l_document_type IN ('TAX_ONLY_CREDIT_MEMO') THEN
2785           IF (l_line_level_action IN ('CREATE','DELETE','CANCEL')) THEN
2786              inv_in_rec.fInvDate              := pg_adj_doc_date_tab(I);
2787              line_in_tab(1).fTransCd          := ZX_TAX_VERTEX_QSU.cQSUTransCdTaxOnlyCredit;
2788              line_in_tab(1).fTransExtendedAmt := NULL;
2789              line_in_tab(1).fTransQuantity    := NULL;
2790 
2791              IF (pg_exempt_cont_flag_tab(I)='R') THEN
2792                 line_in_tab(1).fProdTxblty    := NULL ;
2793                 inv_in_rec.fCustTxblty        := NULL;
2794              END IF;
2795              line_in_tab(1).fPriStTaxAmt      := g_StTaxAmt;
2796              line_in_tab(1).fPriCoTaxAmt      := g_CoTaxAmt;
2797              line_in_tab(1).fPriCiTaxAmt      := g_CiTaxAmt;
2798           ELSE
2799              inv_in_rec.fInvDate              := arp_adjusted_doc_date;
2800              line_in_tab(1).fTransCd          := ZX_TAX_VERTEX_QSU.cQSUTransCdTaxOnlyCredit;
2801             line_in_tab(1).fTransExtendedAmt  := NULL;
2802             line_in_tab(1).fTransQuantity     := NULL;
2803 
2804             IF (arp_exemption_control_flag='R') THEN /*Need to check*/
2805                line_in_tab(1).fProdTxblty     := NULL ;
2806                inv_in_rec.fCustTxblty         := NULL;
2807             END IF;
2808           END IF;
2809     ELSIF l_document_type in ('ADJUSTMENT') THEN
2810           inv_in_rec.fInvDate                 := pg_trx_date_tab(i);
2811           line_in_tab(1).fTransCd             := ZX_TAX_VERTEX_QSU.cQSUTransCdDistributeTax;
2812           line_in_tab(1).fTransExtendedAmt    := NULL;
2813           line_in_tab(1).fTransQuantity       := NULL;
2814     ELSIF l_document_type in ('TAX_LINE_SYNC'
2815                              ,'TAX_ONLY_INVOICE'
2816                              ,'TAX_ONLY_ADJUSTMENT') THEN
2817           inv_in_rec.fInvDate                 := arp_trx_date;
2818           line_in_tab(1).fTransCd             := ZX_TAX_VERTEX_QSU.cQSUTransCdDistributeTax;
2819           line_in_tab(1).fTransExtendedAmt    := NULL;
2820           line_in_tab(1).fTransQuantity       := NULL;
2821           --bug#6831713
2822 	  line_in_tab(1).fTransTotalTaxAmt    := g_TotalTaxAmt;
2823 
2824           line_in_tab(1).fPriStTaxAmt         := g_StTaxAmt;
2825           line_in_tab(1).fPriCoTaxAmt         := g_CoTaxAmt;
2826           line_in_tab(1).fPriCiTaxAmt         := g_CiTaxAmt;
2827 	  IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2828               FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2829               ' line_in_tab(1).fPriStTaxAmt  '||line_in_tab(1).fPriStTaxAmt);
2830               FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2831               ' line_in_tab(1).fPriCoTaxAmt  '||line_in_tab(1).fPriCoTaxAmt);
2832               FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
2833               ' line_in_tab(1).fPriCiTaxAmt  '||line_in_tab(1).fPriCiTaxAmt);
2834           END IF;
2835 
2836   ELSIF (l_document_type in ('SALES_QUOTE')) then -- Bug5927656
2837             inv_in_rec.fInvDate                := pg_trx_date_tab(i);
2838             line_in_tab(1).fTransCd            := ZX_TAX_VERTEX_QSU.cQSUTransCdNormal;
2839 
2840             IF l_line_level_action =  'CREATE' THEN
2841                line_in_tab(1).fTransExtendedAmt   := pg_line_amount_tab(I);
2842              END IF;
2843 
2844             line_in_tab(1).fTransQuantity      :=pg_trx_line_qty_tab(I);
2845 
2846             IF (pg_exempt_cont_flag_tab(I)='R') then
2847                line_in_tab(1).fProdTxblty      := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2848                inv_in_rec.fCustTxblty          := ZX_TAX_VERTEX_QSU.cQSUTxbltyTxbl ;
2849              END IF;
2850 
2851             line_in_tab(1).fPriCustExmtCrtfNum := substrb(pg_Line_char3_tab(I), 1, 15);
2852             line_in_tab(1).fPriStExmtRsnCd     := SUBSTRB(pg_Line_char4_tab(I),1,1);
2853             line_in_tab(1).fPriStExmtAmt       := pg_line_numeric1_tab(i) *
2854                                                   pg_line_amount_tab(I)/100;
2855 
2856             line_in_tab(1).fPriCoExmtRsnCd     := SUBSTRB(pg_Line_char5_tab(I),1,1);
2857             line_in_tab(1).fPriCoExmtAmt       := pg_line_numeric2_tab(i) *
2858                                                   pg_line_amount_tab(I)/100;
2859             line_in_tab(1).fPriCiExmtRsnCd     := SUBSTRB(pg_Line_char6_tab(I),1,1);
2860             line_in_tab(1).fPriCiExmtAmt       := pg_line_numeric3_tab(i) *
2861                                                   pg_line_amount_tab(I)/100;
2862             line_in_tab(1).fPriDiExmtRsnCd     := SUBSTRB(pg_Line_char7_tab(I),1,1);
2863             line_in_tab(1).fPriDiExmtAmt       := pg_line_numeric4_tab(i) *
2864                                                    pg_line_amount_tab(I)/100;
2865 
2866     END IF;
2867 
2868    display_output('I');
2869 
2870   IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2871      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
2872   END IF;
2873 
2874 END SET_PARAMETERS;
2875 
2876 
2877 FUNCTION GET_GEOCODE(p_location_info_rec location_info_rec_type) return VARCHAR2 IS
2878 
2879 k		INTEGER;
2880 ptr		INTEGER;
2881 found 		BOOLEAN := FALSE;
2882 
2883 l_state		VARCHAR2(60);
2884 l_county	VARCHAR2(60);
2885 l_city		VARCHAR2(60);
2886 l_postal_code	VARCHAR2(60);
2887 l_geocode	BINARY_INTEGER;
2888 
2889 retval		BOOLEAN := FALSE;
2890 
2891 l_api_name           CONSTANT VARCHAR2(30) := 'GET_GEOCODE';
2892 
2893 BEGIN
2894   IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
2895      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
2896   END IF;
2897 
2898   IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2899        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'STATE    :'||p_location_info_rec.state );
2900        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'COUNTY   :'||p_location_info_rec.county );
2901        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'CITY     :'||p_location_info_rec.city );
2902        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'POSTAL CODE :'||p_location_info_rec.postal_code);
2903   END IF;
2904 
2905 l_state		:=p_location_info_rec.state;
2906 l_county	:=p_location_info_rec.county;
2907 l_city		:=p_location_info_rec.city;
2908 l_postal_code	:=p_location_info_rec.postal_code;
2909 
2910 
2911     /*---------------------------------------------------
2912      | Look for the conbination from cache		|
2913      ---------------------------------------------------*/
2914     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2915        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Look for the combination from cache' );
2916     END IF;
2917     FOR k in 1 .. pg_max_index
2918     LOOP
2919         IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2920           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'-- k = '|| to_char(k) );
2921         END IF;
2922     	IF (l_state = pg_state(k)) and (l_county = pg_county(k)) and
2923 	    	(l_city = pg_city(k)) and
2924 	    	(l_postal_code = pg_postal_code(k)) THEN
2925 	    found := TRUE;
2926 	    ptr := k;
2927   	    EXIT;
2928         END IF;
2929     END LOOP;
2930 
2931     IF NOT found THEN
2932 	IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2933            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Could not find the combination  in the cache.' );
2934         END IF;
2935 
2936 	BEGIN
2937 	    /*-------------------------------------------------------
2938 	     | Call API to set search criteria for finding GeoCode. |
2939 	     -------------------------------------------------------*/
2940    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2941        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Call API to set search criteria for '||
2942 				'finding GeoCode.');
2943     END IF;
2944 
2945     	    ZX_TAX_VERTEX_GEO.GeoSetNameCriteria(
2946 			search_rec,
2947                         ZX_TAX_VERTEX_GEO.cGeoCodeLevelCity,
2948                         substrb(l_state, 1, 2),
2949                         FALSE,
2950                         '',
2951                         FALSE,
2952                         substrb(l_county, 1, 20),
2953                         FALSE,
2954                         FALSE,
2955                         substrb(l_city, 1, 25),
2956                         FALSE,
2957                         substrb(l_postal_code, 1, 5),
2958                         NULL);
2959     	EXCEPTION
2960             WHEN OTHERS THEN
2961 	      IF (g_level_exception >= g_current_runtime_level ) THEN
2962                  FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2963 		 --x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2964 		g_string :='Error in VERTEX API:'||to_char(SQLCODE)||SQLERRM;
2965 		error_exception_handle(g_string);
2966 		--return;
2967 
2968 	      END IF;
2969 
2970 
2971     	END;
2972 
2973 	BEGIN
2974             /*---------------------------
2975              | Call API to get GeoCode.	|
2976 	     ---------------------------*/
2977 	    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2978                FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Call API to get GeoCode.' );
2979             END IF;
2980 	    retval := ZX_TAX_VERTEX_GEO.GeoRetrieveFirst(search_rec, result_rec);
2981 
2982         EXCEPTION
2983             WHEN OTHERS THEN
2984                 IF (g_level_exception >= g_current_runtime_level ) THEN
2985                    FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
2986 	        END IF;
2987                 IF (SQLCODE > -20500) OR (SQLCODE < -20599) THEN
2988                     --x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
2989 		    g_string :='Error in VERTEX API:'||to_char(SQLCODE)||SQLERRM;
2990 		    error_exception_handle(g_string);
2991 		    --return;
2992                 END IF;
2993 	END;
2994 
2995     	IF retval = FALSE THEN
2996 	    /*******No jurisdiction code is found.*******/
2997 	  IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
2998             FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'No Jurisdiction code is found.' );
2999           END IF;
3000 	    return '';
3001 	ElSE
3002 	  IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3003             FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Found the combination from Vendor Table.' );
3004           END IF;
3005 	END IF;
3006 
3007 	BEGIN
3008 	    /*-----------------------------------------------------------
3009 	     | Call API to pack GeoCode(Convert state, county, and city |
3010 	     | GeoCode into one 9-digit GeoCode.			|
3011   	     -----------------------------------------------------------*/
3012 	IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3013           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Call API to pack GeoCode to convert state, '||
3014 			'county, and city GeoCode into one 9-digit GeoCode.' );
3015         END IF;
3016 
3017     	    l_geocode :=ZX_TAX_VERTEX_GEO.GeoPackGeoCode( result_rec.fResGeoState,
3018                					          result_rec.fResGeoCounty,
3019                                      		          result_rec.fResGeoCity);
3020 
3021     	EXCEPTION
3022             WHEN OTHERS THEN
3023                 IF (g_level_exception >= g_current_runtime_level ) THEN
3024                    FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3025 	        END IF;
3026             	IF (SQLCODE > -20500) OR (SQLCODE < -20599) THEN
3027                 g_string :='Error in VERTEX API:'||to_char(SQLCODE)||SQLERRM;
3028 		error_exception_handle(g_string);
3029 		return' ';
3030             	END IF;
3031 		--RAISE;
3032     	END;
3033 
3034     	pg_max_index := pg_max_index + 1;
3035   	ptr := pg_max_index;
3036     	pg_state( ptr ) := l_state;
3037     	pg_county( ptr ) := l_county;
3038     	pg_city(ptr ) := l_city;
3039     	pg_postal_code( ptr ) := l_postal_code;
3040     	pg_geocode( ptr ) := to_char(l_geocode);
3041 
3042 	BEGIN
3043 	    /*----------------------------------------------------------
3044 	     | Call API to find out whether there is another record or |
3045 	     | not.  If there is, then raise error later.	       |
3046 	     ----------------------------------------------------------*/
3047        IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3048          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Call API to find out whether there is another '||
3049 		                                                     'record or not.  If there is, then raise error later.' );
3050        END IF;
3051 
3052     	    retval := ZX_TAX_VERTEX_GEO.GeoRetrieveNext(search_rec, result_rec);
3053 
3054         EXCEPTION
3055             WHEN OTHERS THEN
3056                 IF (g_level_exception >= g_current_runtime_level ) THEN
3057                    FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3058 	        END IF;
3059                 IF (SQLCODE > -20500) OR (SQLCODE < -20599) THEN
3060                  --x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3061 		g_string :='Error in VERTEX API:'||to_char(SQLCODE)||SQLERRM;
3062 		error_exception_handle(g_string);
3063 
3064                 END IF;
3065 		--RAISE;
3066 		return '';
3067         END;
3068 
3069     	IF retval = TRUE THEN
3070               -- Bug2609220
3071 	    /*******too_many_rows*******/
3072 	   IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3073              FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Too Many Rows for the combination of ST,CNTY,CITY' );
3074            END IF;
3075 	    return '';
3076     	END IF;
3077 
3078     ElSE
3079 	IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3080           FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Find the combination from the cache.' );
3081         END IF;
3082     END IF; -- NOT found
3083 
3084     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3085      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
3086     END IF;
3087 
3088     RETURN(pg_geocode( ptr ));
3089 
3090 END GET_GEOCODE;
3091 
3092 
3093 
3094 PROCEDURE CALCULATE_TAX(x_return_status OUT NOCOPY VARCHAR2) IS
3095  l_api_name           CONSTANT VARCHAR2(30) := 'CALCULATE_TAX';
3096 BEGIN
3097     x_return_status := FND_API.G_RET_STS_SUCCESS;
3098 
3099     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3100      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
3101     END IF;
3102 
3103     /*-----------------------------------------------------------
3104      | Calculate tax for a invoice line.                        |
3105      -----------------------------------------------------------*/
3106     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3107        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Before calculate '||
3108 			                                          to_char(sysdate, 'DD/MON/YYYY HH:MI:SS'));
3109     END IF;
3110 
3111     BEGIN
3112     	ZX_TAX_VERTEX_QSU.QSUCalculateTaxes(context_rec,
3113                       	  		     inv_in_rec,
3114                       	  		     line_in_tab,
3115                       	  		     inv_out_rec,
3116                       	  		     line_out_tab,
3117                       	  		     FALSE);
3118 
3119     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3120        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'After calculate '||
3121 			                                           to_char(sysdate, 'DD/MON/YYYY HH:MI:SS'));
3122     END IF;
3123         display_output('O');
3124 
3125     EXCEPTION
3126         WHEN OTHERS THEN
3127 	  IF (g_level_exception >= g_current_runtime_level ) THEN
3128              FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3129           END IF;
3130                 x_return_status := FND_API.G_RET_STS_ERROR;
3131 		g_string :='Error in VERTEX tax calulation API:'||to_char(SQLCODE)||SQLERRM;
3132 		error_exception_handle(g_string);
3133 	   return;
3134     END;
3135 
3136     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3137      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
3138     END IF;
3139 
3140 End CALCULATE_TAX;
3141 
3142 Procedure WRITE_TO_VERTEX_REPOSITORY(x_return_status OUT NOCOPY VARCHAR2) is
3143  l_api_name           CONSTANT VARCHAR2(30) := 'WRITE_TO_VERTEX_REPOSITORY';
3144 Begin
3145 
3146     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3147      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
3148     END IF;
3149 
3150     /*-----------------------------------------------------------
3151      | Write the transaction to register table(regprereturnstbl)|
3152      -----------------------------------------------------------*/
3153 
3154 	BEGIN
3155     	   ZX_TAX_VERTEX_QSU.QSUWritePreReturnsData(context_rec,
3156 			       	   		      inv_out_rec,
3157 			       	   		      line_out_tab);
3158         EXCEPTION
3159        	    WHEN OTHERS THEN
3160 	      IF (g_level_exception >= g_current_runtime_level ) THEN
3161                  FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3162 	      END IF;
3163 
3164                    g_string :='Error in VERTEX API:'||to_char(SQLCODE)||SQLERRM;
3165 		   error_exception_handle(g_string);
3166                    x_return_status := FND_API.G_RET_STS_ERROR;
3167 	           return;
3168     	END;
3169 
3170     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3171      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
3172     END IF;
3173 
3174 END WRITE_TO_VERTEX_REPOSITORY;
3175 
3176 
3177 PROCEDURE TAX_RESULTS_PROCESSING(
3178 p_tax_lines_tbl  IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_lines_tbl_type,
3179 p_currency_tab   IN OUT NOCOPY ZX_TAX_PARTNER_PKG.tax_currencies_tbl_type,
3180 x_return_status     OUT NOCOPY VARCHAR2) IS
3181 
3182 J number;
3183 x_tax_jurisdiction_code ZX_JURISDICTIONS_B.tax_jurisdiction_code%type;
3184 p_location_id           NUMBER;
3185 l_regime_code           ZX_REGIMES_B.tax_regime_code%type;
3186 state_tax_rate          NUMBER; -- state tax rate in %
3187 state_tax_amount        NUMBER; -- state tax amount
3188 county_tax_rate         NUMBER; -- county tax rate in %
3189 county_tax_amount       NUMBER; -- county tax amount
3190 city_tax_rate           NUMBER; -- city tax rate in %
3191 city_tax_amount         NUMBER; -- city tax amount
3192 dist_tax_rate           NUMBER; -- district tax rate in %
3193 dist_tax_amount         NUMBER; -- district tax amounts
3194 sec_county_tax_rate     NUMBER; -- secondary county tax rate
3195 sec_county_tax_amount   NUMBER; -- secondary county tax amount
3196 sec_city_tax_rate       NUMBER; -- secondary city tax rate
3197 sec_city_tax_amount     NUMBER; -- secondary city tax amount
3198 add_county_tax_rate     NUMBER; -- additional county tax rate in %
3199 add_county_tax_amount   NUMBER; -- additional county tax amount
3200 add_city_tax_rate       NUMBER; -- additional city tax rate in %
3201 add_city_tax_amount     NUMBER; -- additional city tax amount
3202 add_dist_tax_rate       NUMBER; -- additional district tax rate in %
3203 add_dist_tax_amount	NUMBER; -- additional district tax amount
3204 l_situs                 VARCHAR2(20);
3205 ind			NUMBER;
3206 
3207 l_api_name           CONSTANT VARCHAR2(30) := 'TAX_RESULTS_PROCESSING';
3208 l_return_status         VARCHAR2(30);
3209 
3210 Begin
3211   x_return_status := FND_API.G_RET_STS_SUCCESS;
3212 
3213   IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3214      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
3215   END IF;
3216 
3217     l_regime_code      := zx_tax_partner_pkg.g_tax_regime_code;
3218     p_currency_tab(1).tax_currency_precision      := 2;   -- Bug 5288518
3219   /*-------------------------------------------------------------
3220      | Populate Tax Amounts and Rates				|
3221      -----------------------------------------------------------*/
3222     /* State tax rate */
3223     state_tax_rate := round(line_out_tab(1).fPriStRate * 100, 6);
3224     /* State tax amount */
3225     state_tax_amount := line_out_tab(1).fPriStTaxAmt;
3226     /* County tax rate */
3227     county_tax_rate := round(line_out_tab(1).fPriCoRate * 100, 6);
3228     /* County tax amount */
3229     county_tax_amount := line_out_tab(1).fPriCoTaxAmt;
3230     /* City tax Rate */
3231     city_tax_rate := round(line_out_tab(1).fPriCiRate * 100, 6);
3232     /* City tax amount */
3233     city_tax_amount := line_out_tab(1).fPriCiTaxAmt;
3234     /* District tax rate */
3235     dist_tax_rate := round(line_out_tab(1).fPriDiRate * 100, 6);
3236     /* District tax amount */
3237     dist_tax_amount := line_out_tab(1).fPriDiTaxAmt;
3238 
3239     /*-----------------------------------------------------------
3240      | Populate Secondary Tax Amounts and Rates			|
3241      -----------------------------------------------------------*/
3242     IF line_out_tab(1).fPriDiAppliesTo = ZX_TAX_VERTEX_QSU.cQSUDiApplyCi THEN
3243     	sec_county_tax_rate := 0;
3244     	sec_county_tax_amount := 0;
3245     	sec_city_tax_rate := dist_tax_rate;
3246     	sec_city_tax_amount := dist_tax_amount;
3247     ELSE
3248     	sec_county_tax_rate := dist_tax_rate;
3249     	sec_county_tax_amount := dist_tax_amount;
3250     	sec_city_tax_rate := 0;
3251     	sec_city_tax_amount := 0;
3252     END IF;
3253 
3254 
3255     /*-----------------------------------------------------------
3256      | Populate Additional Tax Amounts and Rates		|
3257      -----------------------------------------------------------*/
3258     /* County tax rate */
3259     add_county_tax_rate := line_out_tab(1).fAddCoRate * 100;
3260     /* County tax amount */
3261     add_county_tax_amount := line_out_tab(1).fAddCoTaxAmt;
3262     /* City tax Rate */
3263     add_city_tax_rate := line_out_tab(1).fAddCiRate * 100;
3264     /* City tax amount */
3265     add_city_tax_amount := line_out_tab(1).fAddCiTaxAmt;
3266     /* District tax rate */
3267     add_dist_tax_rate := line_out_tab(1).fAddDiRate * 100;
3268     /* District tax amount */
3269     add_dist_tax_amount := line_out_tab(1).fAddDiTaxAmt;
3270 
3271     IF line_out_tab(1).fAddDiAppliesTo = ZX_TAX_VERTEX_QSU.cQSUDiApplyCi THEN
3272     	add_city_tax_rate := round(add_city_tax_rate + add_dist_tax_rate, 6);
3273     	add_city_tax_amount := add_city_tax_amount + add_dist_tax_amount;
3274     ELSE
3275         add_county_tax_rate := round(add_county_tax_rate + add_dist_tax_rate, 6);
3276         add_county_tax_amount := add_county_tax_amount + add_dist_tax_amount;
3277     END IF;
3278 
3279 	IF line_out_tab(1).fPriTaxingJuris = 0 then
3280 	     l_situs := 'SHIP_TO';
3281 	ELSIF line_out_tab(1).fPriTaxingJuris = 1 then
3282 	     l_situs := 'SHIP_FROM';
3283 	ELSIF line_out_tab(1).fPriTaxingJuris = 2 then
3284              l_situs :=  'POA';
3285 	ELSE null;
3286 	END IF;
3287 
3288 	IF l_situs =  'SHIP_TO' THEN
3289 /* Bug 5090593: Making use of the location ids passed thru view.
3290            select nvl(ship_to_location_id, bill_to_location_id)
3291            INTO    p_location_id
3292  	   From    zx_lines_det_factors
3293  	   WHERE   event_class_mapping_id =  pg_doc_type_id_tab(I) and
3294                    trx_id       	  =  pg_trx_id_tab(I) and
3295  	           trx_line_id  	  =  pg_trx_line_id_tab(I) and
3296  	           trx_level_type	  =  pg_trx_level_type_tab(I);
3297 */
3298            p_location_id := nvl(pg_ship_to_loc_id_tab(I), pg_bill_to_loc_id_tab(I));
3299 
3300         ELSIF l_situs =  'SHIP_FROM' THEN
3301 /* Bug 5090593: Making use of the location ids passed thru view.
3302            select nvl(ship_from_location_id, bill_from_location_id)
3303            INTO    p_location_id
3304  	   From    zx_lines_det_factors
3305  	   WHERE   event_class_mapping_id =  pg_doc_type_id_tab(I) and
3306                    trx_id       	  =  pg_trx_id_tab(I) and
3307  	           trx_line_id  	  =  pg_trx_line_id_tab(I) and
3308  	           trx_level_type	  =  pg_trx_level_type_tab(I);
3309 */
3310            p_location_id := nvl(pg_ship_fr_loc_id_tab(I), pg_bill_fr_loc_id_tab(I));
3311 	ELSE null;
3312         END IF;
3313 
3314 	IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3315 	   FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Displaying for the transaction line : '||I);
3316 	End If;
3317 
3318    --bug#6831713
3319    IF pg_ugraded_inv_flag_tab(I) = 'Y' THEN
3320         p_tax_lines_tbl.document_type_id(i)           := pg_doc_type_id_tab(I);
3321         p_tax_lines_tbl.transaction_id(i)             := pg_trx_id_tab(I);
3322         p_tax_lines_tbl.transaction_line_id(i)        := pg_trx_line_id_tab(I);
3323         p_tax_lines_tbl.trx_level_type(i)             := pg_trx_level_type_tab(I);
3324         p_tax_lines_tbl.country_code(i)               := l_regime_code ;
3325         p_tax_lines_tbl.situs(i)                      := l_situs;
3326         p_tax_lines_tbl.tax_currency_code(i)          := p_currency_tab(1).tax_currency_code;
3327         p_tax_lines_tbl.Inclusive_tax_line_flag(i)    := 'N';
3328         p_tax_lines_tbl.Line_amt_includes_tax_flag(i) := 'N';
3329         p_tax_lines_tbl.use_tax_flag(i)               := 'N';
3330         p_tax_lines_tbl.User_override_flag(i)         := 'N'; -- Need to see if different for override_tax
3331         p_tax_lines_tbl.last_manual_entry(i)          := NULL;
3332         p_tax_lines_tbl.manually_entered_flag(i)      := 'N'; -- Need to see if different for override_tax
3333         p_tax_lines_tbl.registration_party_type(i)    := NULL;  -- Bug 5288518
3334         p_tax_lines_tbl.party_tax_reg_number(i)       := NULL;  -- Bug 5288518
3335         p_tax_lines_tbl.third_party_tax_reg_number(i) := NULL;
3336         p_tax_lines_tbl.threshold_indicator_flag(i)   := Null;
3337         p_tax_lines_tbl.State(i)                      := inv_out_rec.fJurisSTStAbbrv;
3338         p_tax_lines_tbl.County(i)                     := inv_out_rec.fJurisSTCoName;
3339         p_tax_lines_tbl.City(i)                       := inv_out_rec.fJurisSTCiName;
3340         p_tax_lines_tbl.tax_only_line_flag(i) := 'N';
3341         p_tax_lines_tbl.Tax(i)                         := 'LOCATION';
3342         p_tax_lines_tbl.tax_amount(i)                  := line_out_tab(1).fPriStTaxAmt
3343                                                           + (county_tax_amount + sec_county_tax_amount + add_county_tax_amount)
3344                                                           + (city_tax_amount + sec_city_tax_amount + add_city_tax_amount);
3345         --added them
3346 	p_tax_lines_tbl.unrounded_tax_amount(i)      := line_out_tab(1).fPriStTaxAmt
3347                                                           + (county_tax_amount + sec_county_tax_amount + add_county_tax_amount)
3348                                                           + (city_tax_amount + sec_city_tax_amount + add_city_tax_amount);
3349 	p_tax_lines_tbl.tax_curr_tax_amount(i)       := p_tax_lines_tbl.tax_amount(i) * p_currency_tab(1).exchange_rate;
3350 	p_tax_lines_tbl.tax_rate_percentage(i)       := state_tax_rate
3351 	                                                + (county_tax_rate + sec_county_tax_rate + add_county_tax_rate)
3352 							+ (city_tax_rate + sec_city_tax_rate + add_city_tax_rate);
3353 
3354         p_tax_lines_tbl.taxable_amount(i)              := line_out_tab(1).fPriStTaxedAmt;
3355 
3356 	p_tax_lines_tbl.tax_jurisdiction(i) := NULL;
3357         -- Can alternatively call GET_TAX_JUR_CODE for tax = 'CITY'  (lowest level jurisdiction)
3358 
3359 	p_tax_lines_tbl.global_attribute_category(i) := 'VERTEX';
3360         p_tax_lines_tbl.global_attribute2(i) := to_char(line_out_tab(1).fPriStTaxAmt);
3361         p_tax_lines_tbl.global_attribute4(i) := to_char((county_tax_amount + sec_county_tax_amount + add_county_tax_amount));
3362         p_tax_lines_tbl.global_attribute6(i) := to_char((city_tax_amount + sec_city_tax_amount + add_city_tax_amount));
3363 
3364 
3365         p_tax_lines_tbl.exempt_reason(i) :=line_out_tab(1).fPriStExmtRsnCd;
3366 
3367         IF (NVL(line_out_tab(1).fPriStExmtAmt, 0) + NVL(line_out_tab(1).fPriCoExmtAmt, 0)
3368                                                   + NVL(line_out_tab(1).fPriCiExmtAmt, 0)) <> 0 THEN
3369           IF (line_out_tab(1).fTransExtendedAmt <> 0) then
3370              p_tax_lines_tbl.exempt_rate_modifier(i) := (line_out_tab(1).fPriStExmtAmt +
3371                                                          line_out_tab(1).fPriCoExmtAmt +
3372                                                          line_out_tab(1).fPriCiExmtAmt)/
3373                                                          line_out_tab(1).fTransExtendedAmt;
3374              p_tax_lines_tbl.exempt_certificate_number(i) := line_out_tab(1).fPriCustExmtCrtfNum;
3375           ELSE
3376             p_tax_lines_tbl.exempt_rate_modifier(i) := 0;
3377             p_tax_lines_tbl.exempt_certificate_number(i) := NULL;
3378           END IF;
3379         ELSE
3380           p_tax_lines_tbl.exempt_rate_modifier(i) := 0;
3381           p_tax_lines_tbl.exempt_certificate_number(i) := NULL;
3382         END IF;
3383 
3384 	IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3385 	   FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'tax line output ');
3386 	   FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.document_type_id('||i||') = '|| to_char(p_tax_lines_tbl.document_type_id(i)));
3387            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.transaction_id('||i||') = '|| to_char(p_tax_lines_tbl.transaction_id(i)));
3388            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.transaction_line_id('||i||') = '||
3389                 to_char(p_tax_lines_tbl.transaction_line_id(i)));
3390            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.trx_level_type('||i||') = '||
3391                 p_tax_lines_tbl.trx_level_type(i));
3392            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.country_code('||i||') = '|| p_tax_lines_tbl.country_code(i));
3393            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.Tax('||i||') = '|| p_tax_lines_tbl.Tax(i));
3394            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.situs('||i||') = '|| p_tax_lines_tbl.situs(i));
3395            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_jurisdiction('||i||') = '||
3396 		p_tax_lines_tbl.tax_jurisdiction(i));
3397            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.tax_currency_code('||i||') = '|| p_tax_lines_tbl.tax_currency_code(i));
3398            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT('||i||')  = '||
3399 		to_char(p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT(i)));
3400            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_amount('||i||') = '|| to_char(p_tax_lines_tbl.tax_amount(i)));
3401            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_rate_percentage('||i||') = '||
3402 		to_char(p_tax_lines_tbl.tax_rate_percentage(i)));
3403            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.taxable_amount('||i||') = '||
3404 		to_char(p_tax_lines_tbl.taxable_amount(i)));
3405            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.State('||i||') = '|| p_tax_lines_tbl.State(i));
3406            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.County('||i||') = '|| p_tax_lines_tbl.County(i));
3407            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.City('||i||') = '|| p_tax_lines_tbl.City(i));
3408            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.unrounded_tax_amount('||i||') = '||
3409 		to_char(p_tax_lines_tbl.unrounded_tax_amount(i)));
3410            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' line_out_tab(1).fPriCustExmtCrtfNum = '||
3411                 line_out_tab(1).fPriCustExmtCrtfNum);
3412            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.exempt_certificate_number('||i||') = '||
3413                 p_tax_lines_tbl.exempt_certificate_number(i));
3414 
3415            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute_category('||i||') = '|| p_tax_lines_tbl.global_attribute_category(i));
3416            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute2('||i||') = '|| p_tax_lines_tbl.global_attribute2(i));
3417            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute4('||i||') = '|| p_tax_lines_tbl.global_attribute4(i));
3418            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute6('||i||') = '|| p_tax_lines_tbl.global_attribute6(i));
3419 
3420         END IF;
3421 
3422    ELSE
3423     For J in 1..3
3424     loop
3425      /*Bug fix :4941881 , As we are processing all the transaction lines in one time,we need to use index accordingly*/
3426       ind:=j+(3*i-3);
3427 	p_tax_lines_tbl.document_type_id(ind)		:= pg_doc_type_id_tab(I);
3428 	p_tax_lines_tbl.transaction_id(ind)		:= pg_trx_id_tab(I);
3429 	p_tax_lines_tbl.transaction_line_id(ind)	:= pg_trx_line_id_tab(I);
3430 	p_tax_lines_tbl.trx_level_type(ind)     	:= pg_trx_level_type_tab(I);
3431 	p_tax_lines_tbl.country_code(ind)      		:= l_regime_code ;
3432 	p_tax_lines_tbl.situs(ind)			:= l_situs;
3433 	p_tax_lines_tbl.tax_currency_code(ind)		:= p_currency_tab(1).tax_currency_code;
3434 	p_tax_lines_tbl.Inclusive_tax_line_flag(ind)	:= 'N';
3435 	p_tax_lines_tbl.Line_amt_includes_tax_flag(ind) := 'N';
3436 	p_tax_lines_tbl.use_tax_flag(ind)		:= 'N';
3437 	p_tax_lines_tbl.User_override_flag(ind)		:= 'N'; -- Need to see if different for override_tax
3438 	p_tax_lines_tbl.last_manual_entry(ind)		:= NULL;
3439 	p_tax_lines_tbl.manually_entered_flag(ind)	:= 'N'; -- Need to see if different for override_tax
3440 	p_tax_lines_tbl.registration_party_type(ind)    := NULL;  -- Bug 5288518
3441 	p_tax_lines_tbl.party_tax_reg_number(ind)       := NULL;  -- Bug 5288518
3442 	p_tax_lines_tbl.third_party_tax_reg_number(ind)	:= NULL;
3443 	p_tax_lines_tbl.threshold_indicator_flag(ind)	:= Null;
3444 	p_tax_lines_tbl.State(ind)			:= inv_out_rec.fJurisSTStAbbrv;
3445 	p_tax_lines_tbl.County(ind)			:= inv_out_rec.fJurisSTCoName;
3446 	p_tax_lines_tbl.City(ind)			:= inv_out_rec.fJurisSTCiName;
3447 
3448 	p_tax_lines_tbl.global_attribute_category(ind) := 'VERTEX';
3449         p_tax_lines_tbl.global_attribute2(ind) := NULL;
3450         p_tax_lines_tbl.global_attribute4(ind) := NULL;
3451         p_tax_lines_tbl.global_attribute6(ind) := NULL;
3452 
3453       if(l_document_type in ('TAX_ONLY_CREDIT_MEMO','TAX_ONLY_ADJUSTMENT')) then
3454 	p_tax_lines_tbl.tax_only_line_flag(ind)	:= 'Y';
3455       else
3456         p_tax_lines_tbl.tax_only_line_flag(ind)	:= 'N';
3457       end if;
3458 
3459 	IF J=1 then /*Case for State*/
3460 		p_tax_lines_tbl.Tax(ind)			 := 'STATE';
3461 		p_tax_lines_tbl.tax_amount(ind)			 := line_out_tab(1).fPriStTaxAmt;
3462 		p_tax_lines_tbl.unrounded_tax_amount(ind)	 := line_out_tab(1).fPriStTaxAmt;
3463 		p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT(ind) 	 := line_out_tab(1).fPriStTaxAmt*p_currency_tab(1).exchange_rate;
3464 		p_tax_lines_tbl.tax_rate_percentage(ind) 	 := state_tax_rate;   -- Bug 5162537
3465 		p_tax_lines_tbl.taxable_amount(ind) 		 := line_out_tab(1).fPriStTaxedAmt;
3466            IF nvl(line_out_tab(1).fPriStExmtAmt, 0) <> 0 THEN
3467 	      IF (line_out_tab(1).fTransExtendedAmt <> 0) then
3468                  p_tax_lines_tbl.exempt_rate_modifier(ind) := line_out_tab(1).fPriStExmtAmt/line_out_tab(1).fTransExtendedAmt;
3469                  p_tax_lines_tbl.exempt_certificate_number(ind)	:= line_out_tab(1).fPriCustExmtCrtfNum;
3470               ELSE
3471                  p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3472                  p_tax_lines_tbl.exempt_certificate_number(ind)	:= NULL;
3473               END IF;
3474           ELSE
3475              p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3476              p_tax_lines_tbl.exempt_certificate_number(ind) := NULL;
3477           END IF;
3478 		p_tax_lines_tbl.exempt_reason(ind) 	  :=line_out_tab(1).fPriStExmtRsnCd;
3479 	ELSIF J=2 then
3480            	p_tax_lines_tbl.Tax(ind)			 := 'COUNTY';
3481 		p_tax_lines_tbl.tax_amount(ind)			 :=(county_tax_amount +
3482 							          sec_county_tax_amount +
3483 			                                          add_county_tax_amount);
3484 		p_tax_lines_tbl.unrounded_tax_amount(ind)	 := county_tax_amount +
3485 								    sec_county_tax_amount +
3486 			                                            add_county_tax_amount;
3487 		p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT(ind) 	 := p_tax_lines_tbl.tax_amount(ind) *p_currency_tab(1).exchange_rate;
3488 		p_tax_lines_tbl.tax_rate_percentage(ind) 	 := county_tax_rate +
3489                                                                     sec_county_tax_rate +
3490 		                                                    add_county_tax_rate;
3491 		p_tax_lines_tbl.taxable_amount(ind) 		 := line_out_tab(1).fPriCoTaxedAmt;
3492            IF nvl(line_out_tab(1).fPriCoExmtAmt, 0) <> 0 THEN
3493 	      IF (line_out_tab(1).fTransExtendedAmt <> 0) then
3494                  p_tax_lines_tbl.exempt_rate_modifier(ind) := line_out_tab(1).fPriCoExmtAmt/line_out_tab(1).fTransExtendedAmt;
3495                  p_tax_lines_tbl.exempt_certificate_number(ind)	 := line_out_tab(1).fPriCustExmtCrtfNum;
3496              ELSE
3497                 p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3498                 p_tax_lines_tbl.exempt_certificate_number(ind)	:= NULL;
3499              END IF;
3500           ELSE
3501              p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3502              p_tax_lines_tbl.exempt_certificate_number(ind)	:= NULL;
3503           END IF;
3504 		p_tax_lines_tbl.exempt_reason(ind) 	 :=line_out_tab(1).fPriCoExmtRsnCd;
3505 	ELSIF J=3 then
3506 
3507                	p_tax_lines_tbl.Tax(ind)			 := 'CITY';
3508 		p_tax_lines_tbl.tax_amount(ind)			 := (city_tax_amount +
3509 								    sec_city_tax_amount +
3510                                                                     add_city_tax_amount);
3511 		p_tax_lines_tbl.unrounded_tax_amount(ind)	 := city_tax_amount +
3512 								    sec_city_tax_amount +
3513                                                                     add_city_tax_amount;
3514 		p_tax_lines_tbl.tax_curr_tax_amount(ind) 	 := p_tax_lines_tbl.unrounded_tax_amount(ind)*p_currency_tab(1).exchange_rate;
3515 		p_tax_lines_tbl.tax_rate_percentage(ind) 	 := city_tax_rate +
3516 								    sec_city_tax_rate +
3517                                                                     add_city_tax_rate;
3518 		p_tax_lines_tbl.taxable_amount(ind) 		 := line_out_tab(1).fPriCiTaxedAmt;
3519            IF nvl(line_out_tab(1).fPriCiExmtAmt, 0) <> 0 THEN
3520 	      IF (line_out_tab(1).fTransExtendedAmt <> 0) then
3521                  p_tax_lines_tbl.exempt_rate_modifier(ind) := line_out_tab(1).fPriCiExmtAmt/line_out_tab(1).fTransExtendedAmt;
3522                  p_tax_lines_tbl.exempt_certificate_number(ind)	 := line_out_tab(1).fPriCustExmtCrtfNum;
3523              ELSE
3524                 p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3525                 p_tax_lines_tbl.exempt_certificate_number(ind)	:= NULL;
3526              END IF;
3527           ELSE
3528              p_tax_lines_tbl.exempt_rate_modifier(ind) := 0;
3529              p_tax_lines_tbl.exempt_certificate_number(ind)	:= NULL;
3530           END IF;
3531 		p_tax_lines_tbl.exempt_reason(ind) 	  :=line_out_tab(1).fPriCiExmtRsnCd;
3532         else null;
3533 	END IF;
3534 
3535         delete from zx_jurisdictions_gt;
3536         GET_TAX_JUR_CODE (p_location_id                 ,
3537 	 	          p_tax_lines_tbl.Situs(ind)    ,
3538 	                  p_tax_lines_tbl.Tax(ind)      ,
3539                           l_regime_code		        ,
3540 	       	          inv_out_rec.fInvDate   	,
3541 	 	          x_tax_jurisdiction_code 	,
3542 	 	          l_return_status
3543 	 	         );
3544 
3545 	p_tax_lines_tbl.tax_jurisdiction(ind) 		 := x_tax_jurisdiction_code;
3546 
3547         delete from zx_jurisdictions_gt;
3548 
3549         IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3550 	   FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'tax line output ');
3551 	   FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.document_type_id('||ind||') = '|| to_char(p_tax_lines_tbl.document_type_id(ind)));
3552            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.transaction_id('||ind||') = '|| to_char(p_tax_lines_tbl.transaction_id(ind)));
3553            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.transaction_line_id('||ind||') = '||
3554                 to_char(p_tax_lines_tbl.transaction_line_id(ind)));
3555            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.trx_level_type('||ind||') = '||
3556                 p_tax_lines_tbl.trx_level_type(ind));
3557            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.country_code('||ind||') = '|| p_tax_lines_tbl.country_code(ind));
3558            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.Tax('||ind||') = '|| p_tax_lines_tbl.Tax(ind));
3559            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.situs('||ind||') = '|| p_tax_lines_tbl.situs(ind));
3560            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_jurisdiction('||ind||') = '||
3561 		p_tax_lines_tbl.tax_jurisdiction(ind));
3562            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.tax_currency_code('||ind||') = '|| p_tax_lines_tbl.tax_currency_code(ind));
3563            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT('||ind||')  = '||
3564 		to_char(p_tax_lines_tbl.TAX_CURR_TAX_AMOUNT(ind)));
3565            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_amount('||ind||') = '|| to_char(p_tax_lines_tbl.tax_amount(ind)));
3566            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.tax_rate_percentage('||ind||') = '||
3567 		to_char(p_tax_lines_tbl.tax_rate_percentage(ind)));
3568            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.taxable_amount('||ind||') = '||
3569 		to_char(p_tax_lines_tbl.taxable_amount(ind)));
3570            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.State('||ind||') = '|| p_tax_lines_tbl.State(ind));
3571            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.County('||ind||') = '|| p_tax_lines_tbl.County(ind));
3572            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.City('||ind||') = '|| p_tax_lines_tbl.City(ind));
3573            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.unrounded_tax_amount('||ind||') = '||
3574 		to_char(p_tax_lines_tbl.unrounded_tax_amount(ind)));
3575              FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' line_out_tab(1).fPriCustExmtCrtfNum = '||
3576                 line_out_tab(1).fPriCustExmtCrtfNum);
3577              FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,' p_tax_lines_tbl.exempt_certificate_number('||ind||') = '||
3578                 p_tax_lines_tbl.exempt_certificate_number(ind));
3579 
3580            -- bug 6831713
3581            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute_category('||ind||') = '|| p_tax_lines_tbl.global_attribute_category(ind));
3582            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute2('||ind||') = '|| p_tax_lines_tbl.global_attribute2(ind));
3583            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute4('||ind||') = '|| p_tax_lines_tbl.global_attribute4(ind));
3584            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_lines_tbl.global_attribute6('||ind||') = '|| p_tax_lines_tbl.global_attribute6(ind));
3585 
3586         END IF;
3587    END LOOP;
3588   END IF;
3589   IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3590       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
3591   END IF;
3592 
3593 END TAX_RESULTS_PROCESSING;
3594 
3595 
3596 PROCEDURE RESET_PARAMETERS(x_return_status OUT NOCOPY VARCHAR2) IS
3597  l_api_name           CONSTANT VARCHAR2(30) := 'RESET_PARAMETERS';
3598 BEGIN
3599 
3600    x_return_status := FND_API.G_RET_STS_SUCCESS;
3601 
3602     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3603      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
3604     END IF;
3605 
3606 
3607     /*------------------------------------------------------
3608      | Initialize context_rec, inv_in_rec, and line_in_tab.|
3609      ------------------------------------------------------*/
3610     BEGIN
3611     	ZX_TAX_VERTEX_QSU.QSUInitializeInvoice(context_rec,
3612 					        inv_in_rec,
3613 					        line_in_tab);
3614 
3615     EXCEPTION
3616         WHEN OTHERS THEN
3617             IF (g_level_exception >= g_current_runtime_level ) THEN
3618                FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3619 	    END IF;
3620 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3621 	   g_string :='Error in VERTEX API:'||to_char(SQLCODE)||SQLERRM;
3622 	   error_exception_handle(g_string);
3623 	   return;
3624     END;
3625 
3626 
3627     /*-----------------------------------------------------------
3628      | Set default value to the ARP_TAX_VERTEX_QSU.inv_in_rec|
3629      | and line_in_tab.						|
3630      -----------------------------------------------------------*/
3631     /* ARP_TAX_VERTEX_QSU.tQSUInvoiceRecord Record Type */
3632 
3633     inv_in_rec.fJurisSTGeoCd := NULL;
3634     inv_in_rec.fJurisSTStAbbrv := NULL;
3635     inv_in_rec.fJurisSTCoName := NULL;
3636     inv_in_rec.fJurisSTCiName := NULL;
3637     inv_in_rec.fJurisSTCiCmprssd := NULL;
3638     inv_in_rec.fJurisSTZipCd := NULL;
3639     inv_in_rec.fJurisSTCiSearchCd := NULL;
3640     inv_in_rec.fJurisSTInCi := NULL;
3641     inv_in_rec.fJurisSFGeoCd := NULL;
3642     inv_in_rec.fJurisSFStAbbrv := NULL;
3643     inv_in_rec.fJurisSFCoName := NULL;
3644     inv_in_rec.fJurisSFCiName := NULL;
3645     inv_in_rec.fJurisSFCiCmprssd := NULL;
3646     inv_in_rec.fJurisSFZipCd := NULL;
3647     inv_in_rec.fJurisSFCiSearchCd := NULL;
3648     inv_in_rec.fJurisSFInCi := NULL;
3649     inv_in_rec.fJurisOAGeoCd := NULL;
3650     inv_in_rec.fJurisOAStAbbrv := NULL;
3651     inv_in_rec.fJurisOACoName := NULL;
3652     inv_in_rec.fJurisOACiName := NULL;
3653     inv_in_rec.fJurisOACiCmprssd := NULL;
3654     inv_in_rec.fJurisOAZipCd := NULL;
3655     inv_in_rec.fJurisOACiSearchCd := NULL;
3656     inv_in_rec.fJurisOAInCi := NULL;
3657     inv_in_rec.fInvIdNum := NULL;
3658     inv_in_rec.fInvCntrlNum := NULL;
3659     inv_in_rec.fInvDate := NULL;
3660     inv_in_rec.fInvGrossAmt := NULL;
3661     inv_in_rec.fInvTotalTaxAmt := NULL;
3662     inv_in_rec.fInvNumLineItems := NULL;
3663     inv_in_rec.fTDMCustCd := NULL;
3664     inv_in_rec.fTDMCustClassCd := NULL;
3665     inv_in_rec.fCustTxblty := NULL;
3666     inv_in_rec.fTDMCompCd := NULL;
3667     inv_in_rec.fTDMDivCd := NULL;
3668     inv_in_rec.fTDMStoreCd := NULL;
3669 
3670     /* ARP_TAX_VERTEX_QSU.tQSULineItemTable Record Type */
3671     line_in_tab(1).fTransType := NULL;
3672     line_in_tab(1).fTransSubType := NULL;
3673     line_in_tab(1).fTransCd := NULL;
3674     line_in_tab(1).fTransDate := NULL;
3675     line_in_tab(1).fTransExtendedAmt := NULL;
3676     line_in_tab(1).fTransQuantity := NULL;
3677     line_in_tab(1).fTransTotalTaxAmt := NULL;
3678     line_in_tab(1).fTransCombinedRate := NULL;
3679     line_in_tab(1).fTransUserArea := NULL;
3680     line_in_tab(1).fTransStatusCd := NULL;
3681     line_in_tab(1).fTDMProdCd := NULL;
3682     line_in_tab(1).fTDMProdRptngCd := NULL;
3683     line_in_tab(1).fProdTxblty := NULL;
3684     line_in_tab(1).fPriTaxingJuris := NULL;
3685     line_in_tab(1).fPriCustExmtCrtfNum := NULL;
3686     line_in_tab(1).fPriStTxblty := NULL;
3687     line_in_tab(1).fPriStTaxType := NULL;
3688     line_in_tab(1).fPriStTaxedAmt := NULL;
3689     line_in_tab(1).fPriStExmtAmt := NULL;
3690     line_in_tab(1).fPriStExmtRsnCd := NULL;
3691     line_in_tab(1).fPriStNonTxblAmt := NULL;
3692     line_in_tab(1).fPriStNonTxblRsnCd := NULL;
3693     line_in_tab(1).fPriStRate := NULL;
3694     line_in_tab(1).fPriStRateEffDate := NULL;
3695     line_in_tab(1).fPriStRateType := NULL;
3696     line_in_tab(1).fPriStTaxAmt := NULL;
3697     line_in_tab(1).fPriStTaxIncluded := NULL;
3698     line_in_tab(1).fPriCoTxblty := NULL;
3699     line_in_tab(1).fPriCoTaxType := NULL;
3700     line_in_tab(1).fPriCoTaxedAmt := NULL;
3701     line_in_tab(1).fPriCoExmtAmt := NULL;
3702     line_in_tab(1).fPriCoExmtRsnCd := NULL;
3703     line_in_tab(1).fPriCoNonTxblAmt := NULL;
3704     line_in_tab(1).fPriCoNonTxblRsnCd := NULL;
3705     line_in_tab(1).fPriCoRate := NULL;
3706     line_in_tab(1).fPriCoRateEffDate := NULL;
3707     line_in_tab(1).fPriCoRateType := NULL;
3708     line_in_tab(1).fPriCoTaxAmt := NULL;
3709     line_in_tab(1).fPriCoTaxIncluded := NULL;
3710     line_in_tab(1).fPriCoTxblty := NULL;
3711     line_in_tab(1).fPriCiTxblty := NULL;
3712     line_in_tab(1).fPriCiTaxType := NULL;
3713     line_in_tab(1).fPriCiTaxedAmt := NULL;
3714     line_in_tab(1).fPriCiExmtAmt := NULL;
3715     line_in_tab(1).fPriCiExmtRsnCd := NULL;
3716     line_in_tab(1).fPriCiNonTxblAmt := NULL;
3717     line_in_tab(1).fPriCiNonTxblRsnCd := NULL;
3718     line_in_tab(1).fPriCiRate := NULL;
3719     line_in_tab(1).fPriCiRateEffDate := NULL;
3720     line_in_tab(1).fPriCiRateType := NULL;
3721     line_in_tab(1).fPriCiTaxAmt := NULL;
3722     line_in_tab(1).fPriCiTaxIncluded := NULL;
3723     line_in_tab(1).fPriDiTxblty := NULL;
3724     line_in_tab(1).fPriDiTaxType := NULL;
3725     line_in_tab(1).fPriDiTaxedAmt := NULL;
3726     line_in_tab(1).fPriDiExmtAmt := NULL;
3727     line_in_tab(1).fPriDiExmtRsnCd := NULL;
3728     line_in_tab(1).fPriDiNonTxblAmt := NULL;
3729     line_in_tab(1).fPriDiNonTxblRsnCd := NULL;
3730     line_in_tab(1).fPriDiRate := NULL;
3731     line_in_tab(1).fPriDiRateEffDate := NULL;
3732     line_in_tab(1).fPriDiRateType := NULL;
3733     line_in_tab(1).fPriDiTaxAmt := NULL;
3734     line_in_tab(1).fPriDiTaxIncluded := NULL;
3735     line_in_tab(1).fPriDiAppliesTo := NULL;
3736     line_in_tab(1).fAddTaxingJuris := NULL;
3737     line_in_tab(1).fAddCustExmtCrtfNum := NULL;
3738     line_in_tab(1).fAddCoTxblty := NULL;
3739     line_in_tab(1).fAddCoTaxType := NULL;
3740     line_in_tab(1).fAddCoTaxedAmt := NULL;
3741     line_in_tab(1).fAddCoExmtAmt := NULL;
3742     line_in_tab(1).fAddCoExmtRsnCd := NULL;
3743     line_in_tab(1).fAddCoNonTxblAmt := NULL;
3744     line_in_tab(1).fAddCoNonTxblRsnCd := NULL;
3745     line_in_tab(1).fAddCoRate := NULL;
3746     line_in_tab(1).fAddCoRateEffDate := NULL;
3747     line_in_tab(1).fAddCoRateType := NULL;
3748     line_in_tab(1).fAddCoTaxAmt := NULL;
3749     line_in_tab(1).fAddCoTaxIncluded := NULL;
3750     line_in_tab(1).fAddCiTxblty := NULL;
3751     line_in_tab(1).fAddCiTaxType := NULL;
3752     line_in_tab(1).fAddCiTaxedAmt := NULL;
3753     line_in_tab(1).fAddCiExmtAmt := NULL;
3754     line_in_tab(1).fAddCiExmtRsnCd := NULL;
3755     line_in_tab(1).fAddCiNonTxblAmt := NULL;
3756     line_in_tab(1).fAddCiNonTxblRsnCd := NULL;
3757     line_in_tab(1).fAddCiRate := NULL;
3758     line_in_tab(1).fAddCiRateEffDate := NULL;
3759     line_in_tab(1).fAddCiRateType := NULL;
3760     line_in_tab(1).fAddCiTaxAmt := NULL;
3761     line_in_tab(1).fAddCiTaxIncluded := NULL;
3762     line_in_tab(1).fAddDiTxblty := NULL;
3763     line_in_tab(1).fAddDiTaxType := NULL;
3764     line_in_tab(1).fAddDiTaxedAmt := NULL;
3765     line_in_tab(1).fAddDiExmtAmt := NULL;
3766     line_in_tab(1).fAddDiExmtRsnCd := NULL;
3767     line_in_tab(1).fAddDiNonTxblAmt := NULL;
3768     line_in_tab(1).fAddDiNonTxblRsnCd := NULL;
3769     line_in_tab(1).fAddDiRate := NULL;
3770     line_in_tab(1).fAddDiRateEffDate := NULL;
3771     line_in_tab(1).fAddDiRateType := NULL;
3772     line_in_tab(1).fAddDiTaxAmt := NULL;
3773     line_in_tab(1).fAddDiTaxIncluded := NULL;
3774     line_in_tab(1).fAddDiAppliesTo := NULL;
3775 
3776     IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3777      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
3778     END IF;
3779 END RESET_PARAMETERS;
3780 
3781 PROCEDURE CREATE_TAX_LINE(
3782 p_tax     in varchar2,
3783 p_amount  in number,
3784 x_return_status OUT NOCOPY VARCHAR2) IS
3785 
3786  l_api_name           CONSTANT VARCHAR2(30) := 'CREATE_TAX_LINE';
3787  l_return_Status               VARCHAR2(30);
3788 BEGIN
3789    x_return_status := FND_API.G_RET_STS_SUCCESS;
3790 
3791    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3792       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
3793    END IF;
3794 
3795 /* For Tax only Credit Memo and Tax only adjustment, user does not enter the
3796    tax lines manually. Instead, the tax lines are calculated/prorated by eBTax.
3797    The number of tax lines for the trx line can be known.
3798    Hence, we can consoliate all the tax lines and make 1 call to Vertex engine.
3799    The ELSE clause of this IF statement handles the manually entered tax lines.
3800 */
3801    IF l_document_type in ('TAX_ONLY_CREDIT_MEMO'
3802                          ,'TAX_ONLY_ADJUSTMENT') THEN
3803 
3804       l_line_level_action:='CREATE';
3805 
3806       IF (p_tax='STATE') THEN
3807          g_StTaxAmt := p_amount;
3808       ELSIF (p_tax='COUNTY') THEN
3809          g_CoTaxAmt := p_amount;
3810       ELSIF (p_tax='CITY') THEN
3811          g_CiTaxAmt := p_amount;
3812       END IF;
3813 
3814       IF NOT l_trx_line_context_changed THEN
3815          RETURN;
3816       END IF;
3817 
3818       IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3819          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
3820                         'Encountered the last tax line for the trx line.');
3821       END IF;
3822 
3823    ELSE
3824 
3825       IF l_document_type IN ('TAX_ONLY_INVOICE') THEN
3826          l_line_level_action:='CREATE';
3827       ELSE
3828          l_line_level_action:='TAX_LINE_DELETE';
3829          l_document_type := 'TAX_LINE_SYNC';
3830       END IF;
3831 
3832       IF (p_tax='STATE') THEN
3833          g_TotalTaxAmt := p_amount; -- Bug 6831713
3834 	 g_StTaxAmt := p_amount;
3835          g_CoTaxAmt := 0;
3836          g_CiTaxAmt := 0;
3837       ELSIF (p_tax='COUNTY') THEN
3838          g_TotalTaxAmt := p_amount; -- Bug 6831713
3839 	 g_StTaxAmt := 0;
3840          g_CoTaxAmt := p_amount;
3841          g_CiTaxAmt := 0;
3842       ELSIF (p_tax='CITY') THEN
3843          g_TotalTaxAmt := p_amount; -- Bug 6831713
3844 	 g_StTaxAmt := 0;
3845          g_CoTaxAmt := 0;
3846          g_CiTaxAmt := p_amount;
3847       ELSIF (p_tax='LOCATION') THEN -- Bug 6831713
3848          g_TotalTaxAmt := p_amount;
3849          g_StTaxAmt := 0;
3850          g_CoTaxAmt := 0;
3851          g_CiTaxAmt := 0;
3852          /* Ideally, we should implement g_StTaxAmt := p_amount * GA_2 / (GA_2 + GA_4 + GA_6)
3853                                          g_CoTaxAmt := p_amount * GA_4 / (GA_2 + GA_4 + GA_6)
3854                                          g_CiTaxAmt := p_amount * GA_6 / (GA_2 + GA_4 + GA_6)
3855             With above implementation we are relying on Vertex to distribute amounts */
3856       END IF;
3857 
3858    END IF;
3859 
3860    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3861       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax : '||p_tax );
3862       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_amount : '||p_amount);
3863       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'g_StTaxAmt : '||g_StTaxAmt);
3864       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'g_CoTaxAmt : '||g_CoTaxAmt);
3865       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'g_CiTaxAmt : '||g_CiTaxAmt);
3866       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'g_TotalTaxAmt : '||g_TotalTaxAmt);
3867    END IF;
3868 
3869    RESET_PARAMETERS(l_return_status);
3870    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3871       IF (g_level_exception >= g_current_runtime_level ) THEN
3872          FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3873       END IF;
3874       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3875       g_string :='Failed in RESET_PARAMETERS procedure';
3876       error_exception_handle(g_string);
3877       return;
3878    END IF;
3879 
3880    SET_PARAMETERS(l_return_status);
3881    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3882            IF (g_level_exception >= g_current_runtime_level ) THEN
3883                 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3884            END IF;
3885 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3886 	   g_string :='Failed in SET_PARAMETERS procedure';
3887 	   error_exception_handle(g_string);
3888 	   return;
3889     END IF;
3890 
3891 	CALCULATE_TAX(l_return_status);
3892 
3893    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3894            IF (g_level_exception >= g_current_runtime_level ) THEN
3895                 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3896            END IF;
3897 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3898 	   g_string :='Failed in CALCULATE_TAX procedure';
3899 	   error_exception_handle(g_string);
3900 	   return;
3901     END IF;
3902 
3903     IF (l_document_type = 'TAX_ONLY_ADJUSTMENT') AND pg_Line_char8_tab(I) <> 'Y' THEN
3904        null;
3905     ELSE
3906        WRITE_TO_VERTEX_REPOSITORY(l_return_status);
3907     END IF;
3908 
3909    IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
3910            IF (g_level_exception >= g_current_runtime_level ) THEN
3911                 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
3912            END IF;
3913 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
3914 	   g_string :='Failed in WRITE_TO_VERTEX_REPOSITORY procedure';
3915 	   error_exception_handle(g_string);
3916 	   return;
3917     END IF;
3918 
3919 	g_StTaxAmt:= 0;
3920 	g_CoTaxAmt:= 0;
3921 	g_CiTaxAmt:= 0;
3922    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3923      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
3924    END IF;
3925 
3926 END CREATE_TAX_LINE;
3927 
3928 Procedure get_doc_and_ext_att_info(p_evnt_cls_mapping_id IN  ZX_EVNT_CLS_MAPPINGS.event_class_mapping_id%type,
3929 				   p_transaction_id      IN  ZX_LINES.trx_id%type,
3930                                    p_transaction_line_id IN  ZX_LINES.trx_line_id%type,
3931 				   p_trx_level_type      IN  ZX_LINES.trx_level_type%type,
3932                                    p_regime_code         IN  ZX_LINES.tax_regime_code%type,
3933                                    p_tax_provider_id     IN  ZX_LINES.tax_provider_id%type,
3934 				   x_return_status   OUT NOCOPY VARCHAR2 ) is
3935 
3936  trx_line_dist_tbl          ZX_GLOBAL_STRUCTURES_PKG.trx_line_dist_tbl%type;
3937  event_class_rec            ZX_API_PUB.event_class_rec_type;
3938  l_return_status            varchar2(30);
3939  l_APPLICATION_ID           number;
3940  l_ENTITY_CODE              varchar2(20);
3941  l_EVENT_CLASS_CODE         varchar2(20);
3942  l_TRX_ID                   number;
3943  l_TRX_LINE_ID              number;
3944  l_TRX_LEVEL_TYPE           VARCHAR2(20);
3945  l_neg_line_gt_exists       NUMBER;
3946 
3947  l_api_name           CONSTANT VARCHAR2(30) := 'GET_DOC_AND_EXT_ATT_INFO';
3948 Begin
3949  x_return_status := FND_API.G_RET_STS_SUCCESS;
3950 
3951    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
3952      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
3953    END IF;
3954 
3955    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
3956        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_transaction_id : '||p_transaction_id );
3957        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_transaction_line_id : '||p_transaction_line_id);
3958        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_regime_code : '||p_regime_code);
3959        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax_provider_id : '||p_tax_provider_id);
3960    END IF;
3961 
3962    l_neg_line_gt_exists := 0;
3963    BEGIN
3964       SELECT 1
3965         INTO l_neg_line_gt_exists
3966         FROM zx_ptnr_neg_line_gt
3967        WHERE event_class_mapping_id = p_evnt_cls_mapping_id
3968          AND trx_id                 = p_transaction_id
3969          AND trx_line_id            = p_transaction_line_id
3970          AND trx_level_type         = p_trx_level_type;
3971    EXCEPTION
3972       WHEN OTHERS THEN
3973          l_neg_line_gt_exists := 0;
3974    END;
3975 
3976 /* For given transaction line id, record already exists in zx_ptnr_neg_line_gt, then there is no need to recreate it */
3977 
3978    IF l_neg_line_gt_exists <> 0 THEN
3979       RETURN;
3980    END IF;
3981 
3982    BEGIN
3983       SELECT APPLICATION_ID,
3984              ENTITY_CODE      ,
3985              EVENT_CLASS_CODE,
3986              TRX_ID ,
3987              TRX_LINE_ID,
3988              TRX_LEVEL_TYPE
3989         INTO l_APPLICATION_ID,
3990              l_ENTITY_CODE      ,
3991              l_EVENT_CLASS_CODE,
3992              l_TRX_ID ,
3993              l_TRX_LINE_ID,
3994              l_TRX_LEVEL_TYPE
3995         FROM zx_lines_det_factors
3996        WHERE event_class_mapping_id	= p_evnt_cls_mapping_id
3997          AND 	trx_id			= p_transaction_id
3998          AND	trx_line_id		= p_transaction_line_id
3999          AND 	trx_level_type		= p_trx_level_type;
4000    EXCEPTION
4001       WHEN no_data_found THEN
4002          IF (g_level_exception >= g_current_runtime_level ) THEN
4003             FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4004          END IF;
4005          x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4006          g_string :='No data found in zx_lines_det_factors ';
4007          error_exception_handle(g_string);
4008          RETURN;
4009    END;
4010 
4011 
4012 /* Since, we need to pass the item line information associated to the
4013    tax line, populate the trx_line_dist_tbl and pass specific trx_line_id */
4014 trx_line_dist_tbl.application_id(1)	:=l_APPLICATION_ID;
4015 trx_line_dist_tbl.TRX_LINE_ID(1)	:=l_TRX_LINE_ID;
4016 trx_line_dist_tbl.TRX_LEVEL_TYPE(1)	:=l_TRX_LEVEL_TYPE;
4017 
4018 event_class_rec.APPLICATION_ID		:=l_APPLICATION_ID;
4019 event_class_rec.ENTITY_CODE		:=l_ENTITY_CODE;
4020 event_class_rec.EVENT_CLASS_CODE	:=l_EVENT_CLASS_CODE;
4021 event_class_rec.TRX_ID			:=l_TRX_ID;
4022 --event_class_rec.TRX_LINE_ID             :=l_TRX_LINE_ID;
4023 
4024 
4025   zx_r11i_tax_partner_pkg.copy_trx_line_for_ptnr_bef_upd
4026      (p_trx_line_dist_tbl       => trx_line_dist_tbl,
4027       p_event_class_rec         => event_class_rec,
4028       p_update_index            => 1,
4029       p_trx_copy_for_tax_update => 'Y' ,
4030       p_regime_code             => p_regime_code,
4031       p_tax_provider_id         => p_tax_provider_id,
4032       x_return_status           => l_return_status);
4033 
4034       IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4035            IF (g_level_exception >= g_current_runtime_level ) THEN
4036                 FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4037            END IF;
4038 	   x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4039 	   g_string :='Not able to copy the line information :Failed with an exception';
4040 	   error_exception_handle(g_string);
4041 	   return;
4042       END IF;
4043 
4044    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4045      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
4046    END IF;
4047 
4048 END get_doc_and_ext_att_info;
4049 
4050 Function CHECK_IN_CACHE(p_internal_organization_id number,
4051                         P_document_type_id number,
4052 			p_transaction_id number,
4053 			p_transaction_line_id number) return boolean is
4054 
4055 l_index number;
4056 l_api_name           CONSTANT VARCHAR2(30) := 'CHECK_IN_CACHE';
4057 Begin
4058 
4059    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4060      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
4061    END IF;
4062 
4063    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4064        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_INTERNAL_ORGANIZATION_ID : ' || p_internal_organization_id );
4065        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_DOCUMENT_TYPE_ID : '|| P_document_type_id);
4066        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_TRANSACTION_ID : '|| p_transaction_id);
4067        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'P_TRANSACTION_LINE_ID : '|| p_transaction_line_id);
4068    END IF;
4069 
4070 For l_index in 1 .. cache_index loop
4071   if(cache_table(l_index).internal_organization_id = p_internal_organization_id and
4072      cache_table(l_index).document_type_id	 = P_document_type_id and
4073      cache_table(l_index).transaction_id	 = p_transaction_id and
4074      cache_table(l_index).transaction_line_id	 = p_transaction_line_id) then
4075 
4076      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4077        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Found in the Cache' );
4078      END IF;
4079 
4080      Return TRUE;
4081   end if;
4082  end loop;
4083      cache_index		:=cache_index+1;
4084      cache_table(cache_index).internal_organization_id	:= p_internal_organization_id;
4085      cache_table(cache_index).document_type_id		:= P_document_type_id;
4086      cache_table(cache_index).transaction_id		:= p_transaction_id;
4087      cache_table(cache_index).transaction_line_id	:= p_transaction_line_id;
4088 
4089      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4090        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'Not Found in the Cache' );
4091      END IF;
4092 
4093      return FALSE;
4094 
4095      IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4096         FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
4097      END IF;
4098 
4099 End Check_in_cache;
4100 
4101 PROCEDURE POPULATE_SYNC_TAX_AMTS(p_sync_tax_cnt          IN  NUMBER
4102                                , p_tax                   IN  zx_lines.tax%type
4103                                , x_output_sync_tax_lines IN OUT NOCOPY zx_tax_partner_pkg.output_sync_tax_lines_tbl_type
4104                                , x_return_status         OUT NOCOPY VARCHAR2) IS
4105 
4106  l_api_name             CONSTANT VARCHAR2(30) := 'POPULATE_SYNC_TAX_AMTS';
4107 
4108 BEGIN
4109    x_return_status := FND_API.G_RET_STS_SUCCESS;
4110 
4111    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4112      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
4113    END IF;
4114 
4115    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4116        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_sync_tax_cnt : '||p_sync_tax_cnt);
4117        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'p_tax : '||p_tax);
4118    END IF;
4119 
4120 /* For Tax only Credit Memo and Tax only adjustment, we consoliate all the tax lines and make 1 call to Vertex engine.
4121    The output is available at the end of the processing of the last tax line.
4122    l_trx_line_context_changed indicates that the tax line being processed is the last tax line for the trx line.
4123 */
4124    IF l_document_type in ('TAX_ONLY_CREDIT_MEMO'
4125                          ,'TAX_ONLY_ADJUSTMENT') THEN
4126       IF (p_tax = 'STATE') THEN
4127          l_state_tax_cnt := p_sync_tax_cnt;
4128       ELSIF(p_tax = 'COUNTY') THEN
4129          l_county_tax_cnt := p_sync_tax_cnt;
4130       ELSIF(p_tax = 'CITY') THEN
4131          l_city_tax_cnt := p_sync_tax_cnt;
4132       END IF;
4133       IF l_trx_line_context_changed THEN
4134          IF l_state_tax_cnt IS NOT NULL THEN
4135             x_output_sync_tax_lines(l_state_tax_cnt).TAX_RATE_PERCENTAGE  := line_out_tab(1).fPriStRate*100;
4136             x_output_sync_tax_lines(l_state_tax_cnt).TAXABLE_AMOUNT       := line_out_tab(1).fPriStTaxedAmt;
4137          END IF;
4138          IF l_county_tax_cnt IS NOT NULL THEN
4139             x_output_sync_tax_lines(l_county_tax_cnt).TAX_RATE_PERCENTAGE := line_out_tab(1).fPriCoRate*100;
4140             x_output_sync_tax_lines(l_county_tax_cnt).TAXABLE_AMOUNT      := line_out_tab(1).fPriCoTaxedAmt;
4141          END IF;
4142          IF l_city_tax_cnt IS NOT NULL THEN
4143             x_output_sync_tax_lines(l_city_tax_cnt).TAX_RATE_PERCENTAGE   := line_out_tab(1).fPriCiRate*100;
4144             x_output_sync_tax_lines(l_city_tax_cnt).TAXABLE_AMOUNT        := line_out_tab(1).fPriCiTaxedAmt;
4145          END IF;
4146          l_state_tax_cnt := null;
4147          l_county_tax_cnt := null;
4148          l_city_tax_cnt := null;
4149       ELSE
4150          RETURN;
4151       END IF;
4152    ELSE
4153       IF (p_tax = 'STATE') THEN
4154          x_output_sync_tax_lines(p_sync_tax_cnt).TAX_RATE_PERCENTAGE    := line_out_tab(1).fPriStRate*100;
4155          x_output_sync_tax_lines(p_sync_tax_cnt).TAXABLE_AMOUNT         := line_out_tab(1).fPriStTaxedAmt;
4156       ELSIF(p_tax = 'COUNTY') THEN
4157          x_output_sync_tax_lines(p_sync_tax_cnt).TAX_RATE_PERCENTAGE    := line_out_tab(1).fPriCoRate*100;
4158          x_output_sync_tax_lines(p_sync_tax_cnt).TAXABLE_AMOUNT         := line_out_tab(1).fPriCoTaxedAmt;
4159       ELSIF(p_tax = 'CITY') THEN
4160          x_output_sync_tax_lines(p_sync_tax_cnt).TAX_RATE_PERCENTAGE    := line_out_tab(1).fPriCiRate*100;
4161          x_output_sync_tax_lines(p_sync_tax_cnt).TAXABLE_AMOUNT         := line_out_tab(1).fPriCiTaxedAmt;
4162       END IF;
4163    END IF;
4164 
4165    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4166        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'x_output_sync_tax_lines(p_sync_tax_cnt).TAX_RATE_PERCENTAGE : '||x_output_sync_tax_lines(p_sync_tax_cnt).TAX_RATE_PERCENTAGE);
4167        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'x_output_sync_tax_lines(p_sync_tax_cnt).TAXABLE_AMOUNT : '||x_output_sync_tax_lines(p_sync_tax_cnt).TAXABLE_AMOUNT);
4168    END IF;
4169 
4170    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4171       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
4172    END IF;
4173 
4174 END POPULATE_SYNC_TAX_AMTS;
4175 
4176 PROCEDURE SYNCHRONIZE_VERTEX_REPOSITORY
4177    (x_output_sync_tax_lines OUT NOCOPY zx_tax_partner_pkg.output_sync_tax_lines_tbl_type,
4178     x_return_status         OUT NOCOPY varchar2,
4179     x_messages_tbl          OUT NOCOPY ZX_TAX_PARTNER_PKG.messages_tbl_type) IS
4180 
4181 CURSOR TAX_LINES_TO_BE_PROCESSED is
4182    SELECT
4183 	 DOCUMENT_TYPE_ID           ,
4184 	 TRANSACTION_ID             ,
4185 	 TRANSACTION_LINE_ID        ,
4186 	 TRX_LEVEL_TYPE             ,
4187 	 COUNTRY_CODE               ,
4188 	 TAX                        ,
4189 	 SITUS                      ,
4190 	 TAX_JURISDICTION           ,
4191 	 TAX_CURRENCY_CODE          ,
4192 	 TAX_AMOUNT                 ,
4193 	 TAX_CURR_TAX_AMT           ,
4194 	 TAX_RATE_PERCENTAGE        ,
4195 	 TAXABLE_AMOUNT             ,
4196 	 EXEMPT_RATE_MODIFIER       ,
4197 	 EXEMPT_REASON              ,
4198 	 TAX_ONLY_LINE_FLAG         ,
4199 	 INCLUSIVE_TAX_LINE_FLAG    ,
4200 	 USE_TAX_FLAG               ,
4201 	 EBIZ_OVERRIDE_FLAG         ,
4202 	 USER_OVERRIDE_FLAG         ,
4203 	 LAST_MANUAL_ENTRY          ,
4204 	 MANUALLY_ENTERED_FLAG      ,
4205 	 CANCEL_FLAG                ,
4206 	 DELETE_FLAG
4207     FROM ZX_SYNC_TAX_LINES_INPUT_V
4208     ORDER BY DOCUMENT_TYPE_ID,
4209              TRANSACTION_ID,
4210              TRANSACTION_LINE_ID,
4211              TRX_LEVEL_TYPE;
4212 
4213 
4214 SYNC_TAX_LINES SYNC_TAX_LINES_TBL;
4215 l_internal_organization_id	ZX_SYNC_HDR_INPUT_V.internal_organization_id%type;
4216 l_document_type_id		ZX_SYNC_HDR_INPUT_V.document_type_id%type;
4217 l_transaction_id		ZX_SYNC_HDR_INPUT_V.transaction_id%type;
4218 l_legal_entity_number		ZX_SYNC_HDR_INPUT_V.legal_entity_number%type;
4219 l_establishment_number		ZX_SYNC_HDR_INPUT_V.establishment_number%type;  -- Bug 5139731
4220 l_transaction_line_id           ZX_SYNC_TAX_LINES_INPUT_V.transaction_line_id%type;
4221 l_count number;
4222 l_event_type varchar2(20);
4223 l_write_record boolean;
4224 l_event_class_code      varchar2(20);
4225 l_application_id        number;
4226 l_entity_code		varchar2(20);
4227 l_trx_level_type	varchar2(20);
4228 l_regime_code		ZX_REGIMES_B.tax_regime_code%type;
4229 l_amount  number;
4230 l_found boolean;
4231 l_debug_count  number;
4232 l_api_name           CONSTANT VARCHAR2(30) := 'SYNCHRONIZE_VERTEX_REPOSITORY';
4233 l_return_status varchar2(30);
4234 l_tax_code      VARCHAR2(100);
4235 l_tax_type      VARCHAR2(100);
4236 l_tax_flag      VARCHAR2(5);
4237 l_trx_type_id   NUMBER;
4238 l_org_id        NUMBER;
4239 
4240 char_ctrx_id    VARCHAR2(32);
4241 l_trx_number    VARCHAR2(150);
4242 l_statements    VARCHAR2(2000);
4243 cnt             NUMBER;
4244 
4245 BEGIN
4246    x_return_status := FND_API.G_RET_STS_SUCCESS;
4247    err_count       := 0;
4248 
4249    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4250      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
4251    END IF;
4252 
4253  -- BUG7435393
4254    IF ZX_API_PUB.G_PUB_SRVC <> 'SYNCHRONIZE_TAX_REPOSITORY' THEN
4255    -- BUG7435393
4256 
4257    BEGIN
4258       SELECT internal_organization_id,
4259              document_type_id,
4260              transaction_id,
4261              legal_entity_number,
4262              establishment_number
4263         INTO l_internal_organization_id,
4264              l_document_type_id,
4265              l_transaction_id,
4266              l_legal_entity_number,
4267              l_establishment_number    -- Bug 5139731
4268         FROM ZX_SYNC_HDR_INPUT_V;
4269    EXCEPTION
4270       WHEN TOO_MANY_ROWS THEN
4271          IF (g_level_exception >= g_current_runtime_level ) THEN
4272             FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4273          End if;
4274          x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4275          g_string :='More than one row exist at header level';
4276          error_exception_handle(g_string);
4277          RETURN;
4278    END;
4279 
4280    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4281       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4282          ' l_transaction_id = ' || l_transaction_id);
4283       BEGIN
4284          SELECT count(*)
4285            INTO l_debug_count
4286            FROM zx_detail_tax_lines_gt;
4287       END;
4288       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4289          ' l_debug_count = ' || l_debug_count);
4290    END IF;
4291 
4292    OPEN tax_lines_to_be_processed;
4293 
4294    FETCH tax_lines_to_be_processed BULK COLLECT INTO
4295       SYNC_TAX_LINES.document_type_id		,
4296       SYNC_TAX_LINES.transaction_id		,
4297       SYNC_TAX_LINES.transaction_line_id	,
4298       SYNC_TAX_LINES.trx_level_type           ,
4299       SYNC_TAX_LINES.country_code		,
4300       SYNC_TAX_LINES.tax			,
4301       SYNC_TAX_LINES.situs			,
4302       SYNC_TAX_LINES.tax_jurisdiction		,
4303       SYNC_TAX_LINES.tax_currency_code          ,
4304       SYNC_TAX_LINES.tax_amount                 ,
4305       SYNC_TAX_LINES.tax_curr_tax_amount	,
4306       SYNC_TAX_LINES.tax_rate_percentage	,
4307       SYNC_TAX_LINES.taxable_amount		,
4308       SYNC_TAX_LINES.exempt_rate_modifier	,
4309       SYNC_TAX_LINES.exempt_reason		,
4310       SYNC_TAX_LINES.tax_only_line_flag	,
4311       SYNC_TAX_LINES.inclusive_tax_line_flag	,
4312       SYNC_TAX_LINES.use_tax_flag		,
4313       SYNC_TAX_LINES.ebiz_override_flag	,
4314       SYNC_TAX_LINES.user_override_flag	,
4315       SYNC_TAX_LINES.last_manual_entry	,
4316       SYNC_TAX_LINES.manually_entered_flag	,
4317       SYNC_TAX_LINES.cancel_flag		,
4318       SYNC_TAX_LINES.delete_flag
4319    LIMIT C_LINES_PER_COMMIT;
4320 
4321    BEGIN
4322       SELECT event_class_code
4323            , application_id
4324            , entity_code
4325         INTO l_event_class_code
4326            , l_application_id
4327            , l_entity_code
4328         FROM zx_evnt_cls_mappings
4329        WHERE EVENT_CLASS_MAPPING_ID = SYNC_TAX_LINES.document_type_id(1);
4330    END;
4331 
4332            SELECT output_tax_classification_code , receivables_trx_type_id,
4333 internal_organization_id into
4334            l_tax_code, l_trx_type_id, l_org_id
4335             FROM zx_lines_det_factors where
4336             application_id = l_application_id
4337             and entity_code = l_entity_code
4338             and event_class_code = l_event_class_code
4339             and trx_id = SYNC_TAX_LINES.transaction_id(1)
4340             and trx_line_id = SYNC_TAX_LINES.transaction_line_id(1)
4341             and trx_level_type = SYNC_TAX_LINES.trx_level_type(1);
4342 
4343             BEGIN
4344              select tax_type_code INTO l_tax_type -- from zx_taxes_b zx, zx_rates_b zr
4345                from zx_sco_taxes zx,   -- Changed from clause to use sco views not base tables
4346                     zx_sco_rates zr
4347 	     where zx.tax = zr.tax
4348              AND zr.tax_rate_code = l_tax_code
4349              AND rownum = 1;
4350             EXCEPTION
4351               WHEN others THEN
4352                l_tax_type := NULL;
4353             END;
4354 
4355    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4356          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_tax_code'||l_tax_code);
4357    END IF;
4358 
4359             SELECT tax_calculation_flag into l_tax_flag
4360             FROM  ra_cust_trx_types_all rtt
4361             WHERE rtt.cust_trx_type_id = l_trx_type_id
4362             AND rtt.org_id = l_org_id;
4363 
4364             IF l_tax_flag = 'N' AND l_tax_code is NULL THEN
4365              RETURN;
4366             ELSIF l_tax_type NOT IN ('SALES_TAX','LOCATION') THEN
4367              RETURN;
4368             ELSIF (l_tax_type = 'SALES_TAX' AND l_tax_code <> 'STATE' and  l_tax_code <> 'COUNTY' and l_tax_code <> 'CITY' and l_tax_code not like '%_COUNTY'
4369 and l_tax_code not like '%_CITY') THEN
4370              RETURN;
4371             END IF;
4372 
4373    I := 0;
4374 
4375    FOR sync_tax_cnt IN 1..sync_tax_lines.document_type_id.last LOOP
4376 
4377 /* Maintain the trx line counter. The tax lines are fetched together for a transaction_line_id.
4378    For Tax only documents, we need to know the last tax line being fetch so that all the tax lines can be consolidated and passed as one record */
4379 
4380       IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4381          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4382             ' SYNC_TAX_LINES.transaction_line_id(' || sync_tax_cnt || ') = ' || SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt));
4383          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4384             ' SYNC_TAX_LINES.tax(' || sync_tax_cnt || ') = ' || SYNC_TAX_LINES.tax(sync_tax_cnt));
4385          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4386             ' SYNC_TAX_LINES.tax_amount(' || sync_tax_cnt || ') = ' || SYNC_TAX_LINES.tax_amount(sync_tax_cnt));
4387       END IF;
4388 
4389       IF nvl(l_transaction_line_id, -999) <> SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt) THEN
4390          I := I+1;
4391          l_transaction_line_id := SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt);
4392       END IF;
4393       IF sync_tax_cnt = sync_tax_lines.document_type_id.last THEN
4394          l_trx_line_context_changed := TRUE;
4395       ELSE
4396          IF l_transaction_line_id = SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt+1) THEN
4397             l_trx_line_context_changed := FALSE;
4398          ELSE
4399             l_trx_line_context_changed := TRUE;
4400          END IF;
4401       END IF;
4402 
4403 /* Identify Tax event type -Start*/
4404       BEGIN
4405          SELECT count(*)
4406            INTO l_count
4407            FROM ZX_PTNR_NEG_TAX_LINE_GT
4408           WHERE document_type_id = SYNC_TAX_LINES.document_type_id(sync_tax_cnt)
4409 	    AND trx_id	         = SYNC_TAX_LINES.transaction_id(sync_tax_cnt)
4410 	    AND trx_line_id      = SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt)
4411 	    AND country_code     = SYNC_TAX_LINES.country_code(sync_tax_cnt)
4412 	    AND tax              = SYNC_TAX_LINES.tax(sync_tax_cnt)
4413 	    AND situs            = SYNC_TAX_LINES.situs(sync_tax_cnt);
4414       EXCEPTION
4415          WHEN OTHERS THEN
4416             IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4417                FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4418                   ' Error while accessing ZX_PTNR_NEG_TAX_LINE_GT');
4419             END IF;
4420       END;
4421 
4422       IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4423          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4424             ' No of records in ZX_PTNR_NEG_TAX_LINE_GT = ' || l_count);
4425       END IF;
4426 
4427 /* Check if the Line is present in ZX_PTNR_NEG_TAX_LINE_GT table.
4428    Deleted line is passed thru zx_sync_tax_lines_input_v and there is
4429    no corresponding line in ZX_PTNR_NEG_TAX_LINE_GT */
4430 
4431       IF (l_count=1) THEN /*Line is present. Hence, it is an UPDATE action */
4432          l_event_type  :='TAX_LINE_UPDATE';
4433       ELSIF (l_count=0) THEN
4434          IF (SYNC_TAX_LINES.delete_flag(sync_tax_cnt) ='Y') THEN /* Delete action */
4435             l_event_type :='TAX_LINE_DELETE';
4436          ELSE
4437             l_event_type:='TAX_LINE_CREATE';
4438 	 END IF;
4439       ELSE
4440 	 x_return_status :=FND_API.G_RET_STS_ERROR;
4441          g_string := 'There were more than one tax line';
4442          error_exception_handle(g_string);
4443          RETURN;
4444       END IF;
4445 
4446       IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4447          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4448             ' l_event_type ' || l_event_type);
4449       END IF;
4450 
4451 --*  /* Check whether there exists a row in ZX_PTNR_NEG_LINES_GT table for the transaction line.
4452 --*     If not available then populate these values by calling the
4453 --*      zx_r11i_tax_partner_pkg.COPY_TRX_LINE_FOR_PTNR_BEF_UPD.
4454 --*  */
4455 
4456 --*     l_found := check_in_cache(l_internal_organization_id,
4457 --*                        SYNC_TAX_LINES.document_type_id(sync_tax_cnt),
4458 --*		 SYNC_TAX_LINES.transaction_id(sync_tax_cnt),
4459 --*		 SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt));
4460 
4461       IF NOT pg_trx_id_tab.exists(I) THEN
4462             get_doc_and_ext_att_info(SYNC_TAX_LINES.document_type_id(sync_tax_cnt),
4463                                      SYNC_TAX_LINES.transaction_id(sync_tax_cnt),
4464                                      SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt),
4465                                      SYNC_TAX_LINES.trx_level_type(sync_tax_cnt),
4466                                      SYNC_TAX_LINES.country_code(sync_tax_cnt),
4467                                      1,l_return_status);
4468             IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4469                IF (g_level_exception >= g_current_runtime_level ) THEN
4470                   FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4471                END IF;
4472 	       x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4473 	       g_string :='Failed in GET_DOC_AND_EXT_ATT_INFO procedure';
4474 	       error_exception_handle(g_string);
4475 	       RETURN;
4476             END IF;
4477             pg_trx_line_id_tab(I) := SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt);
4478       END IF;
4479 
4480       IF (l_event_type='TAX_LINE_UPDATE') THEN
4481          BEGIN
4482             SELECT tax_amount
4483      	      INTO l_amount
4484               FROM ZX_PTNR_NEG_TAX_LINE_GT
4485              WHERE document_type_id = SYNC_TAX_LINES.document_type_id(sync_tax_cnt)
4486                AND trx_id           = SYNC_TAX_LINES.transaction_id(sync_tax_cnt)
4487 	       AND trx_line_id	    = SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt)
4488 	       AND country_code	    = SYNC_TAX_LINES.country_code(sync_tax_cnt)
4489 	       AND tax		    = SYNC_TAX_LINES.tax(sync_tax_cnt)
4490 	       AND situs            = SYNC_TAX_LINES.situs(sync_tax_cnt);
4491          END;
4492 
4493          IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4494             FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4495                ' l_amount         ' || l_amount);
4496             FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4497                ' SYNC_TAX_LINES.tax_amount(sync_tax_cnt)         ' || SYNC_TAX_LINES.tax_amount(sync_tax_cnt));
4498          END IF;
4499 
4500 	 create_tax_line(SYNC_TAX_LINES.tax(sync_tax_cnt),-1*l_amount,l_return_status);
4501 	 create_tax_line(SYNC_TAX_LINES.tax(sync_tax_cnt),SYNC_TAX_LINES.tax_amount(sync_tax_cnt),l_return_status);
4502 	 l_write_record:=true;
4503 
4504       ELSIF(l_event_type='TAX_LINE_DELETE')then
4505 /*
4506             select tax_amount
4507               into l_amount
4508               from ZX_PTNR_NEG_TAX_LINE_GT
4509              where trx_id = SYNC_TAX_LINES.transaction_id(sync_tax_cnt) and
4510 	           trx_line_id	= SYNC_TAX_LINES.transaction_line_id(sync_tax_cnt);
4511 */
4512 
4513          create_tax_line(SYNC_TAX_LINES.tax(sync_tax_cnt),-1*SYNC_TAX_LINES.tax_amount(sync_tax_cnt),l_return_status);
4514          l_write_record:=false;
4515 
4516       ELSIF (l_event_type='TAX_LINE_CREATE') THEN
4517             create_tax_line(SYNC_TAX_LINES.tax(sync_tax_cnt),SYNC_TAX_LINES.tax_amount(sync_tax_cnt),l_return_status);
4518             l_write_record:=true;
4519       END IF;
4520 
4521       IF (l_write_record) THEN
4522          x_output_sync_tax_lines(sync_tax_cnt).INTERNAL_ORGANIZATION_ID  :=  l_internal_organization_id;
4523          x_output_sync_tax_lines(sync_tax_cnt).LEGAL_ENTITY_NUMBER       := l_legal_entity_number;
4524          x_output_sync_tax_lines(sync_tax_cnt).ESTABLISHMENT_NUMBER      := l_establishment_number;  -- Bug 5139731
4525          x_output_sync_tax_lines(sync_tax_cnt).DOCUMENT_TYPE_ID          := SYNC_TAX_LINES.document_type_id(sync_tax_cnt);
4526          x_output_sync_tax_lines(sync_tax_cnt).APPLICATION_ID            := l_application_id;
4527          x_output_sync_tax_lines(sync_tax_cnt).ENTITY_CODE               := l_entity_code;
4528          x_output_sync_tax_lines(sync_tax_cnt).EVENT_CLASS_CODE          := l_event_class_code;
4529          x_output_sync_tax_lines(sync_tax_cnt).TRANSACTION_ID            := sync_tax_lines.transaction_id(sync_tax_cnt);
4530          x_output_sync_tax_lines(sync_tax_cnt).TRANSACTION_LINE_ID       := sync_tax_lines.transaction_line_id(sync_tax_cnt);
4531          x_output_sync_tax_lines(sync_tax_cnt).TRX_LEVEL_TYPE            := sync_tax_lines.trx_level_type(sync_tax_cnt);
4532          x_output_sync_tax_lines(sync_tax_cnt).COUNTRY_CODE              := sync_tax_lines.country_code(sync_tax_cnt);
4533          x_output_sync_tax_lines(sync_tax_cnt).TAX                       := sync_tax_lines.tax(sync_tax_cnt);
4534          x_output_sync_tax_lines(sync_tax_cnt).SITUS                     := sync_tax_lines.situs(sync_tax_cnt);
4535 
4536     IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4537        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4538                'x_output_sync_tax_lines(sync_tax_cnt).internal_organization_id = ' || x_output_sync_tax_lines(sync_tax_cnt).internal_organization_id);
4539        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4540                'x_output_sync_tax_lines(sync_tax_cnt).transaction_line_id = ' || x_output_sync_tax_lines(sync_tax_cnt).transaction_line_id);
4541        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4542                'x_output_sync_tax_lines(sync_tax_cnt).trx_level_type = ' || x_output_sync_tax_lines(sync_tax_cnt).trx_level_type);
4543        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4544                'x_output_sync_tax_lines(sync_tax_cnt).tax = ' || x_output_sync_tax_lines(sync_tax_cnt).tax);
4545        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4546                'x_output_sync_tax_lines(sync_tax_cnt).SITUS = ' || x_output_sync_tax_lines(sync_tax_cnt).SITUS);
4547     END IF;
4548 
4549          populate_sync_tax_amts(sync_tax_cnt
4550                               , sync_tax_lines.tax(sync_tax_cnt)
4551                               , x_output_sync_tax_lines
4552                               , x_return_status);
4553          IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4554             IF (g_level_exception >= g_current_runtime_level ) THEN
4555                FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4556             END IF;
4557 	    x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4558 	    g_string :='Failed in populate_sync_tax_amts procedure';
4559 	    error_exception_handle(g_string);
4560 	    RETURN;
4561          END IF;
4562 
4563          l_write_record := FALSE;
4564       END IF;
4565 
4566    END LOOP;
4567    ELSE
4568 
4569      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4570        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, ' in the update part ');
4571      END IF;
4572 
4573      /*UPDATE ARP_TAX_VERTEX_AUDIT
4574      SET INVNO = (SELECT TRANSACTION_NUMBER
4575                   FROM ZX_SYNC_HDR_INPUT_V)
4576      WHERE TRANSUSERAREA = (SELECT TRANSACTION_ID
4577                             FROM ZX_SYNC_HDR_INPUT_V);*/
4578 
4579      BEGIN
4580        SELECT TRANSACTION_NUMBER, TO_CHAR(TRANSACTION_ID)
4581        INTO l_trx_number, char_ctrx_id
4582        FROM ZX_SYNC_HDR_INPUT_V;
4583      EXCEPTION
4584        WHEN TOO_MANY_ROWS THEN
4585          IF (g_level_exception >= g_current_runtime_level ) THEN
4586             FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4587          End if;
4588          x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4589          g_string :='More than one row exist at header level';
4590          error_exception_handle(g_string);
4591          RETURN;
4592        WHEN OTHERS THEN
4593          NULL;
4594      END;
4595      l_statements := 'UPDATE ZX_TAX_VERTEX_AUDIT '||
4596                      'SET INVNO = :1' ||
4597                      ' WHERE TRANSUSERAREA = :2 ';
4598      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4599        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_statements ==' || l_statements);
4600      END IF;
4601      EXECUTE IMMEDIATE l_statements using l_trx_number,char_ctrx_id ;
4602      cnt:= SQL%ROWCOUNT;
4603      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4604        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'Updated Rows in vertex table == ' || to_char(SQL%ROWCOUNT));
4605      END IF;
4606 
4607      IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4608        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'ZX_TAX_VERTEX_AUDIT is updated');
4609      END IF;
4610 
4611    END IF;
4612 
4613 
4614    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4615      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
4616    END IF;
4617 
4618 END SYNCHRONIZE_VERTEX_REPOSITORY;
4619 
4620 /* Bug 5200373: Restructured the code to accomodate the header level deletions */
4621 PROCEDURE GLOBAL_DOCUMENT_UPDATE
4622 	(x_transaction_rec       IN         zx_tax_partner_pkg.trx_rec_type,
4623    	 x_return_status         OUT NOCOPY varchar2,
4624    	 x_messages_tbl          OUT NOCOPY ZX_TAX_PARTNER_PKG.messages_tbl_type) is
4625 
4626  l_cnt_of_options_gt    NUMBER;
4627  l_cnt_of_hdr_extns_gt  NUMBER;
4628  l_cnt_of_line_extns_gt NUMBER;
4629  l_cnt_of_loc_info_gt   NUMBER;
4630  l_cnt_of_neg_line_gt   NUMBER;
4631  l_cnt_of_det_factors   NUMBER;
4632  l_return_status        VARCHAR2(30);
4633  l_api_name             CONSTANT VARCHAR2(30) := 'GLOBAL_DOCUMENT_UPDATE';
4634 l_application_id  NUMBER;
4635 l_entity_code     VARCHAR2(80);
4636 l_event_class_code VARCHAR2(100);
4637 l_trx_level_type   VARCHAR2(100);
4638 l_trx_id           NUMBER;
4639 l_trx_line_id      NUMBER;
4640 l_trx_type_id      NUMBER;
4641 l_org_id      NUMBER;
4642 l_tax_code         VARCHAR2(100);
4643 l_tax_type         VARCHAR2(100);
4644 l_tax_flag         VARCHAR2(10);
4645 
4646 BEGIN
4647    x_return_status := FND_API.G_RET_STS_SUCCESS;
4648    err_count       := 0;
4649 
4650    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4651      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
4652    END IF;
4653 
4654 
4655    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4656       BEGIN
4657          SELECT count(*)
4658            INTO l_cnt_of_det_factors
4659            FROM ZX_LINES_DET_FACTORS
4660           WHERE event_class_mapping_id = x_transaction_rec.document_type_id
4661             AND trx_id                 = x_transaction_rec.transaction_id;
4662       EXCEPTION WHEN OTHERS THEN
4663          l_cnt_of_det_factors := 0;
4664       END;
4665       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4666               'l_cnt_of_det_factors = '||l_cnt_of_det_factors);
4667       BEGIN
4668          SELECT count(*)
4669            INTO l_cnt_of_options_gt
4670            FROM ZX_TRX_PRE_PROC_OPTIONS_GT;
4671       EXCEPTION WHEN OTHERS THEN
4672          l_cnt_of_options_gt := 0;
4673       END;
4674       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4675              'l_cnt_of_options_gt = '||l_cnt_of_options_gt);
4676       BEGIN
4677          SELECT count(*)
4678            INTO l_cnt_of_hdr_extns_gt
4679            FROM ZX_PRVDR_HDR_EXTNS_GT;
4680       EXCEPTION WHEN OTHERS THEN
4681          l_cnt_of_hdr_extns_gt := 0;
4682       END;
4683       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4684              'l_cnt_of_hdr_extns_gt = '||l_cnt_of_hdr_extns_gt);
4685       BEGIN
4686          SELECT count(*)
4687            INTO l_cnt_of_line_extns_gt
4688            FROM ZX_PRVDR_HDR_EXTNS_GT;
4689       EXCEPTION WHEN OTHERS THEN
4690          l_cnt_of_line_extns_gt := 0;
4691       END;
4692       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4693              'l_cnt_of_line_extns_gt = '||l_cnt_of_line_extns_gt);
4694       BEGIN
4695          SELECT count(*)
4696            INTO l_cnt_of_loc_info_gt
4697            FROM ZX_PTNR_LOCATION_INFO_GT;
4698       EXCEPTION WHEN OTHERS THEN
4699          l_cnt_of_loc_info_gt := 0;
4700       END;
4701       FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4702              'l_cnt_of_loc_info_gt = '||l_cnt_of_loc_info_gt);
4703       BEGIN
4704          SELECT count(*)
4705            INTO l_cnt_of_neg_line_gt
4706            FROM ZX_PTNR_NEG_LINE_GT;
4707       EXCEPTION WHEN OTHERS THEN
4708          l_cnt_of_neg_line_gt := 0;
4709       END;
4710       IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4711          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,
4712                 'l_cnt_of_neg_line_gt = '||l_cnt_of_neg_line_gt);
4713       END IF;
4714    END IF;
4715 
4716        BEGIN
4717           SELECT
4718             distinct application_id,entity_code,event_class_code,
4719             trx_id,trx_level_type,trx_line_id
4720             INTO l_application_id,l_entity_code,l_event_class_code,
4721             l_trx_id,l_trx_level_type,l_trx_line_id
4722             FROM ZX_PRVDR_LINE_EXTNS_GT where rownum = 1;
4723    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4724 
4725          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'before tax code');
4726    END IF;
4727 -- bug 6755603
4728 
4729            SELECT output_tax_classification_code,receivables_trx_type_id,
4730 internal_organization_id into
4731            l_tax_code,l_trx_type_id, l_org_id
4732             FROM zx_lines_det_factors where
4733             application_id = l_application_id
4734             and entity_code = l_entity_code
4735             and event_class_code = l_event_class_code
4736             and trx_id = l_trx_id
4737             and trx_line_id = l_trx_line_id
4738             and trx_level_type = l_trx_level_type;
4739 
4740             BEGIN
4741              select tax_type_code INTO l_tax_type -- from zx_taxes_b zx, zx_rates_b zr
4742                from zx_sco_taxes zx,   -- Changed from clause to use sco views not base tables
4743                     zx_sco_rates zr
4744 	     where zx.tax = zr.tax
4745              AND zr.tax_rate_code = l_tax_code
4746              AND rownum = 1;
4747             EXCEPTION
4748               WHEN others THEN
4749                l_tax_type := NULL;
4750             END;
4751 
4752    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4753          FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name, 'l_tax_code'||l_tax_code);
4754    END IF;
4755 
4756             SELECT tax_calculation_flag into l_tax_flag
4757             FROM  ra_cust_trx_types_all rtt
4758             WHERE rtt.cust_trx_type_id = l_trx_type_id
4759             AND rtt.org_id = l_org_id;
4760 
4761             IF l_tax_flag = 'N' AND l_tax_code is NULL THEN
4762              RETURN;
4763             ELSIF l_tax_type NOT IN ('SALES_TAX','LOCATION') THEN
4764              RETURN;
4765             ELSIF (l_tax_type = 'SALES_TAX' AND l_tax_code <> 'STATE' and  l_tax_code <> 'COUNTY' and l_tax_code <> 'CITY' and l_tax_code not like '%_COUNTY'
4766 and l_tax_code not like '%_CITY') THEN
4767              RETURN;
4768             END IF;
4769 
4770        EXCEPTION WHEN OTHERS THEN
4771           null;
4772        END;
4773    BEGIN
4774      SELECT trx_line_id
4775      BULK COLLECT INTO pg_trx_line_id_tab
4776        FROM ZX_PTNR_NEG_LINE_GT
4777       WHERE event_class_mapping_id = x_transaction_rec.document_type_id
4778         AND trx_id                 = x_transaction_rec.transaction_id;
4779    END;
4780 
4781    BEGIN
4782       SELECT event_class_code
4783         INTO l_document_type
4784         FROM zx_evnt_cls_mappings
4785        WHERE event_class_mapping_id = x_transaction_rec.document_type_id;
4786    EXCEPTION
4787         WHEN no_data_found THEN
4788 	   IF (g_level_exception >= g_current_runtime_level ) THEN
4789               FND_LOG.STRING(G_LEVEL_EXCEPTION,G_MODULE_NAME||l_api_name,SQLERRM);
4790 	   End if;
4791            x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4792            g_string        := 'No document type exist for provided event_class_mapping_id ';
4793            error_exception_handle(g_string);
4794            x_messages_tbl  :=  g_messages_tbl;
4795            RETURN;
4796    END;
4797 
4798    FOR cnt IN 1..nvl(pg_trx_line_id_tab.last, 0)
4799    LOOP
4800       I := cnt;
4801       l_line_level_action := 'NEGATE';
4802       perform_line_deletion(l_return_status);
4803       IF l_return_status <> FND_API.G_RET_STS_SUCCESS THEN
4804          IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4805             FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,SQLERRM);
4806          END IF;
4807          x_return_status := FND_API.G_RET_STS_UNEXP_ERROR;
4808          g_string :='Failed in PERFORM_LINE_DELETION procedure';
4809          error_exception_handle(g_string);
4810          RETURN;
4811       END IF;
4812    END LOOP;
4813 
4814    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4815       FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
4816    END IF;
4817 
4818 END GLOBAL_DOCUMENT_UPDATE;
4819 
4820 
4821 PROCEDURE DISPLAY_OUTPUT
4822         (p_type                   IN VARCHAR2) IS
4823 l_api_name           CONSTANT VARCHAR2(30) := 'DISPLAY_OUTPUT';
4824 BEGIN
4825    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
4826      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
4827    END IF;
4828 
4829    IF ( G_LEVEL_STATEMENT >= G_CURRENT_RUNTIME_LEVEL) THEN
4830         IF (p_type = 'O') THEN
4831            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'*** Dumping Output ***');
4832         ELSE
4833            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'*** Dumping Input ***');
4834         END IF;
4835         IF context_rec.fGetJurisNames = TRUE THEN
4836              FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fGetJurisNames = TRUE');
4837         ELSIF context_rec.fGetJurisNames = FALSE THEN
4838            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fGetJurisNames = FALSE');
4839         ELSE
4840            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fGetJurisNames = NULL');
4841         END IF;
4842 
4843         IF context_rec.fCaseSensitive = TRUE THEN
4844            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fCaseSensitive = TRUE');
4845         ELSIF context_rec.fCaseSensitive = FALSE THEN
4846            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fCaseSensitive = FALSE');
4847         ELSE
4848            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fCaseSensitive = NULL');
4849         END IF;
4850 
4851     IF (p_type = 'O') THEN
4852         /*-----------------------------------------------------------
4853          | Dumping ARP_TAX_VERTEX_QSU.tQSUInvoiceRecord Record Type |
4854          -----------------------------------------------------------*/
4855        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'*** Dumping tQSUInvoiceRecord Record Type***');
4856 
4857        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTGeoCd = '||to_char(inv_out_rec.fJurisSTGeoCd));
4858        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTStAbbrv = '||inv_out_rec.fJurisSTStAbbrv);
4859        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCoName = '||inv_out_rec.fJurisSTCoName);
4860        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCiName = '||inv_out_rec.fJurisSTCiName);
4861 
4862         IF inv_out_rec.fJurisSTCiCmprssd = TRUE THEN
4863            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCiCmprssd = TRUE');
4864         ELSIF inv_out_rec.fJurisSTCiCmprssd = FALSE THEN
4865            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCiCmprssd = FALSE');
4866         ELSE
4867            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCiCmprssd = NULL');
4868         END IF;
4869 
4870        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTZipCd = '||inv_out_rec.fJurisSTZipCd);
4871        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCiSearchCd = '||inv_out_rec.fJurisSTCiSearchCd);
4872 
4873         IF inv_out_rec.fJurisSTInCi = TRUE THEN
4874            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTInCi = TRUE');
4875         ELSIF inv_out_rec.fJurisSTInCi = FALSE THEN
4876            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTInCi = FALSE');
4877         ELSE
4878            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTInCi = NULL');
4879         END IF;
4880 
4881        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFGeoCd  = '||to_char(inv_out_rec.fJurisSFGeoCd));
4882        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFStAbbrv = '||inv_out_rec.fJurisSFStAbbrv);
4883        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCoName = '||inv_out_rec.fJurisSFCoName);
4884        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCiName = '||inv_out_rec.fJurisSFCiName);
4885 
4886         IF inv_out_rec.fJurisSFCiCmprssd = TRUE THEN
4887     	FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCiCmprssd = TRUE');
4888         ELSIF inv_out_rec.fJurisSFCiCmprssd = FALSE THEN
4889            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCiCmprssd = FALSE');
4890         ELSE
4891            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCiCmprssd = NULL');
4892         END IF;
4893 
4894        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFZipCd = '||inv_out_rec.fJurisSFZipCd);
4895        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCiSearchCd = '||inv_out_rec.fJurisSFCiSearchCd);
4896 
4897         IF inv_out_rec.fJurisSFInCi = TRUE THEN
4898            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFInCi = TRUE');
4899         ELSIF inv_out_rec.fJurisSFInCi = FALSE THEN
4900            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFInCi = FALSE');
4901         ELSE
4902            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFInCi = NULL');
4903         END IF;
4904 
4905        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAGeoCd = '||to_char(inv_out_rec.fJurisOAGeoCd));
4906        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAStAbbrv = '||inv_out_rec.fJurisOAStAbbrv);
4907        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACoName = '||inv_out_rec.fJurisOACoName);
4908        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACiName = '||inv_out_rec.fJurisOACiName);
4909 
4910         IF inv_out_rec.fJurisOACiCmprssd = TRUE THEN
4911            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACiCmprssd = TRUE');
4912         ELSIF inv_out_rec.fJurisOACiCmprssd = FALSE THEN
4913            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACiCmprssd = FALSE');
4914         ELSE
4915            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACiCmprssd = NULL');
4916         END IF;
4917 
4918        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAZipCd = '||inv_out_rec.fJurisOAZipCd);
4919        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACiSearchCd = '||inv_out_rec.fJurisOACiSearchCd);
4920 
4921         IF inv_out_rec.fJurisOAInCi = TRUE THEN
4922            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAInCi = TRUE');
4923         ELSIF inv_out_rec.fJurisOAInCi = FALSE THEN
4924            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAInCi = FALSE');
4925         ELSE
4926            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAInCi = NULL');
4927         END IF;
4928 
4929        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvIdNum = '||inv_out_rec.fInvIdNum);
4930        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvCntrlNum = '||inv_out_rec.fInvCntrlNum);
4931        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvDate = '||inv_out_rec.fInvDate);
4932        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvGrossAmt = '||to_char(inv_out_rec.fInvGrossAmt));
4933        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvTotalTaxAmt = '||to_char(inv_out_rec.fInvTotalTaxAmt));
4934        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvNumLineItems = '||inv_out_rec.fInvNumLineItems);
4935        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMCustCd = '||inv_out_rec.fTDMCustCd);
4936        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMCustClassCd = '||inv_out_rec.fTDMCustClassCd);
4937        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fCustTxblty = '||inv_out_rec.fCustTxblty);
4938        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMCompCd = '||inv_out_rec.fTDMCompCd);
4939        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMDivCd = '||inv_out_rec.fTDMDivCd);
4940        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMStoreCd = '||inv_out_rec.fTDMStoreCd);
4941 
4942         /*------------------------------------------------------------
4943          | Dumping ARP_TAX_VERTEX_QSU.tQSULineItemTable Record Type  |
4944          ------------------------------------------------------------*/
4945        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'***Dumping tQSULineItemTable Record Type***');
4946        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransType = '||to_char(line_out_tab(1).fTransType));
4947        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransSubType = '||to_char(line_out_tab(1).fTransSubType));
4948        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransCd = '||to_char(line_out_tab(1).fTransCd));
4949        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransDate = '||line_out_tab(1).fTransDate);
4950        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransExtendedAmt = '||
4951     				to_char(line_out_tab(1).fTransExtendedAmt));
4952        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransQuantity = '||
4953     				to_char(line_out_tab(1).fTransQuantity));
4954        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransTotalTaxAmt = '||
4955     				to_char(line_out_tab(1).fTransTotalTaxAmt));
4956        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransCombinedRate = '||
4957     			to_char(line_out_tab(1).fTransCombinedRate));
4958        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransUserArea = '||line_out_tab(1).fTransUserArea);
4959        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransStatusCd = '||
4960     			to_char(line_out_tab(1).fTransStatusCd));
4961        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMProdCd = '||line_out_tab(1).fTDMProdCd);
4962        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMProdRptngCd = '||line_out_tab(1).fTDMProdRptngCd);
4963        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fProdTxblty = '||to_char(line_out_tab(1).fProdTxblty));
4964        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriTaxingJuris = '||
4965     			to_char(line_out_tab(1).fPriTaxingJuris));
4966        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCustExmtCrtfNum = '||
4967     			line_out_tab(1).fPriCustExmtCrtfNum);
4968        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTxblty = '||to_char(line_out_tab(1).fPriStTxblty));
4969        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxType = '||to_char(line_out_tab(1).fPriStTaxType));
4970        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxedAmt = '||
4971     			to_char(line_out_tab(1).fPriStTaxedAmt));
4972        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStExmtAmt = '||to_char(line_out_tab(1).fPriStExmtAmt));
4973        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStExmtRsnCd = '||line_out_tab(1).fPriStExmtRsnCd);
4974        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStNonTxblAmt = '||
4975     			to_char(line_out_tab(1).fPriStNonTxblAmt));
4976        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStNonTxblRsnCd = '||
4977     			line_out_tab(1).fPriStNonTxblRsnCd);
4978        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStRate = '||to_char(line_out_tab(1).fPriStRate));
4979        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStRateEffDate = '||line_out_tab(1).fPriStRateEffDate);
4980        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStRateType = '||
4981     			to_char(line_out_tab(1).fPriStRateType));
4982        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxAmt = '||to_char(line_out_tab(1).fPriStTaxAmt));
4983 
4984         IF line_out_tab(1).fPriStTaxIncluded = TRUE THEN
4985     	FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxIncluded = TRUE');
4986         ELSIF line_out_tab(1).fPriStTaxIncluded = FALSE THEN
4987            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxIncluded = FALSE');
4988         ELSE
4989            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxIncluded = NULL');
4990         END IF;
4991 
4992        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTxblty = '||to_char(line_out_tab(1).fPriCoTxblty));
4993        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxType = '||to_char(line_out_tab(1).fPriCoTaxType));
4994        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxedAmt = '||
4995     			to_char(line_out_tab(1).fPriCoTaxedAmt));
4996        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoExmtAmt = '||to_char(line_out_tab(1).fPriCoExmtAmt));
4997        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoExmtRsnCd = '||line_out_tab(1).fPriCoExmtRsnCd);
4998        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoNonTxblAmt = '||
4999     			to_char(line_out_tab(1).fPriCoNonTxblAmt));
5000        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoNonTxblRsnCd = '||
5001     			line_out_tab(1).fPriCoNonTxblRsnCd);
5002        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoRate = '||to_char(line_out_tab(1).fPriCoRate));
5003        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoRateEffDate = '||line_out_tab(1).fPriCoRateEffDate);
5004        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoRateType = '||
5005     			to_char(line_out_tab(1).fPriCoRateType));
5006        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxAmt = '||to_char(line_out_tab(1).fPriCoTaxAmt));
5007 
5008         IF line_out_tab(1).fPriCoTaxIncluded = TRUE THEN
5009            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxIncluded = TRUE');
5010         ELSIF line_out_tab(1).fPriCoTaxIncluded = FALSE THEN
5011            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxIncluded = FALSE');
5012         ELSE
5013            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxIncluded = NULL');
5014         END IF;
5015 
5016        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTxblty = '||to_char(line_out_tab(1).fPriCiTxblty));
5017        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxType = '||to_char(line_out_tab(1).fPriCiTaxType));
5018        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxedAmt = '||
5019     			to_char(line_out_tab(1).fPriCiTaxedAmt));
5020        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiExmtAmt = '||to_char(line_out_tab(1).fPriCiExmtAmt));
5021        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiExmtRsnCd = '||line_out_tab(1).fPriCiExmtRsnCd);
5022        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiNonTxblAmt = '||
5023     			to_char(line_out_tab(1).fPriCiNonTxblAmt));
5024        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiNonTxblRsnCd = '||
5025     			line_out_tab(1).fPriCiNonTxblRsnCd);
5026        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiRate = '||to_char(line_out_tab(1).fPriCiRate));
5027        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiRateEffDate = '||line_out_tab(1).fPriCiRateEffDate);
5028        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiRateType = '||
5029     			to_char(line_out_tab(1).fPriCiRateType));
5030        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxAmt = '||to_char(line_out_tab(1).fPriCiTaxAmt));
5031 
5032         IF line_out_tab(1).fPriCiTaxIncluded = TRUE THEN
5033            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxIncluded = TRUE');
5034         ELSIF line_out_tab(1).fPriCiTaxIncluded = FALSE THEN
5035            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxIncluded = FALSE');
5036         ELSE
5037            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxIncluded = NULL');
5038         END IF;
5039 
5040        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTxblty = '||to_char(line_out_tab(1).fPriDiTxblty));
5041        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxType = '||to_char(line_out_tab(1).fPriDiTaxType));
5042        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxedAmt = '||
5043     			to_char(line_out_tab(1).fPriDiTaxedAmt));
5044        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiExmtAmt = '||to_char(line_out_tab(1).fPriDiExmtAmt));
5045        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiExmtRsnCd = '||line_out_tab(1).fPriDiExmtRsnCd);
5046        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiNonTxblAmt = '||
5047     			to_char(line_out_tab(1).fPriDiNonTxblAmt));
5048        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiNonTxblRsnCd = '||
5049     			line_out_tab(1).fPriDiNonTxblRsnCd);
5050        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiRate = '||to_char(line_out_tab(1).fPriDiRate));
5051        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiRateEffDate = '||line_out_tab(1).fPriDiRateEffDate);
5052        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiRateType = '||
5053     			to_char(line_out_tab(1).fPriDiRateType));
5054        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxAmt = '||to_char(line_out_tab(1).fPriDiTaxAmt));
5055 
5056         IF line_out_tab(1).fPriDiTaxIncluded = TRUE THEN
5057            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxIncluded = TRUE');
5058         ELSIF line_out_tab(1).fPriDiTaxIncluded = FALSE THEN
5059            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxIncluded = FALSE');
5060         ELSE
5061            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxIncluded = NULL');
5062         END IF;
5063 
5064        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiAppliesTo = '||
5065     			to_char(line_out_tab(1).fPriDiAppliesTo));
5066        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddTaxingJuris = '||
5067     			to_char(line_out_tab(1).fAddTaxingJuris));
5068        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCustExmtCrtfNum = '||
5069     				line_out_tab(1).fAddCustExmtCrtfNum);
5070        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTxblty = '||to_char(line_out_tab(1).fAddCoTxblty));
5071        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxType = '||to_char(line_out_tab(1).fAddCoTaxType));
5072        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxedAmt = '||
5073     			to_char(line_out_tab(1).fAddCoTaxedAmt));
5074        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoExmtAmt = '||to_char(line_out_tab(1).fAddCoExmtAmt));
5075        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoExmtRsnCd = '||line_out_tab(1).fAddCoExmtRsnCd);
5076        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoNonTxblAmt = '||
5077     			to_char(line_out_tab(1).fAddCoNonTxblAmt));
5078        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoNonTxblRsnCd = '||
5079     			line_out_tab(1).fAddCoNonTxblRsnCd);
5080        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoRate = '||to_char(line_out_tab(1).fAddCoRate));
5081        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoRateEffDate = '||line_out_tab(1).fAddCoRateEffDate);
5082        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoRateType = '||
5083     			to_char(line_out_tab(1).fAddCoRateType));
5084        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxAmt = '||to_char(line_out_tab(1).fAddCoTaxAmt));
5085 
5086         IF line_out_tab(1).fAddCoTaxIncluded = TRUE THEN
5087            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxIncluded = TRUE');
5088         ELSIF line_out_tab(1).fAddCoTaxIncluded = FALSE THEN
5089            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxIncluded = FALSE');
5090         ELSE
5091            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxIncluded = NULL');
5092         END IF;
5093 
5094        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTxblty = '||to_char(line_out_tab(1).fAddCiTxblty));
5095        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxType = '||to_char(line_out_tab(1).fAddCiTaxType));
5096        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxedAmt = '||
5097     			to_char(line_out_tab(1).fAddCiTaxedAmt));
5098        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiExmtAmt = '||to_char(line_out_tab(1).fAddCiExmtAmt));
5099        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiExmtRsnCd = '||line_out_tab(1).fAddCiExmtRsnCd);
5100        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiNonTxblAmt = '||
5101     			to_char(line_out_tab(1).fAddCiNonTxblAmt));
5102        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiNonTxblRsnCd = '||
5103     			line_out_tab(1).fAddCiNonTxblRsnCd);
5104        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiRate = '||to_char(line_out_tab(1).fAddCiRate));
5105        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiRateEffDate = '||line_out_tab(1).fAddCiRateEffDate);
5106        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiRateType = '||
5107     			to_char(line_out_tab(1).fAddCiRateType));
5108        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxAmt = '||to_char(line_out_tab(1).fAddCiTaxAmt));
5109 
5110         IF line_out_tab(1).fAddCiTaxIncluded = TRUE THEN
5111            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxIncluded = TRUE');
5112         ELSIF line_out_tab(1).fAddCiTaxIncluded = FALSE THEN
5113            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxIncluded = FALSE');
5114         ELSE
5115            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxIncluded = NULL');
5116         END IF;
5117 
5118        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTxblty = '||to_char(line_out_tab(1).fAddDiTxblty));
5119        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxType = '||to_char(line_out_tab(1).fAddDiTaxType));
5120        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxedAmt = '||
5121     			to_char(line_out_tab(1).fAddDiTaxedAmt));
5122        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiExmtAmt = '||to_char(line_out_tab(1).fAddDiExmtAmt));
5123        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiExmtRsnCd = '||line_out_tab(1).fAddDiExmtRsnCd);
5124        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiNonTxblAmt = '||
5125     			to_char(line_out_tab(1).fAddDiNonTxblAmt));
5126        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiNonTxblRsnCd = '||
5127     			line_out_tab(1).fAddDiNonTxblRsnCd);
5128        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiRate = '||to_char(line_out_tab(1).fAddDiRate));
5129        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiRateEffDate = '||line_out_tab(1).fAddDiRateEffDate);
5130        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiRateType = '||
5131     			to_char(line_out_tab(1).fAddDiRateType));
5132        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxAmt = '||to_char(line_out_tab(1).fAddDiTaxAmt));
5133 
5134         IF line_out_tab(1).fAddDiTaxIncluded = TRUE THEN
5135            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxIncluded = TRUE');
5136         ELSIF line_out_tab(1).fAddDiTaxIncluded = FALSE THEN
5137            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxIncluded = FALSE');
5138         ELSE
5139            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxIncluded = NULL');
5140         END IF;
5141 
5142        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiAppliesTo = '|| to_char(line_out_tab(1).fAddDiAppliesTo));
5143 
5144     ELSIF (p_type = 'I') THEN
5145 
5146         /*-----------------------------------------------------------
5147          | Dumping ARP_TAX_VERTEX_QSU.tQSUInvoiceRecord Record Type |
5148          -----------------------------------------------------------*/
5149        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'*** Dumping tQSUInvoiceRecord Record Type***');
5150 
5151        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTGeoCd = '||to_char(inv_in_rec.fJurisSTGeoCd));
5152        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTStAbbrv = '||inv_in_rec.fJurisSTStAbbrv);
5153        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCoName = '||inv_in_rec.fJurisSTCoName);
5154        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCiName = '||inv_in_rec.fJurisSTCiName);
5155 
5156         IF inv_in_rec.fJurisSTCiCmprssd = TRUE THEN
5157            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCiCmprssd = TRUE');
5158         ELSIF inv_in_rec.fJurisSTCiCmprssd = FALSE THEN
5159            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCiCmprssd = FALSE');
5160         ELSE
5161            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCiCmprssd = NULL');
5162         END IF;
5163 
5164        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTZipCd = '||inv_in_rec.fJurisSTZipCd);
5165        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTCiSearchCd = '||inv_in_rec.fJurisSTCiSearchCd);
5166 
5167         IF inv_in_rec.fJurisSTInCi = TRUE THEN
5168            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTInCi = TRUE');
5169         ELSIF inv_in_rec.fJurisSTInCi = FALSE THEN
5170            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTInCi = FALSE');
5171         ELSE
5172            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSTInCi = NULL');
5173         END IF;
5174 
5175        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFGeoCd  = '||to_char(inv_in_rec.fJurisSFGeoCd));
5176        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFStAbbrv = '||inv_in_rec.fJurisSFStAbbrv);
5177        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCoName = '||inv_in_rec.fJurisSFCoName);
5178        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCiName = '||inv_in_rec.fJurisSFCiName);
5179 
5180         IF inv_in_rec.fJurisSFCiCmprssd = TRUE THEN
5181     	FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCiCmprssd = TRUE');
5182         ELSIF inv_in_rec.fJurisSFCiCmprssd = FALSE THEN
5183            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCiCmprssd = FALSE');
5184         ELSE
5185            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCiCmprssd = NULL');
5186         END IF;
5187 
5188        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFZipCd = '||inv_in_rec.fJurisSFZipCd);
5189        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFCiSearchCd = '||inv_in_rec.fJurisSFCiSearchCd);
5190 
5191         IF inv_in_rec.fJurisSFInCi = TRUE THEN
5192            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFInCi = TRUE');
5193         ELSIF inv_in_rec.fJurisSFInCi = FALSE THEN
5194            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFInCi = FALSE');
5195         ELSE
5196            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisSFInCi = NULL');
5197         END IF;
5198 
5199        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAGeoCd = '||to_char(inv_in_rec.fJurisOAGeoCd));
5200        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAStAbbrv = '||inv_in_rec.fJurisOAStAbbrv);
5201        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACoName = '||inv_in_rec.fJurisOACoName);
5202        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACiName = '||inv_in_rec.fJurisOACiName);
5203 
5204         IF inv_in_rec.fJurisOACiCmprssd = TRUE THEN
5205            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACiCmprssd = TRUE');
5206         ELSIF inv_in_rec.fJurisOACiCmprssd = FALSE THEN
5207            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACiCmprssd = FALSE');
5208         ELSE
5209            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACiCmprssd = NULL');
5210         END IF;
5211 
5212        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAZipCd = '||inv_in_rec.fJurisOAZipCd);
5213        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOACiSearchCd = '||inv_in_rec.fJurisOACiSearchCd);
5214 
5215         IF inv_in_rec.fJurisOAInCi = TRUE THEN
5216            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAInCi = TRUE');
5217         ELSIF inv_in_rec.fJurisOAInCi = FALSE THEN
5218            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAInCi = FALSE');
5219         ELSE
5220            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fJurisOAInCi = NULL');
5221         END IF;
5222 
5223        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvIdNum = '||inv_in_rec.fInvIdNum);
5224        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvCntrlNum = '||inv_in_rec.fInvCntrlNum);
5225        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvDate = '||inv_in_rec.fInvDate);
5226        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvGrossAmt = '||to_char(inv_in_rec.fInvGrossAmt));
5227        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvTotalTaxAmt = '||to_char(inv_in_rec.fInvTotalTaxAmt));
5228        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fInvNumLineItems = '||inv_in_rec.fInvNumLineItems);
5229        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMCustCd = '||inv_in_rec.fTDMCustCd);
5230        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMCustClassCd = '||inv_in_rec.fTDMCustClassCd);
5231        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fCustTxblty = '||inv_in_rec.fCustTxblty);
5232        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMCompCd = '||inv_in_rec.fTDMCompCd);
5233        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMDivCd = '||inv_in_rec.fTDMDivCd);
5234        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMStoreCd = '||inv_in_rec.fTDMStoreCd);
5235 
5236         /*------------------------------------------------------------
5237          | Dumping ARP_TAX_VERTEX_QSU.tQSULineItemTable Record Type  |
5238          ------------------------------------------------------------*/
5239        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'***Dumping tQSULineItemTable Record Type***');
5240        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransType = '||to_char(line_in_tab(1).fTransType));
5241        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransSubType = '||to_char(line_in_tab(1).fTransSubType));
5242        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransCd = '||to_char(line_in_tab(1).fTransCd));
5243        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransDate = '||line_in_tab(1).fTransDate);
5244        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransExtendedAmt = '||
5245     				to_char(line_in_tab(1).fTransExtendedAmt));
5246        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransQuantity = '||
5247     				to_char(line_in_tab(1).fTransQuantity));
5248        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransTotalTaxAmt = '||
5249     				to_char(line_in_tab(1).fTransTotalTaxAmt));
5250        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransCombinedRate = '||
5251     			to_char(line_in_tab(1).fTransCombinedRate));
5252        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransUserArea = '||line_in_tab(1).fTransUserArea);
5253        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTransStatusCd = '||
5254     			to_char(line_in_tab(1).fTransStatusCd));
5255        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMProdCd = '||line_in_tab(1).fTDMProdCd);
5256        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fTDMProdRptngCd = '||line_in_tab(1).fTDMProdRptngCd);
5257        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fProdTxblty = '||to_char(line_in_tab(1).fProdTxblty));
5258        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriTaxingJuris = '||
5259     			to_char(line_in_tab(1).fPriTaxingJuris));
5260        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCustExmtCrtfNum = '||
5261     			line_in_tab(1).fPriCustExmtCrtfNum);
5262        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTxblty = '||to_char(line_in_tab(1).fPriStTxblty));
5263        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxType = '||to_char(line_in_tab(1).fPriStTaxType));
5264        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxedAmt = '||
5265     			to_char(line_in_tab(1).fPriStTaxedAmt));
5266        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStExmtAmt = '||to_char(line_in_tab(1).fPriStExmtAmt));
5267        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStExmtRsnCd = '||line_in_tab(1).fPriStExmtRsnCd);
5268        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStNonTxblAmt = '||
5269     			to_char(line_in_tab(1).fPriStNonTxblAmt));
5270        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStNonTxblRsnCd = '||
5271     			line_in_tab(1).fPriStNonTxblRsnCd);
5272        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStRate = '||to_char(line_in_tab(1).fPriStRate));
5273        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStRateEffDate = '||line_in_tab(1).fPriStRateEffDate);
5274        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStRateType = '||
5275     			to_char(line_in_tab(1).fPriStRateType));
5276        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxAmt = '||to_char(line_in_tab(1).fPriStTaxAmt));
5277 
5278         IF line_in_tab(1).fPriStTaxIncluded = TRUE THEN
5279     	FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxIncluded = TRUE');
5280         ELSIF line_in_tab(1).fPriStTaxIncluded = FALSE THEN
5281            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxIncluded = FALSE');
5282         ELSE
5283            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriStTaxIncluded = NULL');
5284         END IF;
5285 
5286        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTxblty = '||to_char(line_in_tab(1).fPriCoTxblty));
5287        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxType = '||to_char(line_in_tab(1).fPriCoTaxType));
5288        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxedAmt = '||
5289     			to_char(line_in_tab(1).fPriCoTaxedAmt));
5290        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoExmtAmt = '||to_char(line_in_tab(1).fPriCoExmtAmt));
5291        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoExmtRsnCd = '||line_in_tab(1).fPriCoExmtRsnCd);
5292        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoNonTxblAmt = '||
5293     			to_char(line_in_tab(1).fPriCoNonTxblAmt));
5294        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoNonTxblRsnCd = '||
5295     			line_in_tab(1).fPriCoNonTxblRsnCd);
5296        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoRate = '||to_char(line_in_tab(1).fPriCoRate));
5297        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoRateEffDate = '||line_in_tab(1).fPriCoRateEffDate);
5298        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoRateType = '||
5299     			to_char(line_in_tab(1).fPriCoRateType));
5300        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxAmt = '||to_char(line_in_tab(1).fPriCoTaxAmt));
5301 
5302         IF line_in_tab(1).fPriCoTaxIncluded = TRUE THEN
5303            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxIncluded = TRUE');
5304         ELSIF line_in_tab(1).fPriCoTaxIncluded = FALSE THEN
5305            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxIncluded = FALSE');
5306         ELSE
5307            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCoTaxIncluded = NULL');
5308         END IF;
5309 
5310        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTxblty = '||to_char(line_in_tab(1).fPriCiTxblty));
5311        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxType = '||to_char(line_in_tab(1).fPriCiTaxType));
5312        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxedAmt = '||
5313     			to_char(line_in_tab(1).fPriCiTaxedAmt));
5314        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiExmtAmt = '||to_char(line_in_tab(1).fPriCiExmtAmt));
5315        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiExmtRsnCd = '||line_in_tab(1).fPriCiExmtRsnCd);
5316        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiNonTxblAmt = '||
5317     			to_char(line_in_tab(1).fPriCiNonTxblAmt));
5318        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiNonTxblRsnCd = '||
5319     			line_in_tab(1).fPriCiNonTxblRsnCd);
5320        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiRate = '||to_char(line_in_tab(1).fPriCiRate));
5321        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiRateEffDate = '||line_in_tab(1).fPriCiRateEffDate);
5322        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiRateType = '||
5323     			to_char(line_in_tab(1).fPriCiRateType));
5324        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxAmt = '||to_char(line_in_tab(1).fPriCiTaxAmt));
5325 
5326         IF line_in_tab(1).fPriCiTaxIncluded = TRUE THEN
5327            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxIncluded = TRUE');
5328         ELSIF line_in_tab(1).fPriCiTaxIncluded = FALSE THEN
5329            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxIncluded = FALSE');
5330         ELSE
5331            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriCiTaxIncluded = NULL');
5332         END IF;
5333 
5334        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTxblty = '||to_char(line_in_tab(1).fPriDiTxblty));
5335        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxType = '||to_char(line_in_tab(1).fPriDiTaxType));
5336        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxedAmt = '||
5337     			to_char(line_in_tab(1).fPriDiTaxedAmt));
5338        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiExmtAmt = '||to_char(line_in_tab(1).fPriDiExmtAmt));
5339        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiExmtRsnCd = '||line_in_tab(1).fPriDiExmtRsnCd);
5340        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiNonTxblAmt = '||
5341     			to_char(line_in_tab(1).fPriDiNonTxblAmt));
5342        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiNonTxblRsnCd = '||
5343     			line_in_tab(1).fPriDiNonTxblRsnCd);
5344        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiRate = '||to_char(line_in_tab(1).fPriDiRate));
5345        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiRateEffDate = '||line_in_tab(1).fPriDiRateEffDate);
5346        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiRateType = '||
5347     			to_char(line_in_tab(1).fPriDiRateType));
5348        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxAmt = '||to_char(line_in_tab(1).fPriDiTaxAmt));
5349 
5350         IF line_in_tab(1).fPriDiTaxIncluded = TRUE THEN
5351            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxIncluded = TRUE');
5352         ELSIF line_in_tab(1).fPriDiTaxIncluded = FALSE THEN
5353            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxIncluded = FALSE');
5354         ELSE
5355            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiTaxIncluded = NULL');
5356         END IF;
5357 
5358        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fPriDiAppliesTo = '||
5359     			to_char(line_in_tab(1).fPriDiAppliesTo));
5360        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddTaxingJuris = '||
5361     			to_char(line_in_tab(1).fAddTaxingJuris));
5362        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCustExmtCrtfNum = '||
5363     				line_in_tab(1).fAddCustExmtCrtfNum);
5364        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTxblty = '||to_char(line_in_tab(1).fAddCoTxblty));
5365        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxType = '||to_char(line_in_tab(1).fAddCoTaxType));
5366        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxedAmt = '||
5367     			to_char(line_in_tab(1).fAddCoTaxedAmt));
5368        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoExmtAmt = '||to_char(line_in_tab(1).fAddCoExmtAmt));
5369        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoExmtRsnCd = '||line_in_tab(1).fAddCoExmtRsnCd);
5370        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoNonTxblAmt = '||
5371     			to_char(line_in_tab(1).fAddCoNonTxblAmt));
5372        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoNonTxblRsnCd = '||
5373     			line_in_tab(1).fAddCoNonTxblRsnCd);
5374        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoRate = '||to_char(line_in_tab(1).fAddCoRate));
5375        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoRateEffDate = '||line_in_tab(1).fAddCoRateEffDate);
5376        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoRateType = '||
5377     			to_char(line_in_tab(1).fAddCoRateType));
5378        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxAmt = '||to_char(line_in_tab(1).fAddCoTaxAmt));
5379 
5380         IF line_in_tab(1).fAddCoTaxIncluded = TRUE THEN
5381            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxIncluded = TRUE');
5382         ELSIF line_in_tab(1).fAddCoTaxIncluded = FALSE THEN
5383            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxIncluded = FALSE');
5384         ELSE
5385            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCoTaxIncluded = NULL');
5386         END IF;
5387 
5388        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTxblty = '||to_char(line_in_tab(1).fAddCiTxblty));
5389        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxType = '||to_char(line_in_tab(1).fAddCiTaxType));
5390        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxedAmt = '||
5391     			to_char(line_in_tab(1).fAddCiTaxedAmt));
5392        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiExmtAmt = '||to_char(line_in_tab(1).fAddCiExmtAmt));
5393        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiExmtRsnCd = '||line_in_tab(1).fAddCiExmtRsnCd);
5394        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiNonTxblAmt = '||
5395     			to_char(line_in_tab(1).fAddCiNonTxblAmt));
5396        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiNonTxblRsnCd = '||
5397     			line_in_tab(1).fAddCiNonTxblRsnCd);
5398        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiRate = '||to_char(line_in_tab(1).fAddCiRate));
5399        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiRateEffDate = '||line_in_tab(1).fAddCiRateEffDate);
5400        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiRateType = '||
5401     			to_char(line_in_tab(1).fAddCiRateType));
5402        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxAmt = '||to_char(line_in_tab(1).fAddCiTaxAmt));
5403 
5404         IF line_in_tab(1).fAddCiTaxIncluded = TRUE THEN
5405            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxIncluded = TRUE');
5406         ELSIF line_in_tab(1).fAddCiTaxIncluded = FALSE THEN
5407            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxIncluded = FALSE');
5408         ELSE
5409            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddCiTaxIncluded = NULL');
5410         END IF;
5411 
5412        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTxblty = '||to_char(line_in_tab(1).fAddDiTxblty));
5413        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxType = '||to_char(line_in_tab(1).fAddDiTaxType));
5414        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxedAmt = '||
5415     			to_char(line_in_tab(1).fAddDiTaxedAmt));
5416        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiExmtAmt = '||to_char(line_in_tab(1).fAddDiExmtAmt));
5417        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiExmtRsnCd = '||line_in_tab(1).fAddDiExmtRsnCd);
5418        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiNonTxblAmt = '||
5419     			to_char(line_in_tab(1).fAddDiNonTxblAmt));
5420        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiNonTxblRsnCd = '||
5421     			line_in_tab(1).fAddDiNonTxblRsnCd);
5422        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiRate = '||to_char(line_in_tab(1).fAddDiRate));
5423        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiRateEffDate = '||line_in_tab(1).fAddDiRateEffDate);
5424        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiRateType = '||
5425     			to_char(line_in_tab(1).fAddDiRateType));
5426        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxAmt = '||to_char(line_in_tab(1).fAddDiTaxAmt));
5427 
5428         IF line_in_tab(1).fAddDiTaxIncluded = TRUE THEN
5429            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxIncluded = TRUE');
5430         ELSIF line_in_tab(1).fAddDiTaxIncluded = FALSE THEN
5431            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxIncluded = FALSE');
5432         ELSE
5433            FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiTaxIncluded = NULL');
5434         END IF;
5435 
5436        FND_LOG.STRING(G_LEVEL_STATEMENT,G_MODULE_NAME||l_api_name,'fAddDiAppliesTo = '|| to_char(line_in_tab(1).fAddDiAppliesTo));
5437     END IF;
5438    END IF;
5439 
5440    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5441      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
5442    END IF;
5443 
5444 end DISPLAY_OUTPUT;
5445 
5446 PROCEDURE ERROR_EXCEPTION_HANDLE(str  varchar2) is
5447 
5448 CURSOR error_exception_cursor IS
5449 SELECT	EVNT_CLS_MAPPING_ID,
5450 	TRX_ID,
5451 	TAX_REGIME_CODE
5452 FROM    ZX_TRX_PRE_PROC_OPTIONS_GT;
5453 
5454 BEGIN
5455    IF (g_docment_type_id is null) THEN
5456       OPEN  error_exception_cursor;
5457       FETCH error_exception_cursor
5458        INTO g_docment_type_id,
5459             g_trasaction_id,
5460             g_tax_regime_code;
5461       CLOSE error_exception_cursor;
5462    END IF;
5463 
5464    err_count := nvl(err_count,0)+1;
5465    G_MESSAGES_TBL.DOCUMENT_TYPE_ID(err_count)     := g_docment_type_id;
5466    G_MESSAGES_TBL.TRANSACTION_ID(err_count)       := g_trasaction_id;
5467    G_MESSAGES_TBL.COUNTRY_CODE(err_count)         := g_tax_regime_code;
5468    G_MESSAGES_TBL.TRANSACTION_LINE_ID(err_count)  := g_transaction_line_id;
5469    G_MESSAGES_TBL.TRX_LEVEL_TYPE(err_count)       := g_trx_level_type;
5470    G_MESSAGES_TBL.ERROR_MESSAGE_TYPE(err_count)   := 'ERROR';
5471    G_MESSAGES_TBL.ERROR_MESSAGE_STRING(err_count) := str;
5472 
5473 END ERROR_EXCEPTION_HANDLE;
5474 
5475 PROCEDURE INITIALIZE is
5476 l_api_name           CONSTANT VARCHAR2(30) := 'INITIALIZE';
5477 begin
5478    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5479      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.BEGIN',G_PKG_NAME||': '||l_api_name||'(+)');
5480    END IF;
5481 
5482    context_rec.fGetJurisNames := TRUE;
5483    context_rec.fRoundingMethod := ZX_TAX_VERTEX_QSU.cQSURndngMethodQuantum;
5484 
5485    IF ( G_LEVEL_PROCEDURE >= G_CURRENT_RUNTIME_LEVEL) THEN
5486      FND_LOG.STRING(G_LEVEL_PROCEDURE,G_MODULE_NAME||l_api_name||'.END',G_PKG_NAME||': '||l_api_name||'(-)');
5487    END IF;
5488 end INITIALIZE;
5489 
5490 begin /*Constructor*/
5491    initialize;
5492 END ZX_VERTEX_TAX_SERVICE_PKG;